基于Linux平台下Oracle MAA集群数据库的设计

中国新通信 / 2018年09月23日 05:32

新闻

基于Linux平台的OracleDatabase10g管理片

齐恩铁+孙海峰

【摘要】 本文是在双节点RAC的环境基础上搭建MAA,从而实现数据库的最高可用性架构。MAA架构包括两大组件:RAC和DataGuard。其中RAC实现了I/O分离,避免了批量I/O对数据库的压力,DataGuard实现了对数据库的保护。

【关键字】 Oracle MAA DataGuard 数据库

一、引言

Oracle在10g版本时已经提供RAC(Real Application Cluster)的解决方案,而Oracle在11g版本中更是提供了MAA(Maximum Availability Architecture)最高可用性体系架构的解决方案,目标是为了消除数据库的停机时间,为用户提供更加有效的方案来实现企业数据和应用最大化的高可用性。它不仅包括针对存储的ASM,针对集群的RAC,而且还包括针对数据保护的DataGuard[1]。

二、系统实现

1、架构原理。在DataGuard环境中,至少有兩个数据库,一个处于Open状态对外提供服务,这个数据库叫做Primary Database,简称主库。第二个处于恢复状态,叫做Standby Database,简称备库[4]。

2、系统环境。1.主机与软件:此次MAA部署是在一台Window10操作系统上,利用Virtual Box软件虚拟创建四台Linux主机,并在这四台Linux主机上安装Oracle数据库。2.网络:在MAA环境中,每台主机都需要有两块网卡和四个IP,两块网卡是基于Virtual Box虚拟机的host-only网卡模式。公有网卡对应公有IP、Virtual IP和Scan IP,公有IP用于标识虚拟Linux主机在网络中的唯一地址;Virtual IP用于数据库的对外服务,当某个节点出现故障时,Virtual IP可以自动转移到其他正常的节点上。私有网卡对应私有IP,用于节点之间的通信和数据传输。3.磁盘:部署MAA的四台虚拟Linux主机都具有三块虚拟磁盘,分别是:系统磁盘,用于存储操作系统和系统软件;本地磁盘,用于存储Oracle数据库软件;共享磁盘,主要用来存放OCR文件(集群的配置信息),表决盘VOTING DISKS,以及数据库的数据文件和闪回区等。

3、系统部署。此次系统部署分为:1.配置主机。IP映射、磁盘配置、创建用户和目录、环境变量等。2.安装集群件CRS和Oracle软件。该阶段需要安装集群件和Oracle软件,集群件对运行于其上的数据库进行监视,并在发生异常时进行重启、切换等干预手段。3.创建数据库。创建ASM磁盘组,数据库的数据文件,控制文件,日志文件都存储在ASM磁盘组中,然后在通过DBCA创建数据库。4.配置主备库初始化文件。创建主库和备库的PFILE文件。5.启动主备库。通过RMAN备份主库的文件发送到备库主机,在备库用RMAN做恢复,并使用PFLIE文件启动备库,至此该集群搭建完成。

三、系统测试

3.1 正常切换(Switchover)

Swithchover通常都是人为的有计划的进行角色互换,比如数据库升级、更换硬件等。

1.查看主备库状态。

SQL> select name,database_role,switchover_status,open_mode from v$database;

2.检查是否有用户连接

SQL>select username,user# from v$session where username is not null;

3.主库切换到备库

SQL>alter database commit to switchover to standby

当用命令检查之后发现还有用户连接数据库,可用下列语句在转换的同时强制关闭用户的连接。

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

4.备库切换到主库

重新将主库转换为 MOUNT 状态,用如下语句将原来的备库转换为新的主库。

SQL>alter database commit to switchover to primary;

将新转换的主库开库,同时将备库open,主库进行切换日志操作,备库恢复,查看新的备库是否可以接收归档日志并做恢复。

SQL>alter database recover managed standby database disconnect from session;

3.2 应急切换(Failover)

Failover是指由于主库遇到灾难损坏而无法正常工作时,需要将备库转换为主库,具体操作如下。

1.主库宕机,对备库强制停止恢复。

SQL>alter database recover managed standby database finish force;

2.备库强制转换为主库

停止备库的恢复之后,将备库转换为主库,此时,原来的主库将不再是当前DataGuard环境中的一部分,新生成的主库将顶替旧主库提供服务。

SQL>alter database commit to switchover to primary;

结论:数据库的高可用性架构是数据库容灾容错的保护模式。Oracle MAA给我们提供了一个用来进行数据保护的很好的解决方案,它不仅能够在故障时进行容错,还实现模式转换之间的无缝切,这就使得应用它的时候,业务不会因为外在原因或内在原因受到影响而中断,从而导致企业的损失。

参 考 文 献

[1] 陈吉平.构建Oracle高可用环境-企业级高可用数据库架构、实战与经验总结[M].北京:电子工业出版社,2012.

[2] 张晓明.大话Oracle RAC集群高可用性备份与恢复[M].北京:人民邮电出版社,2011.

[3] 白磷.Oracle RAC日记[M].北京:清华大学出版社,2013.

1.环球科技网遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.环球科技网的原创文章,请转载时务必注明文章作者和"来源:环球科技网",不尊重原创的行为环球科技网或将追究责任;3.作者投稿可能会经环球科技网编辑修改或补充。