一、背景
MySQL在对有历史数据的数据库进行搭建复制(Master/Slave)的时候,可以通过在Master服务器备份历史数据,利用这个备份文件在Slave进行还原;这样做的好处是可以更加快速的搭建好环境,因为可以对备份文件进行压缩、分包,并且可以使用FTP等工具保证传输过程的安全与快捷;详情可参考:Windows下搭建MySQL Master Slave
当SQL Server遇到同样需要对历史数据库搭建复制,通常的做法是在本地发布快照,再由订阅传输数据,那SQL Server应该如何实现备份历史数据搭建复制(发布/订阅)呢?下图是备份文件初始化订阅的基本逻辑结构图:
(Figure0:备份文件初始化订阅逻辑结构图)
二、搭建过程
(一) 环境信息
系统环境:Windows Server 2008 + SQL Server 2008
发布服务器:192.168.1.105,服务器名称:QuZhoushiwei105
分发服务器:与发布服务器同一台机器
订阅服务器:192.168.1.106,服务器名称:QuZhoushiwei106
发布数据库:Barfoo.TestPublish
订阅数据库:Barfoo.TestSubscribe
数据库帐号:ReplicationUser/ ReplicationPassword
说明:发布服务器与订阅服务器是在同一内网的机器,如果你的环境是跨网段(跨机房)的请参考:SQL Server复制(发布订阅)实战二:跨网段(跨机房)部署
(二) 搭建步骤
1) 在发布服务器上以QuZhoushiwei105服务器名称登陆发布服务器,如果你以localhost或者IP形式登陆服务器,在创建发布的时候会出现下图Figure1的错误信息;
(Figure1:错误信息)
登陆服务器之后使用下面的SQL脚本创建一个测试数据库:Barfoo.TestPublish,创建一个测试表:UserInfo,并插入一条数据,用于模拟历史数据;
--创建测试数据库 USE MASTER GO CREATE DATABASE [Barfoo.TestPublish] GO --创建测试表 USE [Barfoo.TestPublish] GO CREATE TABLE [dbo].[UserInfo]( [Id] [int] IDENTITY(1,1) NOT FOR REPLICATION NOT NULL, [names] [nvarchar](50) NULL, [address] [nvarchar](50) NULL, CONSTRAINT [PK_UserInfo] PRIMARY KEY CLUSTERED ( [Id] ASC ) ON [PRIMARY] ) ON [PRIMARY] GO --插入测试数据 INSERT [dbo].[UserInfo] ([names],[address]) VALUES (N'gaizai', N'广州')
(Figure2:UserInfo表记录)
2) 在发布数据库和订阅服务器上分别执行下面的SQL脚本创建帐号和密码(ReplicationUser/ ReplicationPassword);
--发布服务器创建帐号密码 USE [master] GO CREATE LOGIN [ReplicationUser] WITH PASSWORD=N'ReplicationPassword', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO EXEC master..sp_addsrvrolemember @loginame = N'ReplicationUser', @rolename = N'sysadmin' GO USE [Barfoo.TestPublish] GO CREATE USER [ReplicationUser] FOR LOGIN [ReplicationUser] GO USE [Barfoo.TestPublish] GO ALTER USER [ReplicationUser] WITH DEFAULT_SCHEMA=[dbo] GO --订阅服务器创建帐号密码 USE [master] GO CREATE LOGIN [ReplicationUser] WITH PASSWORD=N'ReplicationPassword', DEFAULT_DATABASE=[master], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF GO EXEC master..sp_addsrvrolemember @loginame = N'ReplicationUser', @rolename = N'sysadmin' GO
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索数据库
, 服务器
, server
, 备份
, 跨网段传输
, java 跨服务器登陆
, 订阅
, 帐号
, 跨数据库复制
复制初始化
sqlserver 仅复制备份、sql server 初始化表、sqlserver备份数据库、sql server数据库备份、sql server 备份,以便于您获取更多的相关知识。