天天看點

oracle resetlogs和noresetlogs 建立控制檔案差別

一:注意事項:

1 指定reuse

  表明被初始化參數CONTROL_FILES 識别的控制檔案能夠被覆寫使用。如果忽略該參數,任何已經存在的控制檔案被資料庫檢測到,則傳回一個報錯。

2 指定SET DATABASE 

  表明要更改資料庫的名字,名字長度能達到8個位元組。除此之外,你必須指定resetlogs語句,如果你想重新命名資料庫的名字,并保留已經存在的日志檔案,則建立控制檔案語句執行後

  使用alter database recover using bakcup controlfile 語句執行一個完全資料庫恢複。

3 指定resetlogs

  indicate 忽略日志檔案内容,或者日志檔案不存在。

  指定datafile

  除了隻讀表空間的檔案(可以之後添加)和臨時表空間的資料檔案,列出所有資料檔案,就算這些檔案需要進行恢複。

4 ARCHIVELOG | NOARCHIVELOG 

  如果忽略了ARCHIVELOG | NOARCHIVELOG  oracle預設采用非歸檔模式。

二實驗步驟:

1 以noresetlogs方式建立控制檔案,控制檔案内容

 [oracle@oracle backup]$ cat control.sql 

STARTUP NOMOUNT

CREATE CONTROLFILE REUSE DATABASE "CRM" NORESETLOGS  ARCHIVELOG

    MAXLOGFILES 16

    MAXLOGMEMBERS 3

    MAXDATAFILES 100

    MAXINSTANCES 8

    MAXLOGHISTORY 292

LOGFILE

  GROUP 1 '/oracle/CRM/redo01.log'  SIZE 200M BLOCKSIZE 512,

  GROUP 2 '/oracle/CRM/redo02.log'  SIZE 200M BLOCKSIZE 512,

  GROUP 3 '/oracle/CRM/redo03.log'  SIZE 200M BLOCKSIZE 512,

  GROUP 4 '/oracle/CRM/redo02.dbf'  SIZE 200M BLOCKSIZE 512

DATAFILE

  '/oracle/CRM/system01.dbf',

  '/oracle/CRM/sysaux01.dbf',

  '/oracle/CRM/undotbs01.dbf',

  '/backup/users01.dbf',

  '/oracle/CRM/pos.dbf',

  '/oracle/CRM/erp.dbf',

  '/oracle/CRM/user01.dbf',

  '/oracle/CRM/undotbs02.dbf'

CHARACTER SET ZHS16GBK

;

2 以resetlogs方式建立控制檔案,控制檔案内容

cat control.sql 

CREATE CONTROLFILE REUSE DATABASE "CRM" RESETLOGS  ARCHIVELOG

3 恢複過程

noresetlogs方式

SQL> @/backup/control.sql   

ORACLE instance started.

Total System Global Area 1252663296 bytes

Fixed Size                  2226072 bytes

Variable Size            1006635112 bytes

Database Buffers          234881024 bytes

Redo Buffers                8921088 bytes

Control file created.

SQL> select open_mode from v$database;

OPEN_MODE

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

MOUNTED

SQL> recover database;

ORA-00283: recovery session canceled due to errors

ORA-00264: no recovery required

SQL> alter database open;

Database altered.

resetlogs方式

SQL> @/backup/control.sql

ORA-01610: recovery using the BACKUP CONTROLFILE option must be done

SQL> recover database using backup controlfile;

ORA-00279: change 2526007 generated at 08/26/2012 01:13:10 needed for thread 1

ORA-00289: suggestion : /oracle/archive/1_8_791790817.dbf

ORA-00280: change 2526007 for thread 1 is in sequence #8

Specify log: {<RET>=suggested | filename | AUTO | CANCEL}

auto

ORA-00308: cannot open archived log '/oracle/archive/1_8_791790817.dbf'

ORA-27037: unable to obtain file status

Linux-x86_64 Error: 2: No such file or directory

Additional information: 3

SQL> recover database using backup controlfile until cancel;

cancel

Media recovery cancelled.

SQL> alter database open resetlogs;

READ WRITE

本文轉自 zhangxuwl 51CTO部落格,原文連結:http://blog.51cto.com/jiujian/982734,如需轉載請自行聯系原作者