拓扑园

  • O&M
    • Universal部署
    • PHP+VUE+Laravel相关
  • Oracle性能优化
  • Oracle项目案例
    • Oracle近期项目案例(目录)
    • Oracle实战问题解析(目录)
    • Oracle数据库名变更流程(2种方式)
    • Oracle数据库目录更换流程(使用Oracle的clone工具)
    • Oracle数据库迁移方案(目录)
    • 标准化文档系列
  • Oracle基础知识
    • LLL的Oracle培训(分类)
    • LLL的docker培训(分类)
    • 标准化文档系列--(分类)
    • Oracle核心经典分析(分类)
    • 图灵小队----(分类并包含以下文章)
    • --MySQL8.0/Oracle/Memcached/Redis等安装配置于RHEL/OL6/7/8.X系列-运行环境最优配置
    • --PG安装配置于RHEL/9X系列-运行环境最优配置
    • --自动维护任务详解-开启、关闭信息统计收集(统计信息)
    • --图灵小队—Oracle/PostgreSQL下创建一个用户测试表(自行定义数据行)
    • --图灵小队-Oracle存储过程导出表的明细_UTL_FILE(文章)
    • --图灵小队-Oracle数据库删除/卸载操作指南(文章)
    • --图灵小队-Oracle常用性能查询SQL语句(文章)
    • --图灵小队-Oracle数据库上线前检查(文章)
    • --图灵小队-Oracle常用SQL语句(文章)
    • --图灵小队—Linux/Oracle脚本/MySQL合集(持续更新)
    • --图灵小队-Oracle技巧记录(文章)
    • ADG
    • RAC
    • ASM
    • OGG
    • RMAN
    • EXPDP/IMPDP
    • 工厂数据导入导出系列
  • MySQL
    • MySQL数据库规范
    • MySQL项目案例
    • MySQL安装配置
    • MYSQL集群项目
    • MySQL常见处理
    • MySQL-Sysbench专题
    • MySQL-Percona Toolkit专题
  • Linux
    • Shell编程
    • kubernetes
    • docker
    • Linux
    • PHP
    • Nginx
    • haproxy
    • mail
    • 网站
    • 域名
    • 网址收藏
  • 数据中心
    • 新框架系统集合
    • 工作文档
    • EBS数据文件扩容
    • VMware虚拟化
    • EBS系列
    • 大数据
    • SVN
    • zabbix
    • SAP
    • 备份相关
    • FC交换机
    • SVN
  • K-Studing
    • D8-Python学习
    • Oracle/MySQl等面试题
    • LG-MySQL
    • LG-Docker/K8S
    • LG-PostgreSQL
    • LG-ORACLE_BBED
    • LG-ORACLE
    • LG-Elasticsearch(ES)+ELK
    • Oracle-19C-OCP
    • WERN_ORACLE培训
    • redis数据库
    • Nginx培训学习系列
  • 其他
    • 外研英语4年级下册-听力
    • 影视系列
    • 如何使用iTunes软件通过抓包下载旧版本的ios的app
天高任鸟飞
Oracle/MySQL数据库恢复/数据迁移/生产规范报告技术交流:TEL:18562510581(微信同号);加微信入群
  1. 首页
  2. Oracle基础知识
  3. LLL的Oracle培训
  4. 正文

Oracle RESETLOGS 和 NORESETLOGS 区别说明

2023年3月10日 684点热度 0人点赞 0条评论

目录

  • 一.创建控制文件时:Resetlogs和Noresetlogs
    • 1. NORESETLOGS case
    • 2. RESETLOGS case
  • 二.打开数据库时:Resetlogs 和Noresetlogs
    • 1、说明
    • 2、MOS 上对这个RESETLOGS和NORESETLOGS的说明:
      • (1)    NORESETLOGS
      • (2)RESETLOGS
    • 3、关于resetlogs还是noresetlogs使用的几种情况的说明
      • (1)    第一种情况(丢失控制文件且控制文件经过备份恢复,则必须resetlogs打开数据库)
      • (2)    第二种情况(只要redo不全就需要resetlogs打开)
      • (3)    第三种情况(只要丢失redo就需要resetlogs打开)
      • (4)    第四种情况(只丢失控制文件,redolog都正常,可通过手动noresetlogs创建控制文件,则可以noresetlogs打开数据库,实现完全恢复)

Oracle RESETLOGS 和 NORESETLOGS 区别说明

一.创建控制文件时:Resetlogs和Noresetlogs

当我们将控制文件备份到trace 文件时,可以看到里面包含了2部分的重建语句,一个是使用resetlogs,另一个是使用noresetlogs。

备份控制文件的SQL 如下:

SQL> alter database backup controlfile to trace as '/oracle/controlfile.bak';

1. NORESETLOGS case

The followingcommands will create a new control file and use it to open the database. Dataused by Recovery Manager will be lost.
Additional logsmay be required for media recovery of offline.
Use this only ifthe current versions of all online logs are available.

--使用noresetlogs仅是当前所有的online logs可用时。

2. RESETLOGS case

The followingcommands will create a new control file and use it to open the database. Dataused by Recovery Manager will be lost.

The contents ofonline logs will be lost and all backups will be invalidated. Use this only ifonline logs are damaged.

--使用resetlogs,将导致online logs里的内容丢失,并且所有的备份失效,仅当online logs 随坏的情况下,才使用resetlos模式。

CREATE CONTROLFILE REUSE DATABASE"DAVE" RESETLOGS/NORESETLOGS  ARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 2
MAXDATAFILES 30
MAXINSTANCES 1
MAXLOGHISTORY 292
LOGFILE
GROUP 1'/u01/app/oracle/oradata/dave/redo01.log'  SIZE 50M,
GROUP 2'/u01/app/oracle/oradata/dave/redo02.log'  SIZE 50M,
GROUP 3'/u01/app/oracle/oradata/dave/redo03.log'  SIZE 50M
-- STANDBY LOGFILE
DATAFILE
'/u01/app/oracle/oradata/dave/system01.dbf',
'/u01/app/oracle/oradata/dave/undotbs01.dbf',
'/u01/app/oracle/oradata/dave/sysaux01.dbf',
'/u01/app/oracle/oradata/dave/users01.dbf'
CHARACTER SET ZHS16GBK
;

二.打开数据库时:Resetlogs 和Noresetlogs

1、说明

--RESETLOGS会初始化logs,重置log sequence号,创建一个新的incarnation。
--NORESETLOGS 会继续使用已经存在,且有效的log files。

可以使用RMAN命令查看incarnation的信息:

RMAN> list incarnation;
做不完全恢复必须使用resetlogs, resetlogs也可以做完全恢复。
而noresetlogs则是必须做完全恢复时使用。
resetlogs会重置日志序列号强制清空或重建REDO,而noresetlogs则不会这么做。

2、MOS 上对这个RESETLOGS和NORESETLOGS的说明:

Physical Backup and Recovery: An Insider'sPerspective [ID 16530.1]:

After recoverdatabase operation, open the database with: ALTER DATABASE OPEN [NO]RESETLOGS

(1)    NORESETLOGS

The NORESETLOGSoption does not clear the redo log files during startup and the online redologs to be used for recovery. 
Only used in scenario where MANUAL RECOVERY isstarted, CANCEL is used, and then RECOVER DATABASE is started.

(2)RESETLOGS

CAUTION: Never use RESETLOGS unlessnecessary.
Once RESETLOGS is used then the redo logfiles cannot be used and any completed transactions in those redo logs arelost!!
Before using the RESETLOGS option take anoffline backup of the database.
The RESETLOGSoption clears all the online redo logs and modifies all the online data filesto indicate no recovery is needed. 
After resetting the redo logs none of theexisting log files or data file backups can be used.
In the control file, the log sequence number is modified,which is very important for recovery purposes. 
The recovery will be applied only to the log files whose sequence number is greaterthan log sequence number in the control file. One has to be very cautious whenusing RESETLOGS option. It is important to remember that all datafiles must beonline otherwise they will become useless once the database is up。

3、关于resetlogs还是noresetlogs使用的几种情况的说明

(1)    第一种情况(丢失控制文件且控制文件经过备份恢复,则必须resetlogs打开数据库)

假设仅仅控制文件丢失,而其他文件没有丢失(主要是归档和REDO),那么恢复的时候如果选择从备份中恢复控制文件。

恢复后,控制文件会去读数据文件头中与CHECKPOINT SCN对应的RBA信息来确定从那个序列的归档日志开始恢复,
一直推进恢复到NEXT SCN是无穷大的那个REDOLOG,此时恢复是完全恢复的;
但打开的时候还要以resetlogs方式打开,这样要重置归档日志的sequence,
也就是说,如果你恢复时使用了备份控制文件,那么打开数据库时必然是要resetlogs的。
不完全恢复时是必须RESETLOGS,但是完全恢复时如果使用备份控制文件来恢复,那么使用RESETLOGS一样可以完全恢复。
但是丢失控制文件也可以不使用RESETLOGS方式打开数据库,这样也就可以避免重置日志序列号带来的不变,详情请见第四种情况。

(2)    第二种情况(只要redo不全就需要resetlogs打开)

不完全恢复,不管是要什么样的不完全恢复,SCN,TIME,跨越REDO,都必须使用resetlogs。

(3)    第三种情况(只要丢失redo就需要resetlogs打开)

丢失REDOLOG,这就更需要resetlogs了,因为resetlogs能够重建REDOLOG。
如果你的REDOLOG、控制文件、数据文件丢失的话,需要先恢复控制文件;
然后restore database;recover database;alter database open resetlogs;

注意,这时候做的是不完全恢复,因为REDO没有了。在recover过程中可能会报错然后自动退出RMAN,无视,alter database open resetlogs即可,

(4)    第四种情况(只丢失控制文件,redolog都正常,可通过手动noresetlogs创建控制文件,则可以noresetlogs打开数据库,实现完全恢复)

没有丢失控制文件及各种日志,仅丢失数据文件,这种问题比较常见,有可能磁盘损坏造成数据文件丢失,等磁盘故障排除后,需要恢复,此时的恢复就很简单了,
restore database;recover database;alter database open;
就一切OK,也就是说,在不使用备份控制文件恢复的情况下,是可以使用noresetlog方式打开数据库的。
前提有一,不能丢失日志文件。
假若丢失了控制文件和数据文件但还是想以noresetlog打开的话,就必须手动以noresetlogs方式重建控制文件,
而且REDOLOG的状态都必须正常,否则是无法使用noresetlogs方式打开。
本作品采用 知识共享署名 4.0 国际许可协议 进行许可
标签: 暂无
最后更新:2023年3月10日

admin

这个人很懒,什么都没留下

打赏 点赞
< 上一篇
下一篇 >

COPYRIGHT © 2022 拓扑园. ALL RIGHTS RESERVED.

Theme Kratos Made By Seaton Jiang

鲁ICP备2021020523号

鲁ICP备2021020523号