开始
在上一篇《PowerShell应用之-事务复制》,描述了如何通过PowerShell脚本配置发布&分发服务器、创建事务发布&发布项目、和创建推送&请求订阅。而且上篇订阅是只读的(ReadOnly),在这篇,将会讲述可更新订阅的事务复制,涉及到两种基本的订阅类型:队列更新(QueuedUpdate) & 即时更新(ImmediateUpdate )。本篇使用的例子会沿用上一篇的部分脚本及测试数据库。在这边我们省略了配置发布&分发服务器部分,直接从创建事务发布和发布项目(TransPublication & TransArticle)开始。
创建事务发布和设置发布项目(TransPublication & TransArticle)
在原来的代码中,我们会在开始的输入部分多加两个变量描述可更新订阅的订阅类型,是否队列更新 & 是否即时更新
##允许队列更新订阅
#------------------------------------------------------------
$AllowQueuedTransactions=$True
##允许即时更新订阅
#------------------------------------------------------------
$AllowSynchronousTransactions=$True
#------------------------------------------------------------
$AllowQueuedTransactions=$True
##允许即时更新订阅
#------------------------------------------------------------
$AllowSynchronousTransactions=$True
在TransPublication创建之前,需要补上下面的简短代码,描述添加队列更新 & 即时更新到TransPublication可更新订阅选项中。
#允许队列更新订阅
if($AllowQueuedTransactions -eq $true)
{
$TransPublication.Attributes =$TransPublication.Attributes -bor [Microsoft.SqlServer.Replication.PublicationAttributes]::AllowQueuedTransactions
}
#允许即时更新订阅
if($AllowSynchronousTransactions -eq $true)
{
$TransPublication.Attributes =$TransPublication.Attributes -bor [Microsoft.SqlServer.Replication.PublicationAttributes]::AllowSynchronousTransactions
}
if($AllowQueuedTransactions -eq $true)
{
$TransPublication.Attributes =$TransPublication.Attributes -bor [Microsoft.SqlServer.Replication.PublicationAttributes]::AllowQueuedTransactions
}
#允许即时更新订阅
if($AllowSynchronousTransactions -eq $true)
{
$TransPublication.Attributes =$TransPublication.Attributes -bor [Microsoft.SqlServer.Replication.PublicationAttributes]::AllowSynchronousTransactions
}