iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >如何理解primary数据库standby
  • 672
分享到

如何理解primary数据库standby

2024-04-02 19:04:59 672人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关如何理解primary数据库standby,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、Read only/write模式打开物理s

这期内容当中小编将会给大家带来有关如何理解primary数据库standby,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

一、Read only/write模式打开物理standby
以read only 或read write模式打开物理standby,可以转移一些查询,备份之类的操作到standby数据库,以分担一些primary的压力。

1). standby数据库处于shutdown状态

  直接startup即可

2). standby数据库处于redo应用状态

  首先取消redo应用:

sql> alter database recover managed standby database cancel; SQL> alter database open

3). 从open状态再切换回redo应用,并不需要shutdown,只需启用redo应用即可

SQL> alter database recover managed standby database disconnect from session;

由于只读打开时就不能应用,虽然我们能够查询,但是查询的结果确是与primary 不同步的,这点大大降低了物理standby 做报表服务分担主库压力的可能性,对于这点呢,我们有两个解决方案:

a.改用逻辑standby b. 使用oracle 11G

二、管理影响standby的primary数据库事件

某些情况下,primary数据库的某些改动会自动通过redo数据传播到standby数据库,因此不需要在standby数据库做额外的操作,而某些情况,则需要手工调整。

下列事件会由redo传输服务及redo应用自动处理,不需要dba的干预:

  • ALTER DATABASE ENABLE|DISABLE THREAD语句

  • 修改表空间状态(例如read-write到read-only, online到offline)

  • 创建修改删除表空间或数据文件(前提条件:参数STANDBY_FILE_MANAGEMENT设置为AUTO)

以下事情则需要dba手工干预:

1. 添加、修改、删除数据文件或表空间

  Standby_file_management设置为manual

  不过需要注意一点,如果数据文件是从其它数据库复制而来,则不管Standby_file_management参数值如何设置,都必须同时复制到standby数据库,并注意要修改standby数据库的控件文件。

2. 重命名数据文件

  如果primary数据库重命名了一个或多个数据文件,该项不修改并不会自动传播到standby数据库,不管standby_file_management它是auto还是manual。

 A. SQL> alter tablespace webtbs offline; -- primary数据库操作

 B. 手工数据文件改名(操作系统) -- primary数据库操作

 C. SQL> alter tablespace webtbs rename datafile

      'webtbs01.dbf' to 'tbsweb01.dbf';

  SQL> alter tablespace WEBtbs online;

 D. 暂停redo应用,并shutdown --standby数据库操作

  SQL> alter database recover managed standby database cancel;

  SQL> shutdown immediate

 E. 手工将数据文件改名 -- standby数据库操作

 F. 重启standby,修改数据文件路径(数据字典) --standby数据库操作

  SQL> startup mount

  SQL> alter database rename file

      'webtbs01.dbf' to 'tbsweb01.dbf';

 G. 重新启动redo应用

  SQL> alter database recover managed standby database disconnect from session;

 H. 切换日志 -- primary数据库操作

  SQL> alter system switch logfile;

3. 添加或删除online redo logs

三、对open resetlogs的primary数据库standby的恢复


四、 监控primary/standby数据库

1. 与恢复进度相关的v$视图应用

A). 查看进程的活动状况 -- v$managed_standby

B). 确认redo应用进度 -- v$archive_dest_status

C). 检查归档文件路径及创建信息 -- v$archived_log

D). 查询归档历史 -- v$log_history
E). 查询备库上gap问题  --v$arcHived_gap,显示有关备用数据库上存档空缺的信息。 这个视图可以用来找出当前存档的差距,阻碍目前恢复化身的恢复

1.1、查看进程的活动状态

SQL> select process,status,thread#,sequence# from v$managed_standby order by 3,1;

PROCESS   STATUS          THREAD#  SEQUENCE#
--------- ------------ ---------- ----------
RFS       IDLE                  0          0
RFS       IDLE                  0          0
RFS       IDLE                  0          0
RFS       IDLE                  0          0
ARCH      CLOSING               1      13411
ARCH      CLOSING               1      13412
RFS       IDLE                  1      13413
ARCH      CLOSING               2       8849
ARCH      CLOSING               2       4101
MRP0      APPLYING_LOG          2       8850
RFS       IDLE                  2       8850

这里,process就是进程名,包括ARCH, RFS, MRP0等,对应英文解释如下:
Type of the process whose infORMation is being reported:
    RFS - Remote file server----接收进程
    MRP0 - Detached recovery server process----恢复进程
    MR(fg) - Foreground recovery session
    ARCH - Archiver process
    FGRD
    LGWR
    RFS(FAL)
    RFS(NEXP)
    LNS - Network server process
    
CLIENT_PROCESS 对应 Primary 数据库中的进程如 ARCH\LGWR等
SEQUENCE#:归档序号
STATUS 当前进程状态

重要的是status字段,表示当前的进程状态,中文解释如下:
ALLOCATED: 正在准备但还未连接主库
ATTACHED: 正在连接到主库
CONNECTED:已经连接到主库
IDLE:空闲
ERROR:失败的进程,需要关注
RECEIVING:归档日志接收中
OPENING:归档日志处理中
CLOSING:归档日志处理完,正在收尾中
WRITING: 进程在将REDO数据写向归档文件中
WaiT_FOR_LOG:等待新的REDO归档数据中
WAIT_FOR_GAP:归档有中断,正在等待中断的那部分REDO数据.
APPLYING_LOG:正在应用REDO归档数据到备库

1.2 查看REDO应用进度
SELECT DEST_NAME,ARCHIVED_THREAD#,ARCHIVED_SEQ#,APPLIED_THREAD#,APPLIED_SEQ#,DB_UNIQUE_NAME,STATUS FROM V$ARCHIVE_DEST_STATUS
 --WHERE STATUS='VALID'

DEST_NAME                 ARCHIVED_THREAD# ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ# DB_UNIQUE_NAME                 STATUS
------------------------- ---------------- ------------- --------------- ------------ ------------------------------ ---------
LOG_ARCHIVE_DEST_1                       0             0               0            0 cuuo                           VALID
LOG_ARCHIVE_DEST_2                       0             0               0            0 cuug                           VALID
LOG_ARCHIVE_DEST_3                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_4                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_5                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_6                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_7                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_8                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_9                       0             0               0            0 NONE                           INACTIVE
LOG_ARCHIVE_DEST_10                      0             0               0            0 NONE                           INACTIVE
STANDBY_ARCHIVE_DEST                     0             0               0            0 NONE                           VALID

11 rows selected.

1.3 查看归档文件的路径及创建信息
15:24:30 > SELECT NAME,CREATOR,THREAD#,SEQUENCE#,APPLIED,ARCHIVED,COMPLETION_TIME FROM V$ARCHIVED_LOG;

NAME                                                  CREATOR    THREAD#  SEQUENCE# APP ARC COMPLETIO
---------------------------------------------------- ------- ---------- ---------- --- --- ---------
/u01/app/oracle/oradata/cuuo/arch2_91_787689201.dbf   ARCH         1         91     YES YES 04-JUL-12                       
/u01/app/oracle/oradata/cuuo/arch2_92_787689201.dbf   LGWR         1         92     YES YES 04-JUL-12                    
/u01/app/oracle/oradata/cuuo/arch2_93_787689201.dbf   LGWR         1         93     YES YES 04-JUL-12      
                                   
/u01/app/oracle/oradata/cuuo/arch2_94_787689201.dbf   LGWR         1         94     YES YES 04-JUL-12

1.4 查看归档历史
SELECT FIRST_TIME,FIRST_CHANGE#,NEXT_CHANGE#,SEQUENCE# FROM V$LOG_HISTORY;

1.5 查看物理STANDBY数据库未接收的日志文件
--从primary 数据库获取

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#);


2 监控日志应用服务
2.1 查询当前数据的基本信息(V$DATABASE) 数据库角色、保护模式、保护级别
SELECT DATABASE_ROLE,DB_UNIQUE_NAME,OPEN_MODE,PROTECTION_MODE,PROTECTION_LEVEL,SWITCHOVER_STATUS FROM V$DATABASE;

查询failover后快速启动的信息:
SELECT FS_FAILOVER_STATUS,FS_FAILOVER_CURRENT_TARGET,FS_FAILOVER_THRESHOLD,FS_FAILOVER_OBSERVER_PRESENT FROM V$DATABASE;

2.2 查询REDO应用和REDO传输服务的活动状态
SELECT PROCESS,STATUS,THREAD#,SEQUENCE#,BLOCK#,BLOCKS FROM V$MANAGED_STANDBY;

2.3 查看REDO应用模式(物理STANDBY数据库)
SELECT RECOVERY_MODE FROM V$ARCHIVE_DEST_STATUS WHERE DEST_ID=2;
RECOVERY_MODE
-----------------------
MANAGED

--如果开启了实时应用,此处显示的状态应该为 MANAGED REAL TIME APPLY

2.4 DATAGUARD 事件监控
2.4.1 ALERT LOG
2.4.2 查询 V$DATAGUARD_STATUS 视图
16:03:17 > SELECT SEVERITY,DEST_ID,MESSAGE_NUM,ERROR_CODE,CALLOUT,MESSAGE FROM V$DATAGUARD_STATUS;

SEVERITY         DEST_ID MESSAGE_NUM ERROR_CODE CAL MESSAGE
------------- ---------- ----------- ---------- --- ----------------------------------------
Informational          0           1          0 NO  ARC0: Archival started
Informational          0           2          0 NO  ARC1: Archival started
Informational          0           3          0 NO  ARC0: Becoming the 'no FAL' ARCH
Informational          0           4          0 NO  ARC0: Becoming the 'no SRL' ARCH
Informational          0           5          0 NO  ARC1: Becoming the heartbeat ARCH
Control                0           6          0 YES Media Recovery Start: Managed Standby Recovery
Informational          0           7          0 NO  Managed Standby Recovery not using Real Time Apply


3. 与log应用相关的v$视图应用

A). 查询当前数据的基本信息 -- v$database

B). 检查应用模式 --v$archive_dest_status

C). Data guard事件 -- v$dataguard_status

五、调整物理standby log应用频率

调整应用频率说白了就是调整IO读取能力

5.1设置RECOVER并行度
在介质恢复或REDO应用期间都需要读取redo log ,默认都是串行恢复,
可以在RECOVER的时候加上PARALLEL子句来指定并行度。
RECOVER STANDBY DATABASE PARALLEL 2;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE PARALLEL 2 DISCONNECT FROM SESSION;

5.2 加快REDO 应用频率
修改 DB_BLOCK_CHECKING=FALSE 能够提高2倍的应用效率,设置为FALSE只适合物理STANDBY数据库,不适合primary数据库。

5.5 设置 parallel_execution_message_size
如果打开了并行恢复,适当加大parallel_execution_message_size大小也可以提升性能,不过需要注意的事
增加该参数会占用更多的内存。

5.5 优化磁盘I/O
恢复期间最大的性能瓶颈是I/O读写,某些情况下将 DISK_ASYNCH_IO设置为TRUE 即使用本地异步I/O能够降低并行读取的次数,加快整个恢复时间。

上述就是小编为大家分享的如何理解primary数据库standby了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: 如何理解primary数据库standby

本文链接: https://www.lsjlt.com/news/65904.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 如何理解primary数据库standby
    这期内容当中小编将会给大家带来有关如何理解primary数据库standby,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、Read only/write模式打开物理s...
    99+
    2022-10-19
  • Duplicate复制数据库并创建物理StandBy(pfile版本)
    1设定环境如下: Primary数据库 IP 172.17.22.16 SID orcl Standby数据库 IP 172.17.22.17 SID orcl 设置提示,以区分操作的位置 prim...
    99+
    2016-10-14
    Duplicate复制数据库并创建物理StandBy(pfile版本)
  • 如何理解数据库的B+树
    本篇内容介绍了“如何理解数据库的B+树”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1 数据从磁盘读写与内...
    99+
    2022-10-18
  • 如何理解mysqldump备份数据库
    这篇文章给大家介绍如何理解mysqldump备份数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mysqldump 用于导出mysql数据库的结构和数据。Usage: mysqld...
    99+
    2022-10-18
  • 如何理解数据库中的锁
    如何理解数据库中的锁,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。背景数据库中有一张叫后宫佳丽的表,每天都有几百万新的小姐姐插...
    99+
    2022-10-19
  • 如何理解MSSQL数据库后台进程
    本篇文章为大家展示了如何理解MSSQL数据库后台进程,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 与Oracle数据库类似,微软数据库产品MSSQL也有诸多后台...
    99+
    2022-10-19
  • 如何理解时间序列数据库InfluxDB
    如何理解时间序列数据库InfluxDB,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。   性能监控中的很多数据都是根据时间维度来生...
    99+
    2022-10-19
  • 如何理解MySQL数据库5层权限
    如何理解MySQL数据库5层权限,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。概述在MySQL中,如何查看一个用户被授予了那些权限呢 &nbs...
    99+
    2022-10-19
  • Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)
    过程和Duplicate复制数据库并创建物理StandBy类似,只是不需要重启数据库。 目的:创建standby,不重启源数据库 1设定环境如下: Primary数据库 IP 172.17.22.16 SID orcl ...
    99+
    2020-11-26
    Duplicate复制数据库并创建物理StandBy(spfile+不同实例名+不同路径)
  • 如何理解数据库读写分离架构?
    如何理解数据库读写分离架构?,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。RD:数据量太大,数据库扛不住了,帮忙申请一个从库,读写分离。D...
    99+
    2022-10-19
  • 如何理解数据库集群读写分离
    本篇内容介绍了“如何理解数据库集群读写分离”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!“灵魂拷问:解决数...
    99+
    2022-10-18
  • 如何理解ansible自动化运维数据库
    这期内容当中小编将会给大家带来有关如何理解ansible自动化运维数据库,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。   &nb...
    99+
    2022-10-19
  • 如何理解高性能数据库连接池
    本篇文章为大家展示了如何理解高性能数据库连接池,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。为什么要有连接池先看一下连接池所处的位置:应用框架的业务实现一般都会访问...
    99+
    2022-10-19
  • 如何增量备份恢复dataguard中standby端的数据
    这篇文章主要讲解了“如何增量备份恢复dataguard中standby端的数据”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何增量备份恢复dataguar...
    99+
    2022-11-30
    dataguard
  • Python数据库怎么理解
    本篇内容主要讲解“Python数据库怎么理解”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Python数据库怎么理解”吧!用Python创建的Zope是开放源代码领域使用最广泛和最容易理解的内容...
    99+
    2023-06-17
  • 如何了解Cassandra数据库
    这篇文章给大家介绍如何了解Cassandra数据库,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。Cassandra数据库,值得介绍的技术细节其实挺多的。因为它很多实现思路和关系型数据库...
    99+
    2022-10-19
  • 如何管理mysql数据库
    管理mysql数据库的方法可以打开mysql脚本,输入密码登录,通过以下命令进行管理:查看一下数据库列表:“# show databases;”进入某个数据库:“ # use databaseName;”查看数据库的表项:“#sh...
    99+
    2022-10-22
  • sql如何清理数据库表的数据
    SQL语言提供了多种方法来清理数据库表的数据,可以使用DELETE、TRUNCATE和DROP TABLE语句来删除表的数据...
    99+
    2023-09-04
    sql 数据库
  • 如何理解大数据时代的结构化存储数据库HBase
    本篇文章为大家展示了如何理解大数据时代的结构化存储数据库HBase,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。Hbase非常适合于非结构化数据存储的数据库,200...
    99+
    2022-10-19
  • 怎么理解数据库中dba_segments
    本篇内容主要讲解“怎么理解数据库中dba_segments”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么理解数据库中dba_segments”吧!dba_s...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作