最近因为一个项目需要,要对数据库进行双机热备,不知道从何下手,于是上网找了很多的资料,然后经过多次尝试,最终成功,以下是实现过程中的总结。
具体的环境如下:
数据库是SqlServer2005,准备三台服务器做热备,分别是a、b、c,其中a是主服务器,b是镜像服务器,c是见证服务器
一、硬件条件:
1.a、b、c三台计算机都必须在一个局域网内
2.修改a、b、c三台服务器的计算机名,具体操作如下:我的电脑-->计算机名,点击“更改”后进入到“计算机名称更改”,点击“其它”进入“DNS后缀和NetBIOS计算机名”,输入com,点击“确定”保证(此时会提示重启计算机,不过稍后再启动,因为还有其他文件要修改)。
3.将三台计算机的ip+完整计算机名分别拷贝到主服务器、镜像服务器、见证服务器,具体格式如下:ip+空格+完整计算机名+enter,修改该文件必须是以管理员身份登录系统才可以。修改文件路径是:C:\Windows\System32\drivers\etc下的hosts文件
4. 重启三台计算机
二、软件条件
1.只有企业版、标准版、开发版才可以建立数据库镜像,其他版本即Express只能作为见证服务器,查看版本语句
select @@version(其实本人也不知道了解这几种版本之间的具体差别)
2.若要对数据库进行数据库镜像,必须将它更改为使用完整恢复模式,具体修改语句为
use master;
alter database <databasename> set recovery full
3.如果数据库没有打过sp2补丁,要先打补丁,不然后面语句无法成功执行。如果你的服务器系统是windows2008的,就需要打sp3补丁,这些补丁官网上都有。
三、具体步骤:
1.创建证书
--主服务器
use master;
create master key encryption by password='killkill';
create certificate host_a_cert with subject='host_a certificate',start_date='09/02/2012';
--镜像服务器
use master;
create master key encryption by password='killkill';
create certificate host_b_cert with subject='host_b certificate',start_date='09/02/2012';
--见证服务器
use master;
create master key encryption by password='killkill';
create certificate host_c_cert with subject='host_c certificate',start_date='09/02/2012';
2.创建连接的端点
--主服务器
create endpoint endpoint_mirroring
state=started
as
tcp(listener_port=5022,listener_ip=all)
for
database_mirroring
(authentication=certificate host_a_cert,encryption=required algorithm aes,role=all)
--镜像服务器
create endpoint endpoint_mirroring
state=started
as
tcp(listener_port=5022,listener_ip=all)
for
database_mirroring
(authentication=certificate host_b_cert,encryption=required algorithm aes,role=all)
--见证服务器
create endpoint endpoint_mirroring
state=started
as
tcp(listener_port=5022,listener_ip=all)
for
database_mirroring
(authentication=certificate host_c_cert,encryption=required algorithm aes,role=all)
注:创建端点的时候可能报错,可能是需要打sp2补丁(也许是其他问题)
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';
4.互换证书
将主服务器和见证服务器上的备份证书拷贝到镜像服务器的d:\sqlbackup下;
将镜像服务器和见证服务器上的备份证书拷贝到主服务器的d:\sqlbackup下;
将主服务器和镜像服务器上的备份证书拷贝到见证服务器的d:\sqlbackup下。
5.添加登录名、用户
--主服务器
create login host_b_login with password='killkill';
create user host_b_user for login host_b_login;
create certificate host_b_cert authorization host_b_user from file='d:\sqlbackup\host_b_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_b_login]
create login host_c_login with password='killkill';
create user host_c_user for login host_c_login;
create certificate host_c_cert authorization host_c_user from file='d:\sqlbackup\host_c_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_c_login]
--镜像服务器
create login host_a_login with password='killkill';
create user host_a_user for login host_a_login;
create certificate host_a_cert authorization host_a_user from file='d:\sqlbackup\host_a_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_a_login]
create login host_c_login with password='killkill';
create user host_c_user for login host_c_login;
create certificate host_c_cert authorization host_c_user from file='d:\sqlbackup\host_c_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_c_login]
--见证服务器
create login host_a_login with password='killkill';
create user host_a_user for login host_a_login;
create certificate host_a_cert authorization host_b_user from file='d:\sqlbackup\host_a_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_a_login]
create login host_b_login with password='killkill';
create user host_b_user for login host_b_login;
create certificate host_b_cert authorization host_b_user from file='d:\sqlbackup\host_b_cert.cer';
grant connect on endpoint::endpoint_mirroring to [host_b_login]
四、建立镜像关系
1.准备备机数据库(同步主备数据库的数据)
可以尝试从刚刚使用的全备文件进行还原,在还原数据库的时候需要选上“restore with norecovery”,还原成功后的效果是“正在还原。。。”
2.建立镜像
--主服务器
alter database <databasename> set partner='tcp://10.16.1.47:5022';(这个ip指的是镜像服务器的ip)
如果不成功,就在备机数据库上执行以下语句
--镜像服务器
alter database <databasename> set partner='tcp://10.16.1.48:5022';(这个ip指的是主服务器的ip)
如果失败,提示类似数据库事务未同步,则说明主备数据库的日志未同步,此时应将主数据库的事务日志进行备份,并还原到镜像数据库上,还原步骤同1一致。
注:如果执行2中的语句仍无法实现,则通过手动创建镜像,具体操作步骤如下:
1.选择热备的数据库,右键“属性”-->“镜像”,在右侧点击“配置安全性”-->“下一步”,选择“yes”-->“下一步”-->“下一步”-->主体服务器默认,“下一步”-->连接镜像服务器实例,服务器名选择计算机名,“下一步”-->连接见证服务器实例,服务器名选择计算机名,“下一步”-->“下一步”,完成。
五、测试操作
(简单的测试方法就是修改数据库中的数据,然后拔网线、关闭sqlserver服务)
1.主备互换
--主机执行
use master;
alter database <databasename> set partner failover;
2.主服务器down掉,备机紧急启动并开始服务
--备机执行
use master;
alter database <databasename> set partner force_service_allow_data_loss;
3.原来的主机恢复,可以继续工作,需要重新设定镜像
--备机执行
use master;
alter database <databasename> set partner resume;--恢复镜像
alter database <databasename> set partner failover;--切换主机
4.原来的主服务器恢复,可以继续工作
use master;
alter database <databasename> set partner safety full;--事务安全,同步模式
alter database <databasename> set partner safety off;--事务不安全,异步模式
分享到:
相关推荐
Oracle数据库双机热备方案 Oracle 双机热备方案是指运用适当的拓扑结构将两台数据库连接起来,以主-从的方式实现数据库热备份。该方案可以避免由数据库崩溃而给前端服务造成损失。 一、数据库双机热备的概念和...
Sql Server 2012 双机热备方案实操详细配图教程 本文将详细讲解 Sql Server 2012 双机热备方案的实操过程,包括环境部署、主服务器发布部署和从服务器订阅部署三个部分。 一、环境部署 在开始双机热备之前,需要...
SQL Server数据库在双机热备系统上的实现 本文主要介绍了SQL Server数据库在双机热备系统上的实现,探讨了在广播电视台运行系统中使用SQL Server数据库的可行性和必要性。为避免系统宕机和影响广播电视台的正常运行...
SQL Server双机热备无见证服务器是指在SQL Server数据库中,使用两个服务器实现热备的方式来保护数据,且不需要见证服务器镜像。这种方式可以实时备份数据,保护数据的安全。 在这种方式中,需要创建证书来实现互通...
"Oracle数据库双机热备安装手册" 本文档主要介绍了 Oracle 数据库双机热备的安装过程,旨在实现数据库的高可用性。在一台服务器出现故障无法提供 Oracle 数据库服务时,另一台服务器自动接管服务,保障数据库的正常...
《Windows Server 2019 双机热备(MSCS)下Sql Server 2019 群集部署详解》 Windows Server 2019 的微软群集服务(MSCS)与Sql Server 2019的群集部署是一项旨在提高企业数据库系统高可用性的关键技术。这种双机热备...
### SQLServer 双机热备(纯软镜像) 详细图文配置教程(ServHA Mirror) #### 一、配置防火墙 为了确保MicroColor ServHA Mirror能够正常工作,需要配置防火墙以允许必要的端口通信。以下是需要设置的端口及其作用: ...
windows2008R2+SQLserver2005集群双机热备详细安装配置指导
数据库双机热备系统设计与实现毕业论文.docx 数据库双机热备系统设计与实现是指通过设计和实现高可用性的数据库系统,来保证数据库的连续运行和高性能。该系统可以在发生故障时快速切换到备份节点,确保业务的不...
### Win2008 R2 + SQL Server 2008 双机热备实现方案详解 #### 一、概述 在IT行业中,确保数据安全与业务连续性至关重要。其中,“双机热备”是一种常见的高可用解决方案,通过在两台服务器之间实现自动故障切换,...
"ORACLE数据库双机热备方案" 一、 ORACLE 数据库双机热备方案概述 ORACLE 数据库双机热备方案是指在 Windows 操作系统下使用 MicroColorServHAMirror/Cluster 软件实现的高可用集群配置方案。该方案主要使用了双机...
### SQL Server + ServHA Cluster 双机热备配置详解 #### 一、配置防火墙 在搭建SQL Server双机热备集群之前,首先需要确保ServHA Cluster能够在不受防火墙限制的情况下正常工作。这是因为ServHA Cluster在运行...
SQL Server数据库软件的安装步骤包括关闭服务器2,在服务器1上安装SQL Server数据库,选择把程序文件安装在本地硬盘,把数据库文件安装在磁盘阵列柜上。安装完毕,在控制面板的服务中把SQL Server的所有服务停止并...
双机热备是一种重要的IT系统架构策略,旨在确保关键业务应用和服务的连续性和稳定性。它通过部署两台或更多的服务器,使得在主服务器出现故障时,备用服务器能够立即接管工作,保证服务不中断,从而实现高可用性。在...
### 双机热备方案及双机热备软件选择 #### 一、双机热备方案概述 在当今数字化时代,企业的信息化建设已经成为其发展的重要驱动力之一。然而,随着业务信息系统越来越受到重视,同时也面临着一个问题:即这些系统...
### 数据库镜像技术实现SQLServer2005双机热备 #### 一、配置主备机 在实现SQL Server 2005数据库镜像之前,首先需要完成主备机的配置工作。根据文档描述,有两种主要的连接方式:同网段(域环境)与同网段(非域...
Windows Server 2008 和 SQL Server 2008 结合双机热备方案,为数据库服务提供了可靠的灾难恢复策略。这种配置允许在一台服务器出现故障时,另一台服务器能够无缝接管工作,从而避免服务中断。 **硬件需求:** 1. *...
在数据库使用中,双机热备是一个很关键的技术,如果是大型的、特大型的应用,肯定会使用数据库厂商的特定硬件加软件来解决。对于MySQL数据库来说,一般应用于中小规模的应用,不太可能投入巨大的成本去采购双机热备...
### 双机热备方案及双机热备软件选择 #### 一、双机热备方案概述 双机热备方案是一种确保业务连续性的技术手段,主要通过在两台服务器之间构建热备机制来保障系统的高可用性和稳定性。通常而言,实现双机热备的...