新建目录
1、新建目录,用于保存导出的数据库;将数据库文件放到该目录下/data/data0307;文件和目录的拥有者改为oracle
# chown -R oracle:oinstall /data/data0307
2、创建逻辑目录 DATA_PUMP_DIR 指向实体目录 /data/data0307
SQL> create directory DATA_PUMP_DIR as '/data/data0307';
Directory created.
3、查询创建的目录
SQL> select * from dba_directories;
备份数据库
1、切换到oracle用户,进入sql命令窗口
# su - oracle
$ sqlplus / as sysdba
2、给用户(用户xx)逻辑目录的读写权限 (DATA_PUMP_DIR为逻辑目录)
SQL>grant read,write on directory DATA_PUMP_DIR to xx;
3、退出sqlplus,执行导出语句(用户xx 密码yy 导出文件20230307.dmp)
SQL> quit
[oracle@scm153 ~]$ expdp xx/yy dumpfile=20230307.dmp logfile=20230307.log directory=DATA_PUMP_DIR parallel=8
还原数据库
1、切换到oracle用户,进入sql命令窗口
# su - oracle
$ sqlplus / as sysdba
2、创建数据库用户(用户xxx 密码yyy),新用户授权
SQL> create user xxx identified by yyy DEFAULT TABLESPACE NNC_DATA01 TEMPORARY TABLESPACE temp;
User created.
SQL> grant connect,dba to xxx;
Grant succeeded.
3、给用户逻辑目录的读写权限
SQL>grant read ,write on directory DATA_PUMP_DIR to xxx;
4、退出Oracle用户,执行导入命令
SQL> Quit
[oracle@scm153 ~]$ impdp xxx/yyy@orcl directory=DATA_PUMP_DIR dumpfile=20230307.dmp remap_schema=xx:xxx;
说明:
impdp 用户名/密码@数据库实例 directory=在步骤一中创建的逻辑目录 dumpfile=需要导入/导出的dmp文件全称 remap_schema=原用户:现在用户
对于一个未知的DMP文件,不知道该文件的导出用户时,可随便指定一个,导入后查看日志文件即可获取用户信息,再次用正确的命令导入