高可用Oracle 11 双机高可用实现无故障应用运行(oracle 11 双机)
在如今的企业应用中,数据库是不可或缺的组成部分。而Oracle数据库的高可用性一直是企业IT架构中最宝贵的财富。在目前的市场中,使用Oracle 11双机高可用性方案,能够实现无故障应用的运行,成为了追求高质量服务的企业的首选。
Oracle数据库的高可用性指的是在单个数据库实例宕机或出现故障的情况下,可以使数据库服务继续提供,不会导致业务中断、数据损坏等问题。Oracle数据库实现高可用性的方式有很多种,包括备份、恢复、主备同步、数据复制等等。而在这些方法中,双机高可用方案是最常用的方式之一,也是在成本与效果方面最为平衡的选择。
那么什么是双机高可用方案?简单来说,就是在两台服务器上搭建两个完全相同的Oracle实例,在主服务器上处理用户的请求与数据操作,在备份服务器上进行数据复制,保证数据库服务的高可用性。当主服务器出现故障时,备份服务器便可以顶替原先的主服务器,使业务不受影响。
下面我们来介绍如何搭建一台高可用的Oracle 11双机环境。首先需要准备两台服务器,我们以CentOS 7操作系统为例,安装后需进行如下配置:
1.配置主机名
在/etc/hostname文件中,修改当前服务器的主机名。例如:
[root@primary ~]# vi /etc/hostname
primary.oracle.com
2.配置hosts文件
在/etc/hosts文件中,设置好两台服务器的IP、主机名映射,例如:
[root@primary ~]# vi /etc/hosts
192.168.1.10 primary.oracle.com primary
192.168.1.11 standby.oracle.com standby
3.创建并配置用户账号
创建用户账号oracle,并将其归属于oinstall与dba组,例如:
[root@primary ~]# groupadd oinstall
[root@primary ~]# groupadd dba
[root@primary ~]# useradd -g oinstall -G dba oracle
[root@primary ~]# passwd oracle
4.配置Oracle用户环境
在oracle用户的bash_profile文件中,添加环境变量等配置,例如:
[root@primary ~]# su – oracle
[oracle@primary ~]$ vi .bash_profile
# Oracle Settings
export TMP=/tmp
export TMPDIR=$TMP
# Oracle Environment
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export ORACLE_SID=primary
export PATH=$PATH:$ORACLE_HOME/bin
重启完毕后,进入root用户,开始安装Oracle 11数据库软件。
1.安装Oracle 11数据库软件
首先需要从Oracle官网下载Oracle 11g Release 2安装包,并上传至服务器,解压至目标目录。例如:
[root@primary ~]# unzip linux.x64_11gR2_database_1of2.zip
[root@primary ~]# unzip linux.x64_11gR2_database_2of2.zip
[root@primary ~]# mkdir -p /u01/app/oracle/product/11.2.0/dbhome_1
[root@primary ~]# chown -R oracle:oinstall /u01
[root@primary ~]# chmod -R 775 /u01
然后进入解压后的安装目录,运行Installer程序。
[root@primary ~]# cd /u01/database
[root@primary ~]# ./runInstaller
按照向导提示,进行Oracle 11数据库的安装,完成后即可创建主实例。
2.创建Oracle 11主实例
创建Oracle 11主实例需要进行如下步骤:
1) 设置Oracle用户密码
需要通过Installer程序重新登录oracle用户并设置密码。
[root@primary ~]# cd /u01/app/oracle/product/11.2.0/dbhome_1/bin
[root@primary bin]# ./dbca
2) 创建主实例
在Database Configuration Assistant界面中,选择Create Database选项,进行主实例的创建,包括实例名、数据库名、存储位置、字符集等配置。
3) 建立数据同步机制
在主实例创建完成后,需要建立数据同步机制,即将主数据库的数据同步至备份数据库中,通过RMAN命令即可完成。
3.建立双机高可用环境
在主实例和备份实例的建立完成后,我们需要建立双机高可用环境,具体步骤如下:
1) 修改主实例参数
编辑主实例的parameter文件,增加log_archive_dest_n等参数,用来指定数据同步的备份服务器、同步方式等细节。
[oracle@primary ~]$ vi $ORACLE_HOME/dbs/initPRIMARY.ora
log_archive_dest_1 = ‘LOCATION=/u01/app/oracle/fast_recovery_area/primary/’
log_archive_dest_state_1 = enable
log_archive_dest_2 = ‘SERVICE=standby’
log_archive_dest_state_2 = enable
log_archive_dest_3 = ‘LOCATION=/u01/app/oracle/archive_logs/’
2) 修改备份实例参数
编辑备份实例的parameter文件,增加log_archive_dest_n等参数,用来指定数据同步的主服务器、同步方式等细节。
[oracle@standby ~]$ vi $ORACLE_HOME/dbs/initSTANDBY.ora
log_archive_dest_1 = ‘LOCATION=/u01/app/oracle/fast_recovery_area/standby/’
log_archive_dest_state_1 = enable
log_archive_dest_2 = ‘SERVICE=primary’
log_archive_dest_state_2 = enable
3) 配置tnsnames.ora
在主实例和备份实例的tnsnames.ora文件中,增加对方的监听描述符,例如:
[oracle@primary ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
STANDBY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = standby.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SID = standby)
(SERVER = DEDICATED)
)
)
[oracle@standby ~]$ vi $ORACLE_HOME/network/admin/tnsnames.ora
PRIMARY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = primary.oracle.com)(PORT = 1521))
)
(CONNECT_DATA =
(SID = primary)
(SERVER = DEDICATED)
)
)
4) 执行数据同步操作
通过RMAN命令,执行主实例和备份实例之间的数据同步操作,例如:
[oracle@primary ~]$ rman target sys/oracle@primary auxiliary sys/oracle@standby
RMAN> duplicate target database for standby nofilenamecheck;
5) 测试双机高可用性
在主实例正常运行的情况下,通过lsnrctl status命令查看监听服务信息,可以确认主备份实例之间已经建立数据同步机制。
[oracle@primary ~]$ lsnrctl status
在主实例宕机或出现故障的情况下,通过切换监听服务、启动备份实例等操作,可以保证业务依旧正常运行。
通过搭建Oracle 11双机高可用环境,可以使企业应用在数据库宕机或出现故障时,能够保持数据的连续性,降低系统失效的风险,实现应用的高可用性。