数据库读写分离解决方案----oracle11GADG实施方案1.项目背景介绍1.1目的通过DG实现主库与备库同步,主库作为业务应用库,备库作为查询库,应用根据不同需求配置对应数据库;1.2测试环境在2台RedHat5.4上使用ORACLE的DataGuard组件实现容灾。设备配置(VMWare虚拟机环境)清单如下:主机型号数据实例配置数据库版本RedHat5.4(32位)ORCLCPU:1MEM:2GOracle11gR211.2.0.1RedHat5.4(32位)ORCLCPU:1MEM:2GOracle11gR211.2.0.12.OracleDataGuard介绍备用数据库(standbydatabase)是ORACLE推出的一种高可用性(HIGHAVAILABLE)数据库方案,在主节点与备用节点间通过日志同步来保证数据的同步,备用节点作为主节点的备份,可以实现快速切换与灾难性恢复。STANDBYDATABASE的类型:有两种类型的STANDBY:物理STANDBY和逻辑STANDBY两种类型的工作原理可通过如下图来说明:physicalstandby提供与主数据库完全一样的拷贝(块到块),数据库SCHEMA,包括索引都是一样的。它是可以直接应用REDO实现同步的。logicalstandby则不是这样,在logicalstandby中,逻辑信息是相同的,但物理组织和数据结构可以不同,它和主库保持同步的方法是将接收的REDO转换成SQL语句,然后在STANDBY上执行SQL语句。逻辑STANDBY除灾难恢复外还有其它用途,比如用于用户进行查询和报表,但其数据库用户相关对象均需要有主键。本次实施将选择物理STANDBY(physicalstandby)方式对主库的保护模式可以有以下三种模式:–Maximumprotection(最高保护)–Maximumavailability(最高可用性)–Maximumperformance(最高性能)三种保护模式区别如下:保护模式数据丢失保护重做传输最高保护零数据丢失双重故障保护LGWRSYNC—将重做同步传输至两个站点,网络中断会导致主Database宕机最高可用性零数据丢失单重故障保护LGWRSYNC—重做同步传输最高性能最少的数据丢失LGWRASYNC或ARCH—重做异步传输基于项目应用的特征及需求,本项目比较适合采用Maximumavailability(最高可用性)模式实施。3.Dataguard实施前提条件和注意事项:灾备环境中的所有节点必须安装相同的操作系统,尽可能令详细补丁也保持相同。灾备环境中的所有节点必须安装完全相同版本的Oracle数据库软件,包括版本号和发布号,比如必须都是Oracle11.2.0.1主库必须处于归档(ARCHIVELOG)模式。灾备环境中所有节点的硬件和操作系统架构必须相同主库可以是单实例,也可以是RAC。主节点和备用节点之间的硬件配置可以不同,比如CPU数量,内存数量,存储的配置等等。配置灾备环境的数据库用户必须具有SYSDBA权限。4.Oracle软件安装1.要实施DataGurad的前,需要在主机RedHat-Primary和备机RedHat-Standby上进行ORACLE软件的基础安装。2.备机基础软件的安装有两种方式供选择:1)源始安装介质安装采用ORACLE数据库安装介质进行软件安装。2)“克隆”主站源数据库分别对主站源数据库进行tar压缩并FTP/rcp至备机上,然后展开压缩文件。通常出于便捷的原因,备机的Oracle初始建立可采用上述的第二种方式。测试环境中直接对虚拟机进行了拷贝,因此相当于采用了第二种方式。现场环境下,如果主节点不是RAC环境,也可以采用第二种方式。4.1环境配置RedHat5-Primary(primary,IP192.168.204.131)以下简称主库SingleInstancePrimary说明IP192.168.204.131Oracle单实例InstanceORCLData,ControlFile,RedoFile$ORACLE_BASE/oradataRedHat5-Standby(standby,IP192.168.204.132),以下简称从库。SingleInstanceStandby说明IP192.168.204.132Oracle单实例InstanceORCLData,ControlFile,RedoFile$ORACLE_BASE/oradata4.2系统硬件环境检查4.2.1检查内存相关项检查服务器的内存,可以通过下列命令:[root@localhost~]#grepMemTotal/proc/meminfo另外与内存相关的swap交换分区的设置也很重要,通常有下列的规则:实际内存建议swap交换空间大小-------------------------------------------1G-2G1.5倍于内存2G-16G与内存相同超过16G设置为16G即可查看当前服务器swap交换分区大小,可以通过下列命令:[root@localhost~]#grepSwapTotal/proc/meminfo查看系统当前共享内存,可以通过df命令,例如:[roo...