Wednesday 26 August 2015

EXPDP/IMPDP NETWORK_LINK 10G and Later Version

METHOD 1st
Impdp over network using Network_link (Without expdp)

Applies to:
 
 Oracle Version: 10G and later

Advantages:
This is an alternate and fast approach for importing database from one database to another.
This process can skip following activities:
    1. Creating database directory for backup on source database.
    2. Create dump file on source database.
    3. Copy dump file at destination server.
    4. Creating database directory for backup restoration on Destination database.
    5. Expdp command to take database backup.

Solution:
Broker and ACE

Suppose we have two databases (db1 is Broker) and (db2 is ACE). We need to restore MYNET backup form db1 to db2. 

Prerequisites:

     1. Source and Destination database must be connected through the network.
     2. Both databases must be in open mode.
     3. Source database (db1) tns detail must exist at destination (db2).
     4. Database (db1) (db2) tnsping check.

Go to BROKER database

ro =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = ACE)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SERVICE_NAME = sarathi)
    )
  )

SQL> create user nettest identified by nettest;
User created.
SQL> grant connect,resource,dba to nettest;
Grant succeeded.
SQL> conn nettest/nettest;
Connected.
SQL> create table mynet(empno number,empname varchar2(20));
Table created.
SQL> insert into mynet values(001,'Mohan');
1 row created.
SQL> insert into mynet values(002,'Sohan');
1 row created.
SQL> commit;
Commit complete.
SQL> create table ABC as select * from mynet;
Table created.
SQL> create table CDE select * from ABC;
Table created.



Following are the steps:
     1. Crate a public database link at db2 connecting to db1 using system user.

Go to ACE database

----- TNS ------
JP  =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = BROKER)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SID = ORCL)
    )
  )



SQL> conn / as sysdba
Connected.

SQL> create user mynet identified by mynet;
User created.

SQL> grant connect,resource,dba to mynet;
Grant succeeded.

SQL> grant read,write on directory data_pump_dir to mynet;
Grant succeeded.

SQL> commit;
Commit complete.

SQL> conn mynet/mynet;
Connected.

SQL> select * from tab;
no rows selected

SQL> create database link useme connect to nettest identified by nettest using ‘JP’;
Database link created.

SQL> commit;
Commit complete.

SQL> select * from dba_directories where directory_name like ‘DATA_PUMP_DIR%’;

OWNER   DIRECTORY_NAME      DIRECTORY_PATH
——————  ————————————–----  --------------------------------------------
SYS     DATA_PUMP_DIR       /u01/oracle/product/10.2.0/admin/ace/dpdump/

SQL> select * from tab;
no rows selected

SQL>

SQL> select * from dba_db_links where owner=’MYNET’;
OWNER     DB_LINK                                                                 USERNAME      HOST       CREATED
———---  -----------------------------------------------------------------------------    ----------------------- -----------  -------------------
MYNET   USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM       NETTEST         JP          26-AUG-15


 [oracle@~]$ impdp mynet/mynet directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=mynet.log remap_schema=nettest:mynet exclude=TABLE:\"IN \(\'ABC\', \'CDE\'\)\"

Import: Release 10.2.0.1.0 - Production on Wednesday, 26 August, 2015 12:59:17

Copyright (c) 2003, 2005, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Starting "MYNET"."SYS_IMPORT_SCHEMA_01":  mynet/******** directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=mynet.log remap_schema=nettest:mynet exclude=TABLE:"IN ('ABC', 'CDE')"
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"MYNET" already exists
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported "MYNET"."MYNET"                                  2 rows
Job "MYNET"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at 12:59:43

Detail of Impdp parameters:

network_link: This parameter will have value of db link created.

Schemas: Name of the schema need to import from source. If user doesn’t exists it will create it, otherwise it import in to existing user with one error.


Here, directory and dumpfile parameters are not required. Other parameters are same as it used to be.




METHOD 2nd  

Data pump network_link export and import 10G and >

This post show you, just a easy understanding about Datapump network_link parameter.How the expdp work and dump file create on target machine
I have used two site database
Broker and ACE
Step 1:
Go to Broker database
SQL> create user nettest identified by nettest;
User created.
SQL> grant connect,resource,dba to nettest;
Grant succeeded.
SQL> conn nettest/nettest;
Connected.
SQL> create table mynet(empno number,empname varchar2(20));
Table created.
SQL> insert into mynet values(001,'Mohan');
1 row created.
SQL> insert into mynet values(002,'Sohan');
1 row created.
SQL> commit;
Commit complete.


Step 2:Go to ACE database
SQL> conn / as sysdba
Connected.
SQL> create user mynet identified by mynet;
User created.
SQL> grant connect,resource,dba to mynet;
Grant succeeded.
SQL> grant read,write on directory data_pump_dir to mynet;
Grant succeeded.
SQL> commit;
Commit complete.
SQL> conn mynet/mynet;
Connected.
SQL> select * from tab;
no rows selected
SQL> create database link useme connect to nettest identified by nettest using ‘JP’;
Database link created.
SQL> commit;
Commit complete.

SQL> select * from dba_directories where directory_name like ‘DATA_PUMP_DIR%’;

OWNER   DIRECTORY_NAME      DIRECTORY_PATH
——————  ————————————–----  --------------------------------------------
SYS     DATA_PUMP_DIR       /u01/oracle/product/10.2.0/admin/ace/dpdump/

SQL> select * from tab;
no rows selected

SQL>

SQL> select * from dba_db_links where owner=’MYNET’;
OWNER     DB_LINK                                                                         USERNAME      HOST       CREATED
———---  -----------------------------------------------------------------------------    ----------------------- -----------  -------------------
MYNET   USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM       NETTEST         JP          26-AUG-15

Step 3:Go to broker db server and execute your export command here, you can see your broker DB schema (nettest) dump file stored in ACE db server schema directory (mynet).

$ expdp mynet/mynet@ro directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=testnet.log dumpfile=testnet.dmp tables=mynet

OR

expdp mynet/mynet@ro directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=mynet.log dumpfile=mynet.dmp exclude=TABLE:\"IN \(\'ABC\', \'CDE\'\)\"

Export: Release 10.2.0.1.0 – 64bit Production on Wednesday, 27 October, 2010 16:
53:52
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 – Produc
tion
With the Partitioning, OLAP and Data Mining options
Starting “MYNET”.”SYS_EXPORT_TABLE_01″:  
mynet/********@ro directory=data
_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=testnet.log
 dumpfile=testnet.dmp tables=mynet
Estimate in progress using BLOCKS method…
Processing object type TABLE_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type TABLE_EXPORT/TABLE/TABLE
. . exported “NETTEST”.”MYNET”                            5.25 KB       2 rows
Master table “MYNET”.”SYS_EXPORT_TABLE_01″ successfully loaded/unloaded
******************************************************************************
Dump file set for MYNET.SYS_EXPORT_TABLE_01 is:
  /u01/ORACLE/PRODUCT/10.2.0/ADMIN/ACE/DPDUMP/TESTNET.DMP
Job “MYNET”.”SYS_EXPORT_TABLE_01″ successfully completed at 16:55:02
Export Finished and then If you need , you can import the dump file from broker db server to ace db server.
For import, dumpfile parameter not need.
$ impdp mynet/mynet directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=testnetimp.log remap_schema=nettest:mynet  tables=mynet

OR

impdp mynet/mynet@ro directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM dumpfile=mynet.dmp logfile=impnetimp.log remap_schema=nettest:mynet

Import: Release 10.2.0.1.0 - Production on Wednesday, 26 August, 2015 12:59:17
Copyright (c) 2003, 2005, Oracle.  All rights reserved.
Connected to: Oracle Database 10g Release 10.2.0.1.0 - Production
Starting "MYNET"."SYS_IMPORT_SCHEMA_01":  mynet/******** directory=data_pump_dir network_link=USEME.REGRESS.RDBMS.DEV.US.ORACLE.COM logfile=mynet.log remap_schema=nettest:mynet exclude=TABLE:"IN ('ABC', 'CDE')"
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 64 KB
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"MYNET" already exists
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported "MYNET"."MYNET"                                  2 rows
Job "MYNET"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at 12:59:43

[Oracle]$

 Step 4:
SQL> conn mynet/mynet
Connected.
SQL> select * from tab;
TNAME                          TABTYPE  CLUSTERID
—————————— ——- ———-
MYNET                          TABLE

SQL> select * from mynet;
  EMPNO       EMPNAME
-------———-  --——————–
         1               Mohan
         2              Sohan

SQL>
If you need to refer about network_link parameter, you can from here




EXPDP/ IMPDP with Network_Link in Version 10G and >, Localy Backup for the remote Database

Network link option could be used in export/import pump to get the data from a remote database server. In the case of impdp it could be used to directly import from DB to DB without an intermediary dump file. 

1. Create a TNS entry on the local database tnsnames.ora file for the remote database and create a database link using the TNS entry.
REMOTELOC =
   (DESCRIPTION =
     (ADDRESS = (PROTOCOL = TCP)(HOST = remote-loc)(PORT = 1521))
       (CONNECT_DATA =
        (SERVER = DEDICATED)
        (SID = remote-db)
     )
   )
Create the database link under the user that will run the expdp or impdp. If the user cannot find the database link following error will be shown
ORA-39001: invalid argument value
ORA-39200: Link name "remoteloc" is invalid.
ORA-02019: connection description for remote database not found
SQL> create database link remoteloc connect to scott identified by tiger using 'REMOTELOC'

expdp
This will export the remote database's scott schema into the local database server's dump file directory.
Expdp scott/tiger directory=dumpdir logfile=impi.log network_link=remoteloc schemas=scott dumpfile=newscot.dmp

Export: Release 11.2.0.2.0 - Production on Wed Jan 5 15:58:30 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_EXPORT_SCHEMA_01":  scott/******** directory=dumpdir logfile=impi.log network_link=remoteloc schemas=scott
dumpfile=newscot.dmp
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
. . exported "SCOTT"."DEPT"                              5.937 KB       4 rows
. . exported "SCOTT"."EMP"                               8.570 KB      14 rows
. . exported "SCOTT"."SALGRADE"                          5.867 KB       5 rows
. . exported "SCOTT"."BONUS"                                 0 KB       0 rows
Master table "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
******************************************************************************
Dump file set for SCOTT.SYS_EXPORT_SCHEMA_01 is:
/home/oracle/newscot.dmp
Job "SCOTT"."SYS_EXPORT_SCHEMA_01" successfully completed at 15:59:08

2. Specify the database link on the impdp or expdp commands.
impdp
The import will be run on the local database server and it will import the remote database's scott schema directly into the local database. There won't be any dumpfile generated in this case.
Impdp scott/tiger directory=dumpdir logfile=impi.log network_link=remoteloc schemas=scott

Import: Release 11.2.0.2.0 - Production on Wed Jan 5 15:53:33 2015

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_IMPORT_SCHEMA_01":  scott/******** directory=dumpdir logfile=impi.log network_link=remoteloc schemas=scott
Estimate in progress using BLOCKS method...
Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
Total estimation using BLOCKS method: 192 KB
Processing object type SCHEMA_EXPORT/USER
ORA-31684: Object type USER:"SCOTT" already exists
Processing object type SCHEMA_EXPORT/SYSTEM_GRANT
Processing object type SCHEMA_EXPORT/ROLE_GRANT
Processing object type SCHEMA_EXPORT/DEFAULT_ROLE
Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
Processing object type SCHEMA_EXPORT/TABLE/TABLE
. . imported "SCOTT"."DEPT"                                   4 rows
. . imported "SCOTT"."EMP"                                   14 rows
. . imported "SCOTT"."SALGRADE"                               5 rows
. . imported "SCOTT"."BONUS"                                  0 rows
Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
Processing object type SCHEMA_EXPORT/TABLE/STATISTICS/TABLE_STATISTICS
Job "SCOTT"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at 15:54:19
In this case the "SCOTT"."SYS_IMPORT_SCHEMA_01" meta table is created in the local DB's importing schema not on the remote schema.