如何实现SQL Server双机热备
SQL Server 2005 双机热备的实现
测试环境:
1、宿主机
硬件配置:PIV24G/15G-DDR400/80G-PATA-7200pm/8139C-NIC
操作系统:Microsoft Windows XP Pro With SP2 ENU
虚拟平台:VMware GSX 321
2、VirtualHost Microsoft Cluster NodeA
硬件配置:PIV24G/512M/10G/vlance-NIC/vmxnet-NIC
操作系统:Microsoft Windows Server 2003 EE With SP1 CHS
网卡信息:vlance-NIC:10M 全速半双工/HeartBeat/IP192168236250
vmxnet-NIC:1000M 全速全双 工/Public/IP192168199250/GW1921681992/DNS192168199250/WINS192168199250
承载服务:DC+DNS+WINS+IIS
3、VirtualHost Microsoft Cluster NodeB
硬件配置:PIV24G/512M/10G/vlance-NIC/vmxnet-NIC
操作系统:Microsoft Windows Server 2003 EE With SP1 CHS
网卡信息:vlance-NIC:10M 全速半双工/HeartBeat/IP192168236251
vmxnet-NIC:1000M 全速全双工 /Public/IP192168199251/GW1921681992/DNS192168199251/WINS192168199251
承载服务:DC+DNS+WINS+IIS
4、Virtual 4G Pln:Qdisk500M/Sdisk3500M
注意:本次测试将仲裁盘和资源盘放在了一起,实际中最佳的做法应当单独配置一个物理磁盘作仲裁使用,为提高安全性还应该为仲裁磁盘配置RAID1。
5、MSCS IP 192168199200
目标实现:成功部署 SQL Server 2005 群集/HostName SQL2005/IP192168199201
群集实施:
1、我手上的SQL2005为企业中文版2CD。首先放入第一张盘,点击“服务器组件、工具、联机丛书和示例”开始SQL2005的群集安装,安装程序会自动检测当前是否为群集环境并为群集安装准备。小提示:MSCS默认环境下,群集组资源中缺少MSDTC组件,所以需要先添加MSDTC后再开始SQL2005的群集安装,否则会出现警告并停止!
2、接受软件使用许可协议。
3、SQL2005在进行初始检测后开始执行安装 SQL2005 所需组件。
4、完成所必需组件的安装。
5、安装程序开始执行系统配置检查。
6、进入SQL2005的安装向导。
7、向导开始执行系统配置检查,因为是安装群集,会自动检查各节点并给出状态提示。因为虚拟机配置的是512M内存,所以这里会“最低硬件要求”的警告,可以忽略!
8、选择要安装的组件,如要得到各组件的详细信息可以选择高级项。
9、进入高级项后就来到了详细的各组件的功能选择,这里可以得到详细的组件信息。根据需要选择组件功能。
10、“实例名”配置中选择“默认实例”。
11、虚拟服务器名称配置中,为此群集命名为sql2005
12、为虚拟服务器配置IP,这里我使用Public作为公共访问,并分配一个IP192168199201,添加后点击“下一步”。
QQReadcom 推出数据恢复指南教程 数据恢复指南教程 数据恢复故障解析 常用数据恢复方案 硬盘数据恢复教程 数据保护方法 数据恢复软件 专业数据恢复服务指南
13、在“选择群集组”中选择可以得群集组,因为这里我只有一个默认的群集组,所以点击“下一步”继续。
14、弹出警告,提示我此群集组包含仲裁资源,这是因为我之前配置了一块Pln磁盘并分配两个逻辑分区来做群集,因此在这里会提示警告,可以直接忽略。
15、群集节点配置中,选择可用的节点,因为我当前是双节点群集环境,所以安装向导自动为我选择了NodeA节点。
16、配置远程安装的帐户,这里的帐户必须是各节点上有效的管理员帐户。
17、为服务配置帐户,之前我已经添加了一个名为sql2005的域用户作为SQL服务帐户,所以这里填写上正确的信息。
18、配置群集服务的域组,这里其实我到现在还没有彻底搞明白是什么意思,参看帮助文件,便在域中为每个SQL服务创建对应的全局组。(希望达人能够帮我解答一下此处的意义!)
19、身份验证模式中,选择“混合模式”这和SQL2000的感念是一样的。
20、排序规则我是按照默认选择的。
21、这里我没有选择微软提供的跟踪服务功能。
22、前期的安装配置完成后就准备开始执行正式的文件安装
23、SQL2005的群集安装进度还是很人性化的,这里你可以切换每个节点来监视安装进度。
到这里就是一个漫长的等待了,真是心疼我的硬盘。不过结果很悲惨,在CD1安装完毕后,系统提示我插入CD2,记得年前的测试也是在这里出现问题的,感觉会不会是因为磁盘写延迟,导致另外一个节点没有安装完,我就放入第二张CD造成的呢?抱着幻想我就一直等待,并且监视两台节点的日志,直到节点的硬盘和网卡没有强烈的提示后,我才放入CD2,点击了确定。谁知道接下来就出现了之前测试相同的错误,安装终止并结束了。郁闷!这是怎么回事?检查系统发现SQL2005的服务已经是启动了,这么说服务的安装时成功的。于是进入添加删除程序中,使用更改方式检查SQL2005的安装,发现这里只有添加节点和卸载SQL2005群集两个选择。
QQReadcom 推出数据恢复指南教程 数据恢复指南教程 数据恢复故障解析 常用数据恢复方案 硬盘数据恢复教程 数据保护方法 数据恢复软件 专业数据恢复服务指南
重新执行光盘,发现CD2原来是“工具、联机丛书和示例”的安装盘。
于是再次执行安装程序,哈哈,记起来了!之前也重新执行过安装不过放入的是CD1,所以组件选中服务项等都是不安装,我以为红叉代表删除,所以就没敢继续,如果当时直接从CD2执行安装估计也就成功了。
我个人认为,SQL2005的管理工具等组件应该在群集安装后再单独为每个节点安装才是最佳的做法。至于为什么之前会失败只能靠其他达人来做试验来验证了!完成了管理工具等组件的安装,怀着兴奋的心情打开了全新的SQL2005管理工具,默认启动后显示的是连接到服务器的配置页面,这里配置好登录后,可以在管理工具的选项中修改初始打开页面。在“已注册的服务器”窗体中打开SQL2005服务器。
SQL2005的群集算是安装完成了。
进入“群集管理器”中检查SQL2005群集的安装,发现没有问题。心理已经非常激动了!
最后来验证一下群集是否真的开始正常工作了,我将NodeB节点关闭后,在NodeA上打开“群集管理器”发现SQL2005的群集资源已经自动并成功地从NodeB上转移到了NodeA,在NodeA上打开SQL2005的管理工具进行服务器连接测试,成功!
至此,SQL2005的群集算是圆满测试成功了。其间也是走了不少弯路,不过最后总算是成功了,心理也得到了安慰。其实SQL2005的群集还是非常简单的,只不过CD2的安装出错到底是因为其本身不支持群集安装还是因为其他原因目前还不知晓,只能等权威的解释了!另外,SQL2005的群集安装需要在拥有活动资源的节点上进行安装。
两台服务器的配置可以不一样。
双机热备就是个最小的集群。你说的互为热备应该是在双机的基础上加了个负载均衡,俩服务器都工作,都跑同样的应用,来处理一个数据,这样服务器的压力比较小,寿命长,在一台宕机的情况下另一台正常工作。
这种是负载均衡。虚拟IP是通过双机软件来虚拟的,对外连接是通过交换机连接的。比如服务器现在至少都是双千兆网卡,如果两台做双机,总共4个千兆网口,那么这四个网口其中两个会被用来接心跳线,其实就是个网线,用来互相发测试数据用。剩下的两个网口会被接到交换机上,通过软件,再通过交换机来虚拟成一个IP。
服务器,也称伺服器,是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
双机热备有两种实现方式,一种是两台服务器通过一个共享的存储设备(一般是共享的磁盘阵列或存储区域网SAN),通过安装双机软件实现双机热备,称为共享方式。另一种方式是没有共享的存储设备,数据同时存放于各自服务器中,称为纯软件方式或软件同步数据方式。基于存储共享的实现方式是双机热备的最标准的方案,在主从模式工作中,两台服务器以一个虚拟的IP地址对外提供服务,服务请求发送给主服务器(active server)承担。同时,两台服务器通过心跳线(heartbeat line)侦测另一台服务器的工作状况。一旦主服务器出现故障,备服务器(standby server)根据心跳侦测的情况做出判断,在较短时间内完成切换,接管主机上的所有资源,成为新的主服务器。由于使用共享的存储设备,因此两台服务器使用的实际上是一样的数据,由双机或集群软件对其进行管理。
心跳线是主备服务器之间联系的纽带,所谓“心跳”,是一个错误检测机制,指主从系统之间相互按照一定的时间间隔发送通讯信号,周期性地检测各个节点的状态(包括系统的状态和应用的状态)。如果连续没有收到的心跳信号到了一定的数目,双机热备软件就认为相应的系统已经出现故障,并进行主备切换。传统上心跳故障检测使用串口通讯的方式,但目前已经普遍使用基于TCP/IP的方式。两台服务器之间,可以使用直连网线,也可以将两台服务器用于心跳诊断的网卡通过交换机连接。
双机热备份技术需要通过双机或集群软件来实现。双机软件采用结构化设计,一般来说包含以下几个模块:
(1)双机状态的管理模块,负责检测双机的工作状态,以及对故障状态进行判断。
(2)双机功能的执行模块,负责执行管理模块发出的双机调整切换命令等。
(3)双机系统的客户端配置管理工具,通过该模块实现对双机系统的远程配置、管理及维护等功能。
双机软件工作流程大致如下:软件启动时,首先读取双机系统的配置文件,该文件描述了双机系统中各节点的网络信息、硬件描述以及任务的定义等参数。软件的核心程序根据配置信息,进行双机系统的状态重组,建立双机的初始状态。在节点初始状态建立起来后,管理模块根据当前网络状态的信息对双机进行调整并分配网络资源,使双机中的主节点获得对外提供网络服务的资源,同时启动节点监控功能,对所启动任务的关键进程进行监控,保障对外提供服务的资源健康。当以上资源建立起来后,双机系统进入正常运行状态。
当系统中有节点故障时,双机管理模块根据双机当前的状态和该故障节点在双机中的角色做出双机系统是否切换的选择。当该节点为主服务器时,双机系统会自动将属于该节点的资源和任务移交到备服务器上,保证网络的正常运行。如果发生故障的节点为备服务器,双机软件提出报警后,将任务的移交进行封锁,直到备服务器故障修复,重新进入双机系统,管理模块检查到该故障修复后,对当前的任务进行解锁操作,系统重新进入正常运行状态。
1mysql数据库没有增量备份的机制,当数据量太大的时候备份是一个很大的问题。还好mysql数据库提供了一种主从备份的机制,其实就是把主数据库的所有的数据同时写到备份数据库中。实现mysql数据库的热备份。
2要想实现双机的热备首先要了解主从数据库服务器的版本的需求。要实现热备mysql的版本都要高于32,还有一个基本的原则就是作为从数据库的数据库版本可以高于主服务器数据库的版本,但是不可以低于主服务器的数据库版本。
3设置主数据库服务器:
a首先查看主服务器的版本是否是支持热备的版本。然后查看mycnf(类unix)或者myini(windows)中mysqld配置块的配置有没有log-bin(记录数据库更改日志),因为mysql的复制机制是基于日志的复制机制,所以主服务器一定要支持更改日志才行。然后设置要写入日志的数据库或者不要写入日志的数据库。这样只有您感兴趣的数据库的更改才写入到数据库的日志中。
server-id=1 //数据库的id这个应该默认是1就不用改动
log-bin=log_name //日志文件的名称,这里可以制定日志到别的目录 如果没有设置则默认主机名的一个日志名称
binlog-do-db=db_name //记录日志的数据库
binlog-ignore-db=db_name //不记录日志的数据库
以上的如果有多个数据库用","分割开
然后设置同步数据库的用户帐号
mysql> GRANT REPLICATION SLAVE ON
-> TO 'repl'@'%mydomaincom' IDENTIFIED BY 'slavepass';
402以前的版本, 因为不支持REPLICATION 要使用下面的语句来实现这个功能
mysql> GRANT FILE ON
-> TO 'repl'@'%mydomaincom' IDENTIFIED BY 'slavepass';
设置好主服务器的配置文件后重新启动数据库
b锁定现有的数据库并备份现在的数据
锁定数据库
mysql> FLUSH TABLES WITH READ LOCK;
备份数据库有两种办法一种是直接进入到mysql的data目录然后打包你需要备份数据库的文件夹,第二种是使用mysqldump的方式来备份数据库但是要加上"--master-data " 这个参数,建议使用第一种方法来备份数据库
c查看主服务器的状态
mysql> show master status\G;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+---------------+----------+--------------+------------------+
| mysql-bin003 | 73 | test | manual,mysql |
+---------------+----------+--------------+------------------+
记录File 和 Position 项目的值,以后要用的。
d然后把数据库的锁定打开
mysql> UNLOCK TABLES;
4设置从服务器
a首先设置数据库的配置文件
server-id=n //设置数据库id默认主服务器是1可以随便设置但是如果有多台从服务器则不能重复。
master-host=db-mastermycompanycom //主服务器的IP地址或者域名
master-port=3306 //主数据库的端口号
master-user=pertinax //同步数据库的用户
master-password=freitag //同步数据库的密码
master-connect-retry=60 //如果从服务器发现主服务器断掉,重新连接的时间差
report-host=db-slavemycompanycom //报告错误的服务器
b把从主数据库服务器备份出来的数据库导入到从服务器中
c然后启动从数据库服务器,如果启动的时候没有加上"--skip-slave-start"这个参数则进入到mysql中
mysql> slave stop; //停止slave的服务
d设置主服务器的各种参数
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
e启动同步数据库的线程
mysql> slave start;
查看数据库的同步情况。
查看主从服务器的状态
mysql> SHOW PROCESSLIST\G //可以查看mysql的进程看看是否有监听的进程
如果日志太大清除日志的步骤如下
1锁定主数据库
mysql> FLUSH TABLES WITH READ LOCK;
2停掉从数据库的slave
mysql> slave stop;
3查看主数据库的日志文件名和日志文件的position
show master status;
+---------------+----------+--------------+------------------+
| File | Position | Binlog_do_db | Binlog_ignore_db |
+---------------+----------+--------------+------------------+
| louis-bin001 | 79 | | mysql |
+---------------+----------+--------------+------------------+
4解开主数据库的锁
mysql> unlock tables;
5更新从数据库中主数据库的信息
mysql> CHANGE MASTER TO
-> MASTER_HOST='master_host_name', //主服务器的IP地址
-> MASTER_USER='replication_user_name', //同步数据库的用户
-> MASTER_PASSWORD='replication_password', //同步数据库的密码
-> MASTER_LOG_FILE='recorded_log_file_name', //主服务器二进制日志的文件名(前面要求记住的参数)
-> MASTER_LOG_POS=recorded_log_position; //日志文件的开始位置(前面要求记住的参数)
6启动从数据库的slave
mysql> slave start;
1、可以使用如图所示的工具进行热备份。
2、也可以从如图位置获取。
3、获取后安装并认证。
4、完成后设置备份规则,即可开始热备份。
注意事项:
磁盘镜像是一种在其中写往物理驱动器的信息也被写入第二个物理驱动器的一种方法,也称为热备份它不同于硬盘之间的定时拷贝,作镜像是由智能控制器和一些软件自动地进行的。
MS SQLServer 的安装以及通过 MicroColor ServHA Mirror 配置双机集群。1发布--订阅 是最早最简单的方案,但需要注意发布的时候,发布进程必须对快照目录有访问权限
2日志传送 可以参考下面的资料: SQL Server 双机热备1(based on
3数据库镜像 使用数据库镜像,可以做到数据库高可用,具体参考下面几篇文章: 1)
4使用SqlServer 2012的 AlwaysOn 功能 AlwaysOn功能是最新的
5双机热备的数据访问 如果成功实现了双机热备,做到了HA,
0条评论