吴 艳,郑 伟
(贵州广播电视台,贵州 贵阳 550025)
贵州广播电视台的播出数据库采用NEC Express Cluster集群管理软件和Microsoft SQL Server 2012数据库管理软件相互集成,形成了主备自动接管的双机备份数据库集群架构,同时将备份文件自动备份并还原到异地的第三备份数据库。通过双机热备结合异地三备的数据库备份方式,能够有效地提升播出数据的安全性。本文详细介绍这种基于SQL Sever播出数据库的高安全部署方案。
贵州广播电视台的播出数据库系统包括主数据库服务器、备数据库服务器、第三备数据库服务器以及网络交换机。主、备数据库之间通过NEC集群建立双机热备结构,第三备数据库采用自动备份和自动还原的方式,从而保证在极端情况下异地备份数据库尽可能及时还原主备数据库的数据。系统架构如图1所示。
图1 系统架构图
NEC的集群架构[1-2]通常包括服务器节点、网络、存储、负载均衡、管理软件以及虚拟化技术。服务器节点是集群的基本单元,负责运行应用程序和服务的计算资源。服务器节点通常通过高速网络连接。贵州广播电视台的数据库服务器配置了8块容量为300 GB的硬盘。其中,1—2号磁盘配置为RAID1,用于操作系统及数据库备份;3—6号磁盘配置为RAID10,存放数据库文件及临时数据库的文件和日志;7—8号磁盘配置RAID1,用于存放数据库的日志文件。两台服务器的操作系统均为Windows Server 2012 R2 Standard。由于两台服务器用于集群管理,因此,两台数据库服务器的其他硬件配置需保持一致。网络是集群内服务器节点之间的通信基础设施。贵州广播电视台播出数据库采用以太网的方式来实现服务器节点之间的通信。存储是用于存储数据和应用程序的组件。NEC的集群通常使用网络附属存储(Network Attached Storage,NAS)或存储区域网络(Storage Area Network,SAN)来提供高性能、高可用性的数据存储。负载均衡器是用于分配工作负载到各个服务器节点的组件。负载均衡器可以根据不同的因素(如处理能力或网络负载)来分配工作负载。管理软件是用于配置、管理和监控集群的软件。NEC的集群通常使用管理软件来自动化进行日常管理和监控任务,以提高效率并减少人工错误。虚拟化技术是用于将一个或多个物理资源转换为多个虚拟资源的技术。NEC的集群通常使用虚拟化技术来提高资源利用率并实现更高的可扩展性。通过将这些组件组合在一起,NEC的集群架构可以提供高性能、高可用性和高可扩展性的计算能力,以满足各种需求。
播出数据库采用NEC集群软件实施冗余构架[3]。两台服务器SQL01和SQL02连接到播出网交换机VLAN100,SQL01的IP为IP-1,SQL02的IP为IP-2,主备集群的IP为IP-3。两台数据库服务器的第二个网口互联,是心跳网口。当其中一台服务器故障,另一台服务器则自动接管业务。
集群磁盘共享采用磁盘镜像的方式。F盘和G盘均作为镜像,相当于主备数据库服务器的F盘和G盘分别为RAID1。其中,每个F盘均由4块300 GB硬盘配置RAID10组成,而G盘由2块300 GB硬盘配置RAID1组成。F盘存储数据库在线数据,备份数据;G盘存储数据库在线日志,备份日志。镜像磁盘只有主控的设备可以访问。当设备为备控时,无法打开本地F盘和G盘。
贵州广播电视台一共配置了两个播出数据库。一个是名为xbroadcast28的播出数据库,包含了所有的素材信息和操作日志信息的存储和管理,保存素材信息的数据文件存放在F盘,保存操作日志信息的日志文件存放在G盘。另一个是名为UserVerify数据库,保存播出系统的人员信息,包括人员姓名、账号、密码以及权限等信息。该人员数据文件存放在F盘。
使用桌面的chrome浏览器可以登录集群管理系统[4]。集群管理Cluster manager1的登录地址为“IP-1+端口号”,集群管理Cluster manager2的登录地址为“IP-2+端口号”。Cluster manager1对应SQL01,Cluster manager2对应SQL02。正常情况下,两个管理系统的数据是完全同步的,登陆任何一个系统都可以。如果集群中一台服务器出现异常,则Cluster manager有可能不能启动,此时应启动本机的管理系统,即SQL01正常则启动Cluster manager1,SQL02正常则启动Cluster manager2。登录以后,左边页签Servers为当前连接的服务器。正常为绿色,异常为叉符号和红色,未启动为灰色。页签Groups下的failover为建立的集群组名称,下面分别有datadisk、logdisk、VIP、SQLServer及SQLServerAgent几个资源。这些资源正常为绿色,异常为叉符号和红色,未启动为灰色。设定值显示的是当前使用资源的服务器。正常情况下应统一为bc-sql-m。集群管理界面如图2所示。
图2 集群管理界面
在集群管理界面右键failover,可以手动启动/停止/移动集群服务。正常情况下,集群服务是自动启动的。如果出现异常,则需要手动操作。移动是指资源组的使用权从当前服务器切换到另一台服务器。正常情况下,集群服务是自动接管的,出现异常时可以手动操作。需要注意的是,集群服务的移动和停止操作都会造成集群服务停止至少30 s,会造成播出数据库断开连接,操作需谨慎。
集群的开关机有顺序要求。正常情况下,开机时,先开逻辑主机,再开逻辑备机;关机时,先关逻辑备机,再关逻辑主机。如果出现异常情况,开机顺序变化,则开机时应保持原则,先启动最后关闭的机器,确保最后关闭的机器留有完整的日志配置信息。
播出数据库的备份采用完全备份和差异备份[5-6]相结合的方式。这种方式可以提高数据恢复的可靠性。首先进行数据库的完全备份。完成完全备份后,进行差异备份。差异备份过程中,只备份有标记的那些选中的文件和文件夹,不清除标记,也就是备份后不标记为已备份文件,不清除存档属性。进行恢复时,只需对第一次完全备份和最后一次差异备份进行恢复即可。通过以上步骤,可以结合完全备份和差异备份的优点,提高数据恢复的可靠性和效率。数据库配置了数据备份和日志备份[7]。备份时间片如图3所示。
图3 备份时间片
数据备份每隔3 h进行一次,01:30开始,每天循环。日志备份每3 h一次,00:00开始,每天循环。每次备份,将备份文件保存在本地磁盘。数据备份保存到F盘,日志备份保存到G盘。第三备数据库也是通过自动备份加自动还原的方式将数据和日志备份并还原到第三备数据库IP-4。即使主备数据库同时宕机,也可以最大限度地恢复数据库信息,损失的数据信息时长控制在1.5 h以内。当主备数据库宕机,只需要将主备数据库断开网络,同时将第三备数据库的IP地址改为IP-3即可。
第三备数据库的自动备份可以通过在主数据库添加作业任务来实现,执行以下命令:
echo f|xcopy "F:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLackupXBroadcast28"%filename1% "\172.18.226.14e$播出数据库备份数据库xbroadcast28"%filename3% /y。
第三备数据库日志文件的自动备份执行以下命令:
echo f|xcopy "G:Program FilesMicrosoft SQL ServerMSSQL10_50.MSSQLSERVERMSSQLackupXBroadcast28"%filename1% "\172.18.226.14e$播出数据库备份日志XBroadcast28"%filename1% /y。
当数据库发生异常无法访问时,需要通过数据库的数据备份文件bak和事务日志备份文件trn将数据库恢复到指定时间节点。采用完整日志模型配置,理论上可以恢复数据库到任何一个时间点。使用数据库备份文件bak恢复数据库,可以将数据库恢复到备份的时间节点,每3 h生成一个备份文件,但无法恢复到时间节点以外的时间。如果所需要的数据没有包含在数据库备份文件bak中,则需要对数据库进行事务日志备份trn文件的恢复。此时,可以将数据库恢复到trn文件包含的时间点内。需要在恢复选项中选择不对数据库执行任何操作,此时显示数据库正在还原。
第三备播数据库可以进行自动还原[8-9]。在第三备数据库中添加自动还原数据库的作业任务,自动执行SQL脚本,可以实现数据库的自动还原。数据库自动还原作业步骤属性如图4所示。
图4 数据库自动还原作业步骤属性
本文对电视播出数据库部署方案进行了分析和探讨,通过对数据库的实际应用和验证发现,该数据库架构和部署方案可以有效提高播出数据库的可用性和安全性,极大地节省人力,同时确保电视播出的安全和稳定。