Oracle双活技术实现可靠性保障(Oracle主备架构)
Oracle双活技术实现可靠性保障
在数据库运维中,高可用性是一个非常关键的问题。尤其对于企业级数据库系统来说,在数据量大、读写频繁的情况下,一旦发生故障会直接影响企业的正常运营,因此需要采取措施来保证数据库的高可用性。Oracle双活技术就是一种能够实现数据同步备份的高可用架构。
双活技术的实现方式
Oracle双活技术,就是把两个互相独立的数据库通过网络连接起来,实时同步。这两个数据库不仅有读写功能,还会进行自动备份。任何一端出现问题,另一端便可立即切换为主节点,不会造成数据的丢失或重复。双活技术通过持续两个数据库之间的数据备份实现高可用性,让公司业务连续性不受影响。
Oracle双活技术的优势
双活技术确保了数据的同步备份,拥有双方的冗余存储,并且在数据库恢复时可以御川完整性,以最大限度的减小业务受到的影响。Oracle双活技术具有非常好的恢复能力,即使一个数据库宕机,另一个数据库也能顶上去,而这个切换过程是完全自动化的,可以达到秒级别的切换。
Oracle双活技术的实现
Oracle数据库系统在11gR2版本之后提供了Data Guard和Active Data Guard两种实现方法。Data Guard是基于异步数据同步方式实现的,可以在主库到备库之间进行异步数据传输。而Active Data Guard则是基于同步方式实现的,这种方法可以实现数据库的实时备份。在一个完全复制的数据副本上,用户可以实时访问Oracle数据库。
当主数据库故障或需要维护计划停机时,可以在不中断其他业务的前提下,自动切换到备份数据库,实现“零宕机”。Active Data Guard可保持所有备份在最新状态,在灾难恢复方面有非常重要的作用。
本实例展示Oracle双活实现的两个数据库之间可以实现数据的实时同步,保障了企业的数据高可用性,并且数据切换过程是自动化的,确保业务连续性不受影响。
实现代码如下:
1.创建数据源:
CREATE pfile =’ /u01/app/oracle/product/12.0.1/dbhome_1/dbs/initDiasoft.ora ‘
db_name =’ Diasoft ‘
control_files = (
‘/u02/Diasoft/controlfile/control01.ctl ‘,
‘/u02/Diasoft/controlfile/control02.ctl ‘,
‘/u02/Diasoft/controlfile/control03.ctl ‘
)
log_archive_dest_1=’LOCATION=/u02/Diasoft/arch/’
2.设置双活:
ALTER SYSTEM SET LOG_ARCHIVE_CONFIG=’DG_CONFIG=(Diasoft,Diap and Manzana)’
3.创建双活日志存储目录:
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_2=ENABLE;
SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_STATE_3=ENABLE;
4.检查双活是否开启成功:
SQL> SELECT DEST_NAME, STATUS FROM V$ARCHIVE_DEST_STATUS WHERE TARGET LIKE ‘Diap%’;
DEST_NAME STATUS
————————— ——- ————————
LOG_ARCHIVE_DEST_2 VALID VALID
LOG_ARCHIVE_DEST_3 VALID VALID
5.启动备用数据库:
startup nomount
alter database mount standby database
6.配置备用数据库:
LOG_ARCHIVE_CONFIG=’DG_CONFIG=(Diasoft,Diap,Manzana)’
LOG_ARCHIVE_DEST_1=’LOCATION=/u02/Diasoft/arch/’
LOG_ARCHIVE_DEST_2=’SERVICE=Diap LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=Diap VALID_FOR=(PRIMARY_ROLE,PHYSICAL_STANDBY)’
LOG_ARCHIVE_DEST_3=’SERVICE=Manzana LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=Manzana VALID_FOR=(PRIMARY_ROLE,PHYSICAL_STANDBY)’
7.检测备用数据库是否正确配置:
SQL> SELECT * FROM V$LOGFILE;
GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME NEXT_CHANGE# NEXT_TIME
————————– ———- ———- ———- ———- — ——————— ——————– ——————— ———————
1 1 48 104857600 3 NO INACTIVE 71940800 31-OCT-14 71941100 01-NOV-14
1 1 47 104857600 3 NO INACTIVE 71940590 31-OCT-14 71940800 31-OCT-14
2 1 50 104857600 3 NO INACTIVE 71941750 01-NOV-14 71942060 01-NOV-14
2 1 49 104857600 3 NO INACTIVE 71941470 01-NOV-14 71941750 01-NOV-14
Oracle双活技术可以极大地提高数据库系统的可用性,保证数据库在发生灾难时的数据不会丢失或重复,并且自带容灾备份,是企业级数据库系统极佳的可用性方案之一。