(一) 什么时候需要创建新的控制文件
(1) 所有的控制文件包括副本都已经损坏;
(2) 想要改变使用create database命令创建数据库时指定的数据库参数,这些参数设置包括:
n 数据库名称
n MAXLOGFILES
n MAXLOGMEMBERS
n MAXLOGHISTORY
n MAXDATAFILES
n MAXINSTANCES
(二) 准备数据文件和重做日志文件清单(应该早有准备)
1、 SQL> select group#,member from v$logfile;
GROUP# MEMBER
---------- ---------------------------------
3 E:\DB\TEST01\TEST01\REDO03.LOG
2 E:\DB\TEST01\TEST01\REDO02.LOG
1 E:\DB\TEST01\TEST01\REDO01.LOG
2、 SQL> select name,bytes/1024/1024 MB from v$datafile;
NAME MB
-------------------------------------------------- ----------
E:\DB\TEST01\TEST01\SYSTEM01.DBF 480
E:\DB\TEST01\TEST01\UNDOTBS01.DBF 25
E:\DB\TEST01\TEST01\SYSAUX01.DBF 260
E:\DB\TEST01\TEST01\USERS01.DBF 5
3、 SQL> select name from v$controlfile;
NAME
------------------------------------------
E:\DB\TEST01\TEST01\CONTROL01.CTL
E:\DB\TEST01\TEST01\CONTROL02.CTL
E:\DB\TEST01\TEST01\CONTROL03.CTL
4、 SQL> archive log list
数据库日志模式 非存档模式
自动存档 禁用
存档终点 USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列 8
当前日志序列 10
(三) 创建Pfile
Create pfile= 'e:\db\test01\init20100209.ora' from spfile;
(四) 关闭数据库
SQL> shutdown normal
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
(五) 备份所有的数据文件和重做日志文件
(六) 修改初始化参数文件
打开新建的'e:\db\test01\init20100209.ora文件,更改数据库名:TEST01——>DB01
(七) 使用Pfile启动一个新的实例到nomount状态
SQL> startup nomount pfile='e:\db\test01\init20100209.ora'
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 92276068 bytes
Database Buffers 71303168 bytes
Redo Buffers 2945024 bytes
(八) 创建新的控制文件
如果除了丢失了控制文件外,还丢失了重做日志组,在使用create controlfile语句创建控制文件时,需要指定resetlogs子句
SQL> create controlfile
2 set database "DB01"
3 logfile group 3 ('E:\DB\TEST01\TEST01\REDO03.LOG') size 5M,
4 group 2 ('E:\DB\TEST01\TEST01\REDO02.LOG') size 5M,
5 group 1 ('E:\DB\TEST01\TEST01\REDO01.LOG') size 5M
6 resetlogs
7 datafile 'E:\DB\TEST01\TEST01\SYSTEM01.DBF' size 480M,
8 'E:\DB\TEST01\TEST01\UNDOTBS01.DBF' size 25M,
9 'E:\DB\TEST01\TEST01\SYSAUX01.DBF' size 260M,
10 'E:\DB\TEST01\TEST01\USERS01.DBF' size 5M
11 maxlogfiles 50
12 maxlogmembers 3
13 maxloghistory 400
14 maxdatafiles 200
15 maxinstances 6
16 noarchivelog;
控制文件已创建。
(九) 打开数据库
(1) 指定RESETLOGS将重设当前LOG sequence number为1,抛弃所有日志信息。
(2) 以下条件需要使用resetlog
n 在不完全恢复(介质恢复)
n 使用备份控制文件
(3) 使用resetlogs打开数据库后无必完整地备份一次数据库。
SQL> alter database open resetlogs;
数据库已更改。
(十) 验证结果
SQL> select name from v$database;
NAME
---------
DB01
(十一) 创建spfile
SQL> create spfile from pfile= 'e:\db\test01\init20100209.ora' ;
文件已创建。
(十二) 使用spfile启动数据库
SQL> startup
ORACLE 例程已经启动。
Total System Global Area 167772160 bytes
Fixed Size 1247900 bytes
Variable Size 92276068 bytes
Database Buffers 71303168 bytes
Redo Buffers 2945024 bytes
数据库装载完毕。
数据库已经打开。
(十三) 验证结果
SQL> select name from v$database;
NAME
---------
DB01
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7902185/viewspace-627406/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/7902185/viewspace-627406/