redhat+ oracle 11.2.0.4 RAC 搭建 dataguard

知识改变命运,技术就是要分享,有问题随时联系,免费答疑,欢迎联系!

redhat+ oracle 11.2.0.4 RAC 搭建 dataguard

1.安装环境

主机名

OS

DB

SID

db_name

db_unique_name

rac1

Redhat7

11.2.0.4

orcl1

orcl

orcl_rac

rac1

Redhat7

11.2.0.4

orcl2

orcl

orcl_rac

orcldg

Redhat7

11.2.0.4

orcl

orcl

orcl_dg

备注:orcl1是一套oracle RAC 集群中的一台服务器

2.安装前配置

IP地址配置

主库:192.168.2.15

备库:192.168.2.180

Oracle安装要求

主库:安装oracle 软件,并创建oracle 数据库

备库:仅安装oracle软件

安装位置

主库:/u01/app/oracle/product/11.2.0.4/db_1

备库:/u01/app/oracle/product/11.2.0.4/dbhome_1

数据库实例规划

主库:

实例名:orcl1数据库名orcl 数据库唯一名:orcl_rac

备库:

实例名:orcl数据库名 orcl 数据库唯一名:orcl_dg

Oracle Dataguard 要求主库和备库的数据库名字一样,即db_name要一样,

使用db_unique_name名字区分

3.安装过程

主库为归档模式

主库:

Select log_mode from v$database;

启用强制日志模式(mount 状态下修改)

主库:

SQL>select force_logging from v$database;

FORCE_

------

NO

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL>startup mount;

ORACLE 例程已经启动。

Total System Global Area 1119043584 bytes

Fixed Size                  2280496 bytes

Variable Size             738198480 bytes

Database Buffers          369098752 bytes

Redo Buffers                9465856 bytes

数据库装载完毕。

SQL>alter database force logging;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL>select force_logging from v$database;

FORCE_

------

YES

Force_logging 为YES 代表数据库是强制日志模式。

配置standby 日志文件

主库:

增加standby 日志组(正常比online 日志多一组)

alter database add standby logfile thread 1 group 5 '+DATA/orcl/onlinelog/group5_01.log' size 50M;

alter database add standby logfile thread 1 group 6 '+DATA/orcl/onlinelog/group6_01.log' size 50M;

alter database add standby logfile thread 1 group 7 '+DATA/orcl/onlinelog/group7_01.log' size 50M;

alter database add standby logfile thread 2 group 8 '+DATA/orcl/onlinelog/group8_01.log' size 50M;

alter database add standby logfile thread 2 group 9 '+DATA/orcl/onlinelog/group9_01.log' size 50M;

alter database add standby logfile thread 2 group 10 '+DATA/orcl/onlinelog/group10_01.log' size 50M;

--查询standby log 命令

SELECT bytes,GROUP#,THREAD#,SEQUENCE#,ARCHIVED,STATUS FROM V$STANDBY_LOG;

--删除standby 的命令

alter database drop standby logfile group 4;

配置监听(主库和备库)

使用netca配置监听。

下图是监听配置后的结果,监听正常。

主库:RAC 不用单独配置监听

备库:配置DG的时候,备份的数据库还无法open,所有要配置静态监听

/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/listener.ora

SID_LIST_LISTENER =

  (SID_LIST =

    (SID_DESC =

      (GLOBAL_DBNAME = orcl_dg)

      (ORACLE_HOME = /u01/app/oracle/product/11.2.0.4/dbhome_1)

      (SID_NAME = orcl)

    )

  )

LISTENER =

  (DESCRIPTION_LIST =

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.180)(PORT = 1521))

    )

    (DESCRIPTION =

      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))

    )

  )

ADR_BASE_LISTENER = /u01/app/oracle/product/11.2.0.4/dbhome_1

启动监听:lsnrctl start

配置tnsnames文件(主库和备库)

ORCL_PRI  为主库的连接信息,orcl_std为备库的连接信息

/u01/app/oracle/product/11.2.0.4/dbhome_1/network/admin/tnsnames.ora

主库:

ORCL_PRI  =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.2.15)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME = orcl_rac)

    )

  )

ORCL_STD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.180)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME = orcl_dg)

    )

  )

备库:

ORCL_PRI  =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.2.15)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME = orcl_rac)

    )

  )

ORCL_STD =

  (DESCRIPTION =

    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.180)(PORT = 1521))

    (CONNECT_DATA =

      (SERVICE_NAME = orcl_dg)

    )

  )

tnsping (主库和备库)

确认主库和备库是否联通

主备库:tnsping ORCL_PRI

        tnsping ORCL_STD

创建pfile并修改。

主库:

创建pfile ,修改pfile,生成spfile,并以spfile 启动数据库

alter system set  DB_UNIQUE_NAME=orcl_rac scope=spfile sid='*';

alter system set  LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl_rac,orcl_dg)' scope=both sid='*';

alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl_rac' scope=both sid='*';

alter system set LOG_ARCHIVE_DEST_2='SERVICE=orcl_std ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_dg' scope=both sid='*';

#standby

alter system set FAL_SERVER=orcl_std scope=both sid='*';

alter system set fal_client=orcl1 scope=both sid='orcl1';

alter system set fal_client=orcl2 scope=both sid='orcl2';

alter system set DB_FILE_NAME_CONVERT='/data/oradata/','+DATA/orcl/datafile/','/data/oradata/', '+DATA/orcl/tempfile/' scope=spfile sid='*';

alter system set LOG_FILE_NAME_CONVERT='/data/oradata/','+DATA/orcl/onlinelog/' scope=spfile sid='*';

alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both sid='*';

备库:

*.audit_file_dest='/u01/app/oracle/admin/orcl/adump'

*.audit_trail='db'

*.compatible='11.2.0.4.0'

*.control_files='/data/oradata/control01.ctl','/data/oradata/control02.ctl'

*.db_create_file_dest='/u01/app/oracle/oradata'

*.db_name='orcl'

*.diagnostic_dest='/u01/app/oracle'

*.db_recovery_file_dest='/data/oradata/fast_recovery_area'

*.db_recovery_file_dest_size=462107443200

*.undo_tablespace='UNDOTBS1'

*.open_cursors=300

*.pga_aggregate_target=200M

*.processes=1500

*.sessions=1655

*.sga_target=420M

*.db_unique_name='orcl_dg'

*.log_archive_config='DG_CONFIG=(orcl_dg,orcl_rac)'

*.log_archive_dest_1='location=USE_DB_RECOVERY_FILE_DEST valid_for=(all_logfiles,all_roles) db_unique_name=orcl_dg'

*.log_archive_dest_2='SERVICE=orcl_pri ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl_pri'

*.log_file_name_convert='+DATA/orcl/onlinelog/','/data/oradata/'

*.db_file_name_convert='+DATA/orcl/datafile/','/data/oradata/','+DATA/orcl/tempfile/','/data/oradata/'

*.fal_client='ORCL_STD'

*.fal_server='ORCL1,ORCL2'

*.standby_file_management='AUTO'

创建相应的路径:

mkdir -p /u01/app/oracle/admin/orcl/adump

mkdir -p /data/oradata/

mkdir -p /u01/app/oracle

mkdir -p /data/oradata/fast_recovery_area

配置密码文件

将主库A的密码文件复制到备库和 主库B

scp orapworcl1 192.168.2.180:/u01/app/oracle/product/11.2.0.4/dbhome_1/dbs

mv orapworcl1 orapworcl

scp orapworcl1 192.168.2.14:/u01/app/oracle/product/11.2.0.4/db_1/dbs

备库创建spfile ,并启动到nomount

export ORACLE_SID=orcl

Sql> create spfile from pfile='/tmp/pfile.txt';

使用RMAN连接主备库,复制数据

主库:使用RMAN 复制主库的控制文件和数据文件到备库

rman target sys/oracle@orcl_pri auxiliary sys/oracle@orcl_std

RMAN> duplicate target database for standby from active database nofilenamecheck dorecover;

打开备库,并开始同步数据

备库:

Alter database open read only;

alter database recover managed standby database using current logfile disconnect from session;

4.同步数据测试

主库:创建表

SQL> Create table t_test as select * from dba_users;

Table created.

SQL> Select count(1) from t_test;

  COUNT(1)

----------

       35

备库:

SQL> Select count(1) from t_test;

  COUNT(1)

----------

       35

主库的数据已经同步到备库。

切换测试

主库:

查看状态

SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE,PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

执行切换命令

alter database commit to switchover to physical standby WITH SESSION SHUTDOWN;

只读方式打开数据库

startup mount ;

alter database open read only;

开始应用日志

alter database recover managed standby database using current logfile disconnect from session;

备库:

查看状态

SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE,PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

切换为主模式

shutdown immediate;

startup mount;

将数据库切换为主库:

alter database commit to switchover to primary;

查看数据库角色:

SELECT DATABASE_ROLE, DB_UNIQUE_NAME INSTANCE, OPEN_MODE,PROTECTION_MODE, PROTECTION_LEVEL, SWITCHOVER_STATUS FROM V$DATABASE;

打开数据库

alter database open;

数据同步测试

主库:

备库:

数据正常同步

6.DG常用管理命令

停止Standby

select process, status from v$managed_standby; --查看备库是否在应用日志进行恢复

alter database recover managed standby database cancel;

shutdown immediate;

切换到只读模式

-----由shutdown模式切换到只读模式-------

startup nomount;

alter database mount standby database;

alter database open read only;

-----由应用日志模式切换到只读模式-------

alter database recover managed standby database cancel; -- 取消日志应用

alter database open read only;

切换回管理恢复模式

startup nomount;

alter database mount standby database;

alter database recover managed standby database disconnect from session; -- 启动归档日志应用

or

alter database recover managed standby database using current logfile disconnect from session; -- 启动实时日志应用

主库和备库之间角色切换

6.4.1 主库切换为备库

alter database commit to switchover to physical standby;

alter database commit to switchover to physical standby with session shutdown;-- 主库有会话连接的时候

shutdown immediate

startup ;

alter database recover managed standby database disconnect from session;

or

alter database recover managed standby database using current logfile disconnect from session;

6.4.2 从库切换为主库

alter database commit to switchover to primary;

shutdown immediate;

startup;

alter system switch logfile;

备库自动使用主库传过来的日志进行恢复

alter database recover automatic standby database;

更改保护模式

alter database set standby database to maximize protection;

alter database set standby database to maximize availability;

alter database set standby database to maximize performancen;

查看备库日志应用

set linesize 200

col name format a100

select sequence#,name,applied from v$archived_log;

查看数据库角色

select database_role, protection_mode, protection_level from v$database;

常用切换步骤

正常切换

主库和备库之间角色切换

主库切换为备库

alter database commit to switchover to physical standby;

alter database commit to switchover to physical standby with session shutdown;-- 主库有会话连接的时候

shutdown immediate

startup ;

alter database recover managed standby database disconnect from session;

or

alter database recover managed standby database using current logfile disconnect from session;

从库切换为主库

alter database commit to switchover to primary;

shutdown immediate;

startup;

alter system switch logfile;

故障切换

停止应用恢复模式

alter database recover managed standby database finish;

转换standbydb为primary db

alter database commit to switchover to primary;

重启数据库,恢复正常业务

shutdown immediate

startup

最大性能切换为最大保护

1:备库停止日志应用

alter database recover managed standby database cancel;

2:主库重启到mount

shutdown immediate;

startup mount;

alter system set log_archive_dest_2='SERVICE=orcl_dgtd lgwr sync valid_for=(online_logfiles,primary_role) db_unique_name=orcl_dgtandby'

3:主库,备库操作更改为最大保护

alter database set standby database to maximize PROTECTION;

alter database open;

4:备库开始应用日志

alter database recover managed standby database using current logfile disconnect from session;

最大保护切换为最大性能

1:备库取消日志应用

备库:

alter database recover managed standby database cancel;

2:主库调整模式

主库:

alter database set standby database to maximize performance;

3:备库开始日志应用

alter database recover managed standby database using current logfile disconnect from session;

4:查看数据库角色(主备)

select database_role, protection_mode, protection_level from v$database;

最大保护切换为最大可用

1:备库取消日志应用

备库:

alter database recover managed standby database cancel;

2:主库调整模式

主库:

alter database set standby database to maximize availability;

3:备库开始日志应用

alter database recover managed standby database using current logfile disconnect from session;

4:查看数据库角色(主备)

select database_role, protection_mode, protection_level from v$database;

最大可用切换为最大保护

1:备库停止日志应用

alter database recover managed standby database cancel;

2:主库,备库操作更改为最大保护

alter database set standby database to maximize PROTECTION;

3:备库开始应用日志

alter database recover managed standby database using current logfile disconnect from session;

联系我们

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/333682.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android性能优化系列——APK包优化

业务功能开发完之后,就需要对App打包了。 有时候明明功能不多,但是包体很大,一是影响上架,二是就几个功能但是很大心里会膈应,于是包体有时候也需要进行优化。同类型的竞品只要40m,你要200M,那我肯定愿意先…

跨国文件传输网络丢包的四大原因和修复方式

在全球化的影响下,跨国传输在企业和个人的日常工作中发挥着越来越重要的作用。然而,由于各种原因,网络丢包问题时有发生。本文将详细分析跨国文件传输网络丢包的四大原因,并介绍相应的修复方式。 一、跨国文件传输网络丢包的四大原…

服务器组网方案

在当今数字化时代,服务器组网方案不仅是企业信息管理的关键,更是支撑业务运作的核心架构 。为了实现高效的数据处理和存储,服务器组网方案成为企业不可或缺的一部分。本文将深入探 讨服务器组网方案的核心要素和实施策略,明确其在…

安卓Android Studioy读写NXP ICODE2 15693标签源码

本示例使用的发卡器&#xff1a;https://item.taobao.com/item.htm?spma1z10.5-c-s.w4002-21818769070.11.4391789eCLwm3t&id615391857885 <?xml version"1.0" encoding"utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xm…

【银行测试】金融项目测试注意点汇总,一篇带你不再背锅

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、数据保护 在测…

基于格密码的无线通信MIMO系统

目录 一. 系统模型 二. MIMO从复数到实数 三. MIMO星座图与格密码 四. 格密码与极大似然译码 五. 格基约化算法 六. 基于格密码的串行干扰消除算法 无线通信领域的MIMO可以等效成格密码中的解码问题&#xff0c;本文章将解释两者的关系。 一. 系统模型 MIMO multi-input…

python实现目录和文件管理

目录 一&#xff1a;模块介绍&#xff1a; 二&#xff1a;目录创建 三&#xff1a;目录删除 四&#xff1a;目录复制 五&#xff1a;目录移动 六&#xff1a;文件创建 七&#xff1a;文件删除 八&#xff1a;文件读取 一&#xff1a;模块介绍&#xff1a; Python的os和…

【2024系统架构设计】 系统架构设计师第二版-嵌入式系统架构设计理论与实践

目录 一 嵌入式系统软件架构的原理 二 嵌入式系统软件架构的设计方法 三 案例分析 一 嵌入式系统软件架构的原理 🚀嵌入式系统的典型架构可以分为

React之useRef hook

介绍 useRef是react的自定义hook&#xff0c;它用来引用一个不需要渲染的值。这篇文章会介绍useRef的简单用法。 使用场景 1.实现节流 通过useRef实现节流功能&#xff0c;在限制时间内多次提交&#xff0c;已第一次提交为准。 useThrottle.jsx import {useEffect, useRef,…

PyQT5实现图像处理应用(含Windows7下完整打包方案)

目录 1、任务概述2、环境安装2.1 创建虚拟环境2.2 安装依赖库 3、程序开发3.1 框架搭建3.2 读取图像3.3 图像处理 4、打包部署5、小结 1、任务概述 本篇博文将通过PyQT5来实现一个简单的图像处理应用&#xff0c;并完成打包部署。 本文开发平台&#xff1a;Windows10 64位系统…

livp转换成jpg怎么转换?看完这篇文章你就知道了

livp转换成jpg怎么转换&#xff1f;livp文件是一种特定的图片格式&#xff0c;将其转换为jpg格式可以方便我们进行存储、共享和编辑。此外&#xff0c;jpg格式也是一种广泛支持的图片格式&#xff0c;几乎所有的设备和软件都能够识别和打开这种格式的图片。因此&#xff0c;将l…

【动态代理详解】

文章目录 1. 关于代理1.1 代理的概述1.1.1 什么是动态代理1.1.2 动态代理能做什么 1.2 什么是代理1.2.1 生活中的代理1.2.2 为什么要找中介&#xff1f; 1.3 开发中的代理模式&#xff08;代理&#xff09;1.3.1 使用代理模式的作用 1.4 实现代理的方式 2. 静态代理2.1 什么是静…