SQL SERVER双机热备
- 格式:pdf
- 大小:484.23 KB
- 文档页数:9
SQL SERVER2000企业版进行双机热备解决方案日志传送是SQL SERVER2000企业版进行双机热备的一个主要解决方案,其原理比较简单,实现也比较方便,只是由于和Windows之间错综复杂的关系,导致设置起来有不少困难,出现问题也不容易诊断。
1.实现概述*双机热备针对的是具体的某个数据库而不是整个服务器双机热备基于日志传送原理。
全程由作业控制,主服务器定时向辅服务器发送日志,辅服务器处于STAND BY模式下,定时按日志进行差异恢复。
如果主服务器停摆,监视服务器会将主服务器和辅服务器的角色互换。
监视服务器推荐设置在第三台服务器上,如条件不具备,也可考虑设置在辅服务器上。
图1-12.准备工作操作系统:首先准备两台干净环境的计算机,装完全一样的操作系统,SQL SERVR2000企业版(版本和补丁包一致),SQL SERVER相关的硬盘一定要NTFS格式,不装MACFEE(我的个人经验说明MACFEE和SQL SERVER有内存冲突)。
为两台机器建立隶属Administrator组的帐户名和密码,帐户名和密码需要完全一样(也可直接用Administrator)。
在两台机器的…/MSSQL目录下建立两个共享文件夹,名称不要相同,如shipping_source 和shipping_dest,并给予Administrator组帐号的全部权限。
这两个文件夹将作为两台服务器上的数据库存放和装载日志文件的文件夹(具体设置后面将讲到)。
检查两台机器的子网掩码,保证其在一个域或工作组中,在网上邻居内能看到对方服务器的共享文件夹并且访问时不需要输入密码(*如弹出密码输入,则不要输入以免影继续响调试)。
主服务器和辅服务器上的SQLSERVER服务和SQLAGENT服务都设置成开机自动启动。
SQL SERVER 2000企业版:在主服务器和辅服务器上以自己的计算机名或域中的成员名注册各自和对方的SQL SERVER(*(local)不要,IP也可以)打开数据库的属性窗口,勾选自动启动SQL SERVER,自动启动SQL SERVER代理,自动启动MSDTC,(两台都要做)并检查两台服务器的产品版本和操作平台是否一致。
sql server 热备方案一、概述热备是数据库高可用性的一种解决方案,它允许在设备故障或系统停机时,数据库仍然可以正常运行。
对于SQL Server,热备可以通过多种方式实现,包括但不限于数据库镜像、日志复制、文件组备份等。
本方案将详细介绍如何通过日志复制实现SQL Server的热备。
二、准备工作1. 确保两台服务器(主服务器和备用服务器)具有相同的硬件配置和操作系统。
2. 在两台服务器上安装SQL Server,并确保它们都是完全授权的。
3. 在主服务器上创建一个数据库,该数据库将用于热备。
三、配置日志复制1. 在主服务器上,打开SQL Server Management Studio (SSMS)。
2. 在“对象资源管理器”中,右键单击要复制的数据库,并选择“属性”。
3. 在“属性”窗口中,选择“复制”选项卡。
4. 勾选“使数据库可复制”选项,并选择“事务日志”选项。
5. 点击“确定”保存设置。
6. 在备用服务器上,重复上述步骤,但确保选择“订阅者”角色。
四、配置文件组备份1. 在主服务器上,打开SSMS。
2. 在“对象资源管理器”中,右键单击要备份的数据库,并选择“任务”-> “备份”。
3. 在“备份类型”中选择“文件组”,并选择要备份的文件组。
4. 点击“确定”保存设置。
5. 在备用服务器上,重复上述步骤,但确保选择与主服务器相同的文件组进行备份。
五、验证热备设置1. 在主服务器上,对数据库执行一些写操作,例如插入、更新或删除数据。
2. 在备用服务器上,检查数据库是否同步了主服务器的更改。
您可以通过查询数据库中的数据或使用事务日志查看器来验证这一点。
3. 如果一切正常,您已经成功地设置了SQL Server的热备。
在主服务器出现故障时,您可以将备用服务器提升为新的主服务器,并继续进行数据库操作。
六、注意事项1. 确保在生产环境中进行充分的测试,以验证热备方案的稳定性和可靠性。
Windows Server2012下安装 SQL Server2012集群准备工作:虚拟环境下模拟创建:新建三台虚拟机,一台用作域控服务器,另外两台当做数据库节点。
虚拟机安装这里不在描述,准备好 3 台虚拟机,操作系统WindowsServer2012R2 。
操作系统安装完成后,需要注意的地方。
第一步:如果是虚拟机克隆的系统需要确保计算机 sid 不同如果虚拟机是克隆出来的,后面操作集群的时候,需要计算机的sid 不同,所以需要重置。
如果是物理机,则不需要这一步操作。
重置办法如下:进入 C:\Windows\System32\Sysprep\sysprep.exe如图所示,勾选通用,点击确定。
执行完成后,会重启操作系统。
等待操作系统重启完成后,需要重新激活操作系统。
输入WindowsServer2012R2 的激活码。
本次测试采用的是 ServerDatacenter 版:以下是提供的激活码ServerStandard = NB4WH-BBBYV-3MPPC-9RCMV-46XCBServerStandardCore = NB4WH-BBBYV-3MPPC-9RCMV-46XCBServerDatacenter = BH9T4-4N7CW-67J3M-64J36-WW98YServerDatacenterCore = BH9T4-4N7CW-67J3M-64J36-WW98Y第二步:磁盘准备工作需要 4 个磁盘卷:仲裁盘、群集共享卷、 MSDTC、可用磁盘卷(数据存储盘)通过 isci 服务来创建上述的四个磁盘卷。
域控服务器不需要关联这四个磁盘卷。
3 个服务器:节点 1: 192.168.1.130192.168.192.130节点 2: 192.168.1.131192.168.192.131DC:192.168.1.136故障转移群集:192.168.1.137分布式事务ip: 192.168.1.138数据库集群ip: 192.168.1.139只有两个节点关联磁盘,域控服务器不关联磁盘。
1,双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备。
2,以一般常用的SQL服务的双机热备为例:先在两台服务器上安装服务器系统。
3,然后建立一个或多个磁盘阵列,将两台服务器上的SQL数据保存在磁盘阵列上。
4,然后安装一款集群软件,如:微软MSCS,Symantec VCS,ATANG Cluster 等。
5,然后在软件上分别设置主和副服务器。
以MSCS为例,先在服务器上安装Advanced Server或DataCenter Server。
然后在两台服务器添加相同的管理员帐号和密码。
即帐号在每个节点上,都必须具有管理员权限。
所有节点都必须是成员服务器,或者所有的节点是同一个域里的域控制器。
在群集中,不允许一部分是域成员,一部分是域控制器。
6,然后安装集群管理软件,开启磁盘阵列,在两台电脑上设置共享磁盘,并验证共享磁盘国。
7,然后关闭第一个服务器,配置第二个节点,配置完成后,关闭第二个服务器,打开第一个服务器,配置第一个节点。
8,最后,开启两个服务器和磁盘阵列。
组成双机热备的方案主要的三种方式分别为:基于共享存储(磁盘阵列)的方式,全冗余方式和复制方式。
基于共享存储(磁盘阵列)的方式共享存储方式主要通过磁盘阵列提供切换后,对数据完整性和连续性的保障。
用户数据一般会放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
如下图所示传统的单存储方式这种方式因为使用一台存储设备,往往被业内人士称为磁盘单点故障。
但一般来讲存储的安全性较高。
所以如果忽略存储设备故障的情况下,这种方式也是业内采用最多的热备方式了。
全冗余方式全冗余方式就是双机双存储,基于单台存储的传统双机热备方式,确实存在存储单点故障的情况,为实现存储冗余,存储高可用也已经越来越多的被用户接受。
我们从理解上可以看出,双机热备最早是为解决服务器的计划性停机与非计划性宕机的解决方案,但是我们无法实现存储的计划性停机与非计划性宕机带来的服务器停机,而存储作为双机热备中唯一存储数据的设备,它一旦发生故障往往会造成双机热备系统全面崩溃。
SQL SERVER 双机及集群SQLServer for LanderCluster-DN for Windows2000/2003双机环境实现SQLServer是在Windows操作系统平台下使用最多的数据库之一,很多环境都具有关键业务需求,因此采用双机环境来保证数据库环境的高可用,下面介绍一种能够最方面部署的集群环境方法。
首先,下载好免费试用的软件包:LanderCluster-DN for Windows,然后仔细按照下列步骤操作就可以实现双机环境。
环境要求:略(参考配置需求说明)实际步骤一、LanderCluster4.0 For windows 2000集群软件安装和配置1.安装前说明:a. 版本说明:操作系统需要安装的补丁Service Pack 3及以上和其他硬件相关补丁b. 网络说明:LanderCluster与使用的何种传输介质无关。
需要两块网卡,心跳和工作。
c. 硬件连接准备:连接好主机的网络和有关外部设备。
连接主机到磁盘阵列柜的SCSI 连线。
2.安装a.以Administrator登陆,双击光盘跟目录中setup.exe文件,随后根据安装向导按默认完成安装3.卸载:a.通过运行setup.exe文件,根据向导完成卸载;b.直接在“控制面板”、“添加和删除程序”完成卸载。
4.配置参考4.0的帮助的集群配置5.LanderCluster如何启动停止LanderCluster集群进程在系统服务中停止和启动Cluster Management Agent和Cluster Agent服务即可二、SQL 在LanderCluster集群环境下安装和建库注意事项:NO1:首先安装主备机操作系统win2000,打系统补丁sp4NO2:主机SQL的安装:连接好磁盘阵列柜到两台机器,先开主机,关备机。
在主机磁盘管理中认出逻辑盘,分配盘符F:(例),然后开始SQL安装:a.数据库系统文件安装在本地磁盘系统C:\sqlserver:;b.数据库库文件建立在公共磁盘系统F:、sqldata;安装完后启动服务,都能启动后,打SP3以上的SQL的补丁,打完后应该都可以启动,把sqldata目录改名字 sqldata_bkNO3:备机SQL的安装:开备机,关主机。
双机热备=主机+备机简单理解:主要应用运行于主机,备机即备用机器双机互备=主机(备机)+备机(主机)简单理解:部分应用运行于主机,部分应用运行于备机双机双工=主机+主机简单理解:两台机器同时运行应用第一种,备机不工作,主机出现故障时备机接管主机的所有工作第二、三种,主机备机同时工作,两台服务器可以跑不同的应用,例如主机跑ORACLE,备机跑IIS,任意一台服务器故障时,所有服务会自动切换到正常的服务器上第一种,备机不运行应用,处于等待状态第二种,备机运行与主机不同的应用,应用互为备份第三重,备机运行与主机相同的应用第一种:两台server安装相同的系统、应用软件,通过一个虚拟的名称对外提供服务,但是一个时刻只有一台是活动的,另一台处于休眠状态。
故障发生时通过双机软件的侦测和切换功能,备份server接管工作。
第二种:两台server安装相同的系统、应用软件,例如server1跑ORACLE、server2做MAIL。
但是每个server同时只有一个服务是运行的,当server1出故障后,server2接管server1的ORACLE服务。
第三中:应该是负载均衡吧。
1、双机热备即是目前通常所说的active/standby 方式,服务器数据包括数据库数据同时往两台或多台服务器写,保证数据的即时同步,当active服务器出现故障的时候,通过软件诊测或手工方式将standby机器激活,保证应用在短时间内完全恢复正常使用。
典型应用在证券资金服务器或行情服务器。
cluster其中一种形式。
2、双机互备,两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。
配置相对要好。
3、双机双工,即目前的cluster的一种形式,两台或多台服务器均为活动,同时运行相同的应用,保证整体的性能,也实现了负载均衡和互为备份。
双机热备系统上实现SQL Server数据库应用一、概要目前,各企业的应用系统都要求知足7*24的全天候运转需求,在系统正式投入利用后,就不许诺有宕机的情形,不然就不能保证企业的正常生产,带来必然的经济损失,做系统方案设计时,就要把这点作为重要内容考虑进去。
本文是实施大庆油田物资集团“通用进销存”物资治理信息系统时的一个成功案例,系统采纳两台IBM x445效劳器做Cluster双机热备系统,数据库选用的是微软的SQL Server 2000。
在其中一台系统效劳器显现故障时,将其上运行的SQL Server效劳自动转换到另外一台效劳器上,保证数据库的正常运转。
二、安装前的预备(一)硬件环境1、IBM x445效劳器两台4CPU机械1台,作为主节点,以下称为:Node A;2CPU机械1台,作为子节点,以下称为:Node B。
2、HP ML370效劳器一台作为主域操纵器,治理群集域。
3、外置磁盘柜一台EXP300 1台,SCSI硬盘13块,存储集群信息及用户数据。
4、ServeRAID 6M阵列卡两块连接外置磁盘柜及主机内磁盘。
5、SCSI连接电缆两条连接主机和外置磁盘柜。
6、网络适配卡四块用于效劳器外部效劳通信和群集内部信息通信。
7、心跳线一条网络交叉双绞线。
(二)软件环境1、IBM x-445自带ServeRAID CD 7.00;2、Windows 2000 Advanced Server CD;3、MS SQL Server 2000 Enterprise CD;4、其他相关软盘,如ServeRAID 6M卡驱动。
(三)网络环境名称IP地址子网掩码Node A 外部连接10.0.0.2255.255.255.0Node A 内部连接192.168.8.101255.255.255.0Node B 外部连接10.0.0.3255.255.255.0Node B 内部连接192.168.8.102255.255.255.0Cluster 服务器对外通讯10.0.0.251255.255.255.0三、安装硬件1、连接好主机、键盘、鼠标、显示器;2、用SCSI连接电缆将每一台主机的ServeRAID 6M卡和外置磁盘柜后端接口相连;3、将两台机械中一块网卡用直心跳线连接;另一块网卡和网络(互换机)连接;4、接好主机外置磁盘柜的电源线。
ROSE for windows双机热备安装及配置来源: 中国系统集成网原文链接:/tech/201006/12-2160.html1. 安装SQL Server数据库SQL Server的安装步骤我们也不详细列出,相信各位在数据库安装上都有丰富的经验。
(1)关闭服务器2,在服务器1上安装SQL Server数据库,选择把程序文件安装在本地硬盘,把数据库文件安装在磁盘阵列柜上。
安装完毕,在控制面板的服务中把SQL1. 安装SQL Server数据库SQL Server的安装步骤我们也不详细列出,相信各位在数据库安装上都有丰富的经验。
(1)关闭服务器2,在服务器1上安装SQL Server数据库,选择把程序文件安装在本地硬盘,把数据库文件安装在磁盘阵列柜上。
安装完毕,在控制面板的服务中把SQL Server的所有服务停止并设置成手工启动方式。
(2)关闭服务器1,按上述步骤在服务器2上进行安装SQL Server数据库。
(3)安装完毕后打开两台服务器。
将服务器2上的SQL Server服务启动,然后全部停掉,再将服务器1 的SQL Server服务启动,然后全部停掉。
验证是否能够启动这些服务。
如果启停正常,再进行以下步骤。
否则需恢复正常后才能进行以后的步骤。
注意:安装完第一台数据库后,关闭机器,再在第二台上安装,安装前需要将盘柜中第一台数据库的数据文件删除或者盘柜格式化,之后再安装数据库,并且数据文件也是和第一台一样安装在盘柜中。
(保证两台机器的数据库mssqlserver和sqlserveragent服务为手动启动)2. 保证两台机器的数据库mssqlserver和sqlserveragent服务均为停止状态。
分别在两台机器的C:WINDOWSsystem32driversetc下的host文件中添加心跳ip地址以及对应的主机名称。
例如:127.0.0.1 localhost10.0.0.1 SERVERA10.0.0.2 SERVERB192.168.1.1 VIP设置系统密码,两台机器密码最好一致。
SqlServer2000双机异步备份1、目的为了实现SqlServer2000数据库服务器与备份机之间的异步定时备份,同时在备份机定时恢复,特做此实际操作。
2、环境数据库服务器系统:Windows Server 2003 Enterprise Edition机器名称:QASOFTOAIP:192.168.1.236以下简称236数据库:SqlServer 2000 sp4备份机系统:Windows Server 2003 Enterprise Edition机器名称:QIANERPIP:192.168.1.243以下简称243数据库:SqlServer 2000 sp43、工具使用系统自带的计划任务和SqlServer 2000的企业管理器中的工具即可。
4、具体操作4.1、配置用户名和共享文件夹首先,分别在两台机器上安装sqlserver2000数据库,并打过sp4补丁,然后分别在两台机器上建立相同用户名和密码的用户,我这里建立的用户为sqlserver密码也是sqlserver,步骤如下,打开计算机管理界面:展开本地用户和组选项,在用户上右键:选择新用户,输入用户名和密码勾掉“用户下次登录时须更改密码”,勾选“用户不能更改密码”和“密码永不过期”:最后点击“创建”:然后点击“关闭”,在右侧的用户列表用就可以看到刚建的sqlserver用户:然后将该用户分到Administrators组中,在左侧点击“组”,然后在右侧的Administrators组上右键:选择“添加到组”:然后点击“添加”:然后点击“高级”来查找刚才添加的用户:然后点击“对象类型”,在这里面勾掉除了用户以外的其他选项:点击“确定”后,点击“立即查找”:选中刚建的“sqlserver”用户,然后点击“确定”:点击“确定”:点击“应用”和“确定”。
最后再确定即可。
记住,两台机器需要做上面相同的操作。
然后在236上的管理里,点击左侧的“服务”选项,在右侧服务列表中找到MSSQLSERVER服务,右键---》属性:选择“登录”选项卡:选中“此账户”,然后点击“浏览”,然后和添加到组时的操作相同,选择sqlserver用户,并输入密码:最后点击“应用”和“确定”。
sqlserver双机热备份⽅案之数据库镜像(实测sqlserver2016)⼀、先简单介绍下sql server ⾃带的双机的热备的⼏种⽅案1,发布--订阅利⽤sql server 复制功能实现主机发布数据库,备机订阅数据库,做到数据热备2,⽇志传送SQLServer数据库引擎中,使⽤⽇志传送将事务⽇志不间断地从⼀个数据库(主数据库)发送到另⼀个数据库(辅助数据库)。
不间断地备份主数据库中的事务⽇志,然后将它们复制并还原到辅助数据库,这将使辅助数据库与主数据库基本保持同步。
⽬标服务器充当备份服务器,并可以将查询处理从主服务器重新分配到⼀个或多个只读的辅助服务器。
⽇志传送可与使⽤完整或⼤容量⽇志恢复模式的数据库⼀起使⽤。
3,数据库镜像利⽤sql server 镜像功能在备机建⽴镜像后,实现主机和备机数据热备。
数据库镜像是⽤于提⾼数据库可⽤性的主要软件解决⽅案。
镜像基于每个数据库实现,并且只适⽤于使⽤完整恢复模式的数据库。
数据库镜像维护⼀个数据库的两个副本,这两个副本必须驻留在不同的SQL Server数据库引擎实例(服务器实例)上。
通常,这些服务器实例驻留在不同位置的计算机上。
其中⼀个服务器实例使数据库服务于客户端(“主体服务器”),⽽另⼀个服务器实例则充当热备⽤或备⽤服务器(“镜像服务器”),具体取决于镜像会话的配置和状态。
同步数据库镜像会话时,数据库镜像提供了热备⽤服务器,可⽀持在已提交事务不丢失数据的情况下进⾏快速故障转移。
⼆、数据库镜像热备⽅法注意点:1.数据库的模式要是完整模式。
2.要对数据库完整备份和事务⽇志备份,分别还原到镜像库上,使⽤NORECOVERY模式。
3.镜像数据库是不允许删除和操作,即便查看属性也不⾏。
4.先删除端点,再删除证书,再删除主密钥。
5.只有是同步模式的时候,才能⼿动故障转移,异步模式不能⼿动故障转移。
主机:192.168.11.253备机:192.168.11.251(1),先创建密匙,主机备机都要下⾯执⾏代码use master --创建密匙gocreate master key encryption by password='888888'goselect * from sys.key_encryptions --查询密匙(2),创建证书,主机执⾏use master --主机证书为:DBAgocreate certificate DBA_cert with subject='DBA certificate',expiry_date='2099-1-1'go备机执⾏use master --主机证书为:DBBgocreate certificate DBB_cert with subject='DBB certificate',expiry_date='2099-1-1'goselect * from sys.certificates --查看证书(3),创建主库镜像和端点主机执⾏use mastergocreate endpoint Ticket_Mirroring --端点为Ticket_Mirroring ,端⼝号:5022,镜像为DBAstate=startedas tcp ( listener_port = 5022,listener_ip = all )for database_mirroring ( authentication = certificate DBA_cert, encryption = required algorithm aes, role = all )go备机执⾏create endpoint Ticket_Mirroring --端点为Ticket_Mirroring ,端⼝号:5022,镜像为DBBstate=startedas tcp ( listener_port = 5022,listener_ip = all )for database_mirroring ( authentication = certificate DBB_cert, encryption = required algorithm aes, role = all )go(4),备份密匙主机执⾏use master --备份密匙gobackup certificate DBA_cert to file = 'D:\cert\DBA_cert.cer' --密匙路径go备机执⾏use master --备份密匙gobackup certificate DBB_cert to file = 'D:\cert\DBA_cert.cer' --密匙路径go(5),复制交换密匙,保证在主机和备机的D:\cer下路径都有DBA_cert和DBB_cert⽂件(6)创建登录名,和证书关联,主机创建备机,备机创建主机主机执⾏use mastergocreate login DBB_login with password='888888'go备机执⾏use mastergocreate login DBA_login with password='888888'go(7),创建使⽤该登录名的⽤户,主机创建备机,备机创建主机主机执⾏use mastergocreate user DBB for login DBB_logingo备机执⾏use mastergocreate user DBA for login DBA_logingo(8),证书与⽤户关联,主机关联备机,备机关联主机主机执⾏use mastergocreate certificate DBB_certauthorization DBBfrom file='D:\cert\DBB_cert.cer'go备机执⾏use mastergocreate certificate DBA_certauthorization DBAfrom file='D:\cert\DBA_cert.cer'go(9),授予对远程数据库端点的登录名的CONNECT权限,主授权备机,备机授权主机主机执⾏use mastergoGRANT CONNECT ON ENDPOINT::Ticket_Mirroring TO [DBB_login];go备机执⾏use mastergoGRANT CONNECT ON ENDPOINT::Ticket_Mirroring TO [DBA_login];go(10),从主机上备份需要热备的数据库的数据库和事务⽇志,数据库⼀定要完整,然后把数据库和事务⽇志还原到备机,还原⼀定要使⽤NORECOVERY模式,还原后备机数据库显⽰正在还原为正常现象。
SQL Server数据库热备方案三篇篇一:SQL Server数据库热备方案SQL Server数据库的高可用性方案主要有数据库镜像、日志传送、复制和故障转移群集等四种,本文基于自动灾难恢复的出发点,推荐故障转移群集和数据库镜像两种方案。
如遇高安全性、高性能的复杂情况,可多种方案组合使用,如故障转移群集+复制、数据库镜像+复制、数据库镜像+日志传送等。
故障转移群集方案方案说明应用服务器1应用服务器2SQL Server故障转移群集示意图1.Windows故障转移群集作为平台,其上运行SQL Server故障转移群集2.Windows故障转移群集对外提供虚拟IP,SQL Server群集对外提供群集实例名3.SQL Server群集中多个节点数据库共享1套数据库存储,确保数据一致性4.SQL Server群集中只有1个节点为活动状态,独占控制存储,对外提供数据库服务5.当前活动节点发生故障宕机,群集自动选择转移节点并切换至该数据库(状态切换为活动,开始独占存储,对外提供服务)6.多个节点须在同一个子网内,如有跨网段情况,需组VLAN。
软件需求⏹Windows Server操作系统(建议20XX及以上版本)⏹Active Directory服务⏹域DNS服务器⏹故障转移群集服务⏹SQL Server数据库硬件需求⏹域主控服务器⏹DNS服务器(可合并至主控服务器)⏹故障转移群集节点数据库(1个活动节点+1或多个转移节点)⏹存储:共享存储,视成本而定⏹网络:✓群集节点至少需要2块网卡:数据库服务+心跳。
根据存储类型确定是否需要额外网卡。
windows故障转移群集对外提供虚拟群集IP可见,SQL故障群集实例提供虚拟群集实例名称供应用程序访问。
数据库镜像方案方案说明应用服务器2应用服务器1SQL Server数据库镜像示意图1.见证服务器轮询验证主体数据库与镜像数据库的状态2.正常情况下,主体数据库提供对外服务,镜像数据库不可用,两台数据库间进行数据同步3.当见证服务器发现主体数据库断开连接,且见证服务器与镜像服务器连接正常,则启动故障转移。
数据库中的主从复制与双机热备在数据库管理领域中,主从复制与双机热备是两种常用的高可用性解决方案。
它们提供了数据冗余与故障恢复的机制,确保数据库系统的可靠性和可用性。
在本文中,我们将介绍主从复制与双机热备的工作原理、应用场景与优缺点,并对比它们的特点。
1. 主从复制主从复制是一种数据复制技术,它将一个数据库服务器作为主服务器(Master),其他多个数据库服务器作为从服务器(Slave),将主服务器上的数据同步复制到从服务器上。
主从复制的工作原理可分为三个步骤:二进制日志的记录、二进制日志的传输与应用。
首先,主服务器将自己上的所有操作记录在二进制日志(Binary Log)中。
这些操作包括数据增删改操作、用户操作与系统操作等。
二进制日志可以看作是主服务器上的一个增量备份,记录了数据库的所有变更。
同时,从服务器通过开启复制功能与主服务器建立连接,从服务器通过执行CHANGE MASTER TO等命令告知主服务器自己的身份。
接着,主服务器将二进制日志传输给从服务器。
这可以通过多种方式实现,如基于TCP/IP协议的复制、利用日志文件共享或通过存储区等。
无论采用何种方式,主服务器将二进制日志的改动同步传送到从服务器,从服务器将这些改动记录在自己的服务器中。
最后,从服务器应用二进制日志中的变更,将主服务器的数据复制到自己的数据库中。
从服务器通过对二进制日志的解析与执行,实现与主服务器的数据同步。
因此,主从复制具有以下优点:数据冗余、故障恢复、负载均衡、读写分离等。
主从复制适用于读多写少的场景,可以将读请求分摊给从服务器,减轻主服务器的负载压力。
同时,通过将从服务器设置为只读,可以保证数据的一致性与完整性。
然而,主从复制也存在一些缺点。
首先,主服务器的单点故障可能导致整个数据库系统不可用。
其次,主从复制无法解决数据上的冲突和同步延迟的问题。
最后,主从复制对于大量写操作或数据量较大的系统可能会造成网络传输或存储资源的压力。
首先,要在主服务器和从服务器上同时运行SQL Server实例,并将一个SQL Server实例配置为主节点,另外一个SQL Server实例配置为从节点,从节点实例将覆盖主服务器上的数据。
具体实现代码以下:—主服务器上设置EXEC sp_configure ‘show advanced option’,1 ;GORECONFIGURE;GOEXEC sp_configure ‘xp_cmdshell’,1 ;GORECONFIGURE;GO—从服务器上设置EXEC sp_configure ‘show advanced option’,1 ;GORECONFIGURE;GOEXEC sp_configure ‘replication’,1 ;GORECONFIGURE;GO接着,设置主从服务器之间的复制策略,可以根据业务系统需求选择全量复制、部份复制或增量复制,实现实时数据传输。
以全量复制为例,实现代码以下:—在主服务器上创建发布者USE [master];GOEXEC sp_IsDistributorInstalled;GOEXEC sp_CreateDistributor @distributor = N’MyDistributor’,@password = N”;GO—从服务器上创建定阅者USE [master];GOEXEC sp_AddSubscriber @SubscriberName = N’MySubscriber’,@SubscriberType = N’Local’; GO最后,在主服务器上检查复制的进度,核对数据同步运行情况,以确保复制可靠稳定。
检查复制进度的代码以下:USE [master];GOEXEC sys.sp_help_log_shipping_monitor;GO通过上述步骤,就能够实现SQL Server双机热备,让客户端可以实时访问数据,也能够按需连接从节点获得数据,提升数据稳定性和安全性。
一、配置主备机1、 连接方式1.同网段(域环境)适用于域环境中,相对证书方式,配置相对简单,省去了建立密钥、证书及多次为用户授权的过程2.同网段(非域):证书方式 配置相对较繁琐,基本步骤:1.各服务器生成主密钥(MASTER KEY)2.各服务器生成服务证书(CERTIFICATE)3.使用服务证书生成端点(ENDPOINT)4.将证书备份为文件,并复制到其他服务器5.各服务器对其他服务器生成访问授权1) 生成登陆2) 生成用户3) 绑定证书到用户4) 授予相关用户对ENDPOINT 的连接访问权6.主机上备份数据库(最好加上日志备份)7.镜像机上还原数据库(norecovery )8.为镜像机配置镜像伙伴9.为主机配置镜像伙伴和见证服务器2、 检查SQL Server 2005数据库只有SQL Server 2005 标准版、企业版和开发版才可以建立数据镜像。
其他版本即Express 只能作为见证服务器。
如果实在不清楚什么版本,执行如下语句查看:select @@version ;若要对此数据库进行数据库镜像,必须将它更改为使用完整恢复模式。
若要用 Transact-SQL 实现此目的,请使用 ALTER DATABASE 语句:USE master;ALTER DATABASE <DatabaeName >SET RECOVERY FULL ;二、同网段(非域)主备实例互通实现互通可以使用域或证书来实现,考虑实现的简单,以下选取证书的方式实现。
注意:实现“主备数据库实例互通”的操作只需要做一次,例如为了将两个SQL Server 2005的1 01628实例中的5个数据库建成镜像关系,则只需要做一次以下操作就可以了;或者这样理解:每一对主备实例(不是数据库)做一次互通。
1、创建证书--主体服务器执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'test_1234';CREATE CERTIFICATE HOST_A_cert WITHSUBJECT = 'HOST_A certificate' ,START_DATE = '07/18/2012';--镜像服务执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'test_1234';CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate', START_DATE = '07/18/2012';--见证服务器执行:USE master;CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'test_1234';CREATE CERTIFICATE HOST_C_cert WITH SUBJECT = 'HOST_C certificate',START_DATE = '07/18/2012';这个MASTER KEY 对于每个sql server 实例唯一的,如果数据库中已经创建了MASTER KEY ,可以用如下的sql 删除之后重新执行:DROP MASTER KEY2、创建连接的端点--主体服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT =5022 , LISTENER_IP = ALL )FORDATABASE_MIRRORING11 628( AUTHENTICATION = CERTIFICATE HOST_A_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );--镜像服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT =5022 , LISTENER_IP = ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_B_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );--见证服务器执行:CREATE ENDPOINT Endpoint_MirroringSTATE = STARTEDASTCP ( LISTENER_PORT =5022 , LISTENER_IP = ALL )FORDATABASE_MIRRORING( AUTHENTICATION = CERTIFICATE HOST_C_cert , ENCRYPTION = REQUIRED ALGORITHM AES , ROLE = ALL );3、备份证书以备建立互联--主体服务器执行:BACKUP CERTIFICATE HOST_A_cert TO FILE = 'D:\SQLBackup\HOST_A_cert.cer';--镜像服务器执行:BACKUP CERTIFICATE HOST_B_cert TO FILE = 'D:\SQLBackup\HOST_B_cert.cer';--见证服务器执行:BACKUP CERTIFICATE HOST_C_cert TO FILE = 'D:\SQLBackup\HOST_C_cert.cer';11 016284、互换证书将备份到D:\SQLBackup\的证书进行互换,即HOST_A_cert.cer 、HOST_C_cert.cer 复制到镜像服务器的D:\SQLBackup\。
MS SQLServer安装与纯软高可用配置这里我们以MS SQLServer 2008为例,介绍MS SQLServer的安装以及通过MicroColor ServHA Mirror配置双机集群。
主要步骤:一、配置防火墙。
二、准备存储介质。
三、安装并配置ServHA Mirror。
四、安装MS SQLServer。
五、创建镜像包。
六、将Sql Server服务交由集群管理。
注意事项:一、S qlServer配置双机集群方案要求两机都安装SqlServer,其中SqlServer主服务安装在本机磁盘内(非镜像盘内),数据库实例安装在镜像盘内。
二、两机的SqlServer安装配置必须完全相同,例如:实例名,权限,密码。
三、双机目标镜像盘盘符必须一致。
安装文档实例参数:配置防火墙此步骤目的为让ServHA Mirror 工作所必须的端口不受防火墙的拦截,不同操作系统防火墙配置方式不同,但基本思想是相同的,在双机软件通信的过程中,如果没有进行设置,防火墙会阻止ServHA Mirror的通信,使双机集群工作异常。
MicroColor ServHA Mirror在配置的过程中主要需要设置的防火墙例外:1. 18562与25792端口:这两个端口为“ServHA 配置监控端”的连入端口,如不将这两个端口设置为防火墙例外端口,“ServHA 配置监控端”将无法连入集群,如果您修改过ServHA Mirror的“配置端连入端口号”,请将例外设置为修改过的“配置端连入端口号”;同时,针对该端口的例外IP您可以设置为常用来管理集群的客户计算机IP地址。
2. 15538与45782端口:这两个端口为集群双机相互通信的端口,如不将这两个端口设置为防火墙例外端口,ServHA Mirror将无法正常工作,如果您修改过ServHA Mirror 的“全局TCP/IP端口”,请将例外设置为修改过的“全局TCP/IP端口”;同时,针对该端口的例外IP设置为对机的IP地址即可。
双机热备共享存储方式【什么是双机热备】双机热备包括广义与狭义两种。
从广义上讲,就是服务器高可用应用的另一种说法,英译为:high available,而我们通常所说的热备是根据意译而来,同属于高可用范畴,而双机热备只限定了高可用中的两台服务器。
热备软件是用来解决一种不可避免的计划和非计划系统宕机问题的软件解决方案,当然也有硬件的。
是构筑高可有集群系统的基础软件,对于任何导致系统宕机或服务中断的故障,都会触发软件流程来进行错误判定、故障隔离、以及通地联机恢复来继续执行被中断的服务。
在这个过程中,用户只需要经受一定程度可接受的时延,而能够在最短的时间内恢复服务。
从狭义上讲,双机热备特指基于高可用系统中的两台服务器的热备(或高可用),因两机高可用在国内使用较多,故得名双机热备,双机高可用按工作中的切换方式分为:主-备方式(Active-Standby方式)和双主机方式(Active-Active方式),主-备方式即指的是一台服务器处于某种业务的激活状态(即Active状态),另一台服务器处于该业务的备用状态(即Standby 状态)。
而双主机方式即指两种不同业务分别在两台服务器上互为主备状态(即Active-Standby和Standby-Active状态)。
注:Active-Standby的状态指的是某种应用或业务的状态,并非指的是服务器状态。
组成双机热备的方案主要有两种方式:1、基于共享存储(磁盘阵列)的方式:共享存储方式主要通过磁盘阵列提供切换后,对数据完整性和连续性的保障。
用户数据一般会放在磁盘阵列上,当主机宕机后,备机继续从磁盘阵列上取得原有数据。
如下图所示。
这种方式因为使用一台存储设备,往往被业内人士称为磁盘单点故障。
但一般来讲存储的安全性较高。
所以如果忽略存储设备故障的情况下,这种方式也是业内采用最多的热备方式。
2、基于数据复制的方式:这种方式主要利用数据的同步方式,保证主备服务器的数据一致性。
日志传送是SQL SERVER2000企业版进行双机热备的一个主要解决方案,其原理比较简单,实现也比较方便,只是由于和Windows之间错综复杂的关系,导致设置起来有不少困难,出现问题也不容易诊断。
1、实现概述
双机热备针对的是具体的某个数据库而不是整个服务器,双机热备基于日志传送原理。
全程由作业控制,主服务器定时向辅服务器发送日志,辅服务器处于STAND BY模式下,定时按日志进行差异恢复。
如果主服务器停摆,监视服务器会将主服务器和辅服务器的角色互换。
监视服务器推荐设置在第三台服务器上,如条件不具备,也可考虑设置在辅服务器上。
2.准备工作
操作系统:
首先准备两台干净环境的计算机,装完全一样的操作系统,SQL SERVR2000企业版(版本和补丁包一致),SQL SERVER相关的硬盘一定要NTFS格式,不装MACFEE(我的个人经验说明MACFEE和SQL SERVER有内存冲突)。
为两台机器建立隶属Administrator组的帐户名和密码,帐户名和密码需要完全一样(也可直接用Administrator)。
在两台机器的…/MSSQL目录下建立两个共享文件夹,名称不要相同,如shipping_source 和shipping_dest,并给予Administrator组帐号的全部权限。
这两个文件夹将作为两台服务器上的数据库存放和装载日志文件的文件夹(具体设置后面将讲到)。
检查两台机器的子网掩码,保证其在一个域或工作组中,在网上邻居内能看到对方服务器
的共享文件夹并且访问时不需要输入密码(*如弹出密码输入,则不要输入以免影继续响调试)。
主服务器和辅服务器上的SQLSERVER服务和SQLAGENT服务都设置成开机自动启动。
SQL SERVER2000企业版:
在主服务器和辅服务器上以自己的计算机名或域中的成员名注册各自和对方的SQL SERVER(*(local)不要,IP也可以)
打开数据库的属性窗口,勾选自动启动SQL SERVER,自动启动SQL SERVER代理,自动启动MSDTC,(两台都要做)并检查两台服务器的产品版本和操作平台是否一致。
切换到“安全性”选项卡,保证身份认证是SQL SERVER和WINDOWS
把启动服务帐户由系统帐户修改为前面建立的Administrator组用户,两台服务器都要设置(此步骤很重要),设置时administrator前会要求加域名,不能设错。
将SQL AGENT的启动帐户也改为刚才的帐户,具体步骤如下:
打开管理->SQL Server代理->属性,在常规选项卡的服务启动帐户中将帐户改为本帐户,输入刚才的帐户和密码(两台机器都要做,很重要)。
到此请检查:
1.两台数据库服务器的Windows用户名密码
2.SQL Server用户名密码
3.SQL Agent用户名密码
是否全部相同
两台机器的共享文件夹是否全部都可以在网上邻居里看到,而且访问不需要用户名密码而且具有全部权限。
3.设置
所有的设置都在主服务器里进行!
在想要进行日志传送的数据库里运行维护计划向导:
在向导中勾选你想要传送日志的数据库,并选中“将事务日志传送到其它的SQL Server(日志传送)”
其它维护计划步骤与日志传送无关,略
存储备份文件目录设定成前面的主服务器上的共享文件夹的本地路径,
如:D:\Program Files\Microsoft SQL Server\MSSQL\shipping_source(重要步骤)
指定事务日志共享中,指定到主服务器的共享文件夹的网络路径(重要,主服务器备份文件目录对应主服务器备份文件目录的共享网络路径)
如:\\192.168.0.127\shipping_source
在添加目的数据库中:
服务器名称:辅服务器的名称(SQL SERVER注册名应和计算机名相同)
事务日志的目录:指向辅服务器上创建的共享文件夹的本地目录
目的数据库:事先不要在辅服务器上建立和主服务器同名的数据库,此向导会自动建立,勾选“创建并初始化新数据库”
使用以下文件目录:用于数据,用于日志,这个和本地建库没有区别,可用默认的,但要保证该盘是NTFS格式
数据库装载状态:选中备用模式(重要,不在备用模式无法使用差异还原)
终止数据库中的用户(推荐):勾选此项
允许数据库采用主角色:勾选此项
事务日志备份目录:指的是辅服务器的备份目录的网络路径,如图中所示(重要,辅服务器备份文件目录对应辅服务器备份文件目录的共享网络路径)
立即执行全部的数据库备份
设置备份调度:频率指多长时间进行一次日志备份-传送-装载的过程
装载延时指主服务器日志备份调度后到辅服务器开始根据日志还原的延时,一般需要设几分钟的延时,但应保证到下一次传送调度时辅服务器能装载结束。
该阈值指因为种种原因多长时间内主服务器没备份或辅服务器没还原就告警,应根据实际情况设置,但应保证大于3倍的频率比较合理。
生成的警告可以在SQL Server日志中查看。
监视服务器在没有第三台服务器的情况下应该使用辅服务器,用Windows身份认证。
是否产生报表和维护记录根据实际需求决定。