Mssql双写:实现数据抗错能力的利器(Mssql双写)

Mssql双写是一种实现跨数据库实时复制,保障数据资源可以抗出现意外故障时,不受任何影响的实现技术.

Mssql双写基于两个完全独立的MSSQL实例,采用双向、实时复制技术实现任一SQL实例出现故障时,另一个实例代替工作. Mssql双写架构的实现复制模式为「双写+加载」. 双写实现跨数据库实时复制,允许读写负载的双重冗余; 加载实现数据的定期备份恢复,即便一个实例完全崩溃,也可以实现快速恢复.

Mssql双写具有较好的数据一致性、高可用性、高安全性等优势. 在Mssql双写的架构中,不仅对各个负节点的读写进行双重冗余实现高可用性,还确保两个实例及其中的同步操作不受到任何外部压力. 其如下实现步骤:

1. 在两个实例上设置共享存储;

2. 将两个实例上的Mssql数据库设置同步;

3. 配置两个实例上双写基于接收复制的断点的复制传输协议;

4. 配置同步工具,实现双写传输;

5. 配置Mssql双写加载脚本,实现定期备份恢复。

“`sql

–下面是Mssql双写设置脚本示例

USE master

GO

=============== 设置备份服务器 ===============

BACKUP DATABASE DB1 TO DISK=’C:\backup\db1.bak’

GO

=============== 设置双写 ===============

DECLARE @publication AS sysname;

DECLARE @subscriber AS sysname;

DECLARE @distributor AS sysname;

DECLARE @publication_init AS bit;

SET @publication = N’DB1′;

SET @subscriber = N’server1′;

SET @distributor = N’SERVER2′;

SET @publication_init = 0;

— 设置发布

EXEC sp_replicationdboption @dbname = N’DB1′, @optname = N’publish’, @value = N’true’; — Set the database for publishing

— 创建发布

EXEC sp_addpublication @publication = @publication,

@description = N’Transactional and snapshot publication of database’,

@sync_method = N’concurrent’,

@retention = 0,

@allow_push = N’true’,

@allow_pull = N’true’,

@allow_anonymous = N’true’,

@enabled_for_internet = N’false’,

@snapshot_in_defaultfolder = N’true’,

@compress_snapshot = N’false’,

@ftp_port = 21, @ftp_login = N’anonymous’, @allow_subscription_copy = N’false’,

@add_to_active_directory = N’false’, @repl_freq = N’continuous’,

@status = N’active’, @independent_agent = N’true’,

@immediate_sync = N’true’,

@allow_sync_tran = N’false’, @autogen_sync_procs = N’false’,

@allow_queued_tran = N’false’,

@allow_dts = N’false’, @replicate_ddl = 1, @allow_initialize_from_backup = N’true’

— 创建订阅

EXEC sp_addsubscription @publication = @publication,

@subscriber = @subscriber,

@destination_db =N’DB1′,

@subscription_type = N’push’,

@sync_type = N’replication support only’,

@update_mode = N’read only’,

@subscriber_type = 0,

@description = N’Transactional pull subscription for Initial Subscriber’ ;

— 设置发布的标识

EXEC sp_setsubscriberidentityproperty @publication = @publication,

@subscriber = @subscriber, @property = N’publisher_id’, @value = ‘1’;

— 启动发布/订阅

EXEC sp_reinitsubscription @publication = @publication, @subscriber = @subscriber ;


有了Mssql双写技术, 数据库可以以更高效、稳定、安全的方式实现抗出现意外故障时,不受任何影响的目标,让企业提升数据库系统的可靠性.

数据运维技术 » Mssql双写:实现数据抗错能力的利器(Mssql双写)