oracle用户管理的完全恢复5:控制文件损坏(控制文件前后内容未改变)

场景描述:控制文件损坏(控制文件内容没有变化)

1.备份

1 SQL> alter database backup controlfile to trace as '/u01/admin/sun/udump/c.trc';
2 
3 Database altered.
4 
5 SQL> 

2.删除备份文件

 1 -bash-3.00$ ls -l
 2 total 2183024
 3 -rw-r-----   1 oracle   oinstall 7061504 Jan 23 03:12 control01.ctl
 4 -rw-r-----   1 oracle   oinstall 7061504 Jan 23 03:12 control02.ctl
 5 -rw-r-----   1 oracle   oinstall 7061504 Jan 23 03:12 control03.ctl
 6 -rw-r-----   1 oracle   oinstall 104865792 Jan 23 03:01 example01.dbf
 7 -rw-r-----   1 oracle   oinstall 52429312 Jan 23 03:01 redo01.log
 8 -rw-r-----   1 oracle   oinstall 52429312 Jan 23 03:11 redo02.log
 9 -rw-r-----   1 oracle   oinstall 52429312 Jan 23 03:01 redo03.log
10 -rw-r-----   1 oracle   oinstall 10493952 Jan 23 03:01 sun01_1.dbf
11 -rw-r-----   1 oracle   oinstall 10493952 Jan 23 03:01 sun02_1.dbf
12 -rw-r-----   1 oracle   oinstall 251666432 Jan 23 03:07 sysaux01.dbf
13 -rw-r-----   1 oracle   oinstall 503324672 Jan 23 03:10 system01.dbf
14 -rw-r-----   1 oracle   oinstall 20979712 Jan 22 23:24 temp01.dbf
15 -rw-r-----   1 oracle   oinstall 31465472 Jan 23 03:10 undotbs01.dbf
16 -rw-r-----   1 oracle   oinstall 5251072 Jan 23 03:01 users01.dbf
17 -bash-3.00$ rm -f control01.*
18 -bash-3.00$ 

3.关机

1 SQL> shutdown abort
2 ORACLE instance shut down.
3 SQL> 

4.更改备份的控制文件

 1 -bash-3.00$ pwd  
 2 /u01/admin/sun/udump
 3 -bash-3.00$ cp c.trc c.sql
 4 
 6 将注释和多余的信息从控制文件中删除
 7 -bash-3.00$ vi c.sql
 8 
 9 STARTUP NOMOUNT
10 CREATE CONTROLFILE REUSE DATABASE "SUN" NORESETLOGS  ARCHIVELOG
11     MAXLOGFILES 16
12     MAXLOGMEMBERS 3
13     MAXDATAFILES 100
14     MAXINSTANCES 8
15     MAXLOGHISTORY 292
16 LOGFILE
17   GROUP 1 '/u01/oradata/sunbak/redo01.log'  SIZE 50M,
18   GROUP 2 '/u01/oradata/sunbak/redo02.log'  SIZE 50M,
19   GROUP 3 '/u01/oradata/sunbak/redo03.log'  SIZE 50M
20 DATAFILE
21   '/u01/oradata/sunbak/system01.dbf',
22   '/u01/oradata/sunbak/undotbs01.dbf',
23   '/u01/oradata/sunbak/sysaux01.dbf',
24   '/u01/oradata/sunbak/users01.dbf',
25   '/u01/oradata/sunbak/example01.dbf',
26   '/u01/oradata/sunbak/sun01_1.dbf',
27   '/u01/oradata/sunbak/sun02_1.dbf'
28 CHARACTER SET AL32UTF8
29 ;
30 
31 RECOVER DATABASE
32 
33 ALTER SYSTEM ARCHIVE LOG ALL;
34 
35 ALTER DATABASE OPEN;
36 
37 ALTER TABLESPACE TEMP ADD TEMPFILE '/u01/oradata/sunbak/temp01.dbf'
38      SIZE 20971520  REUSE AUTOEXTEND ON NEXT 655360  MAXSIZE 32767M;
39 --
40 -bash-3.00$ 

5.利用c.sql生成控制文件

 1 -bash-3.00$ sqlplus /nolog
 2 
 3 SQL*Plus: Release 10.2.0.2.0 - Production on Wed Jan 23 03:56:32 2013
 4 
 5 Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.
 6 SQL> conn /as sysdba
 7 Connected to an idle instance.
 8 SQL> @/u01/admin/sun/udump/c.sql
 9 ORACLE instance started.
10 
11 Total System Global Area  289406976 bytes
12 Fixed Size                  1279820 bytes
13 Variable Size              92276916 bytes
14 Database Buffers          192937984 bytes
15 Redo Buffers                2912256 bytes
16 
17 Control file created.
18 
19 Media recovery complete.
20 
21 System altered.
22 
23 Database altered.
24 
25 Tablespace altered.
26 
27 SQL> 
原文地址:https://www.cnblogs.com/polestar/p/2879469.html