第一部分:导出工作
第一步:登录数据库服务 sqlplus username/password@实例名称
第二步:选择一个目录或者创建一个目录,命令是create or replace directory ××× as '新建的真实目录名称(只需写到你想创建的这个目录的上级目录即可)';
a.选择一个目录:select * from dba_directories;
OWNER DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS ORACLE_OCM_CONFIG_DIR
/opt/oracle/app/product/11.2.0/dbhome_1/ccr/state
SYS DATA_PUMP_DIR
/opt/oracle/app/admin/orcl/dpdump/
SYS EXPDP_DIR
/expdp
OWNER DIRECTORY_NAME
------------------------------ ------------------------------
DIRECTORY_PATH
--------------------------------------------------------------------------------
SYS XMLDIR
/ade/b/2125410156/oracle/rdbms/xml
SYS TEST_DIR
/opt/oracle/app/admin/orcl/dpdump/
SYS DATA
/expdp
6 rows selected.
我选择用TEST_DIR作为我们备份目录,其实际地址为/opt/oracle/app/admin/orcl/dpdump/
第三步:将读写权限授权给数据库其他的用户,例如test用户
grant read,write on directory TEST_DIR to test;
第四步:退出sqlplus,执行导出命令:
expdp username/password@实例名称 directory=TEST_DIR dumpfile=×××.DMP logfile=test.log schemas=test
其中username/password@实例名称是用户信息和数据库名称,×××.dmp是存放在TEST_DIR目录下的备份文件名称,可以自己取名,schames则是代表用户名称,这条语句就是讲test这个用户下数据库进行导出.
第二部分:导入工作
首先我们要确定是因为什么而导入。①创建了一个新用户,需要将原来的用户的数据导入到这个用户中。②某一个用户的数据收到了损坏,需要恢复到之前的状态。
对于①:
第一步:创建一个新用户
第二步:创建一个虚拟目录,步骤参考第一部分的第一步.
第三步:将这个目录的读写权限赋给这个新用户,并退出sqlplus
第四步:将原来备份好的文件,放到这个新创建的虚拟目录中(移动时使用cp或者mv命令,此时需要用到这个虚拟目录对应的实际目录,实际目录怎么找,参考第一部分的第二步的a步骤)
第五步:执行命令 impdp 新用户名/密码@orcl directory=××× dumpfile=×××.DMP logfile=test_11 remap_schema=原来的用户:新用户
注解:这里的ditrectory是指你新建的虚拟目录,dumpfile则是你cp或者mv过来的备份文件,remap_schema后面则是将原来的用户映射到新用户上。
对于②:
由于目录不需要创建,也不需要重新授权,直接执行命令
impdp 新用户名/密码@orcl directory=××× dumpfile=×××.DMP logfile=test_11 remap_schema=原来的用户:原来的用户