Oracle 12c 备份与恢复中resetlogs的概念及用法是什么
这篇文章给大家介绍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/assysdba
SQL*Plus:Release12.1.0.1.0ProductiononSatMay204:29:372015
Copyright(c)1982,2013,Oracle. Allrightsreserved.
Connectedto:
OracleDatabase12cEnterpriseEditionRelease12.1.0.1.0-64bitProduction
WiththePartitioning,OLAP,AdvancedAnalyticsandRealApplicationTestingoptions
确认数据文件、日志文联、控制文件、临时文件的物理位置
SYS@cdb>selectnamefromv$datafile
2 unionselectnamefromv$controlfile
3 unionselectmemberfromv$logfile
4 unionselectnamefromv$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
18rowsselected.
一致性停止数据库,确保redolog中的事务已经写入磁盘
SYS@cdb>shutdownimmediate;
Databaseclosed.
Databasedismounted.
ORACLEinstanceshutdown.
SYS@cdb>
2. 手工删除redolog
[oracle@snow~]$cddbfile/cdb/
[oracle@snowcdb]$ll
total2135948
-rw-r-----1oracleoinstall 17973248May 204:30control01.ctl
-rw-r-----1oracleoinstall 17973248May 204:30control02.ctl
drwxr-x---2oracleoinstall 4096May 203:07pdb1
drwxr-x---2oracleoinstall 4096May 203:01pdbseed
-rw-r-----1oracleoinstall 52429312May 204:30redo01.log
-rw-r-----1oracleoinstall 52429312May 204:29redo02.log
-rw-r-----1oracleoinstall 52429312May 204:29redo03.log
-rw-r-----1oracleoinstall796925952May 204:30sysaux01.dbf
-rw-r-----1oracleoinstall817897472May 204:30system01.dbf
-rw-r-----1oracleoinstall 92282880May 204:29temp01.dbf
-rw-r-----1oracleoinstall372252672May 204:30undotbs01.dbf
-rw-r-----1oracleoinstall 5251072May 204:30users01.dbf
[oracle@snowcdb]$rm-rfredo*.log
[oracle@snowcdb]$ll
total1982336
-rw-r-----1oracleoinstall 17973248May 204:30control01.ctl
-rw-r-----1oracleoinstall 17973248May 204:30control02.ctl
drwxr-x---2oracleoinstall 4096May 203:07pdb1
drwxr-x---2oracleoinstall 4096May 203:01pdbseed
-rw-r-----1oracleoinstall796925952May 204:30sysaux01.dbf
-rw-r-----1oracleoinstall817897472May 204:30system01.dbf
-rw-r-----1oracleoinstall 92282880May 204:29temp01.dbf
-rw-r-----1oracleoinstall372252672May 204:30undotbs01.dbf
-rw-r-----1oracleoinstall 5251072May 204:30users01.dbf
3. 启动数据库到mount状态
[oracle@snowcdb]$sqlplus/assysdba
SQL*Plus:Release12.1.0.1.0ProductiononSatMay204:53:232015
Copyright(c)1982,2013,Oracle. Allrightsreserved.
Connectedtoanidleinstance.
SYS@cdb>startupmount;
ORACLEinstancestarted.
TotalSystemGlobalArea1503199232bytes
FixedSize 2288584bytes
VariableSize 973079608bytes
DatabaseBuffers 520093696bytes
RedoBuffers 7737344bytes
Databasemounted.
4.restlogs方式打开数据库
注意:执行alter database open resetlog时会提示“RESETLOGS”选项需要在不完全恢复后使用,按照要求我们执行一次recover database until cancel, 再次执行alter database open resetlog就可以成功打开数据库并重新创建了redolog。
如果在数据库处于mount状态时先执行recover,再执行resetlogs就不会报错。
SYS@cdb>alterdatabaseopenresetlogs;
alterdatabaseopenresetlogs
*
ERRORatline1:
ORA-01139:RESETLOGSoptiononlyvalidafteranincompletedatabaserecovery
SYS@cdb>recoverdatabaseuntilcancel;
Mediarecoverycomplete.
SYS@cdb>alterdatabaseopenresetlogs;
Databasealtered.
如果在数据库处于mount状态时先执行recover,再执行resetlogs就不会报错。
实例启动后,看到新的redolog被创建在之前的位置
SYS@cdb>exit
DisconnectedfromOracleDatabase12cEnterpriseEditionRelease12.1.0.1.0-64bitProduction
WiththePartitioning,OLAP,AdvancedAnalyticsandRealApplicationTestingoptions
[oracle@snowcdb]$ll
total2135948
-rw-r-----1oracleoinstall 17973248May 204:54control01.ctl
-rw-r-----1oracleoinstall 17973248May 204:54control02.ctl
drwxr-x---2oracleoinstall 4096May 203:07pdb1
drwxr-x---2oracleoinstall 4096May 203:01pdbseed
-rw-r-----1oracleoinstall 52429312May 204:54redo01.log
-rw-r-----1oracleoinstall 52429312May 204:54redo02.log
-rw-r-----1oracleoinstall 52429312May 204:54redo03.log
-rw-r-----1oracleoinstall796925952May 204:54sysaux01.dbf
-rw-r-----1oracleoinstall817897472May 204:54system01.dbf
-rw-r-----1oracleoinstall 92282880May 204:54temp01.dbf
-rw-r-----1oracleoinstall372252672May 204:54undotbs01.dbf
-rw-r-----1oracleoinstall 5251072May 204:54users01.dbf
很多初学者在第一次接触resetlogs选项都是在一些比较复杂的恢复场景时才遇到的。希望这个初级的小实验可以帮助你理解resetlogs。
关于Oracle 12c 备份与恢复中resetlogs的概念及用法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。