Oracle Data Pump (expdp and impdp) in Oracle Database 10g
For the examples to work we must first unlock the SCOTT account and
create a directory object it can access. The directory object is only a
pointer to a physical directory, creating it does not actually create
the physical directory on the file system of the database server.
Note. Data Pump is a server-based technology, so it typically deals with directory objects pointing to physical directories on the database server. It does not write to the local file system on your client PC.
The
Existing directories can be queried using theCONN / AS SYSDBA ALTER USER scott IDENTIFIED BY tiger ACCOUNT UNLOCK; CREATE OR REPLACE DIRECTORY test_dir AS '/u01/app/oracle/oradata/'; GRANT READ, WRITE ON DIRECTORY test_dir TO scott;
ALL_DIRECTORIES
view.Note. Data Pump is a server-based technology, so it typically deals with directory objects pointing to physical directories on the database server. It does not write to the local file system on your client PC.
Table Exports/Imports
TheTABLES
parameter is used to specify the tables that
are to be exported. The following is an example of the table export and
import syntax.For example output files see expdpEMP_DEPT.log and impdpEMP_DEPT.log.expdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=expdpEMP_DEPT.log impdp scott/tiger@db10g tables=EMP,DEPT directory=TEST_DIR dumpfile=EMP_DEPT.dmp logfile=impdpEMP_DEPT.log
The
TABLE_EXISTS_ACTION=APPEND
parameter allows data to be imported into existing tables.Schema Exports/Imports
TheOWNER
parameter of exp has been replaced by the SCHEMAS
parameter
which is used to specify the schemas to be exported. The following is
an example of the schema export and import syntax.For example output files see expdpSCOTT.log and impdpSCOTT.log.expdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log impdp scott/tiger@db10g schemas=SCOTT directory=TEST_DIR dumpfile=SCOTT.dmp logfile=impdpSCOTT.log
Database Exports/Imports
TheFULL
parameter indicates that a complete database
export is required. The following is an example of the full database
export and import syntax.expdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=expdpDB10G.log impdp system/password@db10g full=Y directory=TEST_DIR dumpfile=DB10G.dmp logfile=impdpDB10G.logINCLUDE and EXCLUDE
TheINCLUDE
andEXCLUDE
parameters can be used to limit the export/import to specific objects. When theINCLUDE
parameter is used, only those objects specified by it will be included in the export/import. When theEXCLUDE
parameter is used, all objects except those specified by it will be included in the export/import. The two parameters are mutually exclusive, so use the parameter that requires the least entries to give you the result you require. The basic syntax for both parameters is the same.
The following code shows how they can be used as command line parameters.INCLUDE=object_type[:name_clause] [, ...] EXCLUDE=object_type[:name_clause] [, ...]
If the parameter is used from the command line, depending on your OS, the special characters in the clause may need to be escaped, as follows. Because of this, it is easier to use a parameter file.expdp scott/tiger@db10g schemas=SCOTT include=TABLE:"IN ('EMP', 'DEPT')" directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log expdp scott/tiger@db10g schemas=SCOTT exclude=TABLE:"= 'BONUS'" directory=TEST_DIR dumpfile=SCOTT.dmp logfile=expdpSCOTT.log
A single import/export can include multiple references to the parameters, so to export tables, views and some packages we could use either of the following approaches.include=TABLE:\"IN (\'EMP\', \'DEPT\')\"
Multiple objects can be targeted in once statement using theINCLUDE=TABLE,VIEW,PACKAGE:"LIKE '%API'" or INCLUDE=TABLE INCLUDE=VIEW INCLUDE=PACKAGE:"LIKE '%API'"LIKE
andIN
operators.
EXCLUDE=SCHEMA:"LIKE 'SYS%'" EXCLUDE=SCHEMA:"IN ('OUTLN','SYSTEM','SYSMAN','FLOWS_FILES','APEX_030200','APEX_PUBLIC_USER','ANONYMOUS')Network Exports/Imports (NETWORK_LINK)
TheNETWORK_LINK
parameter identifies a database link to be used as the source for a network export/import. The following database link will be used to demonstrate its use.
In the case of exports, theCONN / AS SYSDBA GRANT CREATE DATABASE LINK TO test; CONN test/test CREATE DATABASE LINK remote_scott CONNECT TO scott IDENTIFIED BY tiger USING 'DEV';NETWORK_LINK
parameter identifies the database link pointing to the source server. The objects are exported from the source server in the normal manner, but written to a directory object on the local server, rather than one on the source server. Both the local and remote users require theEXP_FULL_DATABASE
role granted to them.
For imports, theexpdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DIR dumpfile=EMP.dmp logfile=expdpEMP.logNETWORK_LINK
parameter also identifies the database link pointing to the source server. The difference here is the objects are imported directly from the source into the local server without being written to a dump file. Although there is no need for aDUMPFILE
parameter, a directory object is still required for the logs associated with the operation. Both the local and remote users require theIMP_FULL_DATABASE
role granted to them.
impdp test/test@db10g tables=SCOTT.EMP network_link=REMOTE_SCOTT directory=TEST_DIR logfile=impdpSCOTT.log remap_schema=SCOTT:TEST
No comments:
Post a Comment