生产环境中如何恢复丢失的数据

打开数据库,必须满足以下条件:

1、所有控制文件都必须存在且已同步

2、所有联机数据文件都必须存在且已同步

3、每个重做日志组必须至少有一个成员存在

 

打开数据库后,如果丢失以下项时数据库就会失败:

1、任何控制文件

2、属于系统或还原表空间的数据文件

3、整个重做日志组

(只要组中至少有一个成员可用,实例就会保持在打开状态)

 

 

1、数据文件丢失如何恢复

i.NOARCHIVELOG模式下丢失了数据文件

Ii.ARCHIVELOG模式下

丢失了非关键数据文件

丢失了系统关键数据文件


2、数据故障如何解决


如上的一些常规的数据故障,只要数据恢复向导在MOUT或者OPEN阶段即可采用数据恢复向导解决:


1、控制文件的丢失:

i.部分丢失

a.关闭数据库

b.复制存在的给丢失的

    cp/u01/oracle/oradata/wyzc10g/control01.ctl/u01/oracle/flash_recovery_area/WYZC10G/control02.ctl

c.启动数据库

 

实例启动阶段:

复制给丢失的

Alterdatabase mount;

Alterdatabase open;

 

Ii.全部丢失

a.利用备份恢复(RMAN)

b.利用脚本重建控制文件

 

操作步骤:

1、备份当前的控制文件

[oracle@wyzc ~]$rman target /.

RMAN> backupcurrent controlfile;

 

2、删除控制文件
[oracle@wyzc wyzc10g]$ rm/u01/oracle/oradata/wyzc10g/control0*

[oracle@wyzcflash_recovery_area]$ rm /u01/oracle/flash_recovery_area/WYZC10G/control02.ctl

 

3、重启数据库->abort关闭,nomout打开,而后恢复控制文件

 

[oracle@wyzc2016_09_08]$ ls /u01/oracle/flash_recovery_area/WYZC10G/backupset/2016_09_08/

o1_mf_ncnnf_TAG20160908T000419_cx0gn3v7_.bkp(ncnn*表示控制文件)

如上,找到之前的备份文件,而后做恢复

 

 

RMAN> restorecontrolfile from '/u01/oracle/flash_recovery_area/WYZC10G/backupset/2016_09_08/

2>o1_mf_ncnnf_TAG20160908T000419_cx0gn3v7_.bkp';

 

Starting restore at08-SEP-16

using targetdatabase control file instead of recovery catalog

allocated channel:ORA_DISK_1

channel ORA_DISK_1:sid=211 devtype=DISK

 

channel ORA_DISK_1:restoring control file

channel ORA_DISK_1:restore complete, elapsed time: 00:00:03

outputfilename=/u01/oracle/oradata/wyzc10g/control01.ctl

outputfilename=/u01/oracle/flash_recovery_area/WYZC10G/control02.ctl

Finished restore at08-SEP-16

 

执行完毕之后,可以看到control_files中的控制文件已恢复

 

4、将数据库恢复为OPEN状态

RMAN> alterdatabase mount;

database mounted

 

 

RMAN> recoverdatabase;

XXXXXXXXX

 

RMAN> alterdatabase open;

 

RMAN-00571:===========================================================

RMAN-00569:=============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:===========================================================

RMAN-03002: failureof alter db command at 09/08/2016 00:23:20

ORA-01589: must useRESETLOGS or NORESETLOGS option for database open

直接OPEN是打不开的,需要用以下指令

 

 

RMAN> alterdatabase open;

 

RMAN-00571:===========================================================

RMAN-00569:=============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571:===========================================================

RMAN-03002: failureof alter db command at 09/08/2016 00:23:20

ORA-01589: must useRESETLOGS or NORESETLOGS option for database open

 

RMAN> alterdatabase open resetlogs;

 

database opened



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值