alter database open resetlogs

2023-11-12

问题解决:

先要弄清楚alter database open resetlogs是什么意思,为什么要用resetlogs打开数据库,这个命令发出后oracle都做了什么?

alter database open resetlogs是要打开数据时,重置重做日志,即将重做日志的sequence置零,为什么要重置重做日志呢?

不完全恢复后,原来的online redo log里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,所以数据库会要求在Open之前先对online redo log的sequence置零。

Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,SCN不会被重置,不过oracle会重置日志序列号,而且会重置联机重做日志内容。

Oracle把这个数据库逻辑生存期称为incarnation

每次使用resetlogs打开数据库,就会使incarnation + 1,也就是产生一个新的incarnation;

如果想要恢复到之前incarnation的scn/time,就需要先恢复到之前的incarnation;

对于上面的案例,具体就是先要

Reset database to incarnation 2;

再做不完全恢复试试

--------------------------我执行一次rman之后,再次执行这个脚本--------------


 

  1. RMAN> @/home/oracle/testrman.rman
  2. RMAN> run{
  3. 2> allocate channel c1 type disk;
  4. 3> allocate channel c2 type disk;
  5. 4> sql 'alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"';
  6. 5> set until time='2012-08-16 17:30:00';
  7. 6> restore database;
  8. 7> recover database;
  9. 8> sql 'alter database open resetlogs';}
  10. allocated channel: c1
  11. channel c1: sid=145 devtype=DISK
  12. allocated channel: c2
  13. channel c2: sid=146 devtype=DISK
  14. sql statement: alter session set nls_date_format="yyyy-mm-dd hh24:mi:ss"
  15. executing command: SET until clause
  16. released channel: c1
  17. released channel: c2
  18. RMAN-00571: ===========================================================
  19. RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
  20. RMAN-00571: ===========================================================
  21. RMAN-03002: failure of set command at 08/16/2012 21:01:11
  22. RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time
  23. RMAN> **end-of-file**


 

 

http://hi.baidu.com/heuet032606/item/4553f3c1d8f8b22c47d5c07c

 

http://blog.csdn.net/leishifei/article/details/6430057

关于alter database open resetlogs及incarnation的一点理解

不完全恢复只能做一次吗?

采用rman的默认设置,对数据库进行了backup database备份,进行了一些操作后,然后直接关闭启动到mount状态

RMAN> run{

2> set until time "to_date('2010-10-16 23:14:42','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

Starting restore at 17-OCT-10

allocated channel: ORA_DISK_1

channel ORA_DISK_1: sid=156 devtype=DISK

channel ORA_DISK_1: starting datafile backupset restore

channel ORA_DISK_1: specifying datafile(s) to restore from backup set

restoring datafile 00001 to /oracle/oradata/denver/system01.dbf

restoring datafile 00002 to /oracle/oradata/denver/undotbs01.dbf

restoring datafile 00003 to /oracle/oradata/denver/sysaux01.dbf

restoring datafile 00004 to /oracle/oradata/denver/users01.dbf

restoring datafile 00005 to /oracle/oradata/denver/example01.dbf

channel ORA_DISK_1: reading from backup piece /oracle/flash_recovery_area/DENVER/backupset/2010_10_16/o1_mf_nnndf_TAG20101016T230845_6cmhzz8t_.bkp

channel ORA_DISK_1: restored backup piece 1

piece handle=/oracle/flash_recovery_area/DENVER/backupset/2010_10_16/o1_mf_nnndf_TAG20101016T230845_6cmhzz8t_.bkp tag=TAG20101016T230845

channel ORA_DISK_1: restore complete, elapsed time: 00:01:26

Finished restore at 17-OCT-10

Starting recover at 17-OCT-10

using channel ORA_DISK_1

starting media recovery

archive log thread 1 sequence 10 is already on disk as file /oracle/archivelog/1_10_732510268.dbf

archive log filename=/oracle/archivelog/1_10_732510268.dbf thread=1 sequence=10

media recovery complete, elapsed time: 00:00:01

Finished recover at 17-OCT-10

RMAN> alter database open resetlogs;

database opened

发现刚才恢复的时间23:14:42有点早,于是想改为恢复时间点为23:17:26,于是再次关闭数据库,mount状态下,但是出错了

RMAN> run {

2> set until time "to_date('2010-10-16 23:17:26','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of set command at 10/17/2010 00:45:40

RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time

时间再前点恢复也不行:

RMAN> run {

2> set until time "to_date('2010-10-16 23:14:40','yyyy-mm-dd hh24:mi:ss')";

3> restore database;

4> recover database;

5> }

executing command: SET until clause

using target database control file instead of recovery catalog

RMAN-00571: ===========================================================

RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============

RMAN-00571: ===========================================================

RMAN-03002: failure of set command at 10/17/2010 01:17:03

RMAN-20207: UNTIL TIME or RECOVERY WINDOW is before RESETLOGS time

这是为什么?那些归档都还在,难道我的rman做过一次不完全恢复后,就不能再不完全恢复了,跟有没有换备份控制文件有关系吗?里面做了什么呢?

RMAN> list incarnation;

using target database control file instead of recovery catalog

List of Database Incarnations

DB Key  Inc Key DB Name  DB ID            STATUS  Reset SCN  Reset Time

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

1       1       DENVER   4021391415       PARENT  1          22-OCT-05

2       2       DENVER   4021391415       PARENT  525876     16-OCT-10

3       3       DENVER   4021391415       CURRENT 620239     17-OCT-10

问题解决:

先要弄清楚alter database open resetlogs是什么意思,为什么要用resetlogs打开数据库,这个命令发出后oracle都做了什么?

alter database open resetlogs是要打开数据时,重置重做日志,即将重做日志的sequence置零,为什么要重置重做日志呢?

不完全恢复后,原来的online redo log里面包含的是未做恢复前的数据,而这些数据对于恢复后的数据库不再有效,所以数据库会要求在Open之前先对online redo log的sequence置零。

Resetlogs命令表示一个数据库逻辑生存期的结束和另一个数据库逻辑生存期的开始,每次使用Resetlogs命令的时候,SCN不会被重置,不过oracle会重置日志序列号,而且会重置联机重做日志内容。

Oracle把这个数据库逻辑生存期称为incarnation

每次使用resetlogs打开数据库,就会使incarnation + 1,也就是产生一个新的incarnation;

如果想要恢复到之前incarnation的scn/time,就需要先恢复到之前的incarnation;

对于上面的案例,具体就是先要

Reset database to incarnation 2;

再做不完全恢复试试

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

alter database open resetlogs 的相关文章

  • 删除 mysql 数据库中超过 3 个月的行的作业

    我们使用 mysql 服务器作为集中式日志系统 我希望有一项工作来定期删除 清理超过 3 个月的表条目 做这个的最好方式是什么 提前致谢 hinling 您是否在字段中存储项目的创建日期 If so DELETE FROM myTable
  • 术语 SSTable 和 LSM Tree 之间有什么区别

    这两个术语可以互换使用吗 我读过有关 SSTable 工作原理的文章 通常文章都会开始提到 LSM Tree 然而 它们似乎是同一件事 我什么时候应该使用一个术语而不是另一个术语 对于凡人来说 SSTables 和 LSM Trees 的最
  • PostgreSQL 如何创建数据库或模式的副本?

    有没有一种简单的方法可以在 PostgreSQL 8 1 中创建数据库或模式的副本 我正在测试一些软件 它对数据库中的特定模式进行大量更新 我想复制它 以便我可以与原始版本进行一些比较 如果它位于同一服务器上 则只需使用带有 TEMPLAT
  • 在数据库中存储密码的最佳方法[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • SQL 按计数排序

    如果我有一个表和这样的数据 ID Name Group 1 Apple A 2 Boy A 3 Cat B 4 Dog C 5 Elep C 6 Fish C 我希望根据 Group 的总和从小到大进行排序 例如 A 2条记录 B 1条记录
  • SQL Server 大小写/排序规则问题

    今天我在客户数据库中遇到了一个奇怪的情况 SQL Server 2005 数据库排序规则不区分大小写 因此我可以使用任何大小写编写 SQL 查询 没有任何问题 除了一个 一张特定表中的一个特定列称为 DeadZone 如果我这样查询 从表名
  • Unix 命令列出包含字符串但*不*包含另一个字符串的文件

    如何递归查看包含一个字符串且不包含另一个字符串的文件列表 另外 我的意思是评估文件的文本 而不是文件名 结论 根据评论 我最终使用了 find name html exec grep lR base maps xargs grep L ba
  • 如何在 PostgreSQL 中使用条件和子查询创建唯一索引?

    我使用 PGSQL 并尝试添加下面的索引 CREATE UNIQUE INDEX fk client ON user client fk client WHERE fk client NOT IN SELECT fk client FROM
  • 我可以根据多列删除数据库重复项吗?

    I 不久前问过这个问题 https stackoverflow com questions 4952250 how to delete duplicates from a database table based on a certain
  • 如何重命名 MySQL 数据库(更改架构名称)?

    如何快速重命名 MySQL 数据库 更改其架构名称 通常我只是转储数据库并使用新名称重新导入它 对于非常大的数据库来说 这不是一个选项 显然RENAME DATABASE SCHEMA db name TO new db name 做了坏事
  • 数据聚合和缓存:如何按时间间隔快速绘制大型时间序列数据集的图表

    我有一个巨大的时间序列数据集 我想绘制图表 时间序列可以追溯到 5 年前 从后端的角度来看 以各种分辨率 间隔 显示这些数据的常用方法是什么 本质上我想绘制这样的数据图表 https bitcoinwisdom com markets bi
  • SSDT SQL Server 数据库项目中用于架构比较的命令行/API?

    在 Visual Studio 2012 中 我们有Schema Compare http msdn microsoft com en us library hh272690 28v vs 103 29 aspx in SSDT http
  • AWS RDS MySql - 如何在设置“公开可用”后允许访问

    刚刚使用默认设置和用户 密码创建了新的 AWS RDS MySql 实例 我也将其设置为publicly available并在此过程中创建新的 VPC 目前无法从我的笔记本电脑连接到此 RDS mysql h endpoint u myu
  • mysql表中的数据非常大。即使 select 语句也需要很多时间

    我正在开发一个数据库 它是一个相当大的数据库 有 13 亿行和大约 35 列 这是我检查表状态后得到的结果 Name Table Name Engine InnoDB Version 10 Row format Compact Rows 1
  • 使用连接池后如何处理过多的并发连接?

    Scenario 假设您有一个拥有大量流量的网站或应用程序 即使使用数据库连接池 性能也会受到真正的打击 站点 应用程序甚至可能崩溃 因为并发连接太多 Question 人们有什么选择来处理这个问题 我的想法 我在想有这个问题的人可以创建多
  • PostgreSQL - 致命:用户“myuser”身份验证失败[关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我刚刚在我的 Ubuntu Box 中安装了 PostGreSQL 我想做的第一件事就是创建一个数据库 我读了文档 http www postgres
  • 使用 find 命令搜索直到第一个匹配项

    我只需要搜索可以在任何地方的特定目录有没有办法运行此命令直到第一个匹配 谢谢 我现在使用 find noleaf name experiment type d wc l 正如鲁道夫 米尔鲍尔 Rudolf M hlbauer 所提到的 qu
  • 将数据库与 Clojure 结合使用

    有哪些使用 Clojure 数据库的方法 我从 Clojure 知道你可以用 Java 做任何事情 但这意味着我最终可能会使用一些过于复杂的东西 比如 Hibernate 这与 Clojure 的简单性相冲突 有什么建议或意见吗 Cloju
  • MySQL JOIN 滥用?情况会变得有多糟糕?

    我读了很多关于关系数据库的文章 在每个 SELECT 上使用许多 JOIN 语句 但是 我一直想知道滥用这种方法从长远来看是否会出现任何性能问题 例如 假设我们有一个users桌子 我通常会添加 最常用 的数据 而不是进行任何额外的联接 例
  • 如何迁移我的 Heroku 数据库?

    我试过了 heroku rake db migrate and heroku pg push 第一个给我一个 PGerror rake 中止错误 有没有办法用heroku完全重建 重置我的数据库 我似乎在他们的文档中找不到它 编辑 在此之前

随机推荐

  • cityscapes数据集的下载和应用

    链接内容 官方地址 https www cityscapes dataset com 使用git的地址 https github com mcordts cityscapesScripts 要自己登录download的哦 数据下载在官网下载
  • SQL注入之union联合注入

    特别申明 本文章仅供学习使用 其余利用本文章内容进行的任何行为与本人无关 做任何渗透操作前 请一定三思 做个遵纪守法的好公民 简介 在初见SQL注入提到三种分类方式 其中一个是根据注入是否有回显来进行分类 本文将详细讲解有回显这类的注入方式
  • 调试Learning to Generate Questions by Learning What not to Generate代码bug及解决

    一 路径问题 按要求下载BPE后 在prepro util py中修改路径 一直找不到 本来以为用相对路径 后来改成绝对路径就可以了 虽然bug很小 但解决时间过长 效率较低 还是对代码的基本功太差 二 导入时错误 经查阅资料 应该是导入时
  • vue解决el-select下拉框不显示label问题

    问题描述 最近在开发项目的过程中 遇到了这个问题 el select的下拉框数据是后端返回的 当点击下拉框选项时会请求后端的接口 当在请求接口的过程中label是有显示的 但是在请求完成后 label就没有显示了 问题来源 vue无法监听动
  • Visual Stuio Code C++环境配置(详细)

    目录 首语 先下载一个Visual studio code MinGW部分 环境变量添加 Visual Studio code环境配置 中文乱码 首语 大家在学习C 的时候就会先选择一个好的代码编辑器和代码编译器 有些人会选择Visual
  • 怎么在中国知网免费下载论文?

    作为一名马上就要毕业的学生 论文便提上了日程 写论文总是离不开阅读文献 在学校的话可以用校园网访问知网 然后下载中国知网的文献 如果不在学校的话 那就悲剧了 免费下载不了知网文献 下面我总结了几个下载中国知网文献的方法 希望能够帮到大家 百
  • docker里的mongo error: WT_ERROR: non-specific WiredTiger error“}解决方法

    背景 电脑强制重启后 docker里的mongo不能正常使用 索引不能位置被破坏 错误log是这样的 error WT ERROR non specific WiredTiger error 解决方法 简历另外一个容器 volume挂载和上
  • C++ 分数的加减乘除(运算符重载)

    文章目录 一 题目描述 二 输入与输出 1 输入 2 输出 三 参考代码 一 题目描述 Fraction类的基本形式如下 定义Fraction类 class Fraction private int fz fm int commonDivi
  • 奇异值分解的反变换matlab程序,奇异值分解(SVD)基础概念及MATLAB仿真

    奇异值分解 SVD 基础概念及MATLAB仿真 奇异值分解 SVD 基础概念及MATLAB仿真 奇异值分解 singular value decomposition 简称SVD 不仅广泛应用于机器学习领域 也在控制理论中有着广泛的应用 本文
  • springboot 启动异常Input length = 1解决

    问题原因是yml配置文件内容引起 并且yml内容没问题 空格也没问题 而是编码问题引起 在idea中打开settings gt Editor gt File Econdings 设置yml为UTF 8 如果还是启动失败 解决方法 将yml内
  • 一个合格(优秀)的前端都应该阅读这些文章

    的确 有些标题党了 起因是微信群里 有哥们问我 你是怎么学习前端的呢 能不能共享一下学习方法 一句话也挺触动我的 我真的不算是什么大佬 对于学习前端知识 我也不能说是掌握了什么捷径 当然 我个人的学习方法这篇文章已经在写了 预计这周末会在我
  • The overload Pattern

    最近研究有关C 17的书和博客文章时 偶然发现了这种访问模式std variant 使用overload模式 您可以 访问 提供单独的lambda include
  • 如何查看端口占用

    1 Win R 打开 运行 在 运行 中输入cmd 然后按电脑的回车进入命令行 2 输入命令 netstat ano 即可查出所有的端口占用信息 3 netstat ano findstr 端口 可查看具体的端口占用信息 4 查看有效会话
  • 关于B/S结构系统的会话机制(session机制)

    关于B S结构系统的会话机制 session机制 什么是会话 用户打开浏览器 进行一系列操作 最后关闭浏览器 这个整个过程叫做一次会话 真正意义上 会话是session对象的创建到结束的过程 一个session对应一个会话 在服务器端有一个
  • 虚拟机如何进行备份和迁移?

    文章目录 一 虚拟机的备份 方式一 使用VMvare自带的克隆功能 方式二 手动复制 二 虚拟机的迁移 本文以Ubuntu18 04为例 使用的工具是VMware Workstation 16 Pro 即VMware 最新版 Ubuntu1
  • 谷歌直链下载云盘数据集,使用谷歌云盘生成直接下载的url,示例: NeRFStudio-nerfacto默认训练数据集poster下载,nerfstudio 数据集下载链接

    1 如何生成谷歌直链下载云盘数据集的url 谷歌云盘 NeRFStudio nerfacto默认训练数据集poster下载链接 https drive google com uc export download confirm id 1dm
  • 差分与微分

    差分与微分 差分和微分都是数学中的一些基本概念 它们在数学 物理学 经济学和其他领域中都有广泛的应用 1 差分 差分可以理解为函数值之间的差别 特别地 如果一个函数 f f f 在两个相邻点 x 0
  • 【Qt教程】2.6 - Qt5 自定义控件封装

    自定义控件是将原有控件组合 封装 并填入自定义功能 留出适当的函数接口 方便其他控件的调用 设计窗口时 可以将控件拖入 方便模块化设计 GitHub代码仓库 Qt学习例程 1 建立工程 新建自定义控件 创建widget工程 新建控件 Add
  • 青龙面板打不开解决办法

    原因是cdn 自己修改一下就可以了 进入文件夹etc找到hosts etchosts 把这二个添加 104 16 88 20 cdn js delivr net 直接复制在最后一行 就可以解决问题了 或者 1 登陆linux 2 进入青龙容
  • alter database open resetlogs

    问题解决 先要弄清楚alter database open resetlogs是什么意思 为什么要用resetlogs打开数据库 这个命令发出后oracle都做了什么 alter database open resetlogs是要打开数据时