当前位置:  数据库>oracle

11.2.0.3物理 Data Guard主备库切换(附加:ORA-16139错误的解决)

    来源: 互联网  发布时间:2017-06-02

    本文导语: DG分为主库和备库,我们也猜测其属于primary与standby 之间的互动,那么在primary 和standby 之间的切换: 然而切换又分为switchover和failovers,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary数据库也...

DG分为主库和备库,我们也猜测其属于primary与standby 之间的互动,那么在primary 和standby 之间的切换:

然而切换又分为switchover和failovers,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary数据库也不再是该data guard配置的一部分了。 

针对不同standby(逻辑或物理)的处理方式也不尽相同。 

角色转换前的准备工作: 

1检查各数据库的初始化参数,主要确认对不同角色相关的初始化参数都进行了正确的配置。

2确保可能成为primary数据库的standby服务器已经处于archivelog模式。

3确保standby数据库的临时文件存在并匹配primary数据库的临时文件

4确保standby数据库的RAC实例只有一个处于open状态。(对于rac结构的standby数据库,在角色转换时只能有一个实例startup。其它rac实例必须统统shutdown,待角色转换结束后再startup) 

Switchover; 

无损转换,通常是用户手动触发或者有计划的让其自动触发,比如硬件升级,软件升级之类的。通常它给你带来的工作量非常小并且都是可预计的。其执行分两个阶段,第一步, primary数据库转换为tandby角色,第二步,standby数据库(之一)转换为primary角色,primary和standby只是简单的角色互换,

Failover:

不可预知原因导致primary 数据库故障并且短期内不能恢复就需要failover。如果是这种切换那你就要小心点了,有可能只是虚惊一场,但如果运气不好又没有完备的备份恢复策略而且primary 数据并非处于最大数据保护或最高可用性模式地话,这种情况下呢丢失数据有可能是难免的,并且如果其故障未能修复,那它甚至连快速修复成为standby 的机会也都失去了; 

在执行failover 之前,尽可能将原primary 数据库的可用redo 都复制到standby 数据库。

注意,如果要转换角色的standby处于maximum protection模式,需要你首先将其切换为maximum performance模式 

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZEPERFORMANCE; 

等standby 切换为新的primary 之后,你可以再随意更改数据库的保护模式。 

maximum protection模式需要确保绝无数据丢失,因此其对于提交事务对应的redo 数据一致性要求非常高,另外,如果处于maximum protection模式的primary数据库仍然与standby数据库有数据传输,此时alter database语句更改standby数据库保护模式会失败,这也是由maximum protection 模式特性决定的。 

一、物理standby的 Switchover

注意操作步骤的先后,很关键的哟。

1、检查是否支持switchover 操作--primary 数据库操作。

2、登陆primary 数据库,查询v$database 视图的switchover_status 列。 

情况(一):存在gap问题 

解决物理standby Gap问题

SQL> SELECT * FROM V$ARCHIVE_GAP; 

THREAD#LOW_SEQUENCE# HIGH_SEQUENCE#

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

1 7 10

 

--到主库查询,确认一下:

SQL> SELECT NAME FROM V$ARCHIVED_LOG WHERE THREAD#=1AND DEST_ID=1 AND SEQUENCE# BETWEEN 7 AND 10;

 

NAME

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

/primary/thread1_dest/arcr_1_7.arc

/primary/thread1_dest/arcr_1_8.arc

/primary/thread1_dest/arcr_1_9.arc

 

--把这些归档copy到物理standby,并使用ALTERDATABASE REGISTER LOGFILE应用这些归档:

 

SQL> ALTER DATABASE REGISTER LOGFILE'/physical_standby1/thread1_dest/arcr_1_7.arc';

SQL> ALTER DATABASE REGISTER LOGFILE'/physical_standby1/thread1_dest/arcr_1_8.arc';

SQL> ALTER DATABASE REGISTER LOGFILE '/physical_standby1/thread1_dest/arcr_1_9.arc'; 

情况(二):没有gap 

SQL>selects witchover_status from v$database; 

SWITCHOVER_STATUS

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

TO STANDBY 

如果该列值为"TO STANDBY"则表示primary数据库支持转换为standby角色,否则的话你就需要重新检查一下Data Guard配置,比如看看LOG_ARCHIVE_DEST_n之类参数值是否正确有效等等。 

2、启动switchover --primary 数据库操作

首先将primary 转换为standby 的角色,通过下列语句: 

SQL> alter database commit to switchover to physical standby 

Database altered. 

01:57:06 SQL>shutdown immediate;

ORA-01092: Oracle instance terminated. Disconnection forced

 

SQL>startup mount;

ORACLE instance started.

 

Total System Global Area 417546240bytes

Fixed Size 2228944bytes

Variable Size 289410352bytes

Database Buffers 121634816bytes

Redo Buffers 4272128bytes

Database mounted. 

语句执行完毕后,primary数据库将会转换为standby数据库,并自动备份控制文件到trace

推荐阅读:

RMAN 配置归档日志删除策略

Oracle基础教程之通过RMAN复制数据库

RMAN备份策略制定参考内容

RMAN备份学习笔记

Oracle数据库备份加密 RMAN加密


    
 
 

您可能感兴趣的文章:

 
本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 大容量硬盘分区表的起始物理地址与结束物理地址的疑问?
  • 求教:关于内核物理地址和虚拟地址的问题
  • 怎样访问物理地址空间?????????
  • 开源物理项目 OSP
  • 在驱动里面,如何读取物理地址为0xFFFFFFF0 的内容
  • 高手请进:32位虚拟地址经过页机制转换以后得到的物理地址是32位吗?那物理内存又是怎样编址的呢?
  • 怎样在Linux下读取物理内存
  • 怎么在linux下改变网卡物理IP
  • 虚拟地址→物理地址变换问题
  • 虚拟机上apache不能被物理机访问???
  • 在uCLinux下可以访问实际的物理地址吗?
  • 请教一个关于内存分配的问题(系统和DMA共享一块物理内存空间)
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址?
  • linux用户态内存的物理地址问题?
  • 如何不写驱动通过应用程序获得一块内存并取得它的物理地址? iis7站长之家
  • 开源物理引擎 ODE
  • 谁搞得灵清虚拟地址与物理地址!帮帮忙啦
  • 哪位前辈给解释下linux下虚拟内存和物理内存的关系!
  • C# WinForm编程获取文件物理路径的方法
  • Linux内存映射 物理地址映射到虚拟地址


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,