Oracle 建立控制文件

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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;

系统已更改。

相关文档
最新文档