千家信息网

Linux6.4+Oracle11.2.0.4搭建DG

发表于:2025-01-22 作者:千家信息网编辑
千家信息网最后更新 2025年01月22日,试验环境描述硬件信息本次测试环境使用的虚拟环境如下图所示,使用VMware Workstation 11搭建的两台Oracle Linux 6.4 64位操作系统,通过两台机器桥接到一块虚拟网卡。系统
千家信息网最后更新 2025年01月22日Linux6.4+Oracle11.2.0.4搭建DG

试验环境描述

硬件信息

本次测试环境使用的虚拟环境如下图所示,使用VMware Workstation 11搭建的两台Oracle Linux 6.4 64位操作系统,通过两台机器桥接到一块虚拟网卡。

系统信息

服务器一(主)

服务器二(备)

主机名:zhanky

IP 192.168.214.10

数据库版本: oracle 11.2.0.4

库名:zky TNSNAMEDGZ

主机名:zhanky

IP 192.168.214.11

数据库版本: oracle 11.2.0.4

库名:zky TNSNAMEDGB

DG故障切换示意

主备库正常情况客户端访问流量访问主库,数据自动同步到备库。当主库出现故障时,管理员手动将备库切换为主库。此时客户端访问备库实现业务不中断正常访问。


测试流程

我们模仿正式环境,先将primary服务器准备好,然后在standby服务器上只安装数据库软件。在本次测试中我们使用rman的方式来备份数据库,然后在standby上面还原。关键实施步骤如下

Primary

1、 打开归档模式,开启强制记录日志

2、 创建日志组

3、 添加静态监听,添加tns

4、 生成密码文件

5、 生成pfile添加DG内容

6、 重启通过pfile启动,更新spfile

7、 通过rman duplicate备份

8、 生成控制文件

Standby

1、 将备份文件拷贝到standby对应的位置

2、 将密码文件考到对应的位子

3、 将监听文件修改后考到对应的位置,然后开启监听

4、 pfile文件更改后拷贝到standby

5、 通过oradim创建实例,加载更改的pfilenomount模式

6、 pfile更新到spfile,然后重启数据库

7、 通过rman 回复数据库,完成后open

8、 将控制文件替换

9、 然后启用DG到备库模式


DG主服务器设置

检查数据库归档

查看归档日志是否开启

SQL> archive log list

上图看出库开启了归档模式。如果没有开启则按照以下步骤开启归档模式

SQL> shutdown immediate

SQL> startup mount

SQL> alter database archivelog;

SQL> alter database force logging;

SQL> alter database open;

创建日志组

创建日志组

[oracle@zhanky /]$ mkdir /u01/archive

SQL> alter database add standby logfile group 4 '/u01/archive/STAN04.LOG' size 50m;

SQL> alter database add standby logfile group 5 '/u01/archive/STAN05.LOG' size 50m;

SQL> alter database add standby logfile group 6 '/u01/archive/STAN06.LOG' size 50m;

SQL> alter database add standby logfile group 7 '/u01/archive/STAN07.LOG' size 50m;



检查密码文件

密码文件要拷贝到DG备库,保持两边密码文件一致。

[oracle@zhanky ~]$ ls /u01/app/oracle/product/11.2.0/db_1/dbs/

如果没有密码文件可以手动创建

SQL> orapwd file=/u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky password=manager entries=10

建议设置密码永不过期

SQL> alter profile default limit password_life_time unlimited;

配置监听文件

配置静态监听,在listener.ora文件中添加静态监听

[oracle@zhanky ~]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER=

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = zky)

(ORACLE_HOME =/u01/app/oracle/product/11.2.0/db_1)

(SID_NAME = zky)

)

)

注意linux环境中更改侦听需要先stop在修改,不然会导致侦听服务无法正常启动关闭

配置TNS文件

配置tnsname.ora,设置DG主和DG备服务器监听

[oracle@zhanky ~]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

DGZ =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zky)

)

)

DGB =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zky)

)

)

配置DG参数

下面开始配置dg文件了,配置完成后记得重启数据库。

SQL> alter system set db_unique_name=dgz scope=spfile;

SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGZ,DGB)' scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/zky/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGZ' scope=spfile;

SQL> alter system set LOG_ARCHIVE_DEST_2= 'service=DGB lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=DGB' scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE scope=both;

SQL> alter system set LOG_ARCHIVE_DEST_STATE_2=ENABLE scope=both;

SQL> alter system set FAL_SERVER='DGZ' scope=both;

SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;

SQL> alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/oradata/zky/','/u01/app/oracle/oradata/zky/' scope=spfile;

SQL> alter system set LOG_FILE_NAME_CONVERT='/u01/archive/','/u01/archive/' scope=spfile;

创建参数文件

创建参数文件供备库用

SQL> create pfile='/u01/zk.int' from spfile;



DG备服务器设置

复制文件

将密码文件和参数文件拷贝到DG备库对应的位置并赋予读写权限

[oracle@zhanky ~]$ scp oracle@192.168.214.10:/u01/zk.int /u01/bk.int

[oracle@zhanky ~]$ scp oracle@192.168.214.10:/u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky /u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky

[oracle@zhanky ~]$ chmod 777 /u01/bk.int

[oracle@zhanky ~]$ chmod 777 /u01/app/oracle/product/11.2.0/db_1/dbs/orapwzky

创建文件夹

[oracle@zhanky /]$ mkdir -p /u01/archive/

[oracle@zhanky /]$ mkdir -p /u01/app/oracle/admin/zky/adump/

[oracle@zhanky /]$ mkdir -p /u01/app/oracle/oradata/zky/

[oracle@zhanky /]$ mkdir -p /u01/app/oracle/fast_recovery_area/zky/

配置监听文件

配置静态监听,在listener.ora文件中添加静态监听

[oracle@zhanky ~]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

SID_LIST_LISTENER=

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = zky)

(ORACLE_HOME =/u01/app/oracle/product/11.2.0/db_1)

(SID_NAME = zky)

)

)

注意linux环境中更改侦听需要先stop在修改,不然会导致侦听服务无法正常启动关闭

配置TNS文件

配置tnsname.ora,设置DG主和DG备服务器监听

[oracle@zhanky ~]$ vi /u01/app/oracle/product/11.2.0/db_1/network/admin/tnsnames.ora

DGZ =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zky)

)

)

DGB =

(DESCRIPTION =

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

(CONNECT_DATA =

(SERVER = DEDICATED)

(SERVICE_NAME = zky)

)

)


配置DG参数

将复制过来的参数文件更改下列红色标识的地方

[oracle@zhanky ~]$ vi /u01/bk.int

db_unique_name=dgb scope=spfile;

LOG_ARCHIVE_CONFIG='DG_CONFIG=(DGZ,DGB)' scope=both;

LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/oradata/zky/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=DGZ' scope=spfile;

LOG_ARCHIVE_DEST_2= 'service=DGB lgwr async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLES) DB_UNIQUE_NAME=DGB' scope=both;

FAL_SERVER='DGZ' scope=both;

完成更改后,进入数据库创建spfile,重启到nomount状态准备还原数据库

[oracle@zhanky /]$ sqlplus / as sysdba

SQL> create spfile from pfile='/u01/bk.int';

SQL> startup nomount;

还原数据库

[oracle@zhanky ~]$ rman target sys/manager@DGZ auxiliary sys/manager@DGB

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


提示:还原数据库要在nomount模式

DG配置

将库配置为standby库,开启到只读模式,开启实时应用日志。

SQL> shutdown immediate

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> alter database open read only;

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

测试DG同步

主库插入

SQL> create table zkydg as(select username from dba_users where username='SYSTEM');


备库查询

SQL> select * from zkydg;


测试切换主备库

主库操作

SQL> alter database commit to switchover to physical standby with session shutdown;

SQL> startup nomount;

SQL> alter database mount standby database;

SQL> alter database open read only;

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

查看切换状态

SQL> select switchover_status from v$database;

备库操作

SQL> alter database recover managed standby database cancel;

SQL> alter database commit to switchover to primary;

SQL> shutdown immediate

SQL> startup


测试切换是否成功DG同步

新主库插入

SQL> create table zkydgqh as(select username from dba_users where username='SYS');


老主库查询

SQL> select * from zkydgqh;



常用检查命令

查看切换状态

SQL> select switchover_status from v$database;


查看是否同步

SQL> SELECT SEQUENCE#,APPLIED FROM V$ARCHIVED_LOG ORDER BY SEQUENCE#;

强制切换为主库

当主库挂了无法控制时,可直接在备库上强制接管数据库

SQL> RECOVER MANAGED STANDBY DATABASE FINISH force;

SQL> shutdown immediateSQL> startup nomount;SQL> alter database mount standby   database;SQL> alter database open read only;SQL> alter database recover managed   standby database using current logfile disconnect from session;


文件 数据 配置 数据库 监听 服务 密码 服务器 模式 切换 参数 日志 环境 测试 静态 拷贝 同步 位置 备份 状态 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 张家港无忧网络技术推荐咨询 服务器出口拍安全带 魔兽世界单机版数据库设置表中文 谷安学院网络安全培训机构 刷新页面一定会重新访问服务器吗 软件开发用哪种语言好学 计算机网络技术应用招工苏州 云开发数据库保存图片 南通浪潮服务器供货厂 荒野行动用什么编程软件开发的 网页服务器和app服务器一样吗 139邮箱的服务器 怀旧服服务器经验值多少 计算机网络技术 说课稿 网络安全的四个方面的特征 江苏专业软件开发教程 数据库系统分析师工资 excel中宏命令读取数据库 北京联通智慧安全网络技术罗静华 网盛网络技术有限公司 坐标系转换需要数据库吗 护苗网络安全教育课活动 se软件开发包 组建软件开发成本 数据库中的wal技术 聊城网络安全孟祥君 数据库最大的字 本地存储json数据库中 松江区多层软件开发费用是多少 中级软件开发合同的会计分录
0