Oracle数据库DataGuard(配置broker)与FSFO配置

一、 概述:
本文主要从oracle数据库的DG(DATA GUARD)搭建,DG_BROKER和FSFO(Fast-Start Failover)配置等方面阐述了oracle数据库高可用环境的搭建,从而实现数据库透明failover,减少数据库故障带来的影响。
注:文中各命令的执行如没有特别注明,均在主库上执行。

二、 Data Guard环境搭建

1 . 设置归档模式
DG环境的搭建必须要把数据库启动到归档模式,并且为了避免开发人员使用nologging语句,我们还要把数据库设置为force logging。
查看数据库是否运行在归档模式:

#su - oracle
$sqlplus / as sysdba
SQL>archive log list;

在这里插入图片描述
如图所示,数据库运行在非归档模式,下面我们开始操作,把数据库修改为归档模式:首先关闭数据库

SQL>shutdown immediate;

启动数据库到mount状态下

SQL>startup mount;
SQL>select open_mode from v$database;

查询结果必须是MOUNTED哦,如果输出的是其它方式,证明操作有误,请重新关闭数据库进行操作
在这里插入图片描述
把数据库修改为归档模式并打开数据库:

SQL>alter database archivelog;
SQL>alter database open;
SQL>archive log list;

在这里插入图片描述
图中可以看到我们数据库已经运行在归档模式了,其中Archive destination就是归档日志存放的路径,稍后我们会修改下存放路径。
数据库打开后,我们需要把数据库设为force logging:

SQL>alter database force logging;
SQL> select name,log_mode,force_logging from v$database; 

在这里插入图片描述

2 .添加standby日志:
standby logfile的数量和大小均要与redo logfile相同
查询主库当前redo logfile的数量

SQL> select thread#,group#,members,bytes/1024/1024 from v$log;

在这里插入图片描述
从图中可以看到我们主库有三组大小为50M的redo logfile,故我们也需要创建同样数量和大小的standby logfile:

SQL> alter database add standby logfile group 11 ('/data/oradata/ocrl/redo/redo11_stb01.log') size 50M;
SQL> alter database add standby logfile group 12 ('/data/oradata/ocrl/redo/redo12_stb01.log') size 50M;
SQL> alter database add standby logfile group 13 ('/data/oradata/ocrl/redo/redo13_stb01.log') size 50M;
SQL> select group#,thread#,sequence#,archived,status from v$standby_log;

在这里插入图片描述
3.设置数据库口令文件的使用模式
执行以下命令查看remote_login_passwordfile的值是否EXCLUSIVE

SQL>show parameter remote_login_passwordfile;

在这里插入图片描述
如果不是,执行以下命令进行设置,并且重启数据库,使其生效:

SQL>alter system set remote_login_passwordfile=EXCLUSIVE scope=spfile;
SQL>shutdown immediate;
SQL>startup;

4.参数设置
DG的搭建需要修改许多数据库的参数,并且部分参数主备库之间有点区别,这需要各位在配置过程细心一点。
a) 主库的参数配置

SQL>show parameter db_unique_name
SQL> alter system set log_archive_config='dg_config=(ocrl,ocrls)' scope=spfile;

在这里插入图片描述
其中dg_config填写的是主备库的db_unique_name。
设置归档日志的存放位置:

SQL>alter system set log_archive_dest_1='LOCATION=/data/oradata/ocrl/archivelog valid_for=(all_logfiles,all_roles) db_unique_name=ocrl' scope=spfile;
SQL>alter system set log_archive_dest_2='SERVICE=ocrls ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=ocrls' scope=spfile;

注:第一个ocrls是tnsname.ora的连接名,第二个ocrls是DB_UNIQUE_NAME
启用设置的日志路径:

SQL>alter system set log_archive_dest_state_1=enable scope=spfile;
SQL>alter system set log_archive_dest_state_2=enable scope=spfile;

设置归档日志进程的最大数量(视实际情况调整):

SQL>alter system set log_archive_max_processes=30 scope=both;

设置standby库从哪个数据库获取归档日志(只对standby库有效,在主库上设置是为了在故障切换后,主库可以成为备库使用):

SQL>alter system set fal_server=ocrls scope=both;

启用OMF功能:

SQL> alter system set db_create_file_dest='/data/oradata/ocrl/datafile' scope=spfile;

如果主备库文件的存放路径不同,还需要设置以下两个参数(需要重启数据库生效):

SQL> alter system set db_file_name_convert='/data/oradata/ocrls/datafile','/data/oradata/ocrl/datafile','/data/oradata/ocrls/tempfile','/data/oradata/ocrl/tempfile' scope=spfile;
SQL> alter system set log_file_name_convert='/data/oradata/ocrls/redo','/data/oradata/ocrl/redo' scope=spfile;

这步路径的先后顺序在主备库上的设置是不一样的,大家要注意!

b) 备库参数设置
完成了以上步骤后,通过以下命令生成一个pfile文件给备库使用:

SQL> create pfile  from spfile;

在这里插入图片描述
打开生成的文件
在这里插入图片描述
修改部分参数,具体如下:

*.audit_file_dest='/u01/app/orac
  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

A Master

您的鼓励是对我最大的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值