一则controlfile丢失,或损坏的恢…

alert.log 中的报错信息

Starting up:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options.
Using parameter settings in server-side spfile /u01/app/oracle/product/11.2.0/dbhome_1/dbs/spfilemynewdb.ora
System parameters with non-default values:
  processes                              = 150
  sga_target                            = 200M
  control_files                      = "/u01/app/oracle/oradata/MYNEWDB/controlfile/o1_mf_814joods_.ctl"
  db_block_size                      = 8192
  compatible                            = "11.2.0.0.0"
  db_create_file_dest          = "/u01/app/oracle/oradata"
  db_recovery_file_dest_size= 6442450
  undo_tablespace                  = "UNDOTBS1"
  recyclebin                            = "OFF"
  remote_login_passwordfile= "EXCLUSIVE"
  db_domain                              = ""
  dispatchers                          = "(PROTOCOL=TCP) (SERVICE=mynewdbXDB)"
  audit_file_dest                  = "/u01/app/oracle/admin/mynewdb/adump"
  audit_trail                          = "DB"
  db_name                                  = "mynewdb"
  open_cursors                        = 300
  pga_aggregate_target        = 74M
  diagnostic_dest                  = "/u01/app/oracle"
Sat Sep 29 03:59:18 2012
PMON started with pid=2, OS id=20446
Sat Sep 29 03:59:18 2012
VKTM started with pid=3, OS id=20448
VKTM running at (100ms) precision
Sat Sep 29 03:59:18 2012
GEN0 started with pid=4, OS id=20452
Sat Sep 29 03:59:18 2012
DIAG started with pid=5, OS id=20454
Sat Sep 29 03:59:18 2012
DBRM started with pid=6, OS id=20456
Sat Sep 29 03:59:18 2012
PSP0 started with pid=7, OS id=20458
Sat Sep 29 03:59:18 2012
DIA0 started with pid=8, OS id=20460
Sat Sep 29 03:59:18 2012
MMAN started with pid=9, OS id=20462
Sat Sep 29 03:59:18 2012
DBW0 started with pid=10, OS id=20464
Sat Sep 29 03:59:18 2012
LGWR started with pid=11, OS id=20466
Sat Sep 29 03:59:18 2012
CKPT started with pid=12, OS id=20468
Sat Sep 29 03:59:18 2012
SMON started with pid=13, OS id=20470
Sat Sep 29 03:59:18 2012
RECO started with pid=14, OS id=20472
Sat Sep 29 03:59:18 2012
MMON started with pid=15, OS id=20474
starting up 1 dispatcher(s) for network address '(ADDRESS=(PARTIAL=YES)(PROTOCOL=TCP))'...
Sat Sep 29 03:59:18 2012
MMNL started with pid=16, OS id=20476
starting up 1 shared server(s) ...
ORACLE_BASE from environment = /u01/app/oracle
Sat Sep 29 03:59:18 2012
ALTER DATABASE    MOUNT
ORA-00210: cannot open the specified control file
ORA-00202: control file: '/u01/app/oracle/oradata/MYNEWDB/controlfile/o1_mf_814joods_.ctl'
ORA-27037: unable to obtain file status
Linux Error: 2: No such file or directory
Additional information: 3
ORA-205 signalled during: ALTER DATABASE    MOUNT...
Sat Sep 29 04:00:23 2012
Starting ORACLE instance (normal)



查看原来controlfile的位置
SQL> show parameter control_file

NAME                                                                TYPE              VALUE
------------------------------------ ----------- ------------------------------
control_file_record_keep_time              integer        7
control_files                                              string          /u01/app/oracle/oradata/MYNEWDB



oracle@oracle11g MYNEWDB]$ ll
total 12
drwxr-x--- 2 oracle oinstall 4096 Sep 29 03:56 controlfile
drwxr-x--- 2 oracle oinstall 4096 Jul 27 03:27 datafile
drwxr-x--- 2 oracle oinstall 4096 Jul 27 03:26 onlinelog
[oracle@oracle11g MYNEWDB]$ cd c*
[oracle@oracle11g controlfile]$ ll
total 19200
-rw-r----- 1 oracle oinstall 9814016 Sep 29 03:56 o1_mf_814joods_.ctl.bak
-rw-r----- 1 oracle oinstall 9814016 Sep 29 03:57 o1_mf_814joods_.ctl.bak1
[oracle@oracle11g controlfile]$ pwd
/u01/app/oracle/oradata/MYNEWDB/controlfile
[oracle@oracle11g controlfile]$


shutdown

startup nomount

SQL> alter system set control_files='/u01/app/oracle/oradata/MYNEWDB/controlfile/o1_mf_814joods_.ctl.bak' scope=spfile;

System altered.

SQL> alter database mount;

Database altered.

SQL> alter database open;

Database altered.

SQL>





验证controlfile参数是否已正确更改
SQL> SQL> show parameter control_file

STATUS  NAME                                                                                                                                    I
------- ---------------------------------------------------------------------- -
              /u01/app/oracle/oradata/MYNEWDB/controlfile/o1_mf_814joods_.ctl.bak      N




至此,db成功恢复!

你可能感兴趣的:(DBRecovery)