DIRECTORY
首次需要创建,一劳永逸!
使用EXPDP工具时,其转储文件只能被存放在DIRECTORY对象对应的OS目录中,而不能直接指定转储文件所在的OS目录. 因此,使用EXPDP工具时,必须首先建立DIRECTORY对象.并且需要为数据库用户授予使用DIRECTORY对象权限.
CREATE DIRECTORY dump_dir AS '/home/oracle/dump_dir';
GRANT READ, WRITE ON DIRECTORY dump_dir TO public;
注意:这个目录赋权限给oracle用户
全库导出expdp system/Database123 directory=dump_dir dumpfile=full20210203.dmp full=y logfile=full20210203.log
后台运行
nohup expdp system/Database123 directory=dump_dir dumpfile=full20210203a.dmp full=y logfile=full20210203a.log &
查看导出文件大小
cd /home/oracle/dump_dir
ls -l --block-size=M
全库导入
导入之前先创建一样的表空间
创建表空间cd ~
mkdir tablespace
使用sys登录:
sqlplus /nolog
SQL> connect as sysdba
Enter user-name: sys
Enter password:
Connected.
我的密码是:Database123
根据你实际情况创建就行了,这里我创建的是我能用到的表空间
--创建临时表空间
create temporary tablespace EDU_TMP tempfile '/home/oracle/tablespace/EDU_TMP.dbf' size 128m autoextend on next 100m maxsize 2048m extent management local;
--创建数据表空间
create tablespace USER_E logging datafile '/home/oracle/tablespace/USER_E.dbf' size 128m autoextend on next 100m maxsize 2048m extent management local;
create tablespace USR_BX_DATA logging datafile '/home/oracle/tablespace/USR_BX_DATA.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
create tablespace USR_BX logging datafile '/home/oracle/tablespace/USR_BX.dbf' size 32m autoextend on next 32m maxsize 2048m extent management local;
impdp system/manager directory=dump_dir dumpfile=full20210325.dmp full=y table_exists_action=replace logfile=full.log
用户删除
第二次导入时可能需要删除之前的用户。
drop user user_name cascade;
删除用户以及所有数据。
比如删除usr_sg
,usr_bx
,apex_middle_base
三个用户以及以下的数据。
drop user usr_sg cascade;
drop user usr_bx cascade;
drop user apex_middle_base cascade;
如果删除用户报错如下:cannot drop a user that is currently connected 参考: https://blog.csdn.net/lxyoucan/article/details/118727688
修改用户密码system
密码修改为manager
ALTER USER system IDENTIFIED BY manager;
参考文档
《Oracle数据泵expdp/impdp使用指南》 https://zhuanlan.zhihu.com/p/314927291