天天看點

Active Directory資料庫複制原理

前面的博文中和大家聊了很多關于域的話題,比如說額外預控、域的恢複等,但是大家可否知道我們上面說的這些都是靠兩個域之間的資料庫互相複制實作的,那麼域之間的資料究竟是如何複制的呢,下面我們就來聊聊域資料庫的複制原理:

在聊之前我們首先要知道一下幾個關鍵問題:

1、域資料庫存放的位置:c:\\windows\ntdsntds.dit

2、站點:一組高速且可靠連接配接的計算機稱為站點

域的複制分為以下兩種模式:

1、多主機複制模式:一台域控制器内的資料庫發上變化,會通知其他域控制器進行同步。(15s同步一次)

2、緊急資料:會立即同步到PDC主機。

資料庫複制遵循以下原理:

當域控中的控制器數量發生變化,例如增加或減少域控制器上的程序,KCC就會進行Active Directory複制括撲的計算。KCC被翻譯成知識一緻性驗證器,我們在任務管理器的程序清單中看不到KCC,因為它屬于LSACC程序的一部分,KCC可以自動計算出域控制器進行計算時所有的括撲,當域控制器數量減少時,KCC傾向于在域中使用環形括撲進行Active Directory進行複制。也就是說,當一個域控制器的Active Directory内容發生變化時,這個更改不會同時傳遞給其他域控制器,而是要沿着KCC設計的環形括撲一一傳遞下去。而且為了實作備援以及為了提高效率,KCC設計的括撲還是雙環括撲。下圖(圖一)就是一個域控制器的括撲示意圖,從圖中可以看到,每個域控制器都有兩個複制夥伴,Active Directory的複制沿着順時針和逆時針兩個方向進行。

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXaznR0gAACPy_KSCjg959.jpg" target="_blank"></a>

                                                                  圖一

域的資料庫複制遵循以下規則:

1、對象屬性:對象的修改次數即版本号(屬性從1開始)

2、修改時間:在不同的DC上對對象修改的時間。(靠後優先)

3、修改對象的DC的GUID:對比GUID号大小。(誰大誰優先)

OK,說了這麼多文字性的東西詳細許多朋友看的都困了,下面我們就通過一個小實驗來為大家說明一下:

server01、server02是一個域控的故障轉移群就,我們在server01上建立使用者,然後利用我們前面說的windows server backup 工具對其進行 系統備份,然後删除使用者,在利用我們所備份的資料對其進行恢複,請問所删除使用者能還原成功嗎?

實驗準備:

1、兩台windows server 2012的伺服器

2、兩台伺服器做成故障轉移群集

3、安裝windows server backup

具備上述條件以後我們開始實驗:

首先我們打開server01的伺服器管理器:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXbDwqdIAAIRlaNsC9o388.jpg" target="_blank"></a>

點選工具:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXew0V3TAAIYzsMQsd0401.jpg" target="_blank"></a>

點選Active Directory使用者和計算機:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXfBU2KHAAIxGHCwUVY058.jpg" target="_blank"></a>

滑鼠右鍵我們的域名:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXeB8KBPAAIKUWvqwu0286.jpg" target="_blank"></a>

點選建立:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXfihXc2AAIzhfCr9IY756.jpg" target="_blank"></a>

點選組織機關:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXei2NFHAAG06BMXpkE206.jpg" target="_blank"></a>

輸入我們要建立的組織機關名稱,在這裡我輸入text,點選确定:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXiTQjgGAADOyMjehGQ582.jpg" target="_blank"></a>

滑鼠右鍵我們建立的text:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXiDNWTcAAFPc4KWaj0177.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXjC_mygAAGECCQVSCc449.jpg" target="_blank"></a>

點選使用者:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXjiD8q2AAGE1jiXgAM111.jpg" target="_blank"></a>

在這裡我建立使用者tom,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXijE3BJAAEkuQ-AQLM518.jpg" target="_blank"></a>

輸入使用者密碼,點選确定:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXjhKL8AAAELH_KjWeE571.jpg" target="_blank"></a>

建立使用者完成,我們打開另一台域控的使用者和計算機:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXjijGmiAAGYim89X-g055.jpg" target="_blank"></a>

可以看到,此域控也有TOM使用者。

ok,下面我們開始對server01的域控進行備份:

打開server01的伺服器管理器:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXnQG1YUAAITCLgT4oI882.jpg" target="_blank"></a>

點選工具:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TB-zrRTPAAIJK7ZH7wU628.jpg" target="_blank"></a>

點選windows server backup:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TB-yLGqDAAJB4prf_Zo309.jpg" target="_blank"></a>

點選本地備份:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCCAL6VMAAJALys136c547.jpg" target="_blank"></a>

點選一次性備份:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCCT91VGAAGOcIbgfmc893.jpg" target="_blank"></a>

系統彈出備份向導,我們保持預設點選下一步:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCCR44-9AAE6FPZgXLU470.jpg" target="_blank"></a>

注意,這裡要選擇自定義,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCDh0nMZAAFSF0ZcB5M614.jpg" target="_blank"></a>

點選添加項目:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCDT5KQdAADWH65MBg0948.jpg" target="_blank"></a>

這裡我們勾選系統狀态,點選确定:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCCirWhYAAGw5NGUelE341.jpg" target="_blank"></a>

點選下一步:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCGzlkQPAAF6wp5ZejQ122.jpg" target="_blank"></a>

系統詢問我們備份位置,我們選擇本地磁盤,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXqi7nOgAAE0hP39Giw249.jpg" target="_blank"></a>

可以看到系統已經自動讀取出我們的E盤了,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXqR0DRfAAGUvh_-qHI290.jpg" target="_blank"></a>

點選備份:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCGhCGZvAAHgbu4Z0CA384.jpg" target="_blank"></a>

備份開始,我們等待備份結束:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCGQqPjRAAGR6pWwBTM817.jpg" target="_blank"></a>

OK,備份完成,點選關閉。

下面我們删除tom這個使用者:

打開伺服器管理器:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCGRB-55AAITCLgT4oI344.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCGT8mmmAAJWr4AQqdQ983.jpg" target="_blank"></a>

點選使用者和計算機:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXvDpQvUAAFfdX7C-o4601.jpg" target="_blank"></a>

滑鼠右鍵TOM:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXvheUMdAACyfohboek751.jpg" target="_blank"></a>

點選删除:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCLShwlNAAB6dp7rWxY463.jpg" target="_blank"></a>

點選是:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCKRiu8IAAGWhTBskcs391.jpg" target="_blank"></a>

OK!可以看到TOM使用者已經被删除!

下面我們利用我們剛剛備份的對其進行恢複:

重新啟動計算機,在計算機開機時按F8,進入安全模式:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCLhSXJ0AAILMMiXZnE951.jpg" target="_blank"></a>

這裡我們選擇進入目錄修複模式:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A6/wKioL1U0TXzgHRpVAACyQS4K9wI764.jpg" target="_blank"></a>

我們以本地管理者身份登陸:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TXygsnDbAAHtv2qxTuU303.jpg" target="_blank"></a>

點選管理----windows server backup:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TXyiJ77jAAGz8KayvhY396.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCOgW4f5AAIPp-I7tW0088.jpg" target="_blank"></a>

點選恢複:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TX2gUr3oAAELe0YLMy4102.jpg" target="_blank"></a>

注意這裡勾選此伺服器點選下一步:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCOD3T3XAAG1cb6umwo439.jpg" target="_blank"></a>

這裡可以看到我們要恢複的資訊,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCPTf91DAAF2xn9u_Ew198.jpg" target="_blank"></a>

注意這裡勾選系統狀态,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCPDKsFAAAHhGbsOanA370.jpg" target="_blank"></a>

這裡勾選原始位置,點選下一步:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCSAcC2_AACaWvCAj7w323.jpg" target="_blank"></a>

點選确定:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A6/wKioL1U0TX2yWL5VAAFJs3Zuai8338.jpg" target="_blank"></a>

點選恢複:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A6/wKioL1U0TX3wVPJ8AACd5rcvPNk737.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCTxb04xAAJlVOFCU4w902.jpg" target="_blank"></a>

OK系統開始恢複,我們稍等片刻:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCTxnXcWAAInVRhr8uI527.jpg" target="_blank"></a>

恢複完成,系統提示我們重新啟動,我們點選 重新啟動

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCTB6LpnAADF84mYSBA011.jpg" target="_blank"></a>

重新開機完成,系統提示我們按Enter鍵繼續,我們按下Enter鍵:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A7/wKioL1U0TX6zDC6hAAHy-U2za_o982.jpg" target="_blank"></a>

進入桌面後系統給我們彈出伺服器管理器,我們點選工具:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TX7i5TBWAAHzU15ISJQ328.jpg" target="_blank"></a>

點選使用者和計算機:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A7/wKioL1U0TX6CZT8mAAGanXQqY5Q970.jpg" target="_blank"></a>

OK,進來之後我們發現我們所要恢複的使用者TOM并沒有成功恢複,這究竟是為什麼呢?

如果仔細閱讀剛開始我所說的東西的朋友一定會明白其實這是因為資料庫複制遵循對象屬性這個規則,我在備份時tom這個使用者的版本号小許我删除時候的版本号,是以我在還原時候的版本号自然也就小于我删除時候的版本号,是以對象還原不成功。但是有些情況下這個對象是必須要還原成功的,那麼我們就應該使用如下辦法:

必須進行授權還原,手動增大對象的屬性。具體操作如下:

重新啟動系統,在開機時按F8進入安全模式:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A7/wKioL1U0TX_RNcyWAAILMMiXZnE760.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TX_xOnlBAACyQS4K9wI643.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCWC5cPGAAHtv2qxTuU188.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCagVK3AAAGz8KayvhY332.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCaD76cHAAIPp-I7tW0723.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCajeMFMAAELe0YLMy4074.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCbRmTdqAAG1cb6umwo372.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M01/6B/A7/wKioL1U0TYDD4vunAAF2xn9u_Ew852.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TYCRnvjEAAH9JbLq66g903.jpg" target="_blank"></a>

這裡注意一定要勾選對Active Directory檔案執行授權還原,然後點選下一步:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TYCBEXPFAAE00mOJhzI949.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCfSNCIsAAFHPPftDC0044.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6B/A7/wKioL1U0TYCi0zMfAAC6Ke7cw4c900.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCeAYC6oAAFzx_rMvfg760.jpg" target="_blank"></a>

開始恢複,我們等其恢複完成:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCfStsweAAIF6mu4esY742.jpg" target="_blank"></a>

OK,回複完成,注意這裡我們先不重新開機,在這裡我們同時按下WIN+R:

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCeTVqiqAAC6Pn5QyLo037.jpg" target="_blank"></a>

輸入cmd:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCiBbmQNAAC8VE_oAMk317.jpg" target="_blank"></a>

這裡我們輸入增大屬性指令:ntdsutil,然後敲回車:

<a href="http://s3.51cto.com/wyfs02/M01/6B/A7/wKioL1U0TYHChj4KAADK9WvqLPo036.jpg" target="_blank"></a>

然後我們輸入activate instance ntds,敲回車:

<a href="http://s3.51cto.com/wyfs02/M01/6B/AB/wKiom1U0TCjA7hGFAACe_6h5YZE630.jpg" target="_blank"></a>

然後我們輸入授權還原指令:authoritative restore,敲回車:

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TYLRgZPfAAEf7tqYBOs278.jpg" target="_blank"></a>

然後我們輸入:restore object cn=tom,ou=text,dc=abc,dc=com,敲回車:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A7/wKioL1U0TYKT1RafAAHuzjLUQcs893.jpg" target="_blank"></a>

系統問我們是否确定進行授權還原,我們點選是:

<a href="http://s3.51cto.com/wyfs02/M00/6B/AB/wKiom1U0TCiTFWNgAAJX4pu-SxI514.jpg" target="_blank"></a>

OK,這裡可以看到我們的版本号已經被增大到100000。現在我們點選重新啟動:

開機之後打開伺服器管理器:

<a href="http://s3.51cto.com/wyfs02/M00/6B/A7/wKioL1U0TYLDTBu6AAIRn5QU-2s922.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/A7/wKioL1U0TYLyeBf6AAIzW_t5dU4187.jpg" target="_blank"></a>

<a href="http://s3.51cto.com/wyfs02/M02/6B/AB/wKiom1U0TCngb-JlAAFx9yYJeDQ837.jpg" target="_blank"></a>

我們可以看到,使用者tom已經被成功恢複。

OK,到這裡我們的實驗就已經完成了,如果有不懂得朋友可以提問。

本文轉自wuyvzhang 51CTO部落格,原文連結:http://blog.51cto.com/wuyvzhang/1635896,如需轉載請自行聯系原作者