Oracle数据泵(Dump)导出、导入

*该导入导出方式完全适用于分区表*

导出、导入前准备

注:使用sys、system等系统用户操作!
1)创建DIRECTORY目录对象

CREATE DIRECTORY exp_dir AS '/oracle/db/zone'; --存放dmp、log文件

2)为使用户user_local授权该目录

GRANT READ, WRITE ON DIRECTORY exp_dir TO user_local;

本地导出、本地导入

1:本地导出
1)导出指定表

expdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log TABLES=USER_OFFICE  
--TABLES=表1,表2,表3等

2)导出整库(方案)

expdp user_local/user_local DIRECTORY=exp_dir  DUMPFILE=tab.dmp LOGFILE=tab.log SCHEMAS=user_local  
--SCHEMAS=用户(所有可操作表等)

3)导出全库

expdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y

2:本地导入
1)导入指定表

Impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log TABLE_EXISTS_ACTION=APPEND TABLES=USER_OFFICE

说明:TABLES=USER_OFFICE :可以不写
TABLE_EXISTS_ACTION=APPEND :追加数据,数据不重复可多次导入
当TABLE_EXISTS_ACTION=REPLACE时,则全量导入,该方法会直接删除表,然后重新创建该表并将数据全部写入

2)导入整库(方案)

impdp user_local/user_local DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log SCHEMAS=user_local

3)导入全库

impdp system/orcl DIRECTORY=exp_dir DUMPFILE=tab.dmp LOGFILE=tab.log FULL=Y

不落地导入

1:说明
远程数据库数据导入本地数据库!
1)远程数据库:
IP:192.168.1.200
用户名:user_remote
密码:user_remote_
实例名:orcl
表空间:remote_space

2)本地数据库:
用户名:user_local
密码:user_local
表空间:local_space

2:本地增加监听(REMOTE_ORCL)

REMOTE_ORCL = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.200)(PORT = 1521)) ) (CONNECT_DATA = (sid = orcl) ) )

3:创建远程链接database link(source_db_link)

create database link source_db_link connect to user_remote identified by user_remote_ using 'REMOTE_ORCL'

REMOTE_ORCL :上一步增加的监听名

4:远程库表(USER_OFFICE)导入本地库

impdp  user_local/user_local directory=exp_dir  logfile=tab.log network_link=source_db_link  TABLE_EXISTS_ACTION=APPEND 
tables=user_remote.USER_OFFICE remap_schema=user_remote:user_local REMAP_TABLESPACE=remote_space:local_space

注:若提示权限不足,可用sys系统用户将dba权限赋予本地用户user_local即可解决,或者将导入的用户连接改为‘system/orcl’
1)network_link=source_db_link :上一步建立的连接名
2)TABLE_EXISTS_ACTION=APPEND :追加数据,不重复数据可多次导入
注:可以将‘APPEND’改为‘REPLACE’,该方法将删除原表,然后重新创建该表并导入数据
3)tables=user_remote.USER_OFFICE :表名,多张表用‘,’隔开
4)remap_schema=user_remote:user_local :不同用户之间的数据搬移,写法:远程用户:本地用户,如果相同可以不写
5)REMAP_TABLESPACE=remote_space:local_space :不同表空间之间数据的搬移,写法:远程表空间名:本地表空间名,如果相同可以不写

你可能感兴趣的:(数据库相关)