Oracle数据库的大恢复(误操作而引起)

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

创新互联建站为客户提供专业的网站设计、成都网站建设、程序、域名、空间一条龙服务,提供基于WEB的系统开发. 服务项目涵盖了网页设计、网站程序开发、WEB系统开发、微信二次开发、手机网站制作等网站方面业务。

于是想通过该存储直接在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/ldbra/redo01.log' SIZE 50M,
  12. GROUP 2 '/ora10g/app/oradata/ldbra/redo02.log' SIZE 50M,
  13. GROUP 3 '/ora10g/app/oradata/ldbra/redo03.log' SIZE 50M
  14. -- STANDBY LOGFILE
  15. DATAFILE
  16. '/ora10g/app/oradata/ldbra/system01.dbf',
  17. '/ora10g/app/oradata/ldbra/undotbs01.dbf',
  18. '/ora10g/app/oradata/ldbra/sysaux01.dbf',
  19. '/ora10g/app/oradata/ldbra/users01.dbf',
  20. '/ora10g/app/oradata/ldbra/example01.dbf',
  21. '/ora10g/app/product/10.2.0/db_1/dbs/company.dbf',
  22. '/ora10g/app/product/10.2.0/db_1/dbs/streams.dbf'
  23. CHARACTER SET ZHS16GBK

分享文章:Oracle数据库的大恢复(误操作而引起)
网页路径:http://www.mswzjz.cn/qtweb/news3/48903.html

攀枝花网站建设、攀枝花网站运维推广公司-贝锐智能,是专注品牌与效果的网络营销公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 贝锐智能