返回顶部
首页 > 资讯 > 数据库 >DG日常维护是怎么样的
  • 351
分享到

DG日常维护是怎么样的

2024-04-02 19:04:59 351人浏览 安东尼
摘要

本篇文章给大家分享的是有关DG日常维护是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。DG日常维护第一部分 日常维护 一 正确打

本篇文章给大家分享的是有关DG日常维护是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。

DG日常维护


第一部分 日常维护

一 正确打开主库和备库

1 主库:

sql> STARTUP MOUNT;

SQL> ALTER DATABASE ARCHiveLOG;

SQL> ALTER DATABASE OPEN;

2 备库:

SQL> STARTUP MOUNT;

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE DISCONNECT FROM SESSioN;

二 正确关闭顺序  

1 备库:

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE CANCEL;

SQL>SHUTDOWN IMMEDIATE;

2 主库

SQL>SHUTDOWN IMMEDIATE; ---先于standby执行

三 备库Read-Only模式打开

当前主库正常OPEN状态

备库处于日志传送状态.

1 在备库停止日志传送

SQL> alter database recover managed standby database cancel;

2 备库Read-only模式打开

SQL> alter database open read only;

3 备库回到日志传送模式

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

Media recovery complete.

SQL> select status from v$instance;

STATUS

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

MOUNTED

四 日志传送状态监控

1 主库察看当前日志状况

SQL> select sequence#,status from v$log;

SEQUENCE# STATUS

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

51 ACTIVE

52 CURRENT

50 INACTIVE

2 备库察看RFS(Remote File Service)接收日志情况和MRP应用日志同步主库情况

SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;

PROCESS STATUS THREAD# SEQUENCE# BLOCK# BLOCKS

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

ARCH CONNECTED 0 0 0 0

ARCH CONNECTED 0 0 0 0

RFS RECEIVING 0 0 0 0

MRP0 WaiT_FOR_LOG 1 52 0 0

RFS RECEIVING 0 0 0 0

可以看到备库MPR0正等待SEQUENCE#为52的redo.

3 察看备库是否和主库同步

SQL> SELECT ARCHIVED_THREAD#, ARCHIVED_SEQ#, APPLIED_THREAD#, APPLIED_SEQ#  FROM V$ARCHIVE_DEST_STATUS;

ARCHIVED_THREAD# ARCHIVED_SEQ# APPLIED_THREAD# APPLIED_SEQ#

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

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

0 0 0 0

1 51 1 50

可以看到备库已经将SEQUENCE#51的日志归档,已经将SEQUENCE#50的redo应用到备库.

由于已经将SEQUENCE#51的日志归档,所以SEQUENCE#51以前的数据不会丢失.

4 察看备库已经归档的redo

SQL> SELECT REGISTRAR, CREATOR, THREAD#, SEQUENCE#, FIRST_CHANGE#,NEXT_CHANGE# FROM V$ARCHIVED_LOG;

REGISTR CREATOR THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

SRMN SRMN 1 37 572907 573346

RFS ARCH 1 38 573346 573538

RFS ARCH 1 39 573538 573623

RFS ARCH 1 40 573623 573627

RFS ARCH 1 41 573627 574326

RFS ARCH 1 42 574326 574480

RFS ARCH 1 43 574480 590971

RFS ARCH 1 44 590971 593948

RFS FGRD 1 45 593948 595131

RFS FGRD 1 46 595131 595471

FGRD FGRD 1 46 595131 595471

REGISTR CREATOR THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

RFS ARCH 1 47 595471 595731

RFS ARCH 1 48 595731 601476

RFS ARCH 1 49 601476 601532

RFS ARCH 1 50 601532 606932

RFS ARCH 1 51 606932 607256

5 察看备库已经应用的redo

SQL> SELECT THREAD#, SEQUENCE#, FIRST_CHANGE#, NEXT_CHANGE# FROM V$LOG_HISTORY;

THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

1 1 366852 368222

1 2 368222 369590

1 3 369590 371071

1 4 371071 372388

1 5 372388 376781

1 6 376781 397744

1 7 397744 407738

1 8 407738 413035

1 9 413035 413037

1 10 413037 413039

1 11 413039 413098

THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

1 12 413098 428161

1 13 428161 444373

1 14 444373 457815

1 15 457815 463016

1 16 463016 476931

1 17 476931 492919

1 18 492919 505086

1 19 505086 520683

1 20 520683 530241

1 21 530241 545619

1 22 545619 549203

THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

1 23 549203 552403

1 24 552403 553230

1 25 553230 553398

1 26 553398 553695

1 27 553695 554327

1 28 554327 557569

1 29 557569 561279

1 30 561279 561385

1 31 561385 566069

1 32 566069 566825

1 33 566825 570683

THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

1 34 570683 571627

1 35 571627 571867

1 36 571867 572907

1 37 572907 573346

1 38 573346 573538

1 39 573538 573623

1 40 573623 573627

1 41 573627 574326

1 42 574326 574480

1 43 574480 590971

1 44 590971 593948

THREAD# SEQUENCE# FIRST_CHANGE# NEXT_CHANGE#

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

1 45 593948 595131

1 46 595131 595471

1 47 595471 595731

1 48 595731 601476

1 49 601476 601532

1 50 601532 606932

1 51 606932 607256

可以看到备库已经将SEQUENCE#为51的归档文件应用到备库.

6 察看备库接收,应用redo数据过程.

SQL> SELECT MESSAGE FROM V$DATAGUARD_STATUS;

MESSAGE

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

ARC0: Archival started

ARC0: Becoming the 'no FAL' ARCH

ARC0: Becoming the 'no SRL' ARCH

ARC1: Archival started

ARC1: Becoming the heartbeat ARCH

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[1]: Assigned to RFS process 19740

RFS[1]: Identified database type as 'physical standby'

Primary database is in MAXIMUM PERFORMANCE mode

Attempt to start background Managed Standby Recovery process

MESSAGE

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

MRP0: Background Managed Standby Recovery process started

Managed Standby Recovery not using Real Time Apply

Clearing online redo logfile 7 /oraguard/redo1/redo_7_1.log

Clearing online redo logfile 7 complete

Media Recovery Waiting for thread 1 sequence 47

RFS[1]: No standby redo logfiles created

Redo Shipping Client Connected as PUBLIC

-- Connected User is Valid

RFS[2]: Assigned to RFS process 19746

RFS[2]: Identified database type as 'physical standby'

Primary database is in MAXIMUM PERFORMANCE mode

MESSAGE

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

Committing creation of archivelog '/arch/1_47_552308270.arc'

Media Recovery Log /arch/1_47_552308270.arc

Media Recovery Waiting for thread 1 sequence 48

MRP0: Background Media Recovery cancelled with status 16037

MRP0: Background Media Recovery process shutdown

Managed Standby Recovery Canceled

Attempt to start background Managed Standby Recovery process

MRP0: Background Managed Standby Recovery process started

Managed Standby Recovery not using Real Time Apply

Media Recovery Waiting for thread 1 sequence 48

RFS[1]: No standby redo logfiles created

MESSAGE

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

Committing creation of archivelog '/arch/1_48_552308270.arc'

Media Recovery Log /arch/1_48_552308270.arc

Media Recovery Waiting for thread 1 sequence 49

RFS[1]: No standby redo logfiles created

Committing creation of archivelog '/arch/1_49_552308270.arc'

Media Recovery Log /arch/1_49_552308270.arc

Media Recovery Waiting for thread 1 sequence 50

RFS[1]: No standby redo logfiles created

Committing creation of archivelog '/arch/1_50_552308270.arc'

Media Recovery Log /arch/1_50_552308270.arc

Media Recovery Waiting for thread 1 sequence 51

MESSAGE

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

RFS[1]: No standby redo logfiles created

Committing creation of archivelog '/arch/1_51_552308270.arc'

Media Recovery Log /arch/1_51_552308270.arc

Media Recovery Waiting for thread 1 sequence 52

可以看到RFS接收到sequence#为51的归档文件并存至备库归档目录/arch/1_51_552308270.arc.

oracle自动应用文件/arch/1_51_552308270.arc进行备库与主库同步

Oracle继续等待主库sequence 52的归档文件

五 备库归档目录维护

1 找到备库归档目录

SQL> show parameter log_archive_dest_1

NAME TYPE

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

VALUE

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

log_archive_dest_1 string

LOCATION=/arch

VALID_FOR=(ALL_LOGFILES,ALL_RO

LES)

DB_UNIQUE_NAME=ora2

log_archive_dest_10 string

2 维护策略

每周2,4,7删除已经应用的归档文件

具体参见附录二

第二部分 主库正常切换


一 人工干预主库正常切换

1 在主库端检验数据库可切换状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

TO STANDBY

1 row selected

SWITCHOVER_STATUS:TO STANDBY表示可以正常切换.

如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE,表示当前有会话处于ACTIVE状态

2 开始主库正常切换

如果SWITCHOVER_STATUS的值为TO STANDBY 则:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY;

如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE 则:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PHYSICAL STANDBY WITH SESSION SHUTDOWN;

成功运行这个命令后,主库被修改为备库

3 重启先前的主库


SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP MOUNT;

4 在备库验证可切换状态

SQL> SELECT SWITCHOVER_STATUS FROM V$DATABASE;

SWITCHOVER_STATUS

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

TO_PRIMARY

1 row selected

5 将目标备库转换为主库

如果SWITCHOVER_STATUS的值为TO STANDBY 则:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY;

如果SWITCHOVER_STATUS的值为SESSIONS ACTIVE 则:

SQL> ALTER DATABASE COMMIT TO SWITCHOVER TO PRIMARY WITH SESSION SHUTDOWN;

成功运行这个命令后,备库被修改为主库

6 重启目标备库

SQL> SHUTDOWN IMMEDIATE;

SQL> STARTUP;

7 先前主库启动日志传送进程

SQL> alter database recover managed standby database disconnect;

总结: 这样主库的一次正常切换完成.切换后的状态,原先的主库变为备库,原先的备库变为主库.

二 通过运行脚本实现主库正常切换

1 主库切换为备库

在主库上运行脚本

/admin/dataGuard/switchover/primary_to_standby.sh

2 备库切换为主库

在备库上运行脚本

/admin/dataGuard/switchover/standby_to_primary.sh

脚本1成功运行后,再运行脚本2,不能同时运行两个脚本.

经过这次切换后原来的主库变为备库,原先的备库变为主数据并且OPEN对应用提供服务.

3 复原最初状态

在原备库上运行脚本

/admin/dataGuard/switchover/primary_to_standby.sh

成功完成后

在原主库上运行脚本

/admin/dataGuard/switchover/standby_to_primary.sh

第三部分 主库灾难切换

一 人工干预主库灾难切换

二 通过运行脚本实现主库灾难切换

SQL>alter database recover managed standby database cancel;

SQL>shutdown immediate

SQL>startup mount

SQL>ALTER DATABASE SET STANDBY DATABASE TO MAXIMIZE PERFORMANCE;

SQL>alter database recover managed standby database finish;

-- switch

SQL>alter database commit to switchover to primary with session shutdown;

-- open

SQL>shutdown immediate

SQL>startup

附:

一 有选择察看redo传送与应用情况

select message from v$dataguard_status

where message_num>&message_num;

二 备库归档目录维护脚本

在crontab 中定制每日执行removeCommand.sh即可。

流程:每日11:50PM执行removeCommand.sh

假设今日2005-04-05 则删除04-04和04-03两日已应用归档日志.保留今日已应用归档日志

[oracle@db_gurid admin]$ crontab -l

50 23 * * * sh /oraguard/admin/removeCommand.sh>>removeArch.log

##################

[oracle@db_gurid admin]$ cat removeCommand.sh

#!/bin/sh

export ORACLE_BASE=/ora10g/app

export ORACLE_HOME=$ORACLE_BASE/product/10.1.0/db_1

export ORACLE_SID=ora2

cd /oraguard/admin

$ORACLE_HOME/bin/sqlplus /nolog<<EOF

conn / as sysdba

@/oraguard/admin/removeArch.sql

EOF

chmod +x /oraguard/admin/removeArch.sh

/oraguard/admin/removeArch.sh>>removeArch3.log

##################

[oracle@db_gurid admin]$ cat removeArch.sql

set feed off

set heading off

set echo off

spool removeArch.sh

select 'rm '||name from v$archived_log where applied='YES' and completion_time>trunc(sysdate-3) and completion_time<trunc(sysdate);

spool off

以上就是DG日常维护是怎么样的,小编相信有部分知识点可能是我们日常工作会见到或用到的。希望你能通过这篇文章学到更多知识。更多详情敬请关注编程网数据库频道。

您可能感兴趣的文档:

--结束END--

本文标题: DG日常维护是怎么样的

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

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

猜你喜欢
  • DG日常维护是怎么样的
    本篇文章给大家分享的是有关DG日常维护是怎么样的,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。DG日常维护第一部分 日常维护 一 正确打...
    99+
    2024-04-02
  • Oracle数据库日常维护是怎么样的
    这篇文章给大家介绍Oracle数据库日常维护是怎么样的,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。在Oracle数据库运行期间,DBA应该对数据库的运行日志及表空间的使用情况进行监控...
    99+
    2024-04-02
  • 代理IP日常是怎么维护的
    本篇内容介绍了“代理IP日常是怎么维护的”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!1、代理IP获取接口。爬虫免费代理IP可以使用Prox...
    99+
    2023-06-20
  • ORACLE分区表日常维护方法是什么
    这篇文章主要讲解了“ORACLE分区表日常维护方法是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“ORACLE分区表日常维护方法是什么”吧!1、测试表准...
    99+
    2024-04-02
  • 数据库日常维护常用的脚本语句是什么
    小编给大家分享一下数据库日常维护常用的脚本语句是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!  1、数据库备份操作:  d...
    99+
    2024-04-02
  • web数据安全的维护日常工作是什么
    web数据安全的维护日常工作是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。web数据安全的维护日常是什么现在所有的企业和个人都是在使用web登录进行日常工作的操作,web...
    99+
    2023-06-07
  • 美国vps租用怎么进行日常维护
    美国vps租用进行日常维护的方法:1、对美国vps的内存使用情况进行检测,防止VPS出现系统资源不足的情况发生;2、对美国vps的网站访问日志进行排查,降低被恶意网络攻击的风险;3、检查美国vps的硬盘使用情况,避免因硬盘空间不足导致死机;...
    99+
    2024-04-02
  • 数据服务器怎么进行日常维护
    数据服务器日常维护的方法:1、及时安装系统补丁,能避免漏洞被蓄意攻击利用;2、安装防火墙,并根据自身的网络环境对防火墙进行适当的配置;3、安装网络杀毒软件并及时升级,能有效控制病毒传播;4、关闭不需要的服务和端口,如没有必要开的TCP端口;...
    99+
    2024-04-02
  • 电脑怎么实现日常保养和维护
    这篇文章主要介绍了电脑怎么实现日常保养和维护,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。保持正常开关电脑开机的顺序是,先打开外设(如打印机,扫描仪等)和显示器的电源,然后再...
    99+
    2023-06-28
  • Oracle DG搭建是怎样的
    这期内容当中小编将会给大家带来有关Oracle DG搭建是怎样的,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。Oracle DG搭建(冷备方式)(1) 主库:开启归档模式...
    99+
    2024-04-02
  • mongodb维护文档的方法是怎样的
    mongodb维护文档的方法是怎样的,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。Mongodb CPU利用率超高,负载超高。 ...
    99+
    2024-04-02
  • Oracle日常巡检维护中常用的一些STUFF
    查看oracle版本select banner from sys.v_$version;-------------------------------------查看不同用户的连接数selec&#...
    99+
    2024-04-02
  • 服务器托管后日常维护需要怎么做
    服务器托管后日常维护的方法:1、需要及时更改服务器的管理密码,避免被黑客轻易破解利用;2、不熟悉服务器防火墙配置规则,不要随意修改防火墙设置,防止出现人为操作不当的情况发生;3、需要做好服务器数据备份操作,避免数据丢失无法恢复;4、需要定期...
    99+
    2024-04-02
  • DG的搭建记录是怎样的
    DG的搭建记录是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。 单实例DG搭建手册规划ipdb_named...
    99+
    2024-04-02
  • Navicat for MySQL 管理和维护表是怎样的
    Navicat for MySQL 管理和维护表是怎样的,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。Navicat 是数据库管理工具,其针对...
    99+
    2024-04-02
  • DBA日常维护SQL脚本_自己编写的
    查询碎片程度高(实际使用率小于30%)的表,也就是可以收缩的表 条件为什么block>100,因为一些很小的表,只有几行数据实际大小很小,但是block一次性分配就是5个(11g开始默认一次性分配1M...
    99+
    2024-04-02
  • EBS DBA日常维护使用的sql有哪些
    这篇文章给大家分享的是有关EBS DBA日常维护使用的sql有哪些的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 查询应用服务器的会话数selec&#...
    99+
    2024-04-02
  • 阿里云服务器的日常维护指南
    阿里云服务器作为企业进行数据存储和处理的重要工具,其日常维护工作至关重要。本文将详细讲解阿里云服务器的日常维护,包括如何检查服务器的状态,如何优化服务器性能,如何确保数据安全,以及如何进行系统升级等。 一、检查服务器的状态首先,我们需要定期...
    99+
    2023-11-10
    阿里 日常维护 服务器
  • 如何做好VPS主机的日常维护操作
    做好VPS主机日常维护操作的方法:1、需要对VPS主机的内存使用情况进行检测,防止VPS主机出现系统资源不足的情况发生;2、需要对VPS主机的网站访问日志进行排查,降低被恶意网络攻击的风险;3、需要检查VPS主机的硬盘使用情况,避免因硬盘空...
    99+
    2024-04-02
  • win10关闭自动维护会怎么样
    关闭Windows 10的自动维护可能会导致以下问题:1. 系统性能下降:Windows 10的自动维护包括定期的磁盘碎片整理、病毒...
    99+
    2023-08-25
    win10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作