公司有一台很重要SQL数据库,如何实现数据库实时同步?

一、客户需求

客户现在有一个需求,公司有一台很重要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、在订阅服务器上,可以查看到所有的表都已经同步过来了。而且数据总条目都和发布服务器数据一样,实时数据备份成功。

当以后,发布服务器此数据库中有变动,订阅服务器数据库也会实时变动。

原文地址:https://www.cnblogs.com/twelvezuo/p/11671196.html

时间: 2024-07-28 21:56:08

公司有一台很重要SQL数据库,如何实现数据库实时同步?的相关文章

第四篇 SQL Server代理配置数据库邮件

本篇文章是SQL Server代理系列的第四篇,详细内容请参考原文. 正如这一系列的前几篇所述,SQL Server代理作业是由一系列的作业步骤组成,每个步骤由一个独立的类型去执行.SQL Server代理同样提供创建警报,能够以通知的形式将消息发送给设定的操作员.这些通知可以通过数据库邮件发送,数据库邮件是内置在SQL Server和SQL Server代理能够发送和接收电子邮件.在这一篇,你将学习如何配置数据库邮件发送和接收操作,以及一些基本的数据库邮件故障排除步骤.数据库邮件的简要概述在S

SQL Server性能调优——报表数据库与业务数据库分离

前段时间把公司的主数据库切了,分成业务库和报表库,业务库向报表库进行实时的Replication.这个项目的上线提升了系统的性能和可维护性,现在把设计时的考量和所做的工作重新回顾一下,作为备忘. 项目起源 在日常的开发过程中,功能总是先于性能被考虑.只有当用户抱怨系统性能时,我们才开始头痛医头,脚痛医脚地来解决这些性能问题. 公司的CRM和ERP系统叫作Olite,完全是我们组开发的.从无到有,功能不断扩展,原先只有CRM模块,后来加入了ERP模块,Accounting功能和Report功能.近

百万级数据库优化方案数据库SQL优化大总结

一.百万级数据库优化方案 1.对查询进行优化,要尽量避免全表扫描,首先应考虑在 where 及 order by 涉及的列上建立索引. 2.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 最好不要给数据库留NULL,尽可能的使用 NOT NULL填充数据库. 备注.描述.评论之类的可以设置为 NULL,其他的,最好不要使用NULL. 不要以为 NULL 不需要空间,

通过SQL Server 2008数据库复制实现数据库同步备份

SQL Server 2008数据库复制是通过发布/订阅的机制进行多台服务器之间的数据同步,我们把它用于数据库的同步备份.这里的同步备份指的是备份服务器与主服务器进行 实时数据同步,正常情况下只使用主数据库服务器,备份服务器只在主服务器出现故障时投入使用.它是一种优于文件备份的数据库备份解决方案. 在选择数据库同步备份解决方案时,我们评估了两种方式:SQL Server 2008的数据库镜像和SQL Server 2008数据库复制.数据库镜像的优点是系统能自动发现主服务器故障,并且自动切换至镜

SQL SERVER 2012 使用订阅发布同步数据库

软件做大了,客户就多了,一个数据库服务器是远远不够的,当有一台数据服务器卦掉,那整个系统就会崩溃,所以必须考虑到数据库的自动同步与备份,当一台数据库服务 器宕机,自然就有用一台数据服务器启动起来保证整个软件系统的可用性.备份数据库与总数据库之间既统一又独立.这就是业务,技术服务于业务,那么摆在我们面前的问题是 如何让数据既统一又独立?其实SQLServer已经为我们提供了很好的解决方案:发布.订阅. 打开SQL Server2012的对象资源管理器我们可以看到里面有一个"复制"节点.(

疑难杂症--SQL SERVER 2012下数据库内存异常回收

--=================================================================== --背景: 在一台SQL SERVER 2012 SP1(11.0.3000)服务器上,由于批处理请求较高,CPU使用率超过40%,于是开始各种调研.. 服务器情况: 服务器物理内存为128GB, 分配给SQL SERVER 115GB,Windows 可用物理内存为6GB左右 压力情况: 批处理请求超过30000+,有大量UPDATE和INSERT操作,C

SQL学习笔记之数据库专题(四):浅谈JDBC用法

数据库厂商提供的用来操作数据库用的jar包就是数据库驱动.各个厂商如果提供各自的数据库驱动的话会导致开发人员学习成本太高,所以sun公司提供了一套数据库驱动应该遵循的接口规范,这套规范就叫做JDBC,本质上是很多的接口.简而言之,JDBC就是一套操作数据库的接口规范,由于所有的数据库驱动都遵循JDBC规范,我们在学习和使用数据库时只要学习JDBC中的接口就可以了. 组成JDBC的2个包:java.sql,javax.sql,开发JDBC应用需要以上2个包的支持外,还需要导入相应JDBC的数据库实

SQL Server 维护计划实现数据库备份(Step by Step)(转)

SQL Server 维护计划实现数据库备份(Step by Step) 一.前言 SQL Server 备份和还原全攻略,里面包括了通过SSMS操作还原各种备份文件的图形指导,SQL Server 数据库最小宕机迁移方案,里面使用SQL脚本(T-SQL)完成完全备份.差异备份.完全还原.差异还原等:        有了上面的基础,我们加入了数据库的备份元素,通过维护计划来生成数据库的备份文件,这包括两种文件,数据库的完全备份与差异备份,有了这两个文件,我们可以通过SQL Server 备份和还

SQL Server 2008创建数据库

1.数据.数据库.数据管理系统基本概念: 数据:人类有用信息的符号化表示. 数据库:按照数据结构来组织.存储和管理数据的一个仓库. 数据库管理系统(DBMS):可维护.存储并为应用系统提供数据的软件系统(软件+数据库+数据管理员). 可以客观描述的事物被称为"实体",不同的数据体现了不同的实体.数据每一行(Row)对应一个实体,被称为"记录(record)",每个输入项称为"列"(Column),如编号,姓名,学号等.数据"表"