欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle备份还原(expdp/impdp)

程序员文章站 2024-02-20 19:01:46
...

Oracle备份还原(expdp/impdp) 1. 创建目录 SQLgt; create directory dump_file as lsquo;/db/backuprsquo;; 2. 目录赋权限

Oracle备份还原(expdp/impdp)

1. 创建目录

SQL> create directory dump_file as ‘/db/backup’;

2. 目录赋权限

SQL> grant read,write on directorydump_file to bam;

查看目录

SQL> select * from dba_directories;

3. 备份

SQL>expdp user/pwd directory=dump_filedumpfile=expdp_%U.dmp logfile=expdp.log filesize=20G

4. 还原

SQL>impdp user/pwd directory=dump_filedumpfile=expdp_%U.dmp logfile=impdp.log

备份内容(content):

(1)备份所有(对象结构、数据):content = all(默认)

(2)逻辑备份(只有对象结构):content = metadata_only

(3)数据备份(只有数据):content = data_only(导入时,需要确保数据定义已经存在,如果已经存在,导入时最好指定data_only)

过滤已经存在的数据(table_exists_action):

(1)table_exists_action = skip:跳过该表,继续处理下一个表(如果同时指定了CONTENT参数为Data_only的话,,skip参数无效,默认为append)

(2)table_exists_action = append:继续添加数据

(3)table_exists_action = truncate:截断表,再添加数据

(4)table_exists_action = replace:删除并重建表,再添加数据(如果同时指定了CONTENT参数为Data_only的话,replace参数无效)

重定义对象所属用户(Remap_schema):

语法:REMAP_SCHEMA=Source_schema:Target_schema[,Source_schema:Target_schema]

(Remap_schema=a:b,c:d这个可以,但是不能在同一个IMPDP命令中指定remap_schema=a:b,a:c.)


重定义对象的表空间(remap_tablespace):

REMAP_TABLESPACE=Source_tablespace:Target_tablespace[,Source_tablespace:Target_tablespace]

Oracle导入导出expdp IMPDP详解

Oracle 10g expdp导出报错ORA-4031的解决方法

Oracle 10gr2 rac expdp 报错UDE-00008 ORA-31626

Oracle中利用expdp/impdp备份数据库的使用说明

优化导入/导出效率(parallel):

(1)对于导出来说,由于dump文件只能由一个线程进行操作(包括I/O处理),因此如果输出的DUMP文件只有一个,即使你指定再多的并行,实际工作仍然是一个,而且还会触发ORA-39095错误。因此,建议设置该参数小于或等于生成的DUMP文件数量。那么,如何控制生成的DUMP文件数量呢?

EXPDP命令提供了一个FILESIZE参数,用来指定单个DUMP文件的最大容量,要有效的利用parallel参数,filesize参数必不可少。

举例:某用户对象占用了4G左右的空间,实际导出后的DUMP文件约为3G,我们尝试在导出该用户时指定并行度为4,设置单个文件不超过500M,则设置:parallel = 4;

(2)对于导入来说,使用parallel参数则要简单的多,我认为导入更能体现parallel参数的优势。参数设置为几,则认为同时将几张表的内容导入到库中。
举例:某dmp文件中包含了200张表,我们尝试在导入该DMP文件时指定并行度为10,则设置:parallel = 10。