oracle 数据库备份与恢复
包含四个部分:
1、数据泵备份与恢复
2、rman备份与恢复
3、CSV增量备份恢复
4、截库操作
1、数据泵备份与恢复
expdp/ / impdp 时的 CONTENT 选项 使用 :
CONTENT用于指定要导入/出的内容.默认值为ALL
CONTENT={ALL | DATA_ONLY | METADATA_ONLY}
1) 当设置CONTENT为ALL 时,将导出对象定义及其所有数据.
2) 为DATA_ONLY时,只导出对象数据,
3) 为METADATA_ONLY时,只导出对象定义
impdp 导入时若表已经存在有四种的处理方式 table_exists_action
1) skip:默认操作
2) replace:先drop表,然后创建表,最后插入数据
3) append:在原来数据的基础上增加数据
4) truncate:先truncate,然后再插入数据
前提设置 dumpdir:
create or replace directory dumpdir as '/u01/dumpdp';
select * from dba_directories;
表的备份:
expdp system/oracle@asp directory=dumpdir tables=sync.t_superuser
logfile=expdp_sync.log dumpfile=sync.superuser.dmp
表的恢复:
impdp system/oracle@asp directory=dumpdir dumpfile=sync.superuser.dmp
tables=sync.t_superuser logfile=impdp_sync.log table_exists_action=replace
表空间备份:
expdp system/oracle@asp directory=dumpdir dumpfile=fbt.dmp
tablespaces=tbs_fbtransfer logfile=expdp_fbt.log
表空间恢复:
impdp system/oracle@asp directory=dumpdir dumpfile=fbt.dmp
tablespaces=tbs_fbtransfer logfile=impdp_fbt.Log table_exists_action=replace
全备:
expdp system/oracle@asp directory=dumpdir dumpfile=asp.dmp logfile=full.log full=y
指定 Schemas 方式:
expdp system/oracle@asp directory=dumpdir dumpfile=20180xx.dmp
schemas=ngessync,sync,operation,settlement,historysettlement,recovery,risk,fbtransfer,fbtransferhistory,fbexchange,fbexchangehistory,report logfile=2018xx.log
注意: 恢复全库备份前应该先drop掉用户和对应的数据
drop user fbtransfer cascade; ;
CTP 增量备份:
expdp system/oracle@asp directory=dumpdir
dumpfile=expdp_fbt_inc_201808xxinc.dmp
schemas= fbtransfer content=data_only
LOGFILE= expdp_fbt_inc_201808xxinc.log
恢复 :
impdp system/oracle@asp directory=dumpdir dumpfile=inc.dmp content=data_only
schemas=fbtransfer table_exists_action=truncate logfile=impdp_inc.log
2、rman备份与恢复
前提 条件:
Shutdown immediate
Startup mount
Alter database archivelog
Alter database open
Alter system set log_archive_dest_1='location=/u02/arch';
简单备份指令:
rman target sys/syscode #进入rman
run{ #备份数据库
CROSSCHECK ARCHIVELOG ALL;
BACKUP incremental level 0 DATABASE plus archivelog delete input;
BACKUP incremental level 1 DATABASE plus archivelog delete input;
RELEASE CHANNEL CH1;
RELEASE CHANNEL CH2;
}
list backupset;
恢复:
rman target sys/syscode #进入
run {
startup mount force;
set until scn 1365958;
restore database;
recover database;
sql 'alter database open resetlogs';
}
3、CSV增量备份恢复
CSV 增量备份用途 :
当系统切换至启动状态后,后台自动扫描settlement.t_systemstatus表的backupstatus字
段,发现该字段为0(未生成备份数据)时,则开始数据备份并将该字段置为1(备份数据生
成中)。备份完成后该字段为2(已生成备份数据),如果失败,该字段为3。生成的备份用
于:一旦点了结算初始化后发现系统数据有问题,可以利用增量数据回到“启动+结算初始
化数据未完成”状态,可以近一步回退到上一交易日的结算状态进行数据处理
步骤 :
1.关闭tomcat
2.使用Oracle用户把csv备份从web机的back_sett_data/backup下copy到任意连库机器上
3.unzip解压,并赋予导入脚本import.sh可执行权限
4.运行./import.sh tradingday
之后会有提示选项:
请输入数据库连接字符串: system/oracle@asp
请输入需要更新的灾备中心标识号。如无需更新,请直接回车:
5.检查日志是否有报错
6.开启tomcat,登录柜台检查系统状态为启动
4、截库操作
目的:
数据库截库是在数据库数据过大的情况下,丢弃某一时间点之前的数据,使数据库容量恢复
到健康状态。
前提条件:
1. 关闭闪回:shutdown immediate ->startup mount ->alter database flashback
off->alter database on;
查看是否关闭:select flashback_on from v$database;
2 .关闭归档:archive log list 查看归档状态
shutdown->startup mount ->alter databae noarchivelog ->alter database
open
步骤:
1.关闭tomcat
2.工具位置asptools/datapumpTools/cleanOutDB_month/,修改sh.cfg
3.运行./backup
4.recover.sh yyyymmdd (sh.cfg配置的stats_date日期)
5./verifyData.sh
6.开启tomcat,检查数据日期,能查询到的最早日期