数据库导出导入

核能气质少年 提交于 2020-01-27 02:49:30

select * from dba_directories 可以查看路径后边的‘DATA_PUMP_DIR’指的dmp存放路径
//数据导出
oracle用户登录 su - oracle
语法:
expdp 用户名/密码@ip地址/实例 [属性]
属性:
DIRECTORY:–导出的逻辑目录,一定要在oracle中创建完成的,并且给用户授权读写权限
dumpfile:–导出的数据文件的名称,如果想在指定的位置的话可以写成dumpfile=/home/oracle/userxx.dmp
schemas:–使用dblink导出的用户不是本地的用户,需要加上schema来确定导出的用户,类似于exp中的owner,但还有一定的区别
logfile:–日志文件,如果不写这个参数的话默认名称就是export.log,可以在本地的文件夹中找到

demo1:
expdp mdm/wc8888@sharedpdb DIRECTORY=DATA_PUMP_DIR schemas=MDM DUMPFILE=MDM1231.dmp logfile=MDM1231.log version=
demo2:导出用户及对象
expdp scott/tiger@orcl schemas=scott dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log; 
demo3:导出指定表
expdp scott/tiger@orcl tables=emp,dept dumpfile=expdp.dmp directory=dump_dir logfile=expdp.log;
demo4:按查询条件导
expdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp tables=empquery='where deptno=20' logfile=expdp.log;
demo5:按表空间导
expdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=temp,example logfile=expdp.log;
demo6:导整个数据库
expdp scott/123@127.0.0.1/orcl directory=dump_dir dumpfile=ly.dmp full=y  logfile=expdp.log;

//数据导入
step1:创建表空间:
使用system登录oracle,执行sql
格式: create tablespace 表间名 datafile ‘数据文件名’ size 表空间大小
create tablespace data_test datafile ‘e:\oracle\oradata\test\test.dbf’ size 2000M;
(*数据文件名 包含全路径, 表空间大小 2000M 表是 2000兆)

step2:创建用户并授权:
格式: create user 用户名 identified by 密码 default tablespace 表空间表;
create user study identified by study default tablespace data_test;
授权给 用户 study ,执行sql
#给用户逻辑目录读写权限
sql>grant read,write on directory mydata to study;
#给用户表空间权限
sql>grant dba,resource,unlimited tablespace to study;

step3:impdp导入:
写法:
impdp 用户名/密码@ip地址/实例 [属性]
属性:
REMAP_SCHEMA:当你从A用户导出的数据,想要导入到B用户中去,就使用这个:remap_schema=A:B
REMAP_TABLESPACE:数据库对象本来存在于tbs_a表空间,现在你不想放那儿了,想换到tbs_b,就用这个remap_tablespace=tbs_a:tbs_b 结果是所有tbs_a中的对象都会建在tbs_b表空间中。

demo1:
impdp MDM_ZH/wc8888@172.24.95.183:1521/orcl  DIRECTORY=DATA_PUMP_DIR DUMPFILE=MDM_12.1.dmp SCHEMAS=MDM REMAP_SCHEMA=MDM:MDM_ZH REMAP_TABLESPACE=MDM:MDM_ZH,FSS:MDM_ZH,TTF:MDM_ZH  logfile=MDM_ZH.log
demo2:导入用户(从用户scott导入到用户scott)
impdp scott/tiger@orcl directory=dump_dir dumpfile=expdp.dmp schemas=scott logfile=impdp.log;    
demo3:导入表(从scott用户中把表dept和emp导入到system用户中)
impdp system/manager@orcl directory=dump_dir dumpfile=expdp.dmp tables=scott.dept,scott.emp remap_schema=scott:system logfile=impdp.log table_exists_action=replace (表空间已存在则替换);
demo4:导入表空间
impdp system/manager@orcl directory=dump_dir dumpfile=tablespace.dmp tablespaces=example logfile=impdp.log;
demo5:导入整个数据库
impdb system/manager@orcl directory=dump_dir dumpfile=full.dmp full=y logfile=impdp.log;
日常使用:把用户jcpt下所有的表导入到lyxt用户下
impdp lyxt/lyxt123@127.0.0.1/orcl directory=mydata dumpfile=LY.DMP   remap_schema=jcpt:lyxt logfile=ims20171122.log table_exists_action=replace
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!