网站首页 > 文章精选 正文
----关注IT小技术,每天get一个IT小技能。
一、客户需求
客户现在有一个需求,公司有一台很重要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、在订阅服务器上,可以查看到所有的表都已经同步过来了。而且数据总条目都和发布服务器数据一样,实时数据备份成功。
当以后,发布服务器此数据库中有变动,订阅服务器数据库也会实时变动。
- 上一篇: 如何在EXCEL中很简便地使用SQL语言
- 下一篇: SQL Server如何建立数据库
猜你喜欢
- 2025-05-30 数据库 SQL 高级用法(二)
- 2025-05-30 基于RocksDB编写一个简单的SQL数据库|得物技术
- 2025-05-30 数据库 SQL 约束之 CHECK
- 2025-05-30 5 款超好用的数据库 GUI 带你玩转 MongoDB、Redis、SQL 数据库
- 2025-05-30 数据库系统工程师:笔记分享SQL语言8.3数据库定义
- 2025-05-30 如何学习 SQL 语言?
- 2025-05-30 一行SQL没改,查询速度飙升10倍?揭秘数据库“索引”的加速魔法
- 2025-05-30 SQL Server如何建立数据库
- 2025-05-30 如何在EXCEL中很简便地使用SQL语言
- 2025-05-30 SQL从入门到进阶,全都在这里了
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)