首先介绍一些概念

  • physical standby database ,即直接从主库接受archivedlog然后做基于block的物理恢复,所以physical standby在物理文件一级完全等同于主库。
  • Logical standby database是把主库上传过来的archived log通过logminer技术,解析为sql语句,直接在logical standby上作基于sql的同步。

重要的进程

  • RFS (remote file server process) :接受由primary数据库的lgwr或arch通过oracle net传来的redo 数据,写入standby redo logs或standby archived redo logs
  • MRP(managed Recovery Process): 管理恢复进程。
  • FAL(fetch archive log): 在primary和standby数据库的两端同时配置。Primary端是fetch archive log server,standby端是fetch archive log client. FAL是自动探测primary/standby数据库之间archived logs是否有有间隔的一个进程。

一、开始做physical standby
1.1 主库上的准备工作
1、开启forced logging模式

alter database force logging;

2、开启归档模式和设置归档路径

alter system set log_archive_dest_1=’LOCATION=/u02/oradata/archive’scope=both;

3、为备库创建控制文件

alter database create standby controlfile as ‘目标路径’;

4、验证主库的数据文件,利用主库的备份创建备库
5、修改tnsnames.ora,加入备库信息:

STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.40.13.179)(PORT = 1521))
)

(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

6.为备库创建参数文件,可利用主库的spfile生成pfile然后拷贝到备库

1.2 创建备用数据库
1、修改从主库拷贝的备库参数文件
一般只须加这些参数:
standby_archive_dest=’d:oradataarchive’
standby_file_management=AUTO
remote_archive_enable=true
fal_server=’orcl’
fal_client=’standby’

需要修改的一些参数:
control_files:修改指向备库的控制文件
standby_archive_dest:指向备库的归档日志目录(从主库接收归档日志)
db_file_name_convert:在目录结构改变时需要设置,格式为(‘主库数据文件路径’,'从库数据文件路径’)
log_file_name_convert:在目录结构改变时需要设置,格式为(‘主库日志文件路径’,'从库日志文件路径’)
log_archive_dest_1:应指向从库的归档日志目录
standby_file_management:设置为AUTO
remote_archive_enable:设置为TURE(测试中发现加上这条就无法生成spfile,可能是系统默认值不要设置)
instance_name:应该修改为从库的数据库实例名(如在同一主机时,备库肯定无法和主库相同,肯定要修改)
lock_name_space:设置为备库实例名

2、如果是windows平台,利用oradim创建windows服务
3、配置监听进程及tnsnames
以下是备库tnsnaes.ora

ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.40.13.180)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

standby =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.40.144.79)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)

EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC))
)

(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)

4、创建备库SPfile(由修改过的Pfile生成)
create spfile from Pfile=’备库路径’;

5、启动physical standby database

startup nomount;
alter database mount standby database;

6、置于恢复状态

alter database recover managed standby database disconnect from session;

7、在主库上设置到备库的归档(在主库上操作)

alter system set log_archive_dest_2=’SERVICE=备库实例名’ scope=both;
alter system set log_archive_dest_state_2=enable scope=both;

1.3 验证physical standby database
当创建了物理备份数据库和设置日志传输服务,可在备份数据库上验证修改是否生效
1、查询现有归档日志

select name,applied from v$archived_log;

2、在主库上归档当前日志

alter system archive log current;

3、验证新日志是否接收到(同步骤1)
4、验证是否新的归档Redo日志已经被应用
select name,applied from v$archived_log ;

二、主备库切换
2.1 主库切到备库
1、 在主库

SQL> alter database commit to switchover to physical standby;
Database altered.

SQL> shutdown immediate
ORA-01507: database not mounted

ORACLE instance shut down.

以备用模式启用原主库

SQL> startup nomount;
ORACLE instance started.

SQL> alter database mount standby database;
SQL> select name,open_mode,PROTECTION_MODE,DATABASE_ROLE from v$database;

NAME OPEN_MODE PROTECTION_MODE DATABASE_ROLE
——— ———- ——————– —————-
PRIMARY MOUNTED MAXIMUM PERFORMANCE PHYSICAL STANDBY

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSION;
Database altered.

2、 在备库

SQL> alter database commit to switchover to primary;
SQL> shutdown immediate;

ORA-01507: database not mounted
ORACLE instance shut down.

SQL> startup
SQL> alter system switch logfile;

System altered.

三、日常管理
3.1 关于启动关闭顺序
启动的时候,先从库的listener,再启动从库,再启动主库的listener,再主库
关闭的时候,先关闭主库,再启动从库。

3.2 检查当前Primary库的保护模式

select protection_mode from v$database;

3.3 转换数据库模式为MAX AVAILABILITY:

shutdown immediate;
startup mount;
alter database set standby database to maximize performance;
alter database open;

3.4 测试Primary的归档能否应用到Standby
查看主数据库日志是否全部传送到副数据库,可查看v$archive_gap,更简单的方法是查看各自主机的日志归档目录的日志序号即可

select max(sequece#) from v$archived_log;
select file_name from v$datafile;
show parameter fal
show parameter lag
select * from v$archive_gap;

3.5 设置归档频率
如果要强制Primary一分种归档一次,那么设置Primary的初始化参数ARCHIVE_LAG_TARGET:

alter system set ARCHIVE_LAG_TARGET=60 scope=both;

3.6 停止Standby

alter database recover managed standby database cancel;
shutdown immediate;

3.7 切换到只读模式

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;
ALTER DATABASE OPEN READ ONLY;

3.8 切换回管理恢复模式

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 8 DISCONNECT FROM SESSION;

3.9 哪些归档日志没有归档到备用库
假设local归档目录的ID为1,remote的归档目录为2。

SELECT LOCAL.THREAD#, LOCAL.SEQUENCE# FROM
(SELECT THREAD#, SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=1) LOCAL
WHERE
LOCAL.SEQUENCE# NOT IN
(SELECT SEQUENCE# FROM V$ARCHIVED_LOG WHERE DEST_ID=2 AND
THREAD# = LOCAL.THREAD#);

3.10 注意事项:
1、如果在主库执行 alter database clear unarchived logfile或alter database open resetlogs ,则dataguard要重建。

2、在连续恢复模式下工作之前,需要保证之前所有的归档日志己经应用到备用库上。因为在连续恢复模式的情况下,oracle不会应用之前的归档日志,而只会应用后面陆续到来的归档日志。

3、出现归档日志gap时,需要找出相应的归档日志, 然后将这些归档日志copy到备用节点的standby_archive_dest和log_archive_dest目录下面。需要注意的是log_archive_dest目录下也需要copy。然后ALTER DATABASE RECOVER AUTOMATIC STANDBY DATABASE;

4、新建表、表空间、datafile都能通过日志应用到备库,但新建一个临时表空间,rename datafile 均不能应用到备库上.

5、应当实时察看standby库的alert文件,就能清晰明了地知道主备更新的情况。这也是排错的重要方法,切记!!

3.11 failover和switchover

Failover : 将主数据库offline,备用数据库online,这种操作由系统和软件失败引起。 即使在备用数据库上应用重做日志,也可能出现数据丢失的现象,除非备用数据库运行在 guaranteed protection 模式。 原主数据库重新使用时必须重新启动实例。 其它的备用数据库也需重新启动实例。

Switchover : 故意将主数据库offline,而将另一备用数据库online,它能够切换到备用数据库而不需同步操作。如:可使用 Switchover 完成系统的平滑升级。 即使在备用数据库上不应用重做日志,也不会造成数据的丢失。 数据库不需重新启动实例。这使主数据库几乎能立即在备用数据库上恢复它的功能,因此可经常进行定期维护而不需中断操作。   Failover和Switchover的区别为:当Failover发生,备用数据库切换为主数据库之后,它丢失了备用数据库的所有能力,也就是说,不能再返回到备用模式;而Switchover可以,备用数据库可切换为主数据库,也可从主数据库再切换回备用数据库。

3.12 相关视图

DBA_LOGSTDBY_EVENTS (Logical Standby Databases Only)
DBA_LOGSTDBY_LOG (Logical Standby Databases Only)
DBA_LOGSTDBY_NOT_UNIQUE (Logical Standby Databases Only)
DBA_LOGSTDBY_PARAMETERS (Logical Standby Databases Only)
DBA_LOGSTDBY_PROGRESS (Logical Standby Databases Only)
DBA_LOGSTDBY_SKIP (Logical Standby Databases Only)
DBA_LOGSTDBY_SKIP_TRANSACTION (Logical Standby Databases Only)
DBA_LOGSTDBY_UNSUPPORTED (Logical Standby Databases Only)
V$ARCHIVE_DEST
V$ARCHIVE_DEST_STATUS
V$ARCHIVE_GAP
V$ARCHIVED_LOG
V$DATABASE
V$DATAFILE
V$DATAGUARD_STATUS
V$LOG
V$LOGFILE
V$LOG_HISTORY
V$LOGSTDBY (Logical Standby Databases Only)
V$LOGSTDBY_STATS (Logical Standby Databases Only)
V$MANAGED_STANDBY (Physical Standby Databases Only)
V$STANDBY_LOG

DataGuard physical standby创建与维护相关推荐

  1. oracle 10g rac 配置物理dataguard系列4,配置 Oracle 10g RAC primary + RAC physical standby dataguard...

    MMA的东西,正好手上有机器,以前老偷懒不写过程,现在也要给写出来作手册....[@more@] 其实配置过程对老手来说可能就花在备份数据库上了呵呵 下面以prdb作为primary,lstdb作为s ...

  2. 【DataGuard】ORA-16014 and ORA-00312 Messages in Alert.log of Physical Standby

    安装完成dg后,发现alert 之中的有如下错误 ORA-16014: log 4 sequence# 44 not archived, no available destinations ORA-0 ...

  3. Oracle Data Gurad Physical Standby 相关说明

    Oracle Data Guard, 分逻辑Standby和物理Standby. 下面讲的是物理Standby 环境的搭建步骤. 有关Data Guard的一些概念性的理论知识,请参考我的blog,  ...

  4. oracle 11gr2 单机数据库使用asm,RHEL7上安装11gR2单机使用ASM存储搭建Physical Standby笔记...

    参考文献 一.背景介绍 接到需求要安装单机使用ASM存储的数据库,原本以为是轻车熟路的事情,emm,世界上哪有那么多轻松的活给你干,废话少说,进主题吧. 二. 关于安装思路 一直以来搭建的都是RAC+ ...

  5. oracle11gr2 active data guard,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...

    Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(三)之升级及rman l          第六部分: dataguard其它管理问题 一.滚动升级DG 升级概要 ...

  6. Steps to configure Oracle 11g Data Guard Physical Standby – Active Data Guard Part-I

    2019独角兽企业重金招聘Python工程师标准>>> Steps to configure Oracle 11g Data Guard Physical Standby – Act ...

  7. oracle adg维护,Oracle11gR2 Aactive DataGuard(手动)装配部署及维护文档(三)之升级及rman...

    Oracle11gR2 Aactive DataGuard(手动)安装部署及维护文档(三)之升级及rman l          第六部分: dataguard其它管理问题 一.滚动升级DG 升级概要 ...

  8. Oracle Data Guard搭建——Physical Standby Database

    文章说明 第一次完成了基础的物理备库搭建,便于后续回顾故写下该文章,有关DG的认知还很浅显,文章中不乏有许多的问题,若有错误或配置不完善的地方请大家指出,希望该文章能在大家搭建dg的过程中起到帮助. ...

  9. oracle 建分区索引_Oracle的分区表和Local索引创建与维护

    Oracle的分区表和Local索引创建与维护 SQL> connect eygle/eygle Connected. SQL> CREATE TABLE dbobjs 2  (OBJEC ...

最新文章

  1. Entrust - Laravel 用户权限系统解决方案
  2. python快速编程入门教程-半小时带你快速入门Python编程,Python快速入门教程
  3. spring各jar包作用(转载)
  4. 台湾大学林轩田机器学习基石课程学习笔记11 -- Linear Models for Classification
  5. python 中 for使用小技巧
  6. groovy使用范型的坑
  7. android开发设计平台,10款开发和设计应该安装的android应用
  8. java 一元线性回归_一元线性回归的java实现
  9. 基于python的文件加密传输_基于python实现文件加密功能
  10. python 提取列表元素_Python如何获取列表中元素的索引,python,获得,某个,index
  11. sql server死锁_如何报告SQL Server死锁事件
  12. PaddleClas模型训练/评估:数据准备
  13. 2021年全国大学生电子设计大赛题目
  14. 【点宽专栏】Dual Thrust 交易策略
  15. 2020年产品经理面试题
  16. kettle连接access问题总结
  17. 局长在计算机审计培训班的讲话,审计干部培训班开班典礼上的讲话
  18. WiFi共享精灵文件传输新功能:金币话费领不停
  19. 成成你好呀笔记整理(知识点合集一)
  20. 一套强大的vim配置文件+详细注释

热门文章

  1. [Spring 深度解析]第1章 Java基础
  2. 面试官:你说熟悉MySQL,那来谈谈InnoDB怎么解决幻读的?
  3. 差点败北!B站疯传3W次,堪称最强Java面试题,顺利拿下阿里P7的35K*16 薪 Offer...
  4. 运维中的MySQL数据库管理方式
  5. VBA word 文件类型html,vba设置word文档的格式
  6. 伤感网络验证系统_可验证云数据库架构与设计
  7. wps插件实用插件_6款实用PS插件合集,好用的PS插件都在这里!
  8. 计算机能破坏光盘中的系统吗,因为某些程序被破坏需要重装系统,用2000的盘重装可以吗?...
  9. linux能用airport吗_苹果下架最后两款 AirPort 产品,正式退出路由器市场
  10. 7-3 逆序的三位数 (Java)