Oracle启动之二 启动到mount

启动到nomount之后,Oracle从参数文件中找到控制文件的信息,然后打开控制文件。

SQL> show parameter control_files;

NAME                                 TYPE
------------------------------------ ----------------------
VALUE
------------------------------
control_files                        string
/export/home/oracle/oradata/ue
p4x/control01.ctl, /export/hom
e/oracle/oradata/uep4x/control
02.ctl, /export/home/oracle/or
adata/uep4x/control03.ctl

 

这三个控制文件的内容是完全一致的,如果其中一个控制文件损坏,我们可以用另外两个来恢复。

bash-3.00# mv control01.ctl control01.b

 

SQL> alter database mount
  2  ;
alter database mount
*
ERROR at line 1:
ORA-00205: error in identifying control file, check alert log for more info

 

然后看一下日志文件:

bash-3.00# tail -20 alert_uep4x.log
......
Tue Jul  7 18:46:04 2009
alter database mount
Tue Jul  7 18:46:04 2009
ORA-00202: ????: ''/export/home/oracle/oradata/uep4x/control01.ctl''
ORA-27037: ????????
SVR4 Error: 2: No such file or directory
Additional information: 3
Tue Jul  7 18:46:07 2009
ORA-205 signalled during: alter database mount

 

然后我们复制一个控制文件:

bash-3.00# cp control02.ctl control01.ctl

 

bash-3.00# ls -l control*
-rw-r-----   1 oracle   install  7061504  7月  7日 09:04 control01.b
-rw-r-----   1 root     root     7061504  7月  7日 18:53 control01.ctl
-rw-r-----   1 oracle   install  7061504  7月  7日 09:04 control02.ctl
-rw-r-----   1 oracle   install  7061504  7月  7日 09:04 control03.ctl

 

bash-3.00# chown oracle:install control01.ctl

 

SQL> alter database mount;

Database altered.

 

这时候,数据库可以正常启动到mount状态了。我们可以再v$controlfile这个视图里查看到控制文件。

SQL> column name format a20
SQL> select * from v$controlfile;

STATUS  NAME                 IS_ BLOCK_SIZE FILE_SIZE_BLKS
------- -------------------- --- ---------- --------------
        /export/home/oracle/ NO       16384            430
        oradata/uep4x/contro
        l01.ctl

        /export/home/oracle/ NO       16384            430
        oradata/uep4x/contro
        l02.ctl

        /export/home/oracle/ NO       16384            430
        oradata/uep4x/contro
        l03.ctl

 

Oracle找到控制文件之后,就开始根据控制文件里的内容验证数据文件是否存在了。

 

SQL> column name format a50
SQL> select name from v$datafile;

NAME
--------------------------------------------------
/export/home/oracle/oradata/uep4x/system01.dbf
/export/home/oracle/oradata/uep4x/undotbs01.dbf
/export/home/oracle/oradata/uep4x/sysaux01.dbf
/export/home/oracle/oradata/uep4x/users01.dbf
/export/home/oracle/oradata/uep4x/example01.dbf
/export/home/oracle/oradata/uep4x/uep.dbf
/export/home/oracle/oradata/uep4x/UEP_CAF_FM.dbf
/export/home/oracle/oradata/uep4x/UEP_PM.dbf
/export/home/oracle/oradata/uep4x/n3common.dbf
/export/home/oracle/oradata/uep4x/IP_CM.dbf
/export/home/oracle/oradata/uep4x/IP_PM.dbf

NAME
--------------------------------------------------
/export/home/oracle/oradata/uep4x/IP_PM_INDEX.dbf

 

现在,我们做个试验,删除一个数据文件。在启动到open阶段的时候检查:

bash-3.00# mv UEP_PM.dbf UEP_PM.dbf.b

 

SQL> alter database open;
alter database open
*
ERROR at line 1:
ORA-01157: cannot identify/lock data file 8 - see DBWR trace file
ORA-01110: data file 8: '/export/home/oracle/oradata/uep4x/UEP_PM.dbf'

 

SQL> select FILE# from v$recover_file;

     FILE#
----------
         8

SQL> select name from v$datafile
  2  where FILE#=8;

NAME
--------------------------------------------------
/export/home/oracle/oradata/uep4x/UEP_PM.dbf

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值