Oracle备份expdp与恢复impdp
记录一下关于Oracle数据库数据备份与恢复,项目上经常用,用实际项目进行总结。
Oracle expdp impdp 备份 恢复
1、主备恢复流程摘要
1、停止【主服务器】tomcat服务(./shutdown.sh)
2、停止【主服务器】oracle监听服务(lsnrctl stop)
3、【主服务器】切换oracle用户进行expdp备份
4、主备服务器传输备份文件(MD5SUM查看是否文件完整)
5、【备服务器】impdp数据恢复
6、启动tomcat服务(./start.sh)
7、启动oracle监听服务(lsnrctl start)
2、备份前数据库参数设置
备份参数DEFERRED_SEGMENT_CREATION {true | flase}【非必须设置参数】
–true 当该参数值等于true的时候,我们数据库中新创建的表,并且没有insert过任何数据的情况下,采用导出时不会将该表导出, 因为在dba_segments和user_segments是查不到该表的信息,只有当我们插入记录才会在两表中生成段的信息,并能导出该表。
–flase 当此参数为false时,不存在dba_segments和user_segments中的段表也可以通过导出的方式将该表导出。
查询:show parameter DEFERRED_SEGMENT_CREATION;
更改:alter system set DEFERRED_SEGMENT_CREATION=false scope=both;
expdp备份目录【必须设置参数】
select * from dba_directories;
创建/修改:create or replace directory 备份目录名称 as ‘备份绝对路径’;
授权:grant read,write on dirrectory 备份目录名称 to 用户;
删除:drop directory 备份目录名称;
普通用户授权导出全库【非必要设置参数】:
grant datadump_exp_full_database to test;
3、备份命令
普通用户:expdp 账户/密码 directory=备份目录名称 dumpfile=备份文件名称.dmp logfile=备份日志名称.log compression=all reuse_dumpfiles=y
例子:
1 |
|
system用户:expdp system/密码 directory=备份目录名称 schema=策略名称 dumpfile=备份文件名称.dmp logfile=备份日志名称.log compression=all reuse_dumpfiles=y
– directory:指定转储文件和日志文件所在的目录(数据库设置)
– dumpfile:备份文件的名称
– schema:策略名称,如果system导出全库去掉schema参数,加上full=y
– logfile:备份日志名称
– reuse_dumpfiles:是否覆盖备份文件,Y覆盖N不覆盖
– FULL:指定数据库模式导出,默认为N,{Y | N}为Y时,标识执行数据库导出
– tables:导出指定的表名,%代表通配符,如果是system可以加上:策略名称.表名
– exclude:排除指定的表名不导出
– content:导出内容{ALL | DATA_ONLY | METADATA_ONLY}当设置CONTENT为ALL时,将导出对象定义及其所有数据.为DATA_ONLY时,只导出对象数据,为METADATA_ONLY时,只导出对象定义
– FLASHBACK_TIME:指定导出特定时间点的表数据(FLASHBACK_TIME=“TO_TIMESTAMP(’25-08-2004 14:35:00’,’DD-MM-YYYY HH24:MI:SS’)”)
– FILESIZE:指定导出文件的最大尺寸,默认为0
– NOLOGFILE:该选项用于指定禁止生成导出日志文件,默认值为N
– QUERY:用于指定过滤导出数据的where条件
– compression:ALL :对导出的元数据和表数据都进行压缩,得到的导出文件是最小的,耗时也是最长的。DATA_ONLY :仅对表数据进行压缩,对于大数据量的导出效果明显,会比METADATA_ONLY方式得到更小的压缩文件。METADATA_ONLY :仅对元数据进行压缩,而不会对表数据进行压缩,这种压缩执行后效果一般不是很明显,不过速度比较快。NONE :不进行任何的压缩,导出后的文件也是最大的。DEFAULT :默认方式,即不指定COMPRESSION参数,会采用默认的压缩方式METADATA_ONLY。
导出表:
expdp 账户/密码 directory=备份目录名称 dumpfile=备份文件名称.dmp logfile=备份日志名称.log compression=all reuse_dumpfiles=y tables=表名称1,表名称2,表名称N
4、恢复命令
impdp 账户/密码 directory=备份目录名称 dumpfile=备份文件名称.dmp exclude=statistics table_exists_action=replace
例子:
1 |
|
5、查看存在的job:
1 |
|