您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息

Oracle控制文件损坏恢复

2024/6/27 9:43:21发布30次查看
oracle控制文件损坏恢复,sqlgt; alter database backup controlfile to trace; mdash;mdash;将控制文件备份到trace文件
一、使用trace文件恢复
sql> alter database backup controlfile to trace; ——将控制文件备份到trace文件
database altered.
sql> @gettrace  --得到trace文件的路径
trace_file_name
--------------------------------------------------------------------------------
/oracle/app/admin/ora10g/udump/ora10g_ora_31270.trc
sql> !
[oracle@ ~]$ more /oracle/app/admin/ora10g/udump/ora10g_ora_31270.trc
/oracle/app/admin/ora10g/udump/ora10g_ora_31270.trc
oracle database 10g enterprise edition release 10.2.0.1.0 - production
with the partitioning, olap and data mining options
oracle_home = /oracle/app/oracle/product/10.2.0/db_1
system name:    linux
node name:     
release:        2.6.18-164.el5
                   .
                   .
                   .
--  alter database set standby database to maximize performance
startup nomount
create controlfile reuse database ora10g noresetlogs  archivelog
    maxlogfiles 16
    maxlogmembers 3
    maxdatafiles 100
    maxinstances 8
    maxloghistory 292
logfile
  group 1 '/oradata/ora10g/redo01.log'  size 50m,
  group 2 '/oradata/ora10g/redo02.log'  size 50m,
  group 3 '/oradata/ora10g/redo03.log'  size 50m
-- standby logfile
datafile
  '/oradata/ora10g/system01.dbf',
  '/oradata/ora10g/undotbs01.dbf',
                            .
                            .
                            .
alter tablespace temp add tempfile '/oradata/ora10g/temp01.dbf'
     size 20971520  reuse autoextend on next 655360  maxsize 32767m;
-- end of tempfile additions.
--
[oracle@ udump]$  cd
[oracle@ ~]$ vim recontro.sql ——拷贝trace文件中有用的语句重建控制文件。如果在之前没有备份的trace文件,,我们可以从init{sid}.ora文件中得到数据文件、日志文件、数据库表空间等信息,把init{sid}.ora文件中的内容按以下格式创建重构控制文件脚本
startup nomount
create controlfile reuse database ora10g noresetlogs  archivelog
    maxlogfiles 16
    maxlogmembers 3
    maxdatafiles 100
    maxinstances 8
    maxloghistory 292
logfile
  group 1 '/oradata/ora10g/redo01.log'  size 50m,
  group 2 '/oradata/ora10g/redo02.log'  size 50m,
  group 3 '/oradata/ora10g/redo03.log'  size 50m
datafile
  '/oradata/ora10g/system01.dbf',
  '/oradata/ora10g/undotbs01.dbf',
  '/oradata/ora10g/sysaux01.dbf',
  '/oradata/ora10g/users01.dbf'
character set zhs16gbk
;
variable recno number;
execute :recno := sys.dbms_backup_restore.setconfig('controlfile autobackup','off');
recover database
alter system archive log all;
alter database open;
     size 20971520  reuse autoextend on next 655360  maxsize 32767m;
startup nomount
create controlfile reuse database ora10g resetlogs  archivelog
    maxlogfiles 16
    maxlogmembers 3
    maxdatafiles 100
    maxinstances 8
    maxloghistory 292
logfile
  group 1 '/oradata/ora10g/redo01.log'  size 50m,
  group 2 '/oradata/ora10g/redo02.log'  size 50m,
  group 3 '/oradata/ora10g/redo03.log'  size 50m
datafile
  '/oradata/ora10g/system01.dbf',
  '/oradata/ora10g/undotbs01.dbf',
  '/oradata/ora10g/sysaux01.dbf',
  '/oradata/ora10g/users01.dbf'
character set zhs16gbk
;
variable recno number;
execute :recno := sys.dbms_backup_restore.setconfig('controlfile autobackup','off');
recover database using backup controlfile
alter database open resetlogs;
     size 20971520  reuse autoextend on next 655360  maxsize 32767m;
recontro.sql 49l, 1641c 已写入
[oracle@ ~]$ sqlplus / as sysdba
sql*plus: release 10.2.0.1.0 - production on tue jul 19 03:30:34 2011
copyright (c) 1982, 2005, oracle.  all rights reserved.
connected to:
oracle database 10g enterprise edition release 10.2.0.1.0 - production
with the partitioning, olap and data mining options
sql> shutdown immediate
database closed.
database dismounted.
oracle instance shut down.
sql> set echo on       ——打开显示输出
sql> @recontro        ——使用刚建立的重构控制文件的脚本重建控制文件
sql> startup nomount
oracle instance started.
total system global area  209715200 bytes
fixed size                  1218556 bytes
variable size              75499524 bytes
database buffers          130023424 bytes
redo buffers                2973696 bytes
sql> create controlfile reuse database ora10g noresetlogs     archivelog
  2      maxlogfiles 16
  3      maxlogmembers 3
  4      maxdatafiles 100
  5      maxinstances 8
  6      maxloghistory 292
  7  logfile
  8    group 1 '/oradata/ora10g/redo01.log'     size 50m,
  9    group 2 '/oradata/ora10g/redo02.log'     size 50m,
 10    group 3 '/oradata/ora10g/redo03.log'     size 50m
 11  datafile
 12    '/oradata/ora10g/system01.dbf',
 13    '/oradata/ora10g/undotbs01.dbf',
 14    '/oradata/ora10g/sysaux01.dbf',
 15    '/oradata/ora10g/users01.dbf'
 16  character set zhs16gbk
 17  ;
control file created.
sql> variable recno number;
sql> execute :recno := sys.dbms_backup_restore.setconfig('controlfile autobackup','off');
pl/sql procedure successfully completed.
sql> recover database
sql> alter system archive log all;
system altered.
sql> alter database open;
database altered.
sql> alter tablespace temp add tempfile '/oradata/ora10g/temp01.dbf'
  2       size 20971520  reuse autoextend on next 655360  maxsize 32767m;
tablespace altered.
sql> startup nomount
ora-01081: cannot start already-running oracle - shut it down first
sql> create controlfile reuse database ora10g resetlogs  archivelog
  2      maxlogfiles 16
  3      maxlogmembers 3
  4      maxdatafiles 100
  5      maxinstances 8
  6      maxloghistory 292
  7  logfile
  8    group 1 '/oradata/ora10g/redo01.log'     size 50m,
  9    group 2 '/oradata/ora10g/redo02.log'     size 50m,
 10    group 3 '/oradata/ora10g/redo03.log'     size 50m
 11  datafile
 12    '/oradata/ora10g/system01.dbf',
 13    '/oradata/ora10g/undotbs01.dbf',
 14    '/oradata/ora10g/sysaux01.dbf',
 15    '/oradata/ora10g/users01.dbf'
 16  character set zhs16gbk
 17  ;
create controlfile reuse database ora10g resetlogs  archivelog
sql> variable recno number;
sql> execute :recno := sys.dbms_backup_restore.setconfig('controlfile autobackup','off');
pl/sql procedure successfully completed.
sql> recover database using backup controlfile
sql> alter database open resetlogs;
sql> alter tablespace temp add tempfile '/oradata/ora10g/temp01.dbf'
  2       size 20971520  reuse autoextend on next 655360  maxsize 32767m;
alter tablespace temp add tempfile '/oradata/ora10g/temp01.dbf'
tablespace altered.
sql> select open_mode from v$database;
open_mode
----------
read write
该用户其它信息

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录 Product