热门标签 | HotTags
当前位置:  开发笔记 > 数据库 > 正文

Oracle11gdataguardundo恢复

注意,在操作dataguard环境里,在操作undo表空间和数据时,要特别注意,这里就是一个例子。发现没有变化undo_tablespace,于是想

注意,在操作dataguard环境里,在操作undo表空间和数据时, 要特别注意,这里就是一个例子。发现没有变化undo_tablespace,于是想

Oracle 11g dataguard undo恢复

环境:
os:CentOS5.5
db:oracle11g datauard
version:11.2.0.2.0

在primary收缩数据文件大小
ALTER DATABASE
DATAFILE '/oracle/oradata/skatedb/undotbs03.dbf'
RESIZE 1024M;

稍后就收到报警短信,登录standby库,发现在alert.logl里有如下错误

......
Media Recovery Waiting for thread 1 sequence 17248 (in transit)
Recovery of Online Redo Log: Thread 1 Group 8 Seq 17248 Reading mem 0
Mem# 0: /oracle/oradata/skatedb/sdbyredo08.log
Thu Oct 11 13:59:06 2012
Archived Log entry 10938 added for thread 1 sequence 17247 ID 0xa47b04d0 dest 1:
Thu Oct 11 14:06:26 2012
Errors in file /oracle/app/diag/rdbms/skate04/skatedb/trace/skatedb_pr0d_25721.trc (incident=40497):
ora-00600: internal error code, arguments: [3020], [3], [160], [12583072], [], [], [], [], [], [], [], []
ora-10567: Redo is inconsistent with data block (file# 3, block# 160, file offset is 1310720 bytes)
ora-10564: tablespace UNDOTBS1
ora-01110: data file 3: '/oracle/oradata/skatedb/undotbs01.dbf'
ora-10560: block type 'KTU SMU HEADER BLOCK'
Incident details in: /oracle/app/diag/rdbms/skate04/skatedb/incident/incdir_40497/skatedb_pr0d_25721_i40497.trc
Thu Oct 11 14:06:52 2012

......


standby库无法apply

重启standby,数据库可以
alter database mount standby database;

但是open read only的时候,总报如上的错误

在standby上,执行如下也不可以

sql> recover standby database;

为了解决这个问题,我们决定不恢复了undotbs01.dbf , 直接从primary把这个文件复制过来(主库的比较新),
然后在恢复standby库,操作如下:

为了数据文件的一致性,冻结表空间undo
1.primary:
sql> ALTER TABLESPACE UNDOTBS1 BEGIN BACKUP;

2.standby:
shutdown immediate

3.primary:
把primary上的undotbs01.dbf文件copy到standby上,待copy完之后,一定要解冻(如不解冻,在standby库apply时会hang住)
sql> ALTER TABLESPACE UNDOTBS1 END BACKUP;

4.standby:
sql> startup nomount;
sql> alter database mount standby database;
sql> alter database open read only;
sql> alter database recover managed standby database disconnect using current logfile;

注意,在操作dataguard环境里,在操作undo表空间和数据时, 要特别注意,这里就是一个例子。

还有一个例子,为了节省空间,决定收缩undo的大小,步骤如下:
1.在primary上新建undotbs2表空间,查看并验证了在primary和standby上都有的表空间和相应的数据文件
2.在primary上更换在线undo表空间,如下命令

SQL> alter system set undo_tablespace = undotbs2 scope=both;
System altered
SQL>

在primary上查看
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS2

但在standby上查看
SQL> show parameter undo
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
undo_management string AUTO
undo_retention integer 900
undo_tablespace string UNDOTBS1

发现没有变化undo_tablespace,,于是想通过更改到spfile文件里,然后重启库,结果错误出现(用如山方法恢复),理论不应该报错的。以后找环境继续测试的。

------end------

linux

推荐阅读
  • 基于PgpoolII的PostgreSQL集群安装与配置教程
    本文介绍了基于PgpoolII的PostgreSQL集群的安装与配置教程。Pgpool-II是一个位于PostgreSQL服务器和PostgreSQL数据库客户端之间的中间件,提供了连接池、复制、负载均衡、缓存、看门狗、限制链接等功能,可以用于搭建高可用的PostgreSQL集群。文章详细介绍了通过yum安装Pgpool-II的步骤,并提供了相关的官方参考地址。 ... [详细]
  • 本文详细介绍了在ASP.NET中获取插入记录的ID的几种方法,包括使用SCOPE_IDENTITY()和IDENT_CURRENT()函数,以及通过ExecuteReader方法执行SQL语句获取ID的步骤。同时,还提供了使用这些方法的示例代码和注意事项。对于需要获取表中最后一个插入操作所产生的ID或马上使用刚插入的新记录ID的开发者来说,本文提供了一些有用的技巧和建议。 ... [详细]
  • ubuntu用sqoop将数据从hive导入mysql时,命令: ... [详细]
  • 本文介绍了在CentOS上安装Python2.7.2的详细步骤,包括下载、解压、编译和安装等操作。同时提供了一些注意事项,以及测试安装是否成功的方法。 ... [详细]
  • CEPH LIO iSCSI Gateway及其使用参考文档
    本文介绍了CEPH LIO iSCSI Gateway以及使用该网关的参考文档,包括Ceph Block Device、CEPH ISCSI GATEWAY、USING AN ISCSI GATEWAY等。同时提供了多个参考链接,详细介绍了CEPH LIO iSCSI Gateway的配置和使用方法。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • REVERT权限切换的操作步骤和注意事项
    本文介绍了在SQL Server中进行REVERT权限切换的操作步骤和注意事项。首先登录到SQL Server,其中包括一个具有很小权限的普通用户和一个系统管理员角色中的成员。然后通过添加Windows登录到SQL Server,并将其添加到AdventureWorks数据库中的用户列表中。最后通过REVERT命令切换权限。在操作过程中需要注意的是,确保登录名和数据库名的正确性,并遵循安全措施,以防止权限泄露和数据损坏。 ... [详细]
  • 本文详细介绍了使用 SQL Load 和 Excel 的 Concatenate 功能将数据导入 ORACLE 数据库的方法和步骤,同时介绍了使用 PL/SQL tools 将数据导入临时表的方法。此外,还提供了一个转链接,可参考更多相关内容。摘要共计XXX字。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 前景:当UI一个查询条件为多项选择,或录入多个条件的时候,比如查询所有名称里面包含以下动态条件,需要模糊查询里面每一项时比如是这样一个数组条件:newstring[]{兴业银行, ... [详细]
  • 如何在php中将mysql查询结果赋值给变量
    本文介绍了在php中将mysql查询结果赋值给变量的方法,包括从mysql表中查询count(学号)并赋值给一个变量,以及如何将sql中查询单条结果赋值给php页面的一个变量。同时还讨论了php调用mysql查询结果到变量的方法,并提供了示例代码。 ... [详细]
  • Oracle seg,V$TEMPSEG_USAGE与Oracle排序的关系及使用方法
    本文介绍了Oracle seg,V$TEMPSEG_USAGE与Oracle排序之间的关系,V$TEMPSEG_USAGE是V_$SORT_USAGE的同义词,通过查询dba_objects和dba_synonyms视图可以了解到它们的详细信息。同时,还探讨了V$TEMPSEG_USAGE的使用方法。 ... [详细]
  • 作者表示自己最近工作非常忙碌,无法抽出时间写作。他计划在未来的几天内写关于namespace与C#的名字解析以及数据库内容转化为excel文件下载的知识。 ... [详细]
author-avatar
磊仔2502898265
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有