十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
这篇文章给大家介绍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的概念及用法是什么就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。