這兩天需要用sql同步,在網上找了些資料,我自己的做法如下,記錄下來
1.在分發的數據庫上建一個超級管理員帳員
2.在服務裏把sqlagent的啓動設成這個超管用戶來啓動
2.1在硬盤上建一個目錄,超管有這個目錄的寫權限,由於是推模式不用建共享,拉模式得建共享
3.把sql註冊改一下,localhost,.的這樣不行,要建成機器名的,把從庫的數據庫在主庫這注冊一下
4.把被刪除的危險存府過程恢復一下
恢復危險存儲過程
sp_addextendedproc 'xp_regread',@dllname ='xpstar.dll'
go
sp_addextendedproc 'xp_regwrite',@dllname ='xpstar.dll'
go
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'
5.打開數據庫選擇工具-複製-配置
6.在指定的數據庫上,選工具-複製-創建和發佈,選擇相關的表,(快照適合數據量較小,不總變的情況,事務適合變動較我,合併適合兩庫更新同時更新)我選事務模式
7.在複製監視器上新生成的內容上右鍵-建立強制定閱
如果是快照複製會了來兩個項目 分別設置自動時間設置成幾分鐘一次,
如果是事務複製會出來三個項目 把快照設置成幾分鐘一次,日誌和那個默認代理自動啓動
對了在設置複製後在沒有禁用發佈的情況下,絕對不能用其他備分還原主數據庫,會出錯誤,我最後重裝的sql解決的
對發佈後的表進行修改可選擇發佈的薦-選擇項目-未發佈的項目勾上後即可
最後把危險進程刪除
use master
EXEC sp_dropextendedproc 'xp_cmdshell'
EXEC sp_dropextendedproc 'Sp_OACreate'
EXEC sp_dropextendedproc 'Sp_OADestroy'
EXEC sp_dropextendedproc 'Sp_OAGetErrorInfo'
EXEC sp_dropextendedproc 'Sp_OAGetProperty'
EXEC sp_dropextendedproc 'Sp_OAMethod'
EXEC sp_dropextendedproc 'Sp_OASetProperty'
EXEC sp_dropextendedproc 'Sp_OAStop'
EXEC sp_dropextendedproc 'Xp_regaddmultistring'
EXEC sp_dropextendedproc 'Xp_regdeletekey'
EXEC sp_dropextendedproc 'Xp_regdeletevalue'
EXEC sp_dropextendedproc 'Xp_regenumvalues'
EXEC sp_dropextendedproc 'Xp_regread'
EXEC sp_dropextendedproc 'Xp_regremovemultistring'
EXEC sp_dropextendedproc 'Xp_regwrite'
drop procedure sp_makewebtask