您好,登錄后才能下訂單哦!
這篇文章給大家介紹Oracle 12c 備份與恢復中resetlogs的概念及用法是什么,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
備份與恢復是一門重要的功課,其中一些基礎知識和用法會隨著實戰次數的增加而理解的越來越深刻。今天通過一個最簡單的例子來體會一下resetlogs。
resetlogs: 重置online redolog。當數據庫實例啟動時需要具有redolog,如果該文件不可用或者不存在了,可以使用resetlogs開啟數據庫。在開啟的過程中oracle會根據控制文件中的redo路徑創建全新的redolog。在不完全恢復或者OGG部署時經常會用到resetlogs方式開啟數據庫。原因就是當前的redo不可用,或者不能用。
實驗步驟如下:
1, 一致性停庫
2, 手工刪除redolog
3, 啟動數據庫到mount狀態
4, resetlogs方式打開數據庫
1. 一致性停庫
[oracle@snow ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sat May 2 04:29:37 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
確認數據文件、日志文聯、控制文件、臨時文件的物理位置
SYS@cdb > select name from v$datafile
2 union select name from v$controlfile
3 union select member from v$logfile
4 union select name from v$tempfile;
NAME
--------------------------------------------------------------------------------
/home/oracle/dbfile/cdb/control01.ctl
/home/oracle/dbfile/cdb/control02.ctl
/home/oracle/dbfile/cdb/pdb1/SAMPLE_SCHEMA_users01.dbf
/home/oracle/dbfile/cdb/pdb1/example01.dbf
/home/oracle/dbfile/cdb/pdb1/pdb1_temp01.dbf
/home/oracle/dbfile/cdb/pdb1/sysaux01.dbf
/home/oracle/dbfile/cdb/pdb1/system01.dbf
/home/oracle/dbfile/cdb/pdbseed/pdbseed_temp01.dbf
/home/oracle/dbfile/cdb/pdbseed/sysaux01.dbf
/home/oracle/dbfile/cdb/pdbseed/system01.dbf
/home/oracle/dbfile/cdb/redo01.log
NAME
--------------------------------------------------------------------------------
/home/oracle/dbfile/cdb/redo02.log
/home/oracle/dbfile/cdb/redo03.log
/home/oracle/dbfile/cdb/sysaux01.dbf
/home/oracle/dbfile/cdb/system01.dbf
/home/oracle/dbfile/cdb/temp01.dbf
/home/oracle/dbfile/cdb/undotbs01.dbf
/home/oracle/dbfile/cdb/users01.dbf
18 rows selected.
一致性停止數據庫,確保redolog中的事務已經寫入磁盤
SYS@cdb > shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SYS@cdb >
2. 手工刪除redolog
[oracle@snow ~]$ cd dbfile/cdb/
[oracle@snow cdb]$ ll
total 2135948
-rw-r----- 1 oracle oinstall 17973248 May 2 04:30 control01.ctl
-rw-r----- 1 oracle oinstall 17973248 May 2 04:30 control02.ctl
drwxr-x--- 2 oracle oinstall 4096 May 2 03:07 pdb1
drwxr-x--- 2 oracle oinstall 4096 May 2 03:01 pdbseed
-rw-r----- 1 oracle oinstall 52429312 May 2 04:30 redo01.log
-rw-r----- 1 oracle oinstall 52429312 May 2 04:29 redo02.log
-rw-r----- 1 oracle oinstall 52429312 May 2 04:29 redo03.log
-rw-r----- 1 oracle oinstall 796925952 May 2 04:30 sysaux01.dbf
-rw-r----- 1 oracle oinstall 817897472 May 2 04:30 system01.dbf
-rw-r----- 1 oracle oinstall 92282880 May 2 04:29 temp01.dbf
-rw-r----- 1 oracle oinstall 372252672 May 2 04:30 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 May 2 04:30 users01.dbf
[oracle@snow cdb]$ rm -rf redo*.log
[oracle@snow cdb]$ ll
total 1982336
-rw-r----- 1 oracle oinstall 17973248 May 2 04:30 control01.ctl
-rw-r----- 1 oracle oinstall 17973248 May 2 04:30 control02.ctl
drwxr-x--- 2 oracle oinstall 4096 May 2 03:07 pdb1
drwxr-x--- 2 oracle oinstall 4096 May 2 03:01 pdbseed
-rw-r----- 1 oracle oinstall 796925952 May 2 04:30 sysaux01.dbf
-rw-r----- 1 oracle oinstall 817897472 May 2 04:30 system01.dbf
-rw-r----- 1 oracle oinstall 92282880 May 2 04:29 temp01.dbf
-rw-r----- 1 oracle oinstall 372252672 May 2 04:30 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 May 2 04:30 users01.dbf
3. 啟動數據庫到mount狀態
[oracle@snow cdb]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.1.0 Production on Sat May 2 04:53:23 2015
Copyright (c) 1982, 2013, Oracle. All rights reserved.
Connected to an idle instance.
SYS@cdb > startup mount;
ORACLE instance started.
Total System Global Area 1503199232 bytes
Fixed Size 2288584 bytes
Variable Size 973079608 bytes
Database Buffers 520093696 bytes
Redo Buffers 7737344 bytes
Database mounted.
4.restlogs方式打開數據庫
注意:執行alter database open resetlog時會提示“RESETLOGS”選項需要在不完全恢復后使用,按照要求我們執行一次recover database until cancel, 再次執行alter database open resetlog就可以成功打開數據庫并重新創建了redolog。
如果在數據庫處于mount狀態時先執行recover,再執行resetlogs就不會報錯。
SYS@cdb > alter database open resetlogs;
alter database open resetlogs
*
ERROR at line 1:
ORA-01139: RESETLOGS option only valid after an incomplete database recovery
SYS@cdb > recover database until cancel;
Media recovery complete.
SYS@cdb > alter database open resetlogs;
Database altered.
如果在數據庫處于mount狀態時先執行recover,再執行resetlogs就不會報錯。
實例啟動后,看到新的redolog被創建在之前的位置
SYS@cdb > exit
Disconnected from Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
[oracle@snow cdb]$ ll
total 2135948
-rw-r----- 1 oracle oinstall 17973248 May 2 04:54 control01.ctl
-rw-r----- 1 oracle oinstall 17973248 May 2 04:54 control02.ctl
drwxr-x--- 2 oracle oinstall 4096 May 2 03:07 pdb1
drwxr-x--- 2 oracle oinstall 4096 May 2 03:01 pdbseed
-rw-r----- 1 oracle oinstall 52429312 May 2 04:54 redo01.log
-rw-r----- 1 oracle oinstall 52429312 May 2 04:54 redo02.log
-rw-r----- 1 oracle oinstall 52429312 May 2 04:54 redo03.log
-rw-r----- 1 oracle oinstall 796925952 May 2 04:54 sysaux01.dbf
-rw-r----- 1 oracle oinstall 817897472 May 2 04:54 system01.dbf
-rw-r----- 1 oracle oinstall 92282880 May 2 04:54 temp01.dbf
-rw-r----- 1 oracle oinstall 372252672 May 2 04:54 undotbs01.dbf
-rw-r----- 1 oracle oinstall 5251072 May 2 04:54 users01.dbf
很多初學者在第一次接觸resetlogs選項都是在一些比較復雜的恢復場景時才遇到的。希望這個初級的小實驗可以幫助你理解resetlogs。
關于Oracle 12c 備份與恢復中resetlogs的概念及用法是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。