oracle恢复区大小多大,Oracle数据库的大恢复

以下的文章主要介绍的是由于一次误操作而引起的Oracle数据库的大恢复,前两天我在Oracle 10g手动建库脚本中柔然看到dbms_backup_restore.zerodbid(0)的过程,其中主要的作用是修改Oracle数据库的dbid。

于是想通过该存储直接在sqlplus中执行修改dbid。

修改之前记录其dbid

引用

1.SQL> select dbid from v$database;

2.DBID

3.1488207495

修改dbid

引用

1.SQL> exec dbms_backup_restore.zerodbid(0);

2.PL/SQL procedure successfully completed.

貌似执行成功了,但随后alert日志显示ckpt进程将数据实例终止

引用

1.Tue Mar 9 01:43:22 2010

2.CKPT: terminating instance due to error 1242

3.Instance terminated by CKPT, pid = 16653

4.Tue Mar 9 01:43:53 2010

再次启动Oracle数据库报错

引用

1.Tue Mar 9 01:56:09 2010

2.Errors in file /ora10g/app/admin/ldbra/udump/ldbra_ora_12275.trc:

3.ORA-01221: data file 1 is not the same file to a background process

4.ORA-1221 signalled during: ALTER DATABASE OPEN...

dump Oracle数据文件头

引用

1.SQL> ALTER SESSION SET EVENTS 'immediate trace name file_hdrs level 3';

通过跟踪文件可以看到dbid以被重置为0

引用

1.V10 STYLE FILE HEADER:

2.Compatibility Vsn = 169870080=0xa200300

3.Db ID=0=0x0, Db Name='LDBRA'

4.Activation ID=0=0x0

5.Control Seq=8122=0x1fba, File size=65280=0xff00

6.File Number=1, Blksiz=8192, File Type=3 DATA

还有一种途径是通过bbed工具观察

引用

1.struct kcvfhhdr, 76 bytes @20

2.ub4 kccfhswv @20 0x00000000

3.ub4 kccfhcvn @24 0x0a200300

4.ub4 kccfhdbi @28 0x00000000

当然第一反应是重建控制文件,看看能不能恢复成功

引用

1.SQL> alter database backup controlfile to trace;

2.Database altered.

3.STARTUP NOMOUNT

4.CREATE CONTROLFILE REUSE DATABASE "LDBRA" RESETLOGS ARCHIVELOG

5.MAXLOGFILES 16

6.MAXLOGMEMBERS 3

7.MAXDATAFILES 100

8.MAXINSTANCES 8

9.MAXLOGHISTORY 292

10.LOGFILE

11.GROUP 1 '/ora10g/app/oradata/ldbr

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值