oracle创建控制文件

来源:互联网 发布:网络供销平台 编辑:程序博客网 时间:2024/05/16 10:00

1.查看数据文件和重做日志文件

      在创建新控制文件时,首先需要了解数据文件和重做日志文件。如果数据库无法打开,就无法通过查询数据字典来获取数据文件和日志文件信息,唯一的办法就是查看警告日志文件。如果数据库可以打开,则

SQL>select member from v$logfile;

SQL>select name from v$datafile;

2.关闭数据库,在system模式下,执行shutdown immediate

3.备份文件,用户需要备份所有数据文件和重做日志文件,因为在使用create controfile时,操作不当则可能损坏数据文件和日志文件。

4.启动数据库实例,但不加载数据库,因为加载数据库时会打开控制文件。

SQL>startup nomount;

5.创建新的控制文件

可通过以下方式获得创建语句。alter database backup to trace;备份控制文件为可读文本,即创建语句。存放目录通过show parameter user_dump_dest;获取。

也可自己写,如下:

create controlfile
reuse database "orcl"
logfile
group 1 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO01.LOG',
group 2 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO02.LOG',
group 3 'E:\APP\ADMINISTRATOR\ORADATA\ORCL\REDO03.LOG'
datafile
'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\SYSTEM01.DBF',
'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\SYSAUX01.DBF',
'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\UNDOTBS01.DBF',
'E:\APP\ADMINISTRATOR\ORADATA\ORADATA\ORCL\USERS01.DBF'
maxlogfiles 50
maxlogmembers 3
maxinstances 6
maxdatafiles 200
noresetlogs
noarchivelog;

  database关键字后面的数据库名要和spfile文件中的 DB_NAME参数值一致。

  noresetlogs选项表示仍然使用原来的重做日志文件。setlogfiles则表示不使用。

  logfile选项用于指定原数据库重做日志的组号、大小以及对应的日志成员。

  datafile用于指定数据库原有的数据文件。

  maxlogfiles指最大的重做日志文件数。

  maxlogmembers指最大的重做日志组成员。

  maxinstances指最大实例数。

  maxdatafiles指最大数据文件数。

6.通过编辑spfile初始化参数control_files,使其指向新建的控制文件

alter system set control_files=
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL01.CTL',
'E:\APP\ADMINISTRATOR\ORADATA\ORCL\CONTROL02.CTL'
scope=spfile;

7.打开数据库

alter database open;

如果在创建控制文件时使用了resetlogs,则参考一下代码

alter database openresetlogs;

原创粉丝点击