SQLServer2012釋出與訂閱
簡介
SQL Server中的複製(Replication)是SQL Server高可用性的核心功能之一。
釋出指的是可以釋出的文章的集合,這些文章包括表,儲存過程,檢視和使用者自定義函式
訂閱是相對釋出的一個概念,訂閱定義了訂閱伺服器從哪個分發伺服器接收發布。有兩類訂閱方式,推送訂閱(Push)和請求訂閱(Pull)
釋出型別說明
快照發布: 直接掃描同一時刻的資料庫狀態 。 把所有出版資料中的資料從源資料庫送至目標資料庫,而不僅僅是變化的資料。
合併釋出: 在代理伺服器上進行相關操作,相當於2個數據庫都可以讀寫
快照複製
相當於每次計劃時,將整個資料庫都複製過去,那太耗費時間和空間了。
事務複製
相當於1個讀,1個讀寫
合併複製
預設情況下,合併代理將訂閱伺服器上的更改上載到釋出伺服器,然後將釋出伺服器上的更改下載到訂閱伺服器。
相當於2個數據庫都有作用了
問題及解決
對路徑的訪問拒絕
對路徑“D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\ReplData\unc\WIN-OSN0FQ89IR5_HN-SAFEEXAMCORE_HN-SAFEEXAMCORE\20181226143453\”的訪問被拒絕。
給目錄 ReplData D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\ReplData 新增 everyone 的讀寫許可權
參考: https://blog.csdn.net/qq_33022911/article/details/79604124
SQLServerAgent 錯誤
行作業 WIN-OSN0FQ89IR5-HN-SafeExamCore-HN-SafeExamCore-2 的請求(來自 使用者 WIN-OSN0FQ89IR5\Administrator)被拒絕,因為該作業已應 使用者 WIN-OSN0FQ89IR5\Administrator 的請求正在執行.
已將資料庫上下文更改為 ‘HN-SafeExamCore’。 (Microsoft SQL Server,錯誤: 22022)
原因:正在執行作業,等待。
未執行,“嚴重”狀態下的效能
也可以間隔定時任務時間,等下一次執行時,就不會出現此問題。或者修改報警閥值
小技巧
恢復資料庫,並修改恢復資料庫的名字
還是程式碼可靠,用下面的程式碼可以成功的克隆資料庫
RESTORE DATABASE [DB]
FROM DISK ='C:\DA.bak'
with nounload, replace, stats = 10,
MOVE 'DB' TO 'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DB.mdf',
MOVE 'DB_log' TO 'D:\Program Files\Microsoft SQL Server\MSSQL11.MSSQLSERVER\MSSQL\DATA\DB_log.ldf'
GO
參考資料
SQL Server 2012複製教程以及複製的幾種模式
https://www.cnblogs.com/running-mydream/p/4412784.html
同一臺機器上建立釋出和訂閱演示
https://blog.csdn.net/qq_33022911/article/details/79604124
在複製監視器中檢視釋出和訂閱狀態
https://docs.microsoft.com/zh-cn/previous-versions/sql/sql-server-2012/ms151271(v=sql.110)