国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 開(kāi)發(fā) > 綜合 > 正文

SQLSERVER中,數(shù)據(jù)庫(kù)同步的實(shí)現(xiàn)

2024-07-21 02:32:01
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

經(jīng)過(guò)測(cè)試,可以順利實(shí)現(xiàn)數(shù)據(jù)庫(kù)結(jié)構(gòu)的初始化和數(shù)據(jù)的單向同步(也就是訂閱服務(wù)器的數(shù)據(jù)可以及時(shí)更新為發(fā)布服務(wù)器的數(shù)據(jù))。
準(zhǔn)備工作:
 >>數(shù)據(jù)的同步中主要考慮的三部分,可以理解成三臺(tái)主機(jī)。發(fā)布服務(wù)器,分發(fā)服務(wù)器和訂閱服務(wù)器;可以從字面的意思理解,要實(shí)現(xiàn)的功能實(shí)際就是讓訂閱服務(wù)器通過(guò)分發(fā)服務(wù)器保持?jǐn)?shù)據(jù)及時(shí)地和發(fā)布服務(wù)器上的數(shù)據(jù)一致。整個(gè)執(zhí)行過(guò)程是這樣一來(lái)的:
 a.訂閱服務(wù)器應(yīng)該有個(gè)初始化,一般來(lái)說(shuō)我們開(kāi)始做這個(gè)同步任務(wù)的時(shí)候,發(fā)布服務(wù)器已經(jīng)有了相當(dāng)?shù)臄?shù)據(jù)量了,而我們的訂閱服務(wù)器應(yīng)該是新建的服務(wù)。即使發(fā)布中沒(méi)有數(shù)據(jù),也需要把他的數(shù)據(jù)庫(kù)結(jié)構(gòu)初始化到訂閱服務(wù)器上。
 b.我采用的是事物復(fù)制,發(fā)布服務(wù)器的數(shù)據(jù)發(fā)生變化后,相當(dāng)于觸發(fā)了一個(gè)更新操作,而事物復(fù)制可以在設(shè)定的時(shí)間把數(shù)據(jù)更新的操作更新到訂閱服務(wù)器中去。當(dāng)然,這個(gè)操作需要經(jīng)過(guò)分發(fā)服務(wù)器。在我的測(cè)試中,我是把發(fā)布服務(wù)器和分發(fā)服務(wù)器設(shè)置為同一臺(tái)主機(jī),可以順利實(shí)現(xiàn)數(shù)據(jù)在數(shù)分鐘內(nèi)同步。

 >>在操作的起始,需要考慮訂閱服務(wù)器是否有和發(fā)布服務(wù)器相同結(jié)構(gòu)的數(shù)據(jù)庫(kù),如果有,需要做的就是使用代理把發(fā)布服務(wù)器現(xiàn)有的數(shù)據(jù)初始化過(guò)去;如果沒(méi)有對(duì)應(yīng)的相同結(jié)構(gòu)的數(shù)據(jù)庫(kù),就需要要把發(fā)布服務(wù)器當(dāng)前的數(shù)據(jù)庫(kù)結(jié)構(gòu)和當(dāng)前的數(shù)據(jù)都初始化到訂閱服務(wù)器中。當(dāng)然這里所說(shuō)的操作都是在下面的實(shí)施步驟中實(shí)現(xiàn),不需要單獨(dú)處理。
 >>如果說(shuō)對(duì)Windows系統(tǒng)有所要求的話,就應(yīng)該保證這三個(gè)服務(wù)器(發(fā)布,分發(fā),訂閱)在同個(gè)域中,以同一個(gè)域管理員帳號(hào)身份運(yùn)行,操作如下:
 a.進(jìn)入相應(yīng)的服務(wù)器,控制面板->服務(wù)->SQLSERVERAGENT,設(shè)置登錄,三臺(tái)服務(wù)器同樣設(shè)置。

 b.操作前,也不允許這三臺(tái)服務(wù)器對(duì)應(yīng)的別名使用呢稱,比如"LOCAL",這樣的別名要?jiǎng)h除重建,可以采用主機(jī)名,比如:server02.

下面開(kāi)始執(zhí)行數(shù)據(jù)庫(kù)同步的操作:
 >>配置發(fā)布服務(wù)器和分發(fā)服務(wù)器:
 a.選中對(duì)應(yīng)服務(wù)器的注冊(cè)名->工具->復(fù)制->配置發(fā)布、訂閱和分發(fā),直接按照默認(rèn)設(shè)置向下執(zhí)行,直到完成。關(guān)閉。
 b.再一次選中這個(gè)服務(wù)器服務(wù)器的注冊(cè)名->工具->復(fù)制->配置發(fā)布、訂閱和分發(fā),可以看到這次界面和步驟a中的界面有所不同,我們只需要配置一下 發(fā)布服務(wù)器,發(fā)布數(shù)據(jù)庫(kù),訂閱服務(wù)器。(我的發(fā)布數(shù)據(jù)庫(kù)采用的是事物性的)。點(diǎn)“確定”完成操作。<標(biāo)記P>
 
 >>創(chuàng)建發(fā)布,可以選中相應(yīng)的注冊(cè),用工具->復(fù)制->創(chuàng)建和管理發(fā)布或者在該注冊(cè)下面的 復(fù)制->發(fā)布內(nèi)容 選中后,在右邊空白處,右鍵,新建發(fā)布,來(lái)創(chuàng)建你的發(fā)布。我選擇的是事物發(fā)布,按照默認(rèn)設(shè)置,選擇你要發(fā)布的表或其他對(duì)象,其他地方不需要修改,直到完成操作。
 >>修改發(fā)布屬性:選擇“狀態(tài)”->立即運(yùn)行代理程序;代理程序?qū)傩?>設(shè)置你的調(diào)度,比如一分鐘一次。(調(diào)度->編輯->更改;通知->寫(xiě)入windows應(yīng)用程序事件日志),"確定"完成操作。
 
 >>創(chuàng)建訂閱:選擇發(fā)布服務(wù)器對(duì)應(yīng)的注冊(cè),復(fù)制->發(fā)布內(nèi)容->在這個(gè)內(nèi)容上右鍵,強(qiáng)制新訂閱,->"下一步",選擇訂閱服務(wù)器(在標(biāo)記P那一步選擇的訂閱服務(wù)器)->“下一步”->選擇你有的數(shù)據(jù)庫(kù),或者新建一個(gè)數(shù)據(jù)庫(kù)
->"下一步"-> 修改你需要的調(diào)度->按照默認(rèn)設(shè)置,直到完成。

到這里就可以完成了,修改發(fā)布服務(wù)器數(shù)據(jù)庫(kù)中的內(nèi)容,等一兩分鐘,數(shù)據(jù)就同步到訂閱服務(wù)器中了。不過(guò)由于第一次執(zhí)行需要快照,如果發(fā)布庫(kù)中有一定的內(nèi)容,第一次執(zhí)行可能需要幾分鐘時(shí)間。如果數(shù)據(jù)不能同步過(guò)去,大家是調(diào)度設(shè)置時(shí)間太短(比如1分鐘)使快照不能完成,所以后面的步驟無(wú)法執(zhí)行,遇到這樣的情況的話,
選中你發(fā)布的內(nèi)容,設(shè)置屬性,在“狀態(tài)”中“立即運(yùn)行代理程序”,這樣的話,數(shù)據(jù)會(huì)馬上同步過(guò)去的。

 

利用數(shù)據(jù)庫(kù)復(fù)制技術(shù) 實(shí)現(xiàn)數(shù)據(jù)同步更新
復(fù)制的概念
復(fù)制是將一組數(shù)據(jù)從一個(gè)數(shù)據(jù)源拷貝到多個(gè)數(shù)據(jù)源的技術(shù),是將一份數(shù)據(jù)發(fā)布到多個(gè)存儲(chǔ)站點(diǎn)上的有效方式。使用復(fù)制技術(shù),用戶可以將一份數(shù)據(jù)發(fā)布到多臺(tái)服務(wù)器上,從而使不同的服務(wù)器用戶都可以在權(quán)限的許可的范圍內(nèi)共享這份數(shù)據(jù)。復(fù)制技術(shù)可以確保分布在不同地點(diǎn)的數(shù)據(jù)自動(dòng)同步更新,從而保證數(shù)據(jù)的一致性。

SQL復(fù)制的基本元素包括
出版服務(wù)器、訂閱服務(wù)器、分發(fā)服務(wù)器、出版物、文章
SQL復(fù)制的工作原理
SQL SERVER 主要采用出版物、訂閱的方式來(lái)處理復(fù)制。源數(shù)據(jù)所在的服務(wù)器是出版服務(wù)器,負(fù)責(zé)發(fā)表數(shù)據(jù)。出版服務(wù)器把要發(fā)表的數(shù)據(jù)的所有改變情況的拷貝復(fù)制到分發(fā)服務(wù)器,分發(fā)服務(wù)器包含有一個(gè)分發(fā)數(shù)據(jù)庫(kù),可接收數(shù)據(jù)的所有改變,并保存這些改變,再把這些改變分發(fā)給訂閱服務(wù)器
SQL SERVER復(fù)制技術(shù)類型
SQL SERVER提供了三種復(fù)制技術(shù),分別是:
1、快照復(fù)制(呆會(huì)我們就使用這個(gè))
2、事務(wù)復(fù)制
3、合并復(fù)制
只要把上面這些概念弄清楚了那么對(duì)復(fù)制也就有了一定的理解。接下來(lái)我們就一步一步來(lái)實(shí)現(xiàn)復(fù)制的步驟。
第一先來(lái)配置出版服務(wù)器
(1)選中指定[服務(wù)器]節(jié)點(diǎn)
(2)從[工具]下拉菜單的[復(fù)制]子菜單中選擇[發(fā)布、訂閱服務(wù)器和分發(fā)]命令
(3)系統(tǒng)彈出一個(gè)對(duì)話框點(diǎn)[下一步]然后看著提示一直操作到完成。
(4)當(dāng)完成了出版服務(wù)器的設(shè)置以后系統(tǒng)會(huì)為該服務(wù)器的樹(shù)形結(jié)構(gòu)中添加一個(gè)復(fù)制監(jiān)視器。同時(shí)也生成一個(gè)分發(fā)數(shù)據(jù)庫(kù)(distribution)
第二創(chuàng)建出版物
(1)選中指定的服務(wù)器
(2)從[工具]菜單的[復(fù)制]子菜單中選擇[創(chuàng)建和管理發(fā)布]命令。此時(shí)系統(tǒng)會(huì)彈出一個(gè)對(duì)話框
(3)選擇要?jiǎng)?chuàng)建出版物的數(shù)據(jù)庫(kù),然后單擊[創(chuàng)建發(fā)布]
(4)在[創(chuàng)建發(fā)布向?qū)的提示對(duì)話框中單擊[下一步]系統(tǒng)就會(huì)彈出一個(gè)對(duì)話框。對(duì)話框上的內(nèi)容是復(fù)制的三個(gè)類型。我們現(xiàn)在選第一個(gè)也就是默認(rèn)的快照發(fā)布(其他兩個(gè)大家可以去看看幫助)
(5)單擊[下一步]系統(tǒng)要求指定可以訂閱該發(fā)布的數(shù)據(jù)庫(kù)服務(wù)器類型,SQLSERVER允許在不同的數(shù)據(jù)庫(kù)如 Oracle或access之間進(jìn)行數(shù)據(jù)復(fù)制。但是在這里我們選擇運(yùn)行"SQL SERVER 2000"的數(shù)據(jù)庫(kù)服務(wù)器
(6)單擊[下一步]系統(tǒng)就彈出一個(gè)定義文章的對(duì)話框也就是選擇要出版的表
(7)然后[下一步]直到操作完成。當(dāng)完成出版物的創(chuàng)建后創(chuàng)建出版物的數(shù)據(jù)庫(kù)也就變成了一個(gè)共享數(shù)據(jù)庫(kù)。
第三設(shè)計(jì)訂閱
(1)選中指定的訂閱服務(wù)器
(2)從[工具]下拉菜單中選擇[復(fù)制]子菜單的[請(qǐng)求訂閱]
(3)按照單擊[下一步]操作直到系統(tǒng)會(huì)提示檢查SQL SERVER代理服務(wù)的運(yùn)行狀態(tài),執(zhí)行復(fù)制操作的前提條件是SQL SERVER代理服務(wù)必須已經(jīng)啟動(dòng)。
(4)單擊[完成]。完成訂閱操作。
完成上面的步驟其實(shí)復(fù)制也就是成功了。但是如何來(lái)知道復(fù)制是否成功了呢?這里可以通過(guò)這種方法來(lái)快速看是否成功。展開(kāi)出版服務(wù)器下面的復(fù)制——發(fā)布內(nèi)容——右鍵發(fā)布內(nèi)容——屬性——擊活——狀態(tài)然后點(diǎn)立即運(yùn)行代理程序接著點(diǎn)代理程序?qū)傩該艋钫{(diào)度把調(diào)度設(shè)置為每一天發(fā)生,每一分鐘,在0:00:00和23:59:59之間。接下來(lái)就是判斷復(fù)制是否成功了打開(kāi)C:/PRogram Files/Microsoft SQL Server/MSSQL/REPLDATA/unc/XIAOWANGZI_database_database下面看是不是有一些以時(shí)間做為文件名的文件夾差不多一分中就產(chǎn)生一個(gè)。要是你還不信的話就打開(kāi)你的數(shù)據(jù)庫(kù)看在訂閱的服務(wù)器的指定訂閱數(shù)據(jù)庫(kù)下看是不是看到了你剛才所發(fā)布的表—
一個(gè)手工同步的方案
--定時(shí)同步服務(wù)器上的數(shù)據(jù)
--例子:
--測(cè)試環(huán)境,SQL Server2000,遠(yuǎn)程服務(wù)器名:xz,用戶名為:sa,無(wú)密碼,測(cè)試數(shù)據(jù)庫(kù):test
--服務(wù)器上的表(查詢分析器連接到服務(wù)器上創(chuàng)建)
create table [user](id int primary key,number varchar(4),name varchar(10))
go
--以下在局域網(wǎng)(本機(jī)操作)
--本機(jī)的表,state說(shuō)明:null 表示新增記錄,1 表示修改過(guò)的記錄,0 表示無(wú)變化的記錄
if exists (select * from dbo.sysobjects where id = object_id(N’[user]’) and OBJECTPROPERTY(id, N’IsUserTable’) = 1)

 drop table [user]
GO
create table [user](id int identity(1,1),number varchar(4),name varchar(10),state bit)
go
--創(chuàng)建觸發(fā)器,維護(hù)state字段的值
create trigger t_state on [user]
after update
as
update [user] set state=1
from [user] a join inserted b on a.id=b.id
where a.state is not null
go
--為了方便同步處理,創(chuàng)建鏈接服務(wù)器到要同步的服務(wù)器
--這里的遠(yuǎn)程服務(wù)器名為:xz,用戶名為:sa,無(wú)密碼
if exists(select 1 from master..sysservers where srvname=’srv_lnk’)
exec sp_dropserver ’srv_lnk’,’droplogins’
go
exec sp_addlinkedserver ’srv_lnk’,’’,’SQLOLEDB’,’xz’
exec sp_addlinkedsrvlogin ’srv_lnk’,’false’,null,’sa’
go
--創(chuàng)建同步處理的存儲(chǔ)過(guò)程
if exists (select * from dbo.sysobjects where id = object_id(N’[dbo].[p_synchro]’) and OBJECTPROPERTY(id, N’IsProcedure’) = 1)
drop procedure [dbo].[p_synchro]
GO
create proc p_synchro
as
--set XACT_ABORT on
--啟動(dòng)遠(yuǎn)程服務(wù)器的MSDTC服務(wù)
--exec master..xp_cmdshell ’isql /S"xz" /U"sa" /P"" /q"exec master..xp_cmdshell ’’net start msdtc’’,no_output"’,no_output
--啟動(dòng)本機(jī)的MSDTC服務(wù)
--exec master..xp_cmdshell ’net start msdtc’,no_output
--進(jìn)行分布事務(wù)處理,如果表用標(biāo)識(shí)列做主鍵,用下面的方法
--BEGIN DISTRIBUTED TRANSACTION
--同步刪除的數(shù)據(jù)
delete from srv_lnk.test.dbo.[user]
where id not in(select id from [user])
--同步新增的數(shù)據(jù)
insert into srv_lnk.test.dbo.[user]
select id,number,name from [user] where state is null
--同步修改的數(shù)據(jù)
update srv_lnk.test.dbo.[user] set
number=b.number,name=b.name
from srv_lnk.test.dbo.[user] a
join [user] b on a.id=b.id
where b.state=1
--同步后更新本機(jī)的標(biāo)志
update [user] set state=0 where isnull(state,1)=1
--COMMIT TRAN
  

修改這項(xiàng)參數(shù),需要重新啟動(dòng)MSSQLserver和Sqlserveragent服務(wù)才能生效。   
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)18482、18483錯(cuò)誤了。
    3、檢查SQL Server企業(yè)管理器里面相關(guān)的幾臺(tái)SQL Server注冊(cè)名是否和上面第二點(diǎn)里介紹的srvname一樣
        不能用ip地址的注冊(cè)名。
      (我們可以刪掉IP地址的注冊(cè),新建以SQL Server管理員級(jí)別的用戶注冊(cè)的服務(wù)器名)
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)14010、20084、18456、18482、18483錯(cuò)誤了。   
    4、檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器網(wǎng)絡(luò)是否能夠正常訪問(wèn)
        如果ping主機(jī)IP地址可以,但ping主機(jī)名不通的時(shí)候,需要在   
            winnt/system32/drivers/etc/hosts   (WIN2000)
            windows/system32/drivers/etc/hosts (WIN2003)
               文件里寫(xiě)入數(shù)據(jù)庫(kù)服務(wù)器IP地址和主機(jī)名的對(duì)應(yīng)關(guān)系。

或者在SQL Server客戶端網(wǎng)絡(luò)實(shí)用工具里建立別名,例如:
     5、系統(tǒng)需要的擴(kuò)展存儲(chǔ)過(guò)程是否存在(如果不存在,需要恢復(fù)):

 

 接下來(lái)就可以用SQL Server企業(yè)管理器里[復(fù)制]-> 右鍵選擇
        ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)]的圖形界面來(lái)配置數(shù)據(jù)庫(kù)復(fù)制了。
下面是按順序列出配置復(fù)制的步驟:
    一、建立發(fā)布和分發(fā)服務(wù)器
        [歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]
       ->[使"@servername"成為它自己的分發(fā)服務(wù)器,SQL Server將創(chuàng)建分發(fā)數(shù)據(jù)庫(kù)和日志]
       ->[制定快照文件夾]-> [自定義配置] -> [否,使用下列的默認(rèn)配置] -> [完成]
    上述步驟完成后, 會(huì)在當(dāng)前"@servername" SQL Server數(shù)據(jù)庫(kù)里建立了一個(gè)distribion庫(kù)和
            一個(gè)distributor_admin管理員級(jí)別的用戶(我們可以任意修改密碼)
           
    服務(wù)器上新增加了四個(gè)作業(yè):
                [ 代理程序歷史記錄清除: distribution ]
                [ 分發(fā)清除: distribution ]
                [ 復(fù)制代理程序檢查 ]
                [ 重新初始化存在數(shù)據(jù)驗(yàn)證失敗的訂閱 ]
    SQL Server企業(yè)管理器里多了一個(gè)復(fù)制監(jiān)視器, 當(dāng)前的這臺(tái)機(jī)器就可以發(fā)布、分發(fā)、訂閱了。
    我們?cè)俅卧赟QL Server企業(yè)管理器里[復(fù)制]-> 右鍵選擇
        ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)],可以看到類似下圖:
    我們可以在 [發(fā)布服務(wù)器和分發(fā)服務(wù)器的屬性] 窗口
        -> [發(fā)布服務(wù)器] -> [新增]        -> [確定]
        -> [發(fā)布數(shù)據(jù)庫(kù)] -> [事務(wù)]/[合并] -> [確定]
        -> [訂閱服務(wù)器] -> [新增]        -> [確定]       
       把網(wǎng)絡(luò)上的其它SQL Server服務(wù)器添加成為發(fā)布或者訂閱服務(wù)器.
       新增一臺(tái)發(fā)布服務(wù)器的選項(xiàng):   
    我這里新建立的JIN001發(fā)布服務(wù)器是用管理員級(jí)別的數(shù)據(jù)庫(kù)用戶test連接的,      
    到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框, 默認(rèn)的是選中的,
    在新建的JIN001發(fā)布服務(wù)器上建立和分發(fā)服務(wù)器FENGYU/FENGYU的鏈接的時(shí)需要輸入distributor_admin用戶的密碼
         到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框,也可以不選,
         也就是不需要密碼來(lái)建立發(fā)布到分發(fā)服務(wù)器的鏈接(這當(dāng)然欠缺安全,在測(cè)試環(huán)境下可以使用)
二、新建立的網(wǎng)絡(luò)上另一臺(tái)發(fā)布服務(wù)器(例如JIN001)選擇分發(fā)服務(wù)器
    [歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]
     -> 使用下列服務(wù)器(選定的服務(wù)器必須已配置為分發(fā)服務(wù)器) -> [選定服務(wù)器](例如FENGYU/FENGYU)
     -> [下一步] -> [輸入分發(fā)服務(wù)器(例如FENGYU/FENGYU)的distributor_admin用戶的密碼兩次]
     -> [下一步] -> [自定義配置] -> [否,使用下列的默認(rèn)配置]
     -> [下一步] -> [完成] -> [確定]
     建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制發(fā)布的過(guò)程:
     [復(fù)制] -> [發(fā)布內(nèi)容] -> 右鍵選擇 -> [新建發(fā)布]
     -> [下一步] -> [選擇發(fā)布數(shù)據(jù)庫(kù)] -> [選中一個(gè)待發(fā)布的數(shù)據(jù)庫(kù)]
     -> [下一步] -> [選擇發(fā)布類型] -> [事務(wù)發(fā)布]/[合并發(fā)布]
     -> [下一步] -> [指定訂閱服務(wù)器的類型] -> [運(yùn)行SQL Server 2000的服務(wù)器]
     -> [下一步] -> [指定項(xiàng)目] -> [在事務(wù)發(fā)布中只可以發(fā)布帶主鍵的表] -> [選中一個(gè)有主鍵的待發(fā)布的表]
         ->[在合并發(fā)布中會(huì)給表增加唯一性索引和 ROWGUIDCOL 屬性的唯一標(biāo)識(shí)符字段[rowguid],默認(rèn)值是newid()]
               (添加新列將: 導(dǎo)致不帶列列表的 INSERT 語(yǔ)句失敗,增加表的大小,增加生成第一個(gè)快照所要求的時(shí)間)
         ->[選中一個(gè)待發(fā)布的表]
     -> [下一步] -> [選擇發(fā)布名稱和描述] ->
     -> [下一步] -> [自定義發(fā)布的屬性] -> [否,根據(jù)指定方式創(chuàng)建發(fā)布]
     -> [下一步] -> [完成] -> [關(guān)閉]
     發(fā)布屬性里有很多有用的選項(xiàng):設(shè)定訂閱到期(例如24小時(shí))
         設(shè)定發(fā)布表的項(xiàng)目屬性:
常規(guī)窗口可以指定發(fā)布目的表的名稱,可以跟原來(lái)的表名稱不一樣。
     下圖是命令和快照窗口的欄目  
    ( SQL Server 數(shù)據(jù)庫(kù)復(fù)制技術(shù)實(shí)際上是用insert,update,delete操作在訂閱服務(wù)器上重做發(fā)布服務(wù)器上的事務(wù)操作
      看文檔資料需要把發(fā)布數(shù)據(jù)庫(kù)設(shè)成完全恢復(fù)模式,事務(wù)才不會(huì)丟失
      但我自己在測(cè)試中發(fā)現(xiàn)發(fā)布數(shù)據(jù)庫(kù)是簡(jiǎn)單恢復(fù)模式下,每10秒生成一些大事務(wù),10分鐘后再收縮數(shù)據(jù)庫(kù)日志,
          這期間發(fā)布和訂閱服務(wù)器上的作業(yè)都暫停,暫停恢復(fù)后并沒(méi)有丟失任何事務(wù)更改 )
     發(fā)布表可以做數(shù)據(jù)篩選,例如只選擇表里面的部分列:
    例如只選擇表里某些符合條件的記錄, 我們可以手工編寫(xiě)篩選的SQL語(yǔ)句:
    發(fā)布表的訂閱選項(xiàng),并可以建立強(qiáng)制訂閱:
    成功建立了發(fā)布以后,發(fā)布服務(wù)器上新增加了一個(gè)作業(yè): [ 失效訂閱清除 ]
    分發(fā)服務(wù)器上新增加了兩個(gè)作業(yè):
                [ JIN001-dack-dack-5 ] 類型[ REPL快照 ]
                [ JIN001-dack-3 ]      類型[ REPL日志讀取器 ]
         上面藍(lán)色字的名稱會(huì)根據(jù)發(fā)布服務(wù)器名,發(fā)布名及第幾次發(fā)布而使用不同的編號(hào)
REPL快照作業(yè)是SQL Server復(fù)制的前提條件,它會(huì)先把發(fā)布的表結(jié)構(gòu),數(shù)據(jù),索引,約束等生成到發(fā)布服務(wù)器的OS目錄下文件
    (當(dāng)有訂閱的時(shí)候才會(huì)生成, 當(dāng)訂閱請(qǐng)求初始化或者按照某個(gè)時(shí)間表調(diào)度生成)
REPL日志讀取器在事務(wù)復(fù)制的時(shí)候是一直處于運(yùn)行狀態(tài)。(在合并復(fù)制的時(shí)候可以根據(jù)調(diào)度的時(shí)間表來(lái)運(yùn)行)
      建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制訂閱的過(guò)程: 
     [復(fù)制] -> [訂閱] -> 右鍵選擇 -> [新建請(qǐng)求訂閱]
     -> [下一步] -> [查找發(fā)布] -> [查看已注冊(cè)服務(wù)器所做的發(fā)布]
     -> [下一步] -> [選擇發(fā)布] -> [選中已經(jīng)建立發(fā)布服務(wù)器上的數(shù)據(jù)庫(kù)發(fā)布名]
同步兩個(gè)Sql server (三)
-> [下一步] -> [指定同步代理程序登錄](méi) -> [當(dāng)代理程序連接到代理服務(wù)器時(shí):使用SQL Server身份驗(yàn)證](輸入發(fā)布服務(wù)器上distributor_admin用戶名和密碼)     
                                              
     -> [下一步] -> [選擇目的數(shù)據(jù)庫(kù)] -> [選擇在其中創(chuàng)建訂閱的數(shù)據(jù)庫(kù)名]/[也可以新建一個(gè)庫(kù)名]  
     -> [下一步] -> [允許匿名訂閱] -> [是,生成匿名訂閱]     
     -> [下一步] -> [初始化訂閱] -> [是,初始化架構(gòu)和數(shù)據(jù)]     
     -> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]
    (訂閱服務(wù)器要能訪問(wèn)發(fā)布服務(wù)器的REPLDATA文件夾,如果有問(wèn)題,可以手工設(shè)置網(wǎng)絡(luò)共享及共享權(quán)限)     
     -> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]     
     -> [下一步] -> [設(shè)置分發(fā)代理程序調(diào)度] -> [使用下列調(diào)度] -> [更改] -> [例如每五分鐘調(diào)度一次]     
     -> [下一步] -> [啟動(dòng)要求的服務(wù)] -> [該訂閱要求在發(fā)布服務(wù)器上運(yùn)行SQLServerAgent服務(wù)]     
     -> [下一步] -> [完成] -> [確定]     
    成功建立了訂閱后,訂閱服務(wù)器上新增加了一個(gè)類別是[REPL-分發(fā)]作業(yè)(合并復(fù)制的時(shí)候類別是[REPL-合并])
    它會(huì)按照我們給的時(shí)間調(diào)度表運(yùn)行數(shù)據(jù)庫(kù)同步復(fù)制的作業(yè)
   
    三、SQL Server復(fù)制配置好后, 可能出現(xiàn)異常情況的實(shí)驗(yàn)日志:
    1.發(fā)布服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制沒(méi)有多大影響
        中斷期間,分發(fā)和訂閱都接收到?jīng)]有復(fù)制的事務(wù)信息
    2.分發(fā)服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制有一些影響
        中斷期間,發(fā)布服務(wù)器的事務(wù)排隊(duì)堆積起來(lái)(如果設(shè)置了較長(zhǎng)時(shí)間才刪除過(guò)期訂閱的選項(xiàng), 繁忙發(fā)布數(shù)據(jù)庫(kù)的事務(wù)日志可能會(huì)較快速膨脹),
訂閱服務(wù)器會(huì)因?yàn)樵L問(wèn)不到發(fā)布服務(wù)器,反復(fù)重試
            我們可以設(shè)置重試次數(shù)和重試的時(shí)間間隔(最大的重試次數(shù)是9999, 如果每分鐘重試一次,可以支持約6.9天不出錯(cuò))
        分發(fā)服務(wù)器sql server服務(wù)啟動(dòng),網(wǎng)絡(luò)接通以后,發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上:
        會(huì)需要一個(gè)比較長(zhǎng)的時(shí)間(實(shí)際上是生成所有事務(wù)的insert,update,delete語(yǔ)句,在訂閱服務(wù)器上去執(zhí)行)
        我們?cè)谄胀ǖ腜C機(jī)上實(shí)驗(yàn)的58個(gè)事務(wù)100228個(gè)命令執(zhí)行花了7分28秒.
    3.訂閱服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制影響比較大,可能需要重新初試化
        我們實(shí)驗(yàn)環(huán)境(訂閱服務(wù)器)從18:46分意外停機(jī)以, 第二天8:40分重啟動(dòng)后,
            已經(jīng)設(shè)好的復(fù)制在8:40分以后又開(kāi)始正常運(yùn)行了, 發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上
            但復(fù)制管理器里出現(xiàn)快照的錯(cuò)誤提示, 快照可能需要重新初試化,復(fù)制可能需要重新啟動(dòng).
            (我們實(shí)驗(yàn)環(huán)境的機(jī)器并沒(méi)有進(jìn)行快照初試化,復(fù)制仍然是成功運(yùn)行的)
    四、刪除已經(jīng)建好的發(fā)布和定閱可以直接用delete刪除按鈕
    我們最好總是按先刪定閱,再刪發(fā)布,最后禁用發(fā)布的順序來(lái)操作。
    如果要徹底刪去SQL Server上面的復(fù)制設(shè)置, 可以這樣操作:
    [復(fù)制] -> 右鍵選擇 [禁用發(fā)布] -> [歡迎使用禁用發(fā)布和分發(fā)向?qū)
     -> [下一步] -> [禁用發(fā)布] -> [要在"@servername"上禁用發(fā)布]
     -> [下一步] -> [完成禁用發(fā)布和分發(fā)向?qū) -> [完成]
  我們也可以用T-SQL命令來(lái)完成復(fù)制中發(fā)布及訂閱的創(chuàng)建和刪除, 選中已經(jīng)設(shè)好的發(fā)布和訂閱, 按屬標(biāo)右鍵
  可以[生成SQL腳本]。(這里就不詳細(xì)講了, 后面推薦的網(wǎng)站內(nèi)有比較詳細(xì)的內(nèi)容)
  當(dāng)你試圖刪除或者變更一個(gè)table時(shí),出現(xiàn)以下錯(cuò)誤
  Server: Msg 3724, Level 16, State 2, Line 1
  Cannot drop the table 'object_name' because it is being used for replication.
比較典型的情況是該table曾經(jīng)用于復(fù)制,但是后來(lái)又刪除了復(fù)制
  處理辦法:
   select * from sysobjects where replinfo >'0'
   sp_configure 'allow updates', 1
   go
   reconfigure with override
   go
   begin transaction
   update sysobjects set replinfo = '0' where replinfo >'0'
   commit transaction
   go
   rollback transaction
   go
   sp_configure 'allow updates', 0
   go
   reconfigure with override
   go
Sql server雙機(jī)數(shù)據(jù)庫(kù)同步實(shí)驗(yàn)步驟
第一步測(cè)試網(wǎng)絡(luò)連接
?1.實(shí)驗(yàn)環(huán)境(因人而異)
  服務(wù)器:
  機(jī)器名稱:CHENPENG
  操作系統(tǒng):Windows xp-sp2
  數(shù)據(jù)庫(kù)版本:SQL 2000 Server 企業(yè)版
  客戶端
  機(jī)器名稱:PHOENIX
  操作系統(tǒng):Windows XP-sp2
  數(shù)據(jù)庫(kù)版本:SQL 2000 Server企業(yè)版
(注:實(shí)驗(yàn)中的兩機(jī)在一個(gè)局域網(wǎng)中!)
2.測(cè)試網(wǎng)絡(luò)
2.1 將SQL 2000升級(jí)為SP4(sp3以上即可)
2.2 測(cè)試步驟:
2.2.1關(guān)閉雙方防火墻
2.2.2在命令提示符中運(yùn)行命令netstat -a -n,在結(jié)果列表里檢查是否有類似 tcp 0.0.0.0 1433 listening 的項(xiàng)。
2.2.3運(yùn)行命令 telnet 用戶名(或IP) 1433 測(cè)試對(duì)方端口是否暢通
第二步連接客戶端
1.建用戶帳號(hào)
  在服務(wù)器端建立域用戶帳號(hào)(名稱為客戶端機(jī)器名)
  ?? 右擊我的電腦->管理->本地用戶和組->用戶->右擊選“新用戶”
這里新建的用戶名為:PHOENIX(應(yīng)為客房端機(jī)器名) 密碼:a(這里要設(shè)個(gè)密碼,若為空可能連不上)
2.重新啟動(dòng)服務(wù)器MSSQLServer
  我的電腦->控制面版->管理工具->服務(wù)->MSSQLServer 服務(wù)->右擊,“停止”
  在登錄屬性頁(yè)中更改為:域用戶帳號(hào)PHOENIX
用戶 ./ phoenix
密碼:a
->再啟動(dòng)服務(wù)

3.注冊(cè)客戶端
SQL企業(yè)管理器->SQL Server組->右鍵->新建SQL注冊(cè)->下一步->可用的服務(wù)器中選”P(pán)HOENIX”添加->下一步->管理員給我分配的……->下一步->登錄名:sa;密碼:空->下一步….下一步->完成
4.安裝分發(fā)服務(wù)器
4.1配置分發(fā)服務(wù)器
工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->下一步 (所有的均采用默認(rèn)配? 置)……->完成
?
  4.2配置發(fā)布服務(wù)器
4.2.1工具->復(fù)制->創(chuàng)建和管理發(fā)布->選擇要發(fā)布的數(shù)據(jù)庫(kù)(pubs)->創(chuàng)建發(fā)布  ->下一步(pubs) ->下一步->合并發(fā)布->下一步->選擇要發(fā)布的內(nèi)容(要發(fā)布的表,存儲(chǔ)過(guò)程等)->下一步(所有的均采用默認(rèn)配置)……>完成
4.2.2成功后會(huì)返回剛才的窗口:選中剛才發(fā)布的名稱,點(diǎn)”強(qiáng)制新訂閱” ->下一步->選”P(pán)HOENIX”,下一步->下一步->選"連續(xù)地...",下一步->下一步....->完成
至此,全部的操作步驟就完成了!可以在兩機(jī)之間同步選定的表等。
在SQL Server 2000里設(shè)置和使用數(shù)據(jù)庫(kù)復(fù)制之前,應(yīng)先檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器下面幾點(diǎn)是否滿足:
    1、MSSQLserver和Sqlserveragent服務(wù)是否是以域用戶身份啟動(dòng)并運(yùn)行的(./administrator用戶也是可以的)
        如果登錄用的是本地系統(tǒng)帳戶local,將不具備網(wǎng)絡(luò)功能,會(huì)產(chǎn)生以下錯(cuò)誤:
        進(jìn)程未能連接到Distributor '@Server name'
      (如果您的服務(wù)器已經(jīng)用了SQL Server全文檢索服務(wù), 請(qǐng)不要修改MSSQLserver和Sqlserveragent服務(wù)的local啟動(dòng)。
       會(huì)照成全文檢索服務(wù)不能用。請(qǐng)換另外一臺(tái)機(jī)器來(lái)做SQL Server 2000里復(fù)制中的分發(fā)服務(wù)器。)   
      修改服務(wù)啟動(dòng)的登錄用戶,需要重新啟動(dòng)MSSQLserver和Sqlserveragent服務(wù)才能生效。   
    2、檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器是否改過(guò)名稱(需要srvid=0的本地機(jī)器上srvname和datasource一樣)
       在查詢分析器里執(zhí)行:
         use master
         select srvid,srvname,datasource from sysservers   
        
       如果沒(méi)有srvid=0或者srvid=0(也就是本機(jī)器)但srvname和datasource不一樣, 需要按如下方法修改:
        
         USE master
        GO
        -- 設(shè)置兩個(gè)變量
        DECLARE @serverproperty_servername  varchar(100),
                @servername    varchar(100)
        -- 取得Windows NT 服務(wù)器和與指定的 SQL Server 實(shí)例關(guān)聯(lián)的實(shí)例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 返回運(yùn)行 Microsoft SQL Server 的本地服務(wù)器名稱
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 顯示獲取的這兩個(gè)參數(shù)
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因?yàn)槟愀倪^(guò)計(jì)算機(jī)名字),再運(yùn)行下面的
        --刪除錯(cuò)誤的服務(wù)器名
        EXEC sp_dropserver @server=@servername
        --添加正確的服務(wù)器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
       修改這項(xiàng)參數(shù),需要重新啟動(dòng)MSSQLserver和Sqlserveragent服務(wù)才能生效。   
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)18482、18483錯(cuò)誤了。
    3、檢查SQL Server企業(yè)管理器里面相關(guān)的幾臺(tái)SQL Server注冊(cè)名是否和上面第二點(diǎn)里介紹的srvname一樣
        不能用IP地址的注冊(cè)名。
      (我們可以刪掉IP地址的注冊(cè),新建以SQL Server管理員級(jí)別的用戶注冊(cè)的服務(wù)器名)
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)14010、20084、18456、18482、18483錯(cuò)誤了。   
    4、檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器網(wǎng)絡(luò)是否能夠正常訪問(wèn)
        如果ping主機(jī)IP地址可以,但ping主機(jī)名不通的時(shí)候,需要在   
            winnt/system32/drivers/etc/hosts   (WIN2000)
            windows/system32/drivers/etc/hosts (WIN2003)
               文件里寫(xiě)入數(shù)據(jù)庫(kù)服務(wù)器IP地址和主機(jī)名的對(duì)應(yīng)關(guān)系。
           例如:   
           127.0.0.1       localhost
           192.168.0.35    oracledb    oracledb
           192.168.0.65    fengyu02    fengyu02
           202.84.10.193   bj_db       bj_db   
               或者在SQL Server客戶端網(wǎng)絡(luò)實(shí)用工具里建立別名,例如:

  


      5、系統(tǒng)需要的擴(kuò)展存儲(chǔ)過(guò)程是否存在(如果不存在,需要恢復(fù)):
         sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
         go             
         sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 

    接下來(lái)就可以用SQL Server企業(yè)管理器里[復(fù)制]-> 右鍵選擇
        ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)]的圖形界面來(lái)配置數(shù)據(jù)庫(kù)復(fù)制了。
    下面是按順序列出配置復(fù)制的步驟:
    一、建立發(fā)布和分發(fā)服務(wù)器
        [歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]
       ->[使"@servername"成為它自己的分發(fā)服務(wù)器,SQL Server將創(chuàng)建分發(fā)數(shù)據(jù)庫(kù)和日志]
       ->[制定快照文件夾]-> [自定義配置] -> [否,使用下列的默認(rèn)配置] -> [完成]
    上述步驟完成后, 會(huì)在當(dāng)前"@servername" SQL Server數(shù)據(jù)庫(kù)里建立了一個(gè)distribion庫(kù)和
            一個(gè)distributor_admin管理員級(jí)別的用戶(我們可以任意修改密碼)
    服務(wù)器上新增加了四個(gè)作業(yè):
                [ 代理程序歷史記錄清除: distribution ]
                [ 分發(fā)清除: distribution ]
                [ 復(fù)制代理程序檢查 ]
                [ 重新初始化存在數(shù)據(jù)驗(yàn)證失敗的訂閱 ]
    SQL Server企業(yè)管理器里多了一個(gè)復(fù)制監(jiān)視器, 當(dāng)前的這臺(tái)機(jī)器就可以發(fā)布、分發(fā)、訂閱了。
    我們?cè)俅卧赟QL Server企業(yè)管理器里[復(fù)制]-> 右鍵選擇
        ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)],可以看到類似下圖:

    我們可以在 [發(fā)布服務(wù)器和分發(fā)服務(wù)器的屬性] 窗口
        -> [發(fā)布服務(wù)器] -> [新增]        -> [確定]
        -> [發(fā)布數(shù)據(jù)庫(kù)] -> [事務(wù)]/[合并] -> [確定]
        -> [訂閱服務(wù)器] -> [新增]        -> [確定]
       把網(wǎng)絡(luò)上的其它SQL Server服務(wù)器添加成為發(fā)布或者訂閱服務(wù)器.
       新增一臺(tái)發(fā)布服務(wù)器的選項(xiàng):

    我這里新建立的JIN001發(fā)布服務(wù)器是用管理員級(jí)別的數(shù)據(jù)庫(kù)用戶test連接的,
    到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框, 默認(rèn)的是選中的,
    在新建的JIN001發(fā)布服務(wù)器上建立和分發(fā)服務(wù)器FENGYU/FENGYU的鏈接的時(shí)需要輸入distributor_admin用戶的密碼
         到發(fā)布服務(wù)器的管理鏈接要輸入密碼的可選框,也可以不選,
         也就是不需要密碼來(lái)建立發(fā)布到分發(fā)服務(wù)器的鏈接(這當(dāng)然欠缺安全,在測(cè)試環(huán)境下可以使用)
       新增一臺(tái)訂閱服務(wù)器的選項(xiàng):

    二、新建立的網(wǎng)絡(luò)上另一臺(tái)發(fā)布服務(wù)器(例如JIN001)選擇分發(fā)服務(wù)器
    [歡迎使用配置發(fā)布和分發(fā)向?qū)->[選擇分發(fā)服務(wù)器]
     -> 使用下列服務(wù)器(選定的服務(wù)器必須已配置為分發(fā)服務(wù)器) -> [選定服務(wù)器](例如FENGYU/FENGYU)
     -> [下一步] -> [輸入分發(fā)服務(wù)器(例如FENGYU/FENGYU)的distributor_admin用戶的密碼兩次]
     -> [下一步] -> [自定義配置] -> [否,使用下列的默認(rèn)配置]
     -> [下一步] -> [完成] -> [確定]
     建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制發(fā)布的過(guò)程:
     [復(fù)制] -> [發(fā)布內(nèi)容] -> 右鍵選擇 -> [新建發(fā)布]
     -> [下一步] -> [選擇發(fā)布數(shù)據(jù)庫(kù)] -> [選中一個(gè)待發(fā)布的數(shù)據(jù)庫(kù)]
     -> [下一步] -> [選擇發(fā)布類型] -> [事務(wù)發(fā)布]/[合并發(fā)布]
     -> [下一步] -> [指定訂閱服務(wù)器的類型] -> [運(yùn)行SQL Server 2000的服務(wù)器]
     -> [下一步] -> [指定項(xiàng)目] -> [在事務(wù)發(fā)布中只可以發(fā)布帶主鍵的表] -> [選中一個(gè)有主鍵的待發(fā)布的表]
         ->[在合并發(fā)布中會(huì)給表增加唯一性索引和 ROWGUIDCOL 屬性的唯一標(biāo)識(shí)符字段[rowguid],默認(rèn)值是newid()]
               (添加新列將: 導(dǎo)致不帶列列表的 INSERT 語(yǔ)句失敗,增加表的大小,增加生成第一個(gè)快照所要求的時(shí)間)
         ->[選中一個(gè)待發(fā)布的表]
     -> [下一步] -> [選擇發(fā)布名稱和描述] ->
     -> [下一步] -> [自定義發(fā)布的屬性] -> [否,根據(jù)指定方式創(chuàng)建發(fā)布]
     -> [下一步] -> [完成] -> [關(guān)閉]
     發(fā)布屬性里有很多有用的選項(xiàng):設(shè)定訂閱到期(例如24小時(shí))

     設(shè)定發(fā)布表的項(xiàng)目屬性:
     常規(guī)窗口可以指定發(fā)布目的表的名稱,可以跟原來(lái)的表名稱不一樣。
     下圖是命令和快照窗口的欄目

    ( SQL Server 數(shù)據(jù)庫(kù)復(fù)制技術(shù)實(shí)際上是用insert,update,delete操作在訂閱服務(wù)器上重做發(fā)布服務(wù)器上的事務(wù)操作
    
      看文檔資料需要把發(fā)布數(shù)據(jù)庫(kù)設(shè)成完全恢復(fù)模式,事務(wù)才不會(huì)丟失
      但我自己在測(cè)試中發(fā)現(xiàn)發(fā)布數(shù)據(jù)庫(kù)是簡(jiǎn)單恢復(fù)模式下,每10秒生成一些大事務(wù),10分鐘后再收縮數(shù)據(jù)庫(kù)日志,
          這期間發(fā)布和訂閱服務(wù)器上的作業(yè)都暫停,暫停恢復(fù)后并沒(méi)有丟失任何事務(wù)更改 )
     發(fā)布表可以做數(shù)據(jù)篩選,例如只選擇表里面的部分列:

    例如只選擇表里某些符合條件的記錄, 我們可以手工編寫(xiě)篩選的SQL語(yǔ)句:

    發(fā)布表的訂閱選項(xiàng),并可以建立強(qiáng)制訂閱:

    成功建立了發(fā)布以后,發(fā)布服務(wù)器上新增加了一個(gè)作業(yè): [ 失效訂閱清除 ]
    分發(fā)服務(wù)器上新增加了兩個(gè)作業(yè):
                [ JIN001-dack-dack-5 ] 類型[ REPL快照 ]
                [ JIN001-dack-3 ]      類型[ REPL日志讀取器 ]
         上面藍(lán)色字的名稱會(huì)根據(jù)發(fā)布服務(wù)器名,發(fā)布名及第幾次發(fā)布而使用不同的編號(hào)
REPL快照作業(yè)是SQL Server復(fù)制的前提條件,它會(huì)先把發(fā)布的表結(jié)構(gòu),數(shù)據(jù),索引,約束等生成到發(fā)布服務(wù)器的OS目錄下文件
    (當(dāng)有訂閱的時(shí)候才會(huì)生成, 當(dāng)訂閱請(qǐng)求初始化或者按照某個(gè)時(shí)間表調(diào)度生成)
   

REPL日志讀取器在事務(wù)復(fù)制的時(shí)候是一直處于運(yùn)行狀態(tài)。(在合并復(fù)制的時(shí)候可以根據(jù)調(diào)度的時(shí)間表來(lái)運(yùn)行)
      建立一個(gè)數(shù)據(jù)庫(kù)復(fù)制訂閱的過(guò)程: 
     [復(fù)制] -> [訂閱] -> 右鍵選擇 -> [新建請(qǐng)求訂閱]
     -> [下一步] -> [查找發(fā)布] -> [查看已注冊(cè)服務(wù)器所做的發(fā)布]
     -> [下一步] -> [選擇發(fā)布] -> [選中已經(jīng)建立發(fā)布服務(wù)器上的數(shù)據(jù)庫(kù)發(fā)布名]     
     -> [下一步] -> [指定同步代理程序登錄](méi) -> [當(dāng)代理程序連接到代理服務(wù)器時(shí):使用SQL Server身份驗(yàn)證]
                                               (輸入發(fā)布服務(wù)器上distributor_admin用戶名和密碼)     
     -> [下一步] -> [選擇目的數(shù)據(jù)庫(kù)] -> [選擇在其中創(chuàng)建訂閱的數(shù)據(jù)庫(kù)名]/[也可以新建一個(gè)庫(kù)名]  
     -> [下一步] -> [允許匿名訂閱] -> [是,生成匿名訂閱]     
     -> [下一步] -> [初始化訂閱] -> [是,初始化架構(gòu)和數(shù)據(jù)]     
     -> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]
                    (訂閱服務(wù)器要能訪問(wèn)發(fā)布服務(wù)器的REPLDATA文件夾,如果有問(wèn)題,可以手工設(shè)置網(wǎng)絡(luò)共享及共享權(quán)限)     
     -> [下一步] -> [快照傳送] -> [使用該發(fā)布的默認(rèn)快照文件夾中的快照文件]     
     -> [下一步] -> [設(shè)置分發(fā)代理程序調(diào)度] -> [使用下列調(diào)度] -> [更改] -> [例如每五分鐘調(diào)度一次]     
     -> [下一步] -> [啟動(dòng)要求的服務(wù)] -> [該訂閱要求在發(fā)布服務(wù)器上運(yùn)行SQLServerAgent服務(wù)]     
     -> [下一步] -> [完成] -> [確定]     
    成功建立了訂閱后,訂閱服務(wù)器上新增加了一個(gè)類別是[REPL-分發(fā)]作業(yè)(合并復(fù)制的時(shí)候類別是[REPL-合并])
    它會(huì)按照我們給的時(shí)間調(diào)度表運(yùn)行數(shù)據(jù)庫(kù)同步復(fù)制的作業(yè)
    查看它的歷史記錄運(yùn)行情況,例圖:

    在分發(fā)服務(wù)器的[復(fù)制監(jiān)視器]->[發(fā)布服務(wù)器]->[發(fā)布名稱]->[日志讀取器]->右鍵選擇->[代理程序歷史記錄](méi), 例圖:
   

    三、SQL Server復(fù)制配置好后, 可能出現(xiàn)異常情況的實(shí)驗(yàn)日志:
    1.發(fā)布服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制沒(méi)有多大影響
        中斷期間,分發(fā)和訂閱都接收到?jīng)]有復(fù)制的事務(wù)信息
    2.分發(fā)服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制有一些影響
        中斷期間,發(fā)布服務(wù)器的事務(wù)排隊(duì)堆積起來(lái)
           (如果設(shè)置了較長(zhǎng)時(shí)間才刪除過(guò)期訂閱的選項(xiàng), 繁忙發(fā)布數(shù)據(jù)庫(kù)的事務(wù)日志可能會(huì)較快速膨脹),
        訂閱服務(wù)器會(huì)因?yàn)樵L問(wèn)不到發(fā)布服務(wù)器,反復(fù)重試
            我們可以設(shè)置重試次數(shù)和重試的時(shí)間間隔(最大的重試次數(shù)是9999, 如果每分鐘重試一次,可以支持約6.9天不出錯(cuò))
        分發(fā)服務(wù)器sql server服務(wù)啟動(dòng),網(wǎng)絡(luò)接通以后,發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上:
        會(huì)需要一個(gè)比較長(zhǎng)的時(shí)間(實(shí)際上是生成所有事務(wù)的insert,update,delete語(yǔ)句,在訂閱服務(wù)器上去執(zhí)行)
        我們?cè)谄胀ǖ腜C機(jī)上實(shí)驗(yàn)的58個(gè)事務(wù)100228個(gè)命令執(zhí)行花了7分28秒.
    3.訂閱服務(wù)器斷網(wǎng),sql server服務(wù)關(guān)閉,重啟動(dòng),關(guān)機(jī)的時(shí)候,對(duì)已經(jīng)設(shè)置好的復(fù)制影響比較大,可能需要重新初試化
        我們實(shí)驗(yàn)環(huán)境(訂閱服務(wù)器)從18:46分意外停機(jī)以, 第二天8:40分重啟動(dòng)后,
            已經(jīng)設(shè)好的復(fù)制在8:40分以后又開(kāi)始正常運(yùn)行了, 發(fā)布服務(wù)器上的堆積作業(yè)將按時(shí)間順序作用到訂閱機(jī)器上
            但復(fù)制管理器里出現(xiàn)快照的錯(cuò)誤提示, 快照可能需要重新初試化,復(fù)制可能需要重新啟動(dòng).
            (我們實(shí)驗(yàn)環(huán)境的機(jī)器并沒(méi)有進(jìn)行快照初試化,復(fù)制仍然是成功運(yùn)行的)
    四、刪除已經(jīng)建好的發(fā)布和定閱可以直接用delete刪除按鈕
    我們最好總是按先刪定閱,再刪發(fā)布,最后禁用發(fā)布的順序來(lái)操作。
    如果要徹底刪去SQL Server上面的復(fù)制設(shè)置, 可以這樣操作:
    [復(fù)制] -> 右鍵選擇 [禁用發(fā)布] -> [歡迎使用禁用發(fā)布和分發(fā)向?qū)
     -> [下一步] -> [禁用發(fā)布] -> [要在"@servername"上禁用發(fā)布]
     -> [下一步] -> [完成禁用發(fā)布和分發(fā)向?qū) -> [完成]
   我們也可以用T-SQL命令來(lái)完成復(fù)制中發(fā)布及訂閱的創(chuàng)建和刪除, 選中已經(jīng)設(shè)好的發(fā)布和訂閱, 按屬標(biāo)右鍵
   可以[生成SQL腳本]。(這里就不詳細(xì)講了, 后面推薦的網(wǎng)站內(nèi)有比較詳細(xì)的內(nèi)容)
  
   當(dāng)你試圖刪除或者變更一個(gè)table時(shí),出現(xiàn)以下錯(cuò)誤
   Server: Msg 3724, Level 16, State 2, Line 1
   Cannot drop the table 'object_name' because it is being used for replication.
   比較典型的情況是該table曾經(jīng)用于復(fù)制,但是后來(lái)又刪除了復(fù)制
   處理辦法:
   select * from sysobjects where replinfo >'0'

   sp_configure 'allow updates', 1
   go
   reconfigure with override
   go
   begin transaction
   update sysobjects set replinfo = '0' where replinfo >'0'
   commit transaction
   go
   rollback transaction
   go
   sp_configure 'allow updates', 0
   go
  經(jīng)過(guò)兩天的查找和實(shí)踐,終于對(duì)-如何同步兩個(gè)sql server的數(shù)據(jù)有了一個(gè)比較粗略的了解。
  不是使用寫(xiě)sql 的方式來(lái)實(shí)現(xiàn),而是采用-強(qiáng)制訂閱實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步操作,大量和批量的數(shù)據(jù)可以用數(shù)據(jù)庫(kù)的同步機(jī)制處理。
  
說(shuō)明:
  為方便操作,所有操作均在發(fā)布服務(wù)器(分發(fā)服務(wù)器)上操作,并使用推模式,在客戶機(jī)器使用強(qiáng)制訂閱方式。

測(cè)試通過(guò):
==1:環(huán)境
服務(wù)器環(huán)境:
機(jī)器名稱: serverDB
操作系統(tǒng):Windows 2000 Server
數(shù)據(jù)庫(kù)版本:SQL 2000 Server 企業(yè)版
客戶端
機(jī)器名稱:Joy
操作系統(tǒng):Windows 2000 Server
數(shù)據(jù)庫(kù)版本:SQL 2000 Server 企業(yè)版

==2:建用戶帳號(hào)
在服務(wù)器端建立域用戶帳號(hào)
我的電腦管理->本地用戶和組->用戶->建立
UserName:Joy
UserPwd:Joy

==3:重新啟動(dòng)服務(wù)器MSSQLServer
我的電腦->控制面版->管理工具->服務(wù)->MSSQLServer 服務(wù)
(更改為:域用戶帳號(hào),我們新建的joy用戶 ./joy,密碼:joy)
==4:安裝分發(fā)服務(wù)器
A:配置分發(fā)服務(wù)器
工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->下一步->下一步(所有的均采用默認(rèn)配置)
B:配置發(fā)布服務(wù)器
工具->復(fù)制->創(chuàng)建和管理發(fā)布->選擇要發(fā)布的數(shù)據(jù)庫(kù)(pubs)->下一步->快照發(fā)布->下一步->
選擇要發(fā)布的內(nèi)容->下一步->下一步->下一步->完成
C:強(qiáng)制配置訂閱服務(wù)器(推模式,拉模式與此雷同)
工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->訂閱服務(wù)器->新建->SQL Server數(shù)據(jù)庫(kù)->輸入客戶端服務(wù)器名稱(joy)->使用SQL Server 身份驗(yàn)證(sa,sa)->確定->應(yīng)用->確定
D:初始化訂閱
復(fù)制監(jiān)視器->發(fā)布服務(wù)器(serverDB)->雙擊訂閱->強(qiáng)制新建->下一步->選擇啟用的訂閱服務(wù)器->joy->
下一步->下一步->下一步->下一步->完成
==6:測(cè)試數(shù)據(jù)
--在服務(wù)器執(zhí)行:
選擇表stores,手動(dòng)或者通過(guò)sql語(yǔ)句修改其中的數(shù)據(jù),insert ,update ,delete均可。

復(fù)制監(jiān)視器->發(fā)布服務(wù)器(serverDB)->->快照->啟動(dòng)代理程序->ZLP:SZ(強(qiáng)制)->啟動(dòng)同步處理
去查看同步的 joy:stores 是否插入了一條新的記錄
測(cè)試完畢,通過(guò)。
==7修改數(shù)據(jù)庫(kù)的同步時(shí)間,一般選擇夜晚執(zhí)行數(shù)據(jù)庫(kù)同步處理
(具體操作略) :D
〔注意說(shuō)明〕
服務(wù)器一端不能以(local)進(jìn)行數(shù)據(jù)的發(fā)布與分發(fā),需要先刪除注冊(cè),然后新建注冊(cè)本地計(jì)算機(jī)名稱
卸載方式:工具->復(fù)制->禁止發(fā)布->是在"ZehuaDb"上靜止發(fā)布,卸載所有的數(shù)據(jù)庫(kù)同步配置服務(wù)器
注意:發(fā)布服務(wù)器、分發(fā)服務(wù)器中的SQLServerAgent服務(wù)必須啟動(dòng)
      采用推模式: "D:/Microsoft SQL Server/MSSQL/REPLDATA/unc" 目錄文件可以不設(shè)置共享
      拉模式:則需要共享~!
少量數(shù)據(jù)庫(kù)同步可以采用觸發(fā)器實(shí)現(xiàn),同步單表即可。
===========================================
配置過(guò)程中可能出現(xiàn)的問(wèn)題
在SQL Server 2000里設(shè)置和使用數(shù)據(jù)庫(kù)復(fù)制之前,應(yīng)先檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器下面幾點(diǎn)是否滿足:
    1、MSSQLserver和Sqlserveragent服務(wù)是否是以域用戶身份啟動(dòng)并運(yùn)行的(./administrator用戶也是可以的)
        如果登錄用的是本地系統(tǒng)帳戶local,將不具備網(wǎng)絡(luò)功能,會(huì)產(chǎn)生以下錯(cuò)誤:
        進(jìn)程未能連接到Distributor '@Server name'
      (如果您的服務(wù)器已經(jīng)用了SQL Server全文檢索服務(wù), 請(qǐng)不要修改MSSQLserver和Sqlserveragent服務(wù)的local啟動(dòng)。
       會(huì)照成全文檢索服務(wù)不能用。請(qǐng)換另外一臺(tái)機(jī)器來(lái)做SQL Server 2000里復(fù)制中的分發(fā)服務(wù)器。)   
      修改服務(wù)啟動(dòng)的登錄用戶,需要重新啟動(dòng)MSSQLserver和Sqlserveragent服務(wù)才能生效。   
    2、檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器是否改過(guò)名稱(需要srvid=0的本地機(jī)器上srvname和datasource一樣)
       在查詢分析器里執(zhí)行:
         use master
         select srvid,srvname,datasource from sysservers   
        
       如果沒(méi)有srvid=0或者srvid=0(也就是本機(jī)器)但srvname和datasource不一樣, 需要按如下方法修改:
  USE master
        GO
        -- 設(shè)置兩個(gè)變量
        DECLARE @serverproperty_servername  varchar(100),
                @servername    varchar(100)
        -- 取得Windows NT 服務(wù)器和與指定的 SQL Server 實(shí)例關(guān)聯(lián)的實(shí)例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 返回運(yùn)行 Microsoft SQL Server 的本地服務(wù)器名稱
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 顯示獲取的這兩個(gè)參數(shù)
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因?yàn)槟愀倪^(guò)計(jì)算機(jī)名字),再運(yùn)行下面的
        --刪除錯(cuò)誤的服務(wù)器名
        EXEC sp_dropserver @server=@servername
        --添加正確的服務(wù)器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
修改這項(xiàng)參數(shù),需要重新啟動(dòng)MSSQLserver和Sqlserveragent服務(wù)才能生效。   
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)18482、18483錯(cuò)誤了。
3、檢查SQL Server企業(yè)管理器里面相關(guān)的幾臺(tái)SQL Server注冊(cè)名是否和上面第二點(diǎn)里介紹的srvname一樣
        不能用IP地址的注冊(cè)名。
      (我們可以刪掉IP地址的注冊(cè),新建以SQL Server管理員級(jí)別的用戶注冊(cè)的服務(wù)器名)
       這樣一來(lái)就不會(huì)在創(chuàng)建復(fù)制的過(guò)程中出現(xiàn)14010、20084、18456、18482、18483錯(cuò)誤了。   
    4、檢查相關(guān)的幾臺(tái)SQL Server服務(wù)器網(wǎng)絡(luò)是否能夠正常訪問(wèn)
        如果ping主機(jī)IP地址可以,但ping主機(jī)名不通的時(shí)候,需要在   
            winnt/system32/drivers/etc/hosts   (WIN2000)
            windows/system32/drivers/etc/hosts (WIN2003)
               文件里寫(xiě)入數(shù)據(jù)庫(kù)服務(wù)器IP地址和主機(jī)名的對(duì)應(yīng)關(guān)系。
 例如:   
              
           127.0.0.1       localhost
           192.168.0.35    oracledb    oracledb
           192.168.0.65    fengyu02    fengyu02
           202.84.10.193   bj_db       bj_db    


    或者在SQL Server客戶端網(wǎng)絡(luò)實(shí)用工具里建立別名,例如:
     5、系統(tǒng)需要的擴(kuò)展存儲(chǔ)過(guò)程是否存在(如果不存在,需要恢復(fù)):
         sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
         go             
         sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 
     接下來(lái)就可以用SQL Server企業(yè)管理器里[復(fù)制]-> 右鍵選擇
        ->[配置發(fā)布、訂閱服務(wù)器和分發(fā)]的圖形界面來(lái)配置數(shù)據(jù)庫(kù)復(fù)制了。
 

sp_addextendedproc 'xp_regenumvalues',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletevalue',@dllname ='xpstar.dll'
         go
         sp_addextendedproc 'xp_regdeletekey',@dllname ='xpstar.dll'
         go             
         sp_addextendedproc xp_cmdshell ,@dllname ='xplog70.dll' 


go
--創(chuàng)建作業(yè),定時(shí)執(zhí)行數(shù)據(jù)同步的存儲(chǔ)過(guò)程
if exists(SELECT 1 from msdb..sysjobs where name=’數(shù)據(jù)處理’)
EXECUTE msdb.dbo.sp_delete_job @job_name=’數(shù)據(jù)處理’
exec msdb..sp_add_job @job_name=’數(shù)據(jù)處理’
--創(chuàng)建作業(yè)步驟
declare @sql varchar(800),@dbname varchar(250)
select @sql=’exec p_synchro’ --數(shù)據(jù)處理的命令
,@dbname=db_name() --執(zhí)行數(shù)據(jù)處理的數(shù)據(jù)庫(kù)名
exec msdb..sp_add_jobstep @job_name=’數(shù)據(jù)處理’,
@step_name = ’數(shù)據(jù)同步’,
@subsystem = ’TSQL’,
@database_name=@dbname,
@command = @sql,
@retry_attempts = 5, --重試次數(shù)
@retry_interval = 5 --重試間隔
--創(chuàng)建調(diào)度
EXEC msdb..sp_add_jobschedule @job_name = ’數(shù)據(jù)處理’,
@name = ’時(shí)間安排’,
@freq_type = 4, --每天
@freq_interval = 1, --每天執(zhí)行一次
@active_start_time = 00000 --0點(diǎn)執(zhí)行
go
 
同步兩個(gè)Sql server (一)
如何同步兩個(gè)SQLServer數(shù)據(jù)庫(kù)的內(nèi)容?
程序代碼可以有版本管理CVS進(jìn)行同步管理,可是數(shù)據(jù)庫(kù)同步就非常麻煩,只能自己改了一個(gè)后再去改另一個(gè),如果忘記了更改另一個(gè)經(jīng)常造成兩個(gè)數(shù)據(jù)庫(kù)的結(jié)構(gòu)或內(nèi)容上不一致。各位有什么好的方法嗎?
  分發(fā)與復(fù)制
  用強(qiáng)制訂閱實(shí)現(xiàn)數(shù)據(jù)庫(kù)同步操作
  大量和批量的數(shù)據(jù)可以用數(shù)據(jù)庫(kù)的同步機(jī)制處理:
  //
  說(shuō)明:
  為方便操作,所有操作均在發(fā)布服務(wù)器(分發(fā)服務(wù)器)上操作,并使用推模式
  在客戶機(jī)器使用強(qiáng)制訂閱方式。
  有疑問(wèn)聯(lián)系作者:zlp321001@hotmail.com
  測(cè)試通過(guò)
  //
  --1:環(huán)境
  服務(wù)器環(huán)境:
  機(jī)器名稱: ZehuaDb
  操作系統(tǒng):Windows 2000 Server
  數(shù)據(jù)庫(kù)版本:SQL 2000 Server 個(gè)人版
 

客戶端
  機(jī)器名稱:Zlp
  操作系統(tǒng):Windows 2000 Server
  數(shù)據(jù)庫(kù)版本:SQL 2000 Server 個(gè)人版
  --2:建用戶帳號(hào)
  在服務(wù)器端建立域用戶帳號(hào)
  我的電腦管理->本地用戶和組->用戶->建立
  UserName:zlp
  UserPwd:zlp
  --3:重新啟動(dòng)服務(wù)器MSSQLServer
  我的電腦->控制面版->管理工具->服務(wù)->MSSQLServer 服務(wù)
  (更改為:域用戶帳號(hào),我們新建的zlp用戶 ./zlp,密碼:zlp)
  --4:安裝分發(fā)服務(wù)器
  A:配置分發(fā)服務(wù)器
  工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->下一步->下一步(所有的均采用默認(rèn)配置)
  B:配置發(fā)布服務(wù)器
  工具->復(fù)制->創(chuàng)建和管理發(fā)布->選擇要發(fā)布的數(shù)據(jù)庫(kù)(SZ)->下一步->快照發(fā)布->下一步->
  選擇要發(fā)布的內(nèi)容->下一步->下一步->下一步->完成
  C:強(qiáng)制配置訂閱服務(wù)器(推模式,拉模式與此雷同)
工具->復(fù)制->配置發(fā)布、訂閱服務(wù)器和分發(fā)->訂閱服務(wù)器->新建->SQL     Server數(shù)據(jù)庫(kù)->輸入客戶端服務(wù)器名稱(ZLP)->使用SQL Server 身份驗(yàn)證  (sa,空密碼)->確定->應(yīng)用->確定
  D:初始化訂閱
  復(fù)制監(jiān)視器->發(fā)布服務(wù)器(ZEHUADB)->雙擊訂閱->強(qiáng)制新建->下一步->選擇啟用的訂閱服務(wù)器->ZLP->
  下一步->下一步->下一步->下一步->完成
  --5:測(cè)試配置是否成功
  復(fù)制監(jiān)視器->發(fā)布服務(wù)器(ZEHUADB)->雙擊SZ:SZ->點(diǎn)狀態(tài)->點(diǎn)立即運(yùn)行代理程序
  查看:
復(fù)制監(jiān)視器->發(fā)布服務(wù)器(ZEHUADB)->SZ:SZ->選擇ZLP:SZ(類型強(qiáng)制)->鼠標(biāo)右鍵->啟動(dòng)同步處理
如果沒(méi)有錯(cuò)誤標(biāo)志(紅色叉),恭喜您配置成功
  --6:測(cè)試數(shù)據(jù)
  --在服務(wù)器執(zhí)行:
選擇一個(gè)表,執(zhí)行如下SQL
insert into WQ_NEWSGROUP_S select '測(cè)試成功',5
  復(fù)制監(jiān)視器->發(fā)布服務(wù)器(ZEHUADB)->SZ:SZ->快照->啟動(dòng)代理程序->ZLP:SZ(強(qiáng)制)->啟動(dòng)同步處理
  去查看同步的 WQ_NEWSGROUP_S 是否插入了一條新的記錄
  測(cè)試完畢,通過(guò)。
  --7修改數(shù)據(jù)庫(kù)的同步時(shí)間,一般選擇夜晚執(zhí)行數(shù)據(jù)庫(kù)同步處理
(具體操作略) :D
 USE master
        GO
        -- 設(shè)置兩個(gè)變量
        DECLARE @serverproperty_servername  varchar(100),
                @servername    varchar(100)
        -- 取得Windows NT 服務(wù)器和與指定的 SQL Server 實(shí)例關(guān)聯(lián)的實(shí)例信息
        SELECT @serverproperty_servername = CONVERT(varchar(100), SERVERPROPERTY('ServerName'))
        -- 返回運(yùn)行 Microsoft SQL Server 的本地服務(wù)器名稱
        SELECT @servername = CONVERT(varchar(100), @@SERVERNAME)
        -- 顯示獲取的這兩個(gè)參數(shù)
        select @serverproperty_servername,@servername
        --如果@serverproperty_servername和@servername不同(因?yàn)槟愀倪^(guò)計(jì)算機(jī)名字),再運(yùn)行下面的
        --刪除錯(cuò)誤的服務(wù)器名
        EXEC sp_dropserver @server=@servername
        --添加正確的服務(wù)器名
        EXEC sp_addserver @server=@serverproperty_servername, @local='local'
http://blog.csdn.net/kension/archive/2007/01/30/1497875.aspx


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 甘谷县| 庄河市| 秭归县| 嘉定区| 丹寨县| 乐东| 大厂| 墨江| 双桥区| 项城市| 石门县| 呼伦贝尔市| 凤凰县| 波密县| 简阳市| 运城市| 鄄城县| 唐山市| 张掖市| 铅山县| 康乐县| 南阳市| 乌鲁木齐县| 平潭县| 思茅市| 新乐市| 九台市| 桐柏县| 靖宇县| 闵行区| 横山县| 天水市| 和平区| 柳林县| 岚皋县| 察隅县| 玛沁县| 紫云| 永宁县| 阿瓦提县| 彭泽县|