Oracle 建立控制文件
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Oracle 建立控制文件
在一般情况下,如果使用了复合控制文件,并且将各个控制文件分别存储在不同的磁盘中,则丢失全部控件文件的可能性将非常小。但是,如果数据库的所有控制文件全部丢失,这时惟一的补救方法就是以手动方式重新创建控制文件。
另外,如果DBA需要改变数据库的某个永久性参数,也需要重新创建控制文件。永久性参数是在创建数据库时设置的一些参数,主要包括:数据库名称、MALOGFILES(最大的重做日志文件数)、MAXLOGMEMBERS(最大的重做日志组成员数)等。
下面介绍创建新的控制文件的命令CREATE CONTROLFILE语句的基本用法,具体步骤:
(1)查看数据库中所有的数据文件和重做日志文件的名称和路径。
在创建新控制文件时,首先需要了解数据库中的数据文件和重做日志文件。如果数据库中所有的控制文件和重做日志文件都已经丢失,这时数据库已经无法打开,因此也就无法来查询数所字典获得数据文件和日志文件的信息,这时惟一的办法就是查看警告文件中的内容。如果数据库可以打开,那么可以通过执行下面的查询来生成文件列表:SQL> select member from v$logfile;
SQL> select name from v$datafile;
SQL> select name from v$controlfile;
如果既无法打开数据库,又无法打开可靠的文件列表,那么就只能够用手工方法通过查找操作系统文件来制作文件列表。
(2)关闭数据库。
如果数据库处于打开状态,则可能采取正常模式关闭数据库。
SQL> connect as sysdba
….
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
(3)在操作系统级别备份所有的数据文件和重做日志文件。
在使用CREATE CONTROLFILE语句创建新的控制文件时,如果操作不当可能会损坏数据文件和日志文件,因此,需要事先对其进行备份。
(4)启动实例,但是不加载数据库。
在建立控制文件时,要求实例处理NOMOUNT状态,即不打开控制文件。
SQL> startup nomount
ORACLE 例程已经启动。
Total System Global Area 401743872 bytes
Fixed Size 1333480 bytes
Variable Size 255854360 bytes
Database Buffers 138412032 bytes
Redo Buffers 6144000 bytes
(5)建立控制文件。
利用先前获得的文件列表,执行CREATE CONTROLFILE命令创建一个新的控制文件。需要注意,建立控制文件要求用户必须具有SYSDBA特权。示例如下:
SQL> create controlfile
2 reuse database "orcl"
3 logfile
4 group 1 'D:\APP\USER\ORADATA\ORCL\REDO01.LOG',
5 group 2 'D:\APP\USER\ORADATA\ORCL\REDO02.LOG' ,
6 group 3 'D:\APP\USER\ORADATA\ORCL\REDO03.LOG'
7 datafile
8 'D:\APP\USER\ORADATA\ORCL\SYSTEM01.DBF',
9 'D:\APP\USER\ORADATA\ORCL\SYSAUX01.DBF',
10 'D:\APP\USER\ORADATA\ORCL\UNDOTBS01.DBF',
11 'D:\APP\USER\ORADATA\ORCL\USERS01.DBF',
12 'D:\APP\USER\ORADATA\ORCL\EXAMPLE01.DBF',
13 'D:\ORACLEDATA\BF_TBS01.DBF',
14 'D:\ORACLEDATA\BIGBLICK_TBS01.DBF',
15 'D:\ORACLEDATA\UNDO02.DBF',
16 'D:\ORACLEDATA\USER_03.DBF',
17 'D:\ORACLEDATA\USER04.DBF',
18 'D:\ORACLEDATA\UNDOTBS02.DBF'
19 maxlogfiles 50
20 maxlogmembers 3
21 maxinstances 6
22 maxdatafiles 200
23 noresetlogs
24 noarchivelog;
控制文件已创建。
其中,DATABASE用于指定数据库名,该名称必须与初始化参数DB_NAME完全一致;NORESETLOGS选项用于指定仍然使用原有重做日志,如果不希望使用重做日志,可以指定RESETLOGS选项;LOGFILE用于指定数据库原有重做日志的组号、尺寸以及对应的日志成员;DATAFILE用于指定数据库原有的数据文件;CHARCTER SET用于指定数据库字符集。
(6)编辑初始化参数CONTROL_FILES,使其指向新建的控制文件。
如果控制文件所在磁盘出现损坏,那么还必须使用ALTER SYSTEM命令改变控制文件的存放位置。
SQL> alter system set control_files=
2 'd:\app\Administrator\oradata\orcl\control01.ctl',
3 'd:\app\Administrator\oradata\orcl\control02.ctl',
4 'd:\app\Administrator\oradata\orcl\control03.ctl'
5 scope=spfile;
系统已更改。