SqlServer 使用脚本创建分发服务及事务复制的可更新订阅

【创建使用本地分发服务器】

/************************【使用本地分发服务器配置发布】***********************/–SqlServer 2008 R2–https://technet.microsoft.com/zh-cn/library/ms151860(v=sql.105).aspxuse mastergo–服务器上是否已安装分发服务器–https://msdn.microsoft.com/zh-cn/library/ms190339(v=sql.105).aspxexec master.dbo.sp_get_distributorgo–配置分发服务器–https://msdn.microsoft.com/zh-cn/library/ms176028(v=sql.105).aspxexec master.dbo.sp_adddistributor @distributor = 'KK'–分发服务器名称,@heartbeat_interval = 10–代理在不记录进度消息的情况下可以运行的最长分钟数,@password = N'201card113@app'–分发服务器密码go–配置分发数据库–https://msdn.microsoft.com/zh-cn/library/ms189755(v=sql.105).aspxexec master.dbo.sp_adddistributiondb @database = N'distribution'–要创建的分发数据库的名称,@data_folder = N'E:\TempFile\Distribution' –分发数据库数据文件的目录,@data_file = N'distribution'–数据库文件的名称,@data_file_size = 5–初始数据文件大小,以兆字节 (MB) 为单位,@log_folder = N'E:\TempFile\Distribution' —-分发数据库日志文件的目录,@log_file = N'distribution_log' ,@log_file_size = 5–初始日志文件大小,以兆字节 (MB) 为单位 ,@min_distretention = 0–从分发数据库中删除事务前的最小保持期,以小时为单位,@max_distretention = 72–删除事务前的最大保持期,,以小时为单位 ,@history_retention = 48–历史记录的保留时间,以小时为单位 ,@security_mode = 1–同步时连接到分发服务器的安全模式。默认值为1:Windows验证,0: SQL验证 ,@login = N'KK\SqlReplicator' ,@password = N'123456' ,@createmode = 1–1:创建或使用现有数据库(instdist.sql) go–配置发布服务器以使用指定的分发数据库–https://msdn.microsoft.com/zh-cn/library/ms173807(v=sql.105).aspxexec master.dbo.sp_adddistpublisher @publisher = N'KK'–发布服务器的名称,@distribution_db = N'distribution'–分发数据库的名称 ,@security_mode = 1–安全模式,默认1:Windows验证,0: SQL验证 ,@login = N'KK\SqlReplicator' ,@password = N'123456' ,@working_directory = N'E:\TempFile\ReplData'–默认快照文件夹的UNC共享目录,@thirdparty_flag = 0–发布服务器是否是SQLServer,默认0:是,1:否,@publisher_type = N'MSSQLSERVER'–发布服务器类型:MSSQLSERVER(默认)/ORACLE/ORACLE GATEWAYgo/*****配置完成!!*****/

/*****【查看分发属性】******/–检查分发数据库目录exec master.dbo.xp_subdirs N'E:\TempFile\Distribution'–发布服务器的属性(在分发服务器任何数据库执行)–https://technet.microsoft.com/zh-cn/library/ms190323(v=sql.105).aspxexec master.dbo.sp_helpdistpublisher N'KK'–分发数据库的属性(在分发服务器的分发数据库上执行)–https://msdn.microsoft.com/zh-cn/library/vstudio/aa238917.aspxexec master.dbo.sp_helpdistributiondb N'distribution'–列出有关分发服务器相关信息(在分发服务器任何数据库执行)–https://msdn.microsoft.com/zh-cn/library/ms177504(v=sql.105).aspxexec master.dbo.sp_helpdistributor

/*****【删除分发】******/–这里不必执行!–删除分发发布服务器(在分发服务器任何数据库执行)–https://technet.microsoft.com/zh-cn/library/ms188411(v=sql.105).aspxexec master.dbo.sp_dropdistpublisher @publisher = N'KK',@no_checks = 0,@ignore_distributor = 0 –检查对象;连接分发;–删除分发数据库(在分发服务器任何数据库执行)–https://msdn.microsoft.com/zh-cn/library/ms188355(v=sql.105).aspxexec master.dbo.sp_dropdistributiondb N'distribution';–卸载分发服务器(除分发数据库之外的任何数据库中执行)–https://technet.microsoft.com/zh-cn/library/ms173516(v=sql.105).aspxexec master.dbo.sp_dropdistributor @no_checks = 0,@ignore_distributor = 0 –检查对象;连接分发;

【创建可更新订阅的事务发布】

/*************************************【创建发布】**************************************//*【实例:可更新订阅】* A 为发布数据库,id为每个表的主键* B,C 为订阅数据库* A中符合条件 [id % 2 = 0] 的同步到B中* A中符合条件 [id % 2 = 1] 的同步到C中* 以下以 B 创建发布订阅当前发布数据库:[mytest] 当前发布数据库:[mytestA]发布名称,(发布数据库名),(订阅数据库名),筛选条件*/–作为发布的数据库use [mytest]–设置指定数据库的复制数据库选项(发布服务器或订阅服务器执行)–exec sys.sp_replicationdboption @dbname = N'mytest', @optname = N'publish', @value = N'true'go–为给定分发服务器添加队列读取器代理(在分发库或发布库执行)(每个实例默认只1个,已存在可不须再执行)–exec sys.sp_addqreader_agent @job_login = N'KK\SqlReplicator', @job_password = N'123456', @job_name = null, @frompublisher = 1go–为给定数据库添加日志读取器代理(在发布数据库执行)(每个数据库默认只1个,已存在可不须再执行)–exec sys.sp_helplogreader_agent @publisher = null –查看当前数据库存在的日志代理exec sys.sp_addlogreader_agent @job_login = N'KK\SqlReplicator', @job_password = N'123456', @publisher_security_mode = 1, @job_name = nullgo/***************************【创建发布:以下用于1库多发布】******************************/–添加(可更新订阅)事务发布(在发布数据库执行)–(v=sql.100).aspxexec sys.sp_addpublication @publication = N'tran_repl',–【指定发布名称】@description = N'来自发布服务器“”的数据库“mytest”的具有可更新订阅的事务发布。', @sync_method = N'concurrent',–同步模式:本机模式大容量复制程序输出@retention = 0,–订阅活动的保持期(小时):默认值为336小时;0:订阅永不过期@allow_push = N'true',–推送订阅 @allow_pull = N'true',–允许创建请求订阅@allow_anonymous = N'false',–不可创建匿名订阅 @enabled_for_internet = N'false',–非Internet发布@snapshot_in_defaultfolder = N'false',–不指定快照默认文件夹,须设置@alt_snapshot_folder@alt_snapshot_folder = N'E:\TempFile\ReplData',–指定快照的备用文件夹的位置@compress_snapshot = N'false',–不压缩快照@ftp_port = 21,–默认分发服务器的FTP服务的端口号:21@ftp_login = N'anonymous',–默认用于连接到 FTP 服务的用户名: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'false',–每次运行快照代理时不为发布创建同步文件@allow_sync_tran = N'true',–允许使用【立即更新订阅】@autogen_sync_procs = N'true',–在发布服务器上生成更新订阅的【同步存储过程】@allow_queued_tran = N'true',–在订阅服务器中启用更改的队列@allow_dts = N'false',–不允许数据转换@conflict_policy = N'sub wins',–排队更新订阅服务器选项时所遵从的冲突解决策略:【订阅入选】@centralized_conflicts = N'true',–在发布服务器上存储冲突记录@conflict_retention = 14,–冲突保持期(天)@queue_type = N'sql',–使用的队列类型:默认SQL Server存储事务@replicate_ddl = 1,–【支持架构复制】@allow_initialize_from_backup = N'false', –不允许用备份初始化订阅@enabled_for_p2p = N'false',–非对等复制@enabled_for_het_sub = N'false'–只支持SQL Server订阅服务器go–为指定的发布创建快照代理(在发布数据库执行)–(v=sql.100)exec sys.sp_addpublication_snapshot @publication = N'tran_repl',@frequency_type = 1,@frequency_interval = 0,@frequency_relative_interval = 0,@frequency_recurrence_factor = 0,@frequency_subday = 0, @frequency_subday_interval = 0, @active_start_time_of_day = 0, @active_end_time_of_day = 235959, @active_start_date = 0, @active_end_date = 0, @job_login = N'KK\SqlReplicator', @job_password = N'123456', @publisher_security_mode = 1go–更改发布属性–https://msdn.microsoft.com/zh-cn/library/ms188413(v=sql.105).aspx–exec sys.sp_changepublication ……

诚实是人生绝妙的法宝。虽然对人诚实,

SqlServer 使用脚本创建分发服务及事务复制的可更新订阅

相关文章:

你感兴趣的文章:

标签云: