客户现在有一个需求,公司有一台很重要SQL数据库,怕有一天服务器或者系统崩溃,导致所有SQL数据库数据丢失,客户想把数据库数据,通过某种方式将数库进行实时同步到另外一台服务器上,这样可以做个backup。
那客户这个需求如何实现呢?
二、解决方案:
通过分析与研究,使用的是SQL自带的发布与订阅功能,旧的SQL Server版本是2008,新安装一个SQL Server 2014版本,通过旧SQL Serer发布,再通过SQL Server2014订阅,来同步数据库数据。
三、实现过程
3.1、发布
发布前准备:首先两个服务器之间要能相互通讯,也就是能ping命令能通。平时我们连接数据库时,经常都是用的ip登陆,但是发布的时候不能这样,必须用服务器名称。
如果在不同网段的两台数据库服务器,可以在两台服务器hosts文件中添加对应的IP地址和主机名。
在旧服务器上,打开SQL Server数据库软件,进行发布SQL数据库。
1、旧服务器上,找到复制--本地发布,右击新建发布。
2、选择需要发布的数据库名称。
3、选择事务发布。
4、在此数据库中,查看表,是否都可以正常的被发布,如下图所示,有些表无法正常发布,那该怎么办?
5、发现是由于这些表中没有主键,需要给这三张表设置主键。
6、设置主键。
8、发现还有一个表无法发布。
9、查看原因。
10、需要将此表中的,阻止保存要求重新创建表的更改项勾选去掉。
11、去掉后,发现此表可以正常设置主键。
12、可以看到所有的表都可以正常发布了。
13、下一步。
14、选择添加。
15、选择立即创建快照并使快照保持可用状态,以初始化订阅。
16、选择安全设置。
17、输入数据库的sa用户名和密码。
18、选择下一步。这时要注意,需要将数据库的代理服务开启,和SQL browser服务开启。
19、创建发布。
20、新建一个发布名称。
21、发布成功。
22、发布的同时,要保证如下此SQL目录可读写。
3.2、订阅
1、要新服务器上,找到SQL Server代理服务器,将其开启,自动。
2、找到SQL Browser将其服务开启。
3、可以Ping通发布服务器的主机名。
4、找到复制--本地订阅。
5、选择下一步。
6、选择查找SQL Server发布服务器。
7、选择发布服务器的名称,或者手动输入发布服务器名称,输入发布服务器的用户名sa,发布服务器数据库sa密码。
8、可以查询到刚才我们发布的数据库名称。
9、选择在发布服务器 PRD-SQL上运行所有代理。
10、选择新建数据库。
11、新建一个数据库,来同步发布服务器中的数据库。
12、新建数据库完成,点击下一步。
13、选择与订阅服务器的连接。
14、输入订阅服务器数据库sa用户名和密码。
15、选择下一步。
16、选择连续运行。
17、选择立即初始化时间。
18、选择创建订阅。
19、选择完成。
20、订阅创建成功。
3.3、测试结果
1、在发布服务器上查看同步状态。
2、可以看到正在同步数据库表。
3、同步完成后,可以查看数据库数据有多少条和订阅服务器进行对比,如果一样说明成功。
4、在订阅服务器上,可以查看到所有的表都已经同步过来了。而且数据总条目都和发布服务器数据一样,实时数据备份成功。
当以后,发布服务器此数据库中有变动,订阅服务器数据库也会实时变动。