Oracle命令行导入导出

exp导出

exp用户名/密码@数据库实例owner=用户名file=文件存储路径

例如:exp test/123456@ORCL owner=test file=F\abcd.dmp

expdp导出

登陆sqlplus

sqlplus /as sysdba

创建目录

create directory dump_test as '/home/oracle/dump_test';

然后在服务器上创建该真实目录:/home/oracle/dump_test,然后将需要导入的DMP文件放到该目录中

将目录授权给用户

grant read,write on directory dump_test to TEST;

执行导出命令

expdp 用户名/密码 directory=目录名 dumpfile=test.dmp logfile=test.log

指定不导出某些表

expdp pams/manager directory=DATA_PUMP_DIR EXCLUDE=TABLE:\"IN\(\'T_T1\',\'T_T2\'\)\" dumpfile=pams.dmp

指定导出某些表

expdp pams/manager directory=DATA_PUMP_DIR TABLES=pams.T_PERSON,pams.T_BIMS_MOBILE,pams.T_DEPARTMENT dumpfile=pams_20210126.dmp

创建表空间和用户

查询表空间路径

select * from dba_data_files;

创建表空间

create tablespace TEST
datafile '/home/oracle/oradata/xdjadb/test.dbf' size 200M autoextend on next 100M;

创建用户

create user TEST identified by manager default tablespace TEST;

给用户授权

grant dba to TEST;

imp命令

imp用户名/密码@数据库 
fromuser=用户名
touser=用户名
file=d:\cu.dmp ignore=y

例如:imp test/123456@ORCL fromuser=test touser=new_test file=F:\test.dmp ignore=y

impdp命令

创建目录

create directory dump_test as '/home/oracle/dump_test';

然后在服务器上创建该真实目录:/home/oracle/dump_test,然后将需要导入的DMP文件放到该目录中

将目录授权给用户

grant read,write on directory dump_test to TEST;

执行导入命令

impdp 新的用户名/新的用户密码@SID
DIRECTORY=新建的目录名称
DUMPFILE=导入的DMP文件名
tablespaces=表空间名
remap_schema=DMP文件中用户名:新的用户名

例如:
impdp test/manager@xdjadb
DIRECTORY=dump_test
DUMPFILE=TEST.DMP
tablespaces=TEST
remap_schema=origin_user:test

指定导入某些表

impdp pams1/manager directory=DATA_PUMP_DIR dumpfile=pams.dmp  remap_schema=pams:pams1 parallel=2 tables=pams.T_DEPARTMENT,pams.T_PERSON,pams.T_BIMS_MOBILE

指定不导入某些表

impdp pams1/manager directory=DATA_PUMP_DIR dumpfile=pams_20210126.dmp remap_schema=pams:pams1 EXCLUDE=TABLE:\"IN\(\'T_PERSON\',\'T_BIMS_MOBILE\'\)\"

导入之后乱码问题

首先确认执行imp命令的客户端编码是否和oracle数据库编码相同,否则会出现中文乱码现象,假如Oracle编码为:SIMPLIFIED CHINESE_CHINA.ZHS16GBK,需要查询客户端编码(linux):使用locale命令查看客户端使用的编码类型,如果不支持中文则会出现乱码。

解决办法

  • 将编码类型改为支持中文的: export LANG=zh_CN.UTF-8
  • 设置 NLS_LANG环境变量和Oracle数据库编码一致:export NLS_LANG=AMERICAN_AMERICA.AL32UTF8
posted @ 2020-10-11 20:34  ThomasYue  阅读(339)  评论(0编辑  收藏  举报