data gurad物理备份方式中的failover转换

切换分为switchover和failover,前者是无损切换,不会丢失数据,而后者则有可能会丢失数据,并且切换后原primary 数据库也不再是该data guard 配置的一部分了.针对不同standby(逻辑或物理)的处理方式也不尽相同

角色转换前的准备工作

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

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

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

确保standby 数据库的RAC 实例只有一个处于open 状态。(对于rac 结构的standby 数据库,在角

色转换时只能有一个实例startup。其它rac 实例必须统统shutdown,待角色转换结束后再startup)

Switchover:

无损转换,通常是用户手动触发或者有计划的让其自动触发,比如硬件升级啦,软件升级啦之类的。

通常它给你带来的工作量非常小并且都是可预计的。其执行分两个阶段,第一步, primary 数据库转换为

standby 角色,第二步,standby 数据库(之一)转换为primary 角色,primary 和standby 只是简单的角色互换.

Failover:

不可预知原因导致primary 数据库故障并且短期内不能恢复就需要failover。

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

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

performance模式.转换standby 数据库到MAXIMIZE PERFORMANCE 执行下列SQL 即可:

SQL> ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;

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

maximum protection 模式需要确保绝无数据丢失,因此其对于提交事务对应的redo 数据一致性要求非常高,

另外,如果处于maximum protection 模式下primary 数据库仍然与standby 数据库有数据传输,此时alter

database 语句更改standby 数据库保护模式会失败,这也是由maximum protection 模式特性决定的。

下面演示failover的过程:

一物理standby的failover

注意几点:

failover 之后,原primary 数据库默认不再是data guard 配置的一部分。

多数情况下,其它逻辑/物理standby 数据库不直接参与failover 的过程,

因此这些数据库不需要做任何操作。

某些情况下,新的primary 数据库配置之后,需要重新创建其它所有的standby 数据库。

另外,如果待转换角色的standby 处于maximum protection 或maximum availability 模式的话,

归档日志应该是连续存在的.

一般情况下failover 都是表示primary 数据库瘫痪,因此这种类型的切换基本上不需

要primary数据库做什么操作。

1、检查归档文件是否连续

查询待转换standby 数据库的V$ARCHIVE_GAP 视图,确认归档文件是否连接:

SQL> SELECT THREAD#, LOW_SEQUENCE#, HIGH_SEQUENCE# FROM V$ARCHIVE_GAP;

未选定行

如果返回的有记录,按照列出的记录号复制对应的归档文件到待转换的standby 服务器。这一步非常重

要,必须确保所有已生成的归档文件均已存在于standby 服务器,不然可能会数据不一致造成转换时报错。

文件复制之后,通过下列命令将其加入数据字典:

SQL> ALTER DATABASE REGISTER PHYSICAL LOGFILE 'filejytest1';

2、检查归档文件是否完整

分别在primary/standby 执行下列语句:

SQL> select distinct thread#,max(sequence#) over(partition by thread#) a from v$archived_log;

该语句取得当前数据库各线程已归档文件最大序号,如果primary 与standby 最大序号不相同,必须将

多出的序号对应的归档文件复制到待转换的standby 服务器。不过既然是failover,有可能primary 数据库此时已经无法打开,甚至无法访问.

3、启动failover执行下列语句:

SQL> alter database recover managed standby database finish force;

数据库已更改。

FORCE 关键字将会停止当前活动的RFS 进程,以便立刻执行failover。

剩下的步骤就与前面switchover 很相似了

4、切换物理standby 角色为primary

SQL> alter database commit to switchover to primary;

数据库已更改。

5、启动新的primary 数据库。

如果当前数据库已mount,直接open 即可,如果处于read-only 模式,需要首先shutdown immediate,然

后再直接startup。

SQL> alter database open;

数据库已更改

角色转换工作完成。剩下的是补救措施(针对原primary 数据库),由于此时primary 数据库已经不再是

data guard配置的一部分,我们需要做的就是尝试看看能否恢复原primary数据库,将其改造为新的standby

服务器。

时间: 2024-08-07 14:45:13

data gurad物理备份方式中的failover转换的相关文章

data gurad物理备份方式下以READ ONLY/WRITE模式打开物理STANDBY

一.READONLY/WRITE模式打开物理STANDBY 物理standby可以有效分担primary 数据库压力,提升资源利用,实际上说的就是这个.以read only 或read write 模式打开物理standby,你可以转移一些查询任何啦, 备份之类的操作到standby 数据库,以这种方式来分担一些primary 的压力. 下面我们来演示一下,如何切换standby 数据库的打开模式,其实,非常 简单.例如,以Read-only 模式打开物理standby: 这里要分两种情况: 1

data gurad物理备份方式下重命名数据文件

重命名数据文件 如果primary 数据库重命令了一个或多个数据文件,该项修改并不会自动传播到standby 数据库. 如果你想让standby 和数据文件与primary 保持一致,那你也只能自己手工操作了.就算STANDBY_FILE_MANAGEMENT 也帮不上忙啦,不管它是auto 还是manual. 下面通过示例做个演示: A).将重命名的数据文件所在表空间offline --primary 数据库操作 SQL> alter tablespace users offline; Tab

data gurad物理备份方式下standby_file_management为manual时修改表空间的操作

STANDBY_FILE_MANAGEMENT设置为MANUAL,增加及删除表空间和数据文件 SQL> show parameter standby_file_management NAME                                 TYPE        VALUE ------------------------------------ ----------- ------------------------------ standby_file_management

data gurad物理备份方式下standby_file_management为auto时修改表空间的操作

STANDBY_FILE_MANAGEMENT设置为AUTO 增加及删除表空间和数据文件 我们先来看看初始化参数的设置: ----standby 数据库操作 SQL> show parameter standby_file NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ standby_file_management string AUTO A).增加新

为MySQL选择合适的备份方式

数据库的备份是极其重要的事情.如果没有备份,遇到下列情况就会抓狂: UPDATE or DELETE whitout where- table was DROPPed accidentally- INNODB was corrupt- entire datacenter loses power- 从数据安全的角度来说,服务器磁盘都会做raid,MySQL本身也有主从.drbd等容灾机制,但它们都无法完全取代备份.容灾和高可用能帮我们有效的应对物理的.硬件的.机械的故障,而对我们犯下的逻辑错误却无

详解Ntbackup的五种备份方式(中)

三.增量备份(Incremental Backup) 从字面上理解,增量,即对比上次而增加的部分,增量备份是一种效率很高的备份方式,因为它仅仅备份上次修改过,也就是被标记了存档属性的文件,而不是将所选择的文件全部备份.在上一节我们已经讨论过,当经过一次正常备份后,会把文件的存档标记清除,而增量备份则是仅仅针对有存档标记的文件进行备份,因为程序认为文件既然已经打上存档标记,那就意味着已被修改,自然就需要再次备份.所以,通常增量备份不会被单独使用,而是会和正常备份同时使用. 有这样一个场景.我这里有

MySQL · 物理备份 · Percona XtraBackup 备份原理

前言 Percona XtraBackup(简称PXB)是 Percona 公司开发的一个用于 MySQL 数据库物理热备的备份工具,支持 MySQl(Oracle).Percona Server 和 MariaDB,并且全部开源,真可谓是业界良心.我们 RDS MySQL 的物理备份就是基于这个工具做的. 项目的 blueprint 和 bug 讨论放在 Launchpad,代码之前也放在 Launchpad,现在已经迁移到 Github 啦,项目更新发布非常快,感兴趣的可以关注 :-) 本文

《SQL Server企业级平台管理实践》读书笔记——关于SQL Server数据库的备份方式

原文:<SQL Server企业级平台管理实践>读书笔记--关于SQL Server数据库的备份方式 数据备份一直被认为数据库的生命,也就是一个DBA所要掌握的主要技能之一,本篇就是介绍SQL Server备份原则,SQL Server数据库分为数据文件和日志文件.为了使得数据库能够恢复一致点,备份不仅需要拷贝数据数据文件里的内容,还要拷贝日志文件里的内容.那么根据每次备份的目标不同,我们可以将备份分为数据备份和日志备份. 数据备份的范围可以是完整的数据库.部分数据库.一组文件或文件组.所以根

Hyper-V的备份方式——snapshot虚拟机快照

我们可以先回顾一下前几年玩vmware workstation或者VPC等产品的时候是个什么样的情景.配置好了虚拟机各项参数,搭好了实验环境,就要开始做测试了,打住,我们还要做什么? snapshot!OK,看来您是真玩过虚拟机,呵呵...没错,虚拟机快照可以完整地保存当前虚拟机上运行的系统,应用程序甚至内存使用的状态.当虚拟机发生系统故障等问题时我们只要选择还原到合适的时间点上的正常的状态就又可以使用了.很方便很强大. 我们来简单地看一下如何在Hyper-V上为虚拟机抓取一次快照: 这里我新建