方敏 杨建军
摘要:数据库迁移之后的容灾研究是一个极具挑战的领域,数据库的部署应能及时发现问题并对数据采取相应的保护措施,防止数据的丢失和损坏,提高数据库的稳定性和运行效率。本文通过提出一种基于DG的TB级数量容灾方法,解决了一彩票研发中心数据库TB级数据出现的宕机问题。经过实施,彩票中心数据库实现了高效运行,具有容灾的功能,解决了两台数据库在迁移之后单纯的HA。
关键词:DC;数据迁移;效率;稳定性;容灾
中图分类号:TP319 文献标识码:A
文章编号:1009-3044(2020)09-0236-03
1 引言
随着数据量的快速增长,实现数据完整性和业务的连续性势必成为企业优先考虑的问题。采取有效的措施保证数据库的安全和高效运行是非常重要的,这就要求中心数据库不仅要对性能进行提升、解决数据库迁移后出现的HA,同时也要具备容灾的功能。
Oracle Data Guard简称DG,它是一种应用效果比较好的数据库容灾技术,为实现数据完整性及业务的连续性提供了一种高可用性的技术方案,在商业上又被称为standby database技术。DG可以通过网络进行连接和通信,确保数据的高可用性,为节点级别的系统提供恢复功能,实现保护数据和恢复灾难的目的。
2 数据收集
2.1 数据库高可用性方案
本文数据库采用Oracle DataG uard基础架构,创建、监控并维护多个备用数据库,从而保护企业数据结构不会受到故障、灾难、错误或崩溃的影响。本文涉及的DG工作示意图如图1所示。
2.2 系统数据采样
对系统数据采样,为解决方案的制定提供依据。
2.1.1 确定OS系统类型
Linux命令端输人命令:lsb_release id
uname - i - m -p
2.2.2 确定oracle软件的版本和参数
Sql>select*from v$version
2.2.3 确定库名,实例名,唯一性库名
Sql>select instance_name, name, db_unique_name from v $da-tabase;
2.2.4 确定归档模式,闪回模式,强制日志记录的方式
Sql>select log_modeAashback_on,
force_logging from v$database;
2.2.5 确定ORACLE_BASE,ORACLE_HOME的值
Sql>ho echo $ORACLE_BASE
Sql>ho echo $ORACLE_HOME
3 解决方案的制定
3*1 规划服务器
通过数据的收集确定DG部署的环境,明确了两台服务器的环境、实现方式,图2是对两台服务器的规划。
3.2 故障恢复时间计算
提高系统可用性最根本的方法就是降低故障恢复时间,一个典型故障恢复时间主要由硬件恢复时间、软件恢复时间和数据恢复时间三个部分组成。
3.2.1 硬件恢复时间
硬件恢复时间是服务器和网络故障以及其他共享存储设备恢复所需要的时间。
定义1定义硬件恢复时间为t(h)。
3.2.2 软件恢复时间
软件恢复时间可以分为操作系统及基础软件和在操作系统上安装的应用程序两个部分。
定义2对于操作系统及基础软件恢复时间,时间定义为t(o)。应用程序软件恢复时间,定义为t(p),可以推出软件恢复时间t(s)为t(o)与t(p)之和。
t(s)=t(o)+t(p)(1)
3.2.3 数据恢复时间
由于每个系统的RPO不同,数据恢复量也就不同。同时,数据恢复还存在难易程度不同,因此数据恢复时间可能受到多种因素的影响。
定义3定义数据恢复时间为t(d)。
另外,诸如进程恢复、客户端重试连接等其他因素也会影响整个系统的恢复时间,本文主要解决的是数据库、服务器端及应用服务器端软件的高可用性问题。
定义故障恢复时间trecover:
trecover-t(h)+t(s)+t(d)(2)
由公式1
=>trecover-t(h)+ t(o)+t(p) +t(d)(3)
3.3 高可用性容灾处理
在系统设计中采用算法判定任务的关键性,而不是通过灾难恢复计划预先制定相关任务的关键等级,这样做的好处是能够根据具體情况具体判断每个任务的关键等级,提高工作效率。高可用性容灾处理流程如图3。
4 TB级数量容灾实现
4.1主库环境设置
4.1.1主库设置为归档
要求数据库处于archivelog模式,如果是非归档模式则需要在宕机时间完成后切换到归档模式。
4.1.2设置强制日志记录
要求所有的事务都可以通过归档进行回滚。数据库所有的操作都会记录日志文件中。
4.1.3打开闪回模式
闪回功能可以根据需求自定,这里使用dg_broker自动切换,备库实例化需要闪回功能。
Sql>alter database flashback on;
4.1.4 rman备份
rman>backup database;
4.1.5 配置网络
网络设置需要对oracle主目录下的listener.ora和tnsnames.ora两个文件进行配置。
同样使用Vl命令添加以下主库和备库的信息
CRMDP=
(DESCRIPTION= (ADDRESS= (PROTOCOkTCP) (HOST=c:rmdb)(PORT=1521)
( CONNECT_DATA=
(SERVER=DEDICATED)
(SID=crmdb)))
CRMDP=
(DESCRIPTION= (ADDRESS= (PROTOCOkTCP) (HOST=scrmdb)(PORT=1521)
( CONNECT_DATA=
(SERVER=DEDICATED)
(SID=crmdb)))
4.1.6 添加备库联机重做日志
根据主库的日志文件组建立备库日志组,原则上备库比主库日志文件组多一个,且每组的成员至少一个。
4.2 备库环境设置
4.2.1 复制主库的密码文件和参数文件
把主库目录/u01/crmsoft/admin/crmdb/pfile挎贝到备库相同路径下,得到备库参数文件。
把主库目录/u01/crmsof t/ 11 g/dbs/orapwcrmdb文件拷贝到备库相同路径,得到参数文件。
4.2.2 准备目录
准备与主库放置文件路径一样的路径,并以数据库crmsoft用户创建。
4.2.3 配置网络
将listener.ora拷贝到备库相同路径下:
Scp
192. 168.2.23:/u01/c rmsoft/ 11 g/network/
admin/listener.ora$ORACLE_HOME/network/admin
4.3 克隆数据库
lsnrctl start
连接rman:rman target sys/oracleSysl@crmdbp auxiliary sys/oracleSysl@crmdbs
当输出显示为这个界面时候,说明rman对于两个数据库之间的连接没有问题,执行克隆:
rman>duplicate target database for standby nofilecheck fromactive database;
输出结果,说明克隆数据库已经成功。
4.4 db_broker搭建DG
4.4.1 主库备库均要打开dgbroker
Sql>alter system set db_broker_start=true
4.4.2 进入dgbroker进行配置
dgmgrl sys/oracleSysl@crmdbp
创建一个DG的配置,指定主库,连接的字符串:
DGMGRL>create configuration dgc as primary database is'
crmdbp' connect identifier is' crmdbp
增加一个物理备库到DG中:
DGMGRL>add database cnudbs as connect identifier is' crm-dbs' maintained as physical
打开配置,启动配置:
DGMGRL>show configuration;
DGMGRL>enable configuration;
此时配置已经生效,数据库已经同步。
设置主库备库的log管理方式和文件管理方式
DGMGRL>edit database crmdbp property lo~ptmode=sync
DGMGRL>edit database crmdbp property standbyfilemanage-ment=auto
4.5 同步验证
检查主库最大序列号和备库最大序列号
crmdbs上查看最大序列日志号:
Sql>select max(sequence#) from v$archived_log;
crmdbp上切换日志
Sql>alter system switch logfile;
Crmdbs再次查看最大序列日志号:
Sql>select max(sequence#) from v$archived_log;
结果显示为后者比前者变化大,说明实现了同步。
5 结束语
本文的解决方案和实施过程成功运用在某彩票研发中心数据库,解决了彩票中心数据库在工作环境中由于访问人数的增长、数据库升级、迁移等造成的宕机问题。经测试,环境搭建成功后,数据库具有容灾的功能,实现了数据库的高可用性。
数据库迁移后往往会出现大量的问题,甚至造成数据库的崩溃。即使Oracle提供的DG是一种比较优秀的解决方案,但并没有成熟到DBA运用它就能完全很好的解决问题的地步,需要DBA在实际工作中根据具体环境去分析、研究和完善。
参考文献:
[1]张政.数据容灾技术在企业信息系统中的应用[J].信息与电脑(理论版),2016(1):119,125.
[2]柳志权.企业信息系统中应用数据容灾技术的分析[J].电子技术与软件工程,2018(20):181.
[3]叶嘉酩,胡曉勤,王喆.数据容灾技术在企业信息系统中的应用[J].信息与电脑,2016(12):119+125.
[4]方华峰.数据容灾备份与恢复的关键技术及应用研究[J].网络安全技术与应用,2014(3):43-44.
[5]乔阿美.Oracle容灾技术在企业ERP系统中的应用研究[Jl,电子技术与软件工程,2014(23):68.
[6]傅玲,易建湘.数据中心数据库升级、迁移与整合[J].电脑编程技巧与维护,2019(8):109-110,113.
[7]杜军龙,金俊平,周剑涛.具备完整性追溯的系统数据容灾机制[J].计算机工程,2019,45(7):170-175.
[8]林国勇,黄帆.一种用于云计算的数据容灾分配算法的改进[J].科学技术与工程,2017,17(1):260-264.
【通联编辑:王力】
作者简介:方敏(1981-),女,四川眉山人,硕士,讲师,主要研究方向:软件工程;杨建军(1976-)男,甘肃天水人,讲师,主要研究方向:嵌入式软件教学与研究。