0
点赞
收藏
分享

微信扫一扫

数据库启动之MOUNT


1.以MOUNT方式启动数据库:

ORACLE启动实例并打开控制文件,此时ORACLE进行如下工作:

将数据库与已启动的实例关联起来,利用初始化参数文件中说明锁定并打开控制文件,读控制文件以获取数据文件和重做日志文件的名字、状态信息,但并不检查这些文件此时是否存在。下面实验证明在ORACLE11G中在MOUNT阶段是不检查的数据文件的,盖国强深入解析ORACLE入门进阶与诊断安全这本书中说是检查,应该是老版本吧。

是否检查

SQL> conn sys/oraclesys as sysdba

已连接到空闲例程。

SQL> host move e:\sysoradata\system01.dbfe:\sysoradata\system01bak.dbf     ---重命令来模拟删除一个数据文件

SQL> host dir e:\sysoradata

 驱动器 E 中的卷是新加卷

 卷的序列号是B849-8991

 e:\sysoradata 的目录

2013-02-03  22:27    <DIR>          .

2013-02-03  22:27    <DIR>          ..

2013-02-03  22:21       587,210,752 sysaux01.dbf

2013-02-03  22:21       723,525,632 system01bak.dbf

2013-02-03  21:57        30,416,896 temp01.dbf

2013-02-03  22:21        94,380,032 undotbs01.dbf

2013-02-03  22:21         5,251,072 users01.dbf

               5 个文件 

               2 个目录   693,217,280 可用字节

SQL> startup mount;

ORACLE 例程已经启动。

Total System Global Area 431038464 bytes

Fixed Size                 1375088 bytes

Variable Size            331351184 bytes

Database Buffers          92274688 bytes

Redo Buffers               6037504 bytes

数据库装载完毕。

日志中信息也无出错:

Sun Feb 03 22:28:05 2013

ALTER DATABASE   MOUNT

Successful mount of redo thread 1, with mount id 1334255605

Database mounted in Exclusive Mode

Lost write protection disabled

Completed: ALTER DATABASE  MOUNT


2.MOUNT阶段的控制文件:

在数据库创建时ORACLE11G默认创建两个控制文件,通常我们会重新设置控制文件在存放位置。比如我们修改控制文件为三个,如果此时有一个或两个控制文件损坏,因为缺省的控制文件的内容完全相同,此时可以复制正常状态的控制文件,并重命令为相应的名字,就可以启动数据库,如所有控制文件丢失,则需要恢复或重建控制文件。

在NOMOUNT阶段可以通过以下命令查询控制文件信息

SQL> show parameter control_files

NAME                                TYPE        VALUE

------------------------------------ -----------------------------------------

control_files                       string     D:\DISK1\CONTROL01.CTL, D:\DIS

                                                K2\CONTROL02.CTL, D:\DISK3\CON

                 

                                                .CTL, D:\DISK5\CONTROL05.CTL

在MOUNT阶段可以通过以下命令查询控制文件信息

SQL> desc v$controlfile

 名称                                     是否为空? 类型

 ------------------------------------------------- ------------------------

 STATUS                                            VARCHAR2(7)

 NAME                                              VARCHAR2(513)

 IS_RECOVERY_DEST_FILE                              VARCHAR2(3)

 BLOCK_SIZE                                         NUMBER

 FILE_SIZE_BLKS                                     NUMBER

SQL> select name from v$controlfile;

NAME

----------------------------------------------------------------------------

D:\DISK1\CONTROL01.CTL

D:\DISK2\CONTROL02.CTL

D:\DISK3\CONTROL03.CTL

D:\DISK4\CONTROL04.CTL

D:\DISK5\CONTROL05.CTL                                
                      

3.MOUNT阶段的ALERT日志文件中的信息:

SunFeb 03 21:51:46 2013

StartingORACLE instance (normal)

alterdatabase mount

SunFeb 03 21:51:59 2013

Successfulmount of redo thread 1, with mount id 1334246778

SunFeb 03 21:51:59 2013

Databasemounted in Exclusive Mode

Lostwrite protection disabled

Completed:alter database mount

举报

相关推荐

0 条评论