expdp 备份数据库、expdp/impdp简单测试
- 操作系统层面创建目录
[root@Oracle11g ~]# mkdir -p /home/oracle/db_back/
- 修改目录的所属用户、所属组
[root@Oracle11g ~]# chown -R oracle:oinstall /home/oracle/db_back/
- 给目录授予相应的权限
(用户对 该目录应该有 读+写+执行 的权限)
[root@Oracle11g ~]# chmod 700 /home/oracle/db_back/
- oracle数据库层面创建目录
SQL> create directory ora_back as '/home/oracle/db_back/';
Directory created.
- 授予相应用户的执行权限
SQL> grant all on directory ora_back to system;
Grant succeeded.
- 授予用户 全库导出的权限
SQL> grant EXPORT FULL DATABASE to system;
Grant succeeded.
- 查看执行 全库导出的脚本
[oracle@Oracle11g scripts]$ cat expdp.sh
#!/bin/bash export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1 export ORACLE_SID=orcl expdp system/manager directory=ora_back dumpfile=$ORACLE_SID+`date +%Y+%m+%d+%H+%M+%S`.dmp full=y logfile=$ORACLE_SID+`date +%Y+%m+%d+%H+%M+%S`.log |
- 以下附带 错误操作及 错误分析
错误操作1
[root@Oracle11g ~]# chmod 600 /home/oracle/db_back/
[oracle@Oracle11g scripts]$ sh expdp.sh
Export: Release 10.2.0.1.0 - 64bit Production on Tuesday, 02 December, 2014 16:05:46
Copyright (c) 2003, 2005, Oracle. All rights reserved.
Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - 64bit Production
With the Partitioning, OLAP and Data Mining options
ORA-39002: invalid operation
ORA-39070: Unable to open the log file.
ORA-29283: invalid file operation
ORA-06512: at "SYS.UTL_FILE", line 475
ORA-29283: invalid file operatio
错误分析:
oracle用户对该目录只有 读+写 的权限
----------------------------------------------------------------------------------------------------------------------------
导入导出测试:
- 测试用意: scott用户删除表EMP,然后执行导入操作 检查表是否 重建 。重建后的 表是否在 移动后的表空间
SQL> conn scott/tiger
Connected.
SQL> drop table emp purge;
Table dropped.
- [oracle@Oracle11g scripts]$ vi expdp.sh 内容如下:
expdp system/oracle directory=ora_bak file=071501.dmp file=071502.dmp dumpfile=071501.dmp file=071502.dmp log=0715_full.log full=y filesize=300m
此处指定导出文件的最大size 300M,只是为了还原朋友反馈的问题
- [oracle@Oracle11g scripts]$ vi impdp.sh 内容如下:
impdp system/oracle directory=ora_bak dumpfile=071501.dmp dumpfile=071502.dmp remap_tablespace=users:test01 logfile=0715_impdp.log table_exists_action=truncate
- 检查表EMP 是否重建,重建后的表空间是否是 TEST01
SQL> select owner,table_name,tablespace_name from all_tables where owner='SCOTT';
OWNER TABLE_NAME TABLESPACE_NAME
------------------------------ ------------------------------ ------------------------------
SCOTT DEPT USERS
SCOTT SALGRADE USERS
SCOTT YOUYUS USERS
SCOTT SALES USERS
SCOTT T USERS
SCOTT MLOG$_T USERS
SCOTT EMP TEST01
SCOTT T_NEW
SCOTT RUPD$_T
SCOTT SALES01
SCOTT BONUS USERS
SCOTT TEST TEST01
结果跟自己预想的一样!!
哈哈