■ 唐山市教育局 孟令旸
編者按:筆者在查看單位在線教學(xué)平臺(tái)的數(shù)據(jù)庫時(shí)發(fā)現(xiàn)其數(shù)據(jù)庫系統(tǒng)采用的是SQL Server 2012。鑒于SQL Server 2012 自帶發(fā)布/訂閱功能,通過該功能就可以實(shí)現(xiàn)數(shù)據(jù)庫同步,因此,筆者決定采用發(fā)布/訂閱模式實(shí)現(xiàn)數(shù)據(jù)庫同步。本文將詳細(xì)介紹操作過程。
為了安全起見,筆者沒有直接為在線教學(xué)平臺(tái)的數(shù)據(jù)庫做同步,而是搭建了一個(gè)簡單的實(shí)驗(yàn)環(huán)境:創(chuàng)建兩臺(tái)虛擬機(jī),將兩臺(tái)虛擬機(jī)組成一個(gè)獨(dú)立的局域網(wǎng)。兩臺(tái)虛擬機(jī)上均部署SQL Server 2012 數(shù)據(jù)庫系統(tǒng)。筆者將一臺(tái)虛擬機(jī)用作發(fā)布服務(wù)器,另一臺(tái)虛擬機(jī)用作訂閱服務(wù)器。在發(fā)布服務(wù)器上創(chuàng)建了數(shù)據(jù)庫“student”,該數(shù)據(jù)庫只有一張表“cjb”。這是筆者虛擬出來的學(xué)生成績表,用來完成數(shù)據(jù)實(shí)驗(yàn)。兩臺(tái)虛擬機(jī)主要實(shí)驗(yàn)數(shù)據(jù)如表1 所示。
可能是非域環(huán)境,筆者進(jìn)行的數(shù)據(jù)庫同步實(shí)驗(yàn)并不順利,遇到了很多問題。由于SQL Server 給出的錯(cuò)誤提示并不具體,很難根據(jù)錯(cuò)誤提示找到故障原因。例如,創(chuàng)建同步和訂閱后,在復(fù)制監(jiān)視器中總提示“未初始化的訂閱”,無論做多少次重新初始化操作,仍出現(xiàn)這個(gè)提示。又如,出現(xiàn)“對(duì)路徑C:Program FilesMicrosoft SQL ServerMSSQL 11.MSSQLSERVERMSSQLRepl Dataunc……的訪問被拒絕”錯(cuò)誤,出現(xiàn)錯(cuò)誤的這個(gè)文件路徑是快照文件的存放路徑,于是筆者為快照文件重新指定路徑,仍報(bào)這個(gè)錯(cuò)誤。類似這樣的問題還有很多:“無法讀取文件xxxx.pre”“工作目錄錯(cuò)誤”……。
當(dāng)然,在創(chuàng)建發(fā)布或創(chuàng)建訂閱過程中,也不是所有問題都這樣,有一些問題是可以根據(jù)錯(cuò)誤提示判斷出故障原因的。例如,當(dāng)遇到“SQL Server 無法將SQL Server 代理配置為自動(dòng)啟動(dòng)”錯(cuò)誤時(shí),這個(gè)錯(cuò)誤提示說明沒有啟動(dòng)SQL Server代理服務(wù)。