SQL server 2012 主從複製
#基於Windows主+Linux從暫時沒有實現
今天主要記錄基於Windows端的主從同步的詳細的過程
環境
伺服器:騰訊雲Windows 2012 R2 (主)115.159.24.172 主機名:10_154_39_176 (從)123.206.106.80 主機名:10_105_217_219 #可以先分別在兩臺機器上,提前在下面路徑的hosts檔案做個主機名對映(也叫域名解析),便於需要特定訪問對方主機名操作. #C:\Windows\System32\drivers\etc\hosts #123.206.106.80 10_105_217_219 #115.159.24.172 10_154_39_176
資料庫版本:SQL server 2012(最好用2012版,因為2012有主從同步需要的代理功能)
SQL server安裝這裡省略 初次安裝我遇到一個需要依賴的軟體jdk-7u80-windows-x64要單獨安裝 此外安裝過程中只需設定sa密碼即可一路預設下一步即可 SQL server 自帶的客戶端連線工具和配置管理器可以在搜尋中找到
預設分別存放在如下路徑 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012 C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Microsoft SQL Server 2012\配置工具
還可以用Navicat作為客戶端連線,如下圖
開始配置
//主資料庫Northwind,如下圖所示:
//從CXSlaveDB中,沒有資料庫Northwind,如下圖所示:
二、建立SQL Server資料庫的管理員使用者和共享資料夾許可權,設定SQL Server服務和SQL Server代理的登入使用者為sqladmin
1. 在主資料庫CXMasterDB伺服器上建立使用者sqladmin:
快捷鍵win + R ---> 輸入lusrmgr.msc回車,
如下圖所示:
//設定sqladmin的許可權,只留下administrators,別的都刪掉
2. 同理,在從資料庫CXSlaveDB伺服器上建立使用者sqladmin且加入administrators組,其他都刪除之!
3. 分別在主從資料庫伺服器上建立共享資料夾DB_Backpup,用於存放主從備份日誌檔案,需要共享許可權和NTFS許可權,如如下圖所示:
4. 分別從主資料庫伺服器上和從資料庫伺服器上開啟SQLServer配置管理器,將SQLServer服務和SQLServer代理服務的“登入身份為”sqladmin使用者且啟動模式為:自動,如下圖所示:
三、配置SQLServer日誌傳送
1. 在主資料庫伺服器CXMasterDB上配置
//用sqladmin連線到本地SQL Server資料庫伺服器(我當時用administrator登入的也可以同步,因為不知道為什麼sqladmin使用者登入不上)
//在資料庫例項中,配置 伺服器身份驗證模式 和 伺服器代理帳戶
2. 在主資料庫伺服器CXMasterDB中的Northwind資料庫的屬性的配置
//在Northwind資料庫的屬性 --> 選項 的配置(2012版預設就是完整)
//在Northwind資料庫的屬性 --> 事務日誌傳送 的配置
//事務日誌備份設定,如下圖所示:
//在上圖中,點選 計劃… 後,彈出如下圖所示:
一路 確定 !見到下圖為止!
//新增 輔助資料庫例項和資料庫
//連線到 輔助伺服器例項和輔助資料庫(這裡我不知道為什麼就是檢測不到,最後用sa使用者連線的輔助伺服器SQL server也可以同步)
//輔助資料庫設定--->初始化輔助資料庫(2012這裡都是預設的就是,不用專門設定)
注意,這裡先看下一步再往裡寫
注:
這樣檢視上面所需的輔助伺服器CXSlaveDB中資料庫的 資料檔案和日誌檔案 的資料夾的路徑
//輔助資料庫設定--->複製檔案
//在上圖中 擊點 計劃(E) … 則彈出如下圖所示,設定從資料庫還原日誌的計劃任務:
//輔助資料庫設定--->還原事務日誌
//在上圖中 擊點 計劃(E) … 則彈出如下圖所示,設定從資料庫還原日誌的計劃任務:
//將配置資訊匯出到檔案(導不導都行)
//在下圖中點選 確定 後,一目瞭然了!
三、驗證SQL Server 2012 主從資料庫是否同步
1. 我們去從伺服器CXSlaveDB看看是否有Northwind資料庫,由下圖所示,可見成功了!
2. 現在我們去主資料庫伺服器CXMasterDB中Northwind資料庫新增如下圖所示的表:
//建立表名為 僱員通訊錄
//重新整理下,就可見到 dbo.僱員通訊錄 ,如下圖所示:
3. 現在我們去從資料庫伺服器CXSlaveDB的Northwind資料庫是否有表dbo.僱員通訊錄,如下圖所示:
思考:
下面我們到主資料庫伺服器CXMasterDB的Northwind資料庫中,刪除表dbo.僱員通訊錄
看看從資料庫CXSlaveDB的Northwind資料庫中的表dbo.僱員通訊錄,是否也被刪除了?
附:
1. 如何刪除Northwind(備用 / 只讀)資料庫
//在資料庫屬性 –-> 選項 ---> 狀態 --->資料庫為只讀 修改為 False即可!能刪除嗎???