oracle 数据库备份与恢复

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,检查数据日期,能查询到的最早日期
原文地址:https://www.cnblogs.com/moox/p/11376107.html