Oracle11G 数据库 expdp、impdp使用示例

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

结果跟自己预想的一样!!

哈哈

原文地址:https://www.cnblogs.com/iyoume2008/p/4657369.html