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;

联系我们

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【OpenCV学习笔记05】- 鼠标作为画笔

内容 学习如何用OpenCV处理鼠标事件您将学习以下功能:cv.setMouseCallback() 简单的示例 这里,我们创建一个简单的程序,在图像的任何位置双击在上面画一个圆。 首先我们创建一个鼠标回调函数,该函数在鼠标事件发生时执行。鼠标…

从txt文档里筛选出每行重复数据字符,并保存到新的txt文档

从txt文档里筛选出每行重复数据字符,并保存到新的txt文档 input_file rD:\pythonXangmu\quchong\input_file2.txt #原始文档 #output_file output.txt#重复内容记录文档 output_file rD:\pythonXangmu\quchong\output2.txt#绝对路径,解决报错找不到文…

一篇文章认识微服务中Eureka的原理和服务注册与发现

目录 1、认识Eureka 2、Eureka原理 2.1 和Dubbo架构对比: 2.2 三大角色 3、微服务常见的注册中心 3.1 Zookeeper 3.2 Eureka 3.3 Consul 3.4 Nacos 3.5 区别 1、认识Eureka Netflix 在设计Eureka 时,遵循的就是AP原则。 CAP原则又称CAP定理…

TagTextView 行内标签TextView

效果 效果如下,可以解析xml中配置的drawableStart ,然后将这个drawable显示在一行内。下一个开始。从这个drawable开始。 代码 MaxLengthTextView 是我另外一个自定义view MaxLengthTextView 如果内容超过xml中maxLength属性定义的文字数量时&#x…

揭秘加密货币周期:如何通过顶级代币指标洞察市场变化

作者:stellafootprint.network 加密生态领域如大海般波涛汹涌,如何在这片海域中稳稳航行?关键在于把握市场周期的脉搏。顶级代币的几个核心指标,正是我们窥探市场周期的窗口。 领先的区块链分析平台跟踪的关键代币指标包括&…

什么软件能查出微信聊天记录(3款实用工具盘点!)

微信聊天记录往往记录这很多重要的客户信息,一个不小心可能就会删除,或者员工可以隐藏一些重要的信息,那么此时此刻我们就需要一款,能查处微信聊天记录的工具。 今天就给大家盘点三款: 1、微信电脑端备份 通过在电脑…

MySql01:初识

1.mysql数据库2.配置环境变量3. 列的类型和属性,索引,注释3.1 类型3.2 属性3.3 主键(主键索引)3.4 注释 4.结构化查询语句分类:5.列类型--表列类型设置 1.mysql数据库 数据库: ​ 数据仓库,存储数据,以前我…

基于模块自定义扩展字段的后端逻辑实现(一)

目录 一:背景介绍 二:实现过程 三:字段标准化 四:数据存储 五:数据扩展 六:表的设计 一:背景介绍 最近要做一个系统,里面涉及一个模块是使用拖拉拽的形式配置模块使用的字段表…

快乐学Python,Python基础之代码复用?

上一篇文章中,我们了解了代码的分支结构(if 家族语句)和循环结构(for 循环和 while 循环)。通过了解这些结构,我们已经能够写出稍微复杂一些的代码。但当代码一多,就会遇到一些问题。 上一篇文…

文件上传靶场实战:upload-labs第1-3关

0、环境准备 0.1、安装靶场 由于自己的电脑是win10系统,上传一句话木马被系统自动拦截删除,文件上传的靶场安装在win7虚拟机。把upload-labs安装包复制到老版小皮的C:\phpstudy\PHPTutorial\WWW\目录下解压,然后启用小皮,启用服…

连接两个路由器的有线连法,关键时候可能会发挥不小的作用

路由器网桥连接两个或多个路由器,以扩展网络范围,提供额外的以太网端口和无线接入点。但在开始之前,你必须首先决定如何使用每个路由器。因此,你需要知道你想要实现什么,并清楚地了解你对每台设备的期望。 例如你想扩…

前端入门教程:学完即可单独完成前端项目

目录 目录 1.HTML: 1.1概念 1.2结构 1.3常见的标签使用分类: 2.CSS: 2.1概念 2.2样式实践: 以下的举例都来自于博客: 2.3css选择器: 什么是css选择器: 举例如下: 2.4Demo 3.JavaScript&#…

Go语言为什么建议少用数组,多使用切片?

01 介绍 在 Go 语言中,数组固定长度,切片可变长度;数组和切片都是值传递,因为切片传递的是指针,所以切片也被称为“引用传递”。 读者朋友们在使用 Go 语言开发项目时,或者在阅读 Go 开源项目源码时&…

代码随想录算法训练营第二十二天| 回溯 93.复原IP地址 78.子集 90.子集II

93. 复原 IP 地址 递归参数:index一定是需要的,记录下一层递归分割的起始位置。还需要一个变量pointNum,记录添加逗点的数量。 递归终止条件:明确要求只会分成4段,所以不能用切割线切到最后作为终止条件,…

Speech | 人工智能中语音质量评估方法详解及代码

本文主要讲解人工智能中语音合成,语音转换,语音克隆等生成语音的一些质量评估方法~ 目录 1.语音质量评测方法 主观评价方法 1.1.MOS 1.2.CMOS 1.3.ABX Test 1.4.MUSHRA(MUltiple Stimuli with Hidden Reference and Anchor&#xff0…

Python爬虫-爬取豆瓣Top250电影信息

🎈 博主:一只程序猿子 🎈 博客主页:一只程序猿子 博客主页 🎈 个人介绍:爱好(bushi)编程! 🎈 创作不易:喜欢的话麻烦您点个👍和⭐! 🎈…

003集Class类应用实例—python基础入门实例

面向对象编程是一种编程方式,此编程方式的落地需要使用 “类” 和 “对象” 来实现,所以,面向对象编程其实就是对 “类” 和 “对象” 的使用。 类就是一个模板,模板里可以包含多个函数,函数里实现一些功能 对象则是根…

Hyperledger Fabric 自动发现网络信息 discover 工具使用

客户端要往 Fabric 网络中发送请求,首先需要知道网络的相关信息,如网络中成员组织信息、背书节点的地址、链码安装信息等。 在 Fabric v1.2.0 版本之前,这些信息需要调用者手动指定,容易出错;另外,当网络中…

2024.1.8 关于 Redis 数据类型 Zset 集合命令、编码方式、应用场景

目录 引言 Zset 集合命令 ZINTERSTORE ZUNIONSTORE Zset 编码方式 Zset 应用场景 排行榜系统 引言 在 Redis 中集合间操作无非就是 交集、并集、差集 Set 类型与之相对应的操作命令为 sinter、sunion、sdiff 注意: 从 Redis 6.2 版本开始,Zset 命…

可充电助听器有哪些优势?

可充电助听器有哪些优势 01 无需频繁更换电池,对于手指不灵活、眼神不好的老年用户以及无法自行更换电池的儿童用户,使用更为方便。 02 可充电助听器的电池一般密封在助听器内部,机身的防水防尘性能更强。 03 部分充电盒具有快充、储电、…