承接国内外服务器租用托管、定制开发、网站代运营、网站seo优化托管接单、网站代更新,新老站点皆可!!咨询QQ:3787320601

SQL 同步MSSQL实现数据一致性

管理员 2023-04-28 08:10:28 网站建设 35 ℃ 0 评论 3916字 收藏

SQL 同步MSSQL实现数据一致性

  SQL 同步(Synchronization)是大部份数据库系统实现数据一致性的一个重要方法,它被用来同步从多个节点的数据到一个主节点,或从一个主节点同步数据到多个节点。Microsoft SQL(MSSQL)是一个SQL数据库管理系统,它可以通过同步机制,实现数据一致性。

  MSSQL同步主要有两种方式:一种是内置的可复制(Replication)机制和另外一种是同步框架(Synchronization Framework)。

### 一、可复制机制

  可复制技术是MSSQL支持的一种同步技术,可以帮助用户同步数据到多个实例,可以作为高可用性及好扩大性的解决方案来使用。MSSQL的可复制扩大不光可以同步多个实例,而且还可以同步数据库级别的对象,如表、视图、函数、存储进程等,实现了异构数据库之间的复制。例如:

--实现可复制
-- 将 SQL_DB1 同步到 SQL_DB2

-- 使用 SSMS 打开发布者
USE master

-- 查询-----发布者
sp_helpdistributor

-- 创建发布者
EXEC sp_adddistributor
@distributor='SYNC_SQL',
@password='6745'
GO

-- 打开数据库-----发布者
USE Sync_SQL
GO

-- 创建发布 database
EXEC sp_replicationdboption
@dbname=N'SQL_DB1',
@optname=N'publish',
@value=N'true'
GO
-- 创建发布定阅表-----发布者
EXEC sp_addarticle
@publication=N'Sync_SQL',
@article=N'Orders',
@source_owner=N'dbo',
@source_object=N'Orders',
@type=N'logbased',
@description=N'',
@creation_script=N'',
@pre_creation_cmd=N'drop',
@schema_option=N'0x0000000000080342'
GO
-- 创建定阅数据库
CREATE DATABASE SQL_DB2
GO

-- 打开定阅数据库
USE SQL_DB2
GO

-- 使用 SSMS 打开定阅者
USE master

-- 查询-----定阅者
sp_helppullsubscription

-- 创建定阅
EXECUTE sp_addpullsubscription
@publisher=N'Sync_SQL',
@publisher_db=N'SQL_DB1',
@publication=N'Sync_SQL',
@subscriber=N'SQL_DB2'
GO

-- 启动定阅
EXECUTE sp_startpullsubscription
@publisher=N'Sync_SQL',
@publisher_db=N'SQL_DB1',
@publication=N'Sync_SQL',
@subscriber=N'SQL_DB2'
GO

### 二、同步框架

  MSSQL还提供了同步框架,它为数据同步提供强大的工具及功能,可以确保数据保持同步,构建可靠的散布式服务。MSSQL同步框架可以定义实体、客户端及服务器,同时可以将它们通过手动或自动的方式连接,实现同步数据处理利用程序的开发。MSSQL的同步框架还可以通过表达式进行比较及同步,例如:

--实现同步框架
-- 同步 SQL_DB1 和 SQL_DB2 的 Orders 表

-- 配置服务器端
USE master

-- 添加服务器实体
EXEC sp_addserver
@server=N'Server2',
@datasrc=N'127.0.0.1',
@provider=N'SQLNCLI11',
@catalog=N'SQL_DB2'
GO
-- 创建实体定义
EXEC sp_addremotelogin
@remoteserver=N'Server2',
@loginname=N'sa',
@password='6745'
GO
-- 启用远程访问
ALTER DATABASE [SQL_DB1] SET DB_CHAINING ON
GO

-- 添加实体
EXEC sp_addserver
@server=N'Server2',
@datasrc=N'127.0.0.1',
@provider=N'SQLNCLI11',
@catalog=N'SQL_DB2'
GO

-- 注册order表
EXEC sp_register_entity
@entityname=N'MyEntity_Order',
@localpublication=N'SQL_DB1',
@remotepublication=N'SQL_DB2',
@remoteentitytype=N'table',
@remoteregidtype=N'tabid',
@remotenamespace=N'',
@remoteobject=N'Orders',
@remotetype=N'SQLTables',
@localobjservername=N'Server2'

文章来源:丸子建站

文章标题:SQL 同步MSSQL实现数据一致性

https://www.wanzijz.com/view/22037.html

X

截屏,微信识别二维码

微信号:weimawl

(点击微信号复制,添加好友)

打开微信