Exchange2013/2016通過(guò)RDB(恢復(fù)數(shù)據(jù)庫(kù))還原用戶郵箱數(shù)據(jù)
作為一名企業(yè)管理員,我需要掌握很多技能,我們前面介紹了關(guān)于Exchange服務(wù)的相關(guān)災(zāi)難恢復(fù)的演示,今天我們介紹的是Exchange2013/2016創(chuàng)建恢復(fù)數(shù)據(jù)庫(kù)及還原單用戶數(shù)據(jù),環(huán)境介紹為:我們?nèi)粘?huì)對(duì)Exchange的相關(guān)數(shù)據(jù)庫(kù)進(jìn)行備份,如果用戶不小心刪除了一些郵件,我們需要進(jìn)行還原的環(huán)境演練,如果要進(jìn)行單用戶的郵箱數(shù)據(jù)恢復(fù),我們需要使用恢復(fù)數(shù)據(jù)進(jìn)行還原用戶的相關(guān)數(shù)據(jù),接下來(lái)明晚首先介紹一下恢復(fù)數(shù)據(jù)庫(kù)的相關(guān)介紹:
恢復(fù)數(shù)據(jù)庫(kù)(RecoveryDataBase)
恢復(fù)數(shù)據(jù)庫(kù)(RDB)是ExchangeServer2010中一種特殊的郵箱數(shù)據(jù)庫(kù),通過(guò)它您可以裝入還原的郵箱數(shù)據(jù)庫(kù),并可以在恢復(fù)操作中從還原的數(shù)據(jù)庫(kù)提取數(shù)據(jù)。提取后,可將數(shù)據(jù)導(dǎo)出到一個(gè)文件夾或者合并到一個(gè)現(xiàn)有郵箱中。并且整個(gè)郵件恢復(fù)過(guò)程中,不會(huì)干擾用戶對(duì)當(dāng)前數(shù)據(jù)的訪問(wèn)。
MicrosoftExchangeServer2010支持將數(shù)據(jù)直接還原到恢復(fù)數(shù)據(jù)庫(kù)。通過(guò)將已恢復(fù)的數(shù)據(jù)作為恢復(fù)數(shù)據(jù)庫(kù)裝入,管理員可以還原單個(gè)郵箱或郵箱中的單個(gè)項(xiàng)目。
ExchangeServer2010中的恢復(fù)數(shù)據(jù)庫(kù)(RDB)非常類似ExchangeServer2007中的恢復(fù)存儲(chǔ)組(RSG)。使用過(guò)ExchangeServer2007中的RSG的朋友,對(duì)ExchangeServer2010中的RDB會(huì)比較容易上手,但在2007版本中可以通過(guò)圖形界面管理控制臺(tái)(EMC)完成RSG的創(chuàng)建和管理,而在ExchangeServer2010中,幾乎所有對(duì)RDB的操作都需要在EMS下進(jìn)行,這無(wú)形中也增加了RDB理解和學(xué)習(xí)的難度。
恢復(fù)數(shù)據(jù)庫(kù)與標(biāo)準(zhǔn)郵箱數(shù)據(jù)庫(kù)的不同
首先讓我們來(lái)看看RDB與標(biāo)準(zhǔn)郵箱數(shù)據(jù)庫(kù)在以下幾個(gè)方面不同:
●RDB是通過(guò)Exchange命令行管理程序進(jìn)行創(chuàng)建的。
●不可以從RDB發(fā)送郵件,或?qū)⑧]件發(fā)送給RDB。將阻止所有客戶端協(xié)議(包括SMTP、POP3和IMAP4)對(duì)RDB的訪問(wèn)。此設(shè)計(jì)可防止使用RDB將郵件插入郵件系統(tǒng)或?qū)⑧]件從郵件系統(tǒng)中刪除。
●將阻止使用MicrosoftOfficeOutlook或OutlookWebApp的客戶端MAPI訪問(wèn)。RDB支持MAPI訪問(wèn),但是僅受恢復(fù)工具和應(yīng)用程序的支持。使用MAPI登錄RDB中的郵箱時(shí),必須指定郵箱GUID和數(shù)據(jù)庫(kù)GUID。
●RDB中的郵箱無(wú)法連接到用戶帳戶。要允許用戶訪問(wèn)RDB中的郵箱的數(shù)據(jù),則必須將郵箱合并到現(xiàn)有郵箱或?qū)С龅轿募A中。不能使用系統(tǒng)管理策略和郵箱管理策略。此設(shè)計(jì)可以防止恢復(fù)過(guò)程中系統(tǒng)刪除RDB中的項(xiàng)目。
●不能為RDB執(zhí)行聯(lián)機(jī)維護(hù)。
●不能為RDB啟用循環(huán)日志記錄。
●RDB僅用于恢復(fù)郵箱數(shù)據(jù)庫(kù)數(shù)據(jù)。不能使用RDB恢復(fù)公用文件夾數(shù)據(jù)。
●任何時(shí)候只能在一個(gè)郵箱服務(wù)器中裝入一個(gè)RDB。RDB的使用量不受每個(gè)郵箱服務(wù)器最多可以有100個(gè)數(shù)據(jù)庫(kù)的限制。
●不能創(chuàng)建RDB的郵箱數(shù)據(jù)庫(kù)副本。
●RDB可用作還原操作的目標(biāo),但不能用于備份操作。
●作為RDB裝入的已恢復(fù)的數(shù)據(jù)庫(kù)不會(huì)以任何方式綁定到原始郵箱。
恢復(fù)數(shù)據(jù)庫(kù)的應(yīng)用場(chǎng)景
RDB只能用于Exchange2010郵箱數(shù)據(jù)庫(kù)。不支持來(lái)自以前版本的Exchange的郵箱數(shù)據(jù)庫(kù)。此外,用于數(shù)據(jù)合并和提取的目標(biāo)郵箱必須與RDB中裝入的數(shù)據(jù)庫(kù)位于同一個(gè)ActiveDirectory林。
在一些情況下,可將RDB用于恢復(fù)數(shù)據(jù),例如:
●同一服務(wù)器撥號(hào)音恢復(fù):從備份還原原始數(shù)據(jù)庫(kù)后,可以從RDB進(jìn)行恢復(fù),作為撥號(hào)音恢復(fù)操作的一部分。
●備用服務(wù)器撥號(hào)音恢復(fù):可以使用備用服務(wù)器來(lái)駐留撥號(hào)音數(shù)據(jù)庫(kù),然后在將原始數(shù)據(jù)庫(kù)從備份恢復(fù)后,從RDB恢復(fù)數(shù)據(jù)。
●郵箱恢復(fù):當(dāng)超過(guò)已刪除郵箱的保留期時(shí),可以從備份恢復(fù)單個(gè)郵箱。然后,從已還原的郵箱中提取數(shù)據(jù)并將其復(fù)制到目標(biāo)文件夾或與其他郵箱進(jìn)行合并。
●特定項(xiàng)目恢復(fù):您可以從已從郵箱中刪除或清除的備份數(shù)據(jù)進(jìn)行還原。
RDB實(shí)戰(zhàn)演練
為了讓大家更加直接的看到RDB的應(yīng)用過(guò)程,筆者模擬了一個(gè)實(shí)驗(yàn)環(huán)境,某收件人jack誤刪了某些郵件,現(xiàn)致電管理員,要求恢復(fù)這些郵件,管理員需要響應(yīng)Jack的要求,幫助其恢復(fù)所需郵件,并且此過(guò)程中,其他收件人的郵箱,以及Jack自己的郵箱必須仍然能夠使用
創(chuàng)建 RDB 之后,可以通過(guò)使用備份應(yīng)用程序或通過(guò)將數(shù)據(jù)庫(kù)及其日志文件復(fù)制到 RDB 文件夾結(jié)構(gòu),將郵箱數(shù)據(jù)庫(kù)還原到該 RDB 中。然后,可以使用 New-MailboxRestoreRequest cmdlet 從恢復(fù)的數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。提取數(shù)據(jù)后,可以將該數(shù)據(jù)導(dǎo)出到某個(gè)文件夾或合并到某個(gè)現(xiàn)有的郵箱中。
郵箱數(shù)據(jù)庫(kù)和恢復(fù)數(shù)據(jù)庫(kù)之間的區(qū)別
RDB 和標(biāo)準(zhǔn)郵箱數(shù)據(jù)庫(kù)在以下幾個(gè)方面不同:
RDB 是通過(guò) Exchange 命令行管理程序進(jìn)行創(chuàng)建的。
不可以從 RDB 發(fā)送郵件,或?qū)⑧]件發(fā)送給 RDB。將阻止所有客戶端協(xié)議(包括 SMTP、POP3 和 IMAP4)對(duì) RDB 的訪問(wèn)。此設(shè)計(jì)可防止使用 RDB 將郵件插入郵件系統(tǒng)或?qū)⑧]件從郵件系統(tǒng)中刪除。
將阻止使用 Microsoft OfficeOutlook 或 Outlook Web App 的客戶端 MAPI 訪問(wèn)。 RDB 支持 MAPI 訪問(wèn),但是僅受恢復(fù)工具和應(yīng)用程序的支持。使用 MAPI 登錄 RDB 中的郵箱時(shí),必須指定郵箱 GUID 和數(shù)據(jù)庫(kù) GUID。
RDB 中的郵箱無(wú)法連接到用戶帳戶。要允許用戶訪問(wèn) RDB 中的郵箱的數(shù)據(jù),則必須將郵箱合并到現(xiàn)有郵箱或?qū)С龅轿募A中。
不能使用系統(tǒng)管理策略和郵箱管理策略。 此設(shè)計(jì)可以防止恢復(fù)過(guò)程中系統(tǒng)刪除 RDB 中的項(xiàng)目。
不能為 RDB 執(zhí)行聯(lián)機(jī)維護(hù)。
不能為 RDB 啟用循環(huán)日志記錄。
任何時(shí)候只能在一個(gè)郵箱服務(wù)器中裝入一個(gè) RDB。 RDB 的使用量不受每個(gè)郵箱服務(wù)器的數(shù)據(jù)庫(kù)限制。
不能創(chuàng)建 RDB 的郵箱數(shù)據(jù)庫(kù)副本。
RDB 可用作還原操作的目標(biāo),但不能用于備份操作。
作為 RDB 裝入的已恢復(fù)的數(shù)據(jù)庫(kù)不會(huì)以任何方式綁定到原始郵箱。
試驗(yàn)前,我們首先回憶當(dāng)前試驗(yàn)環(huán)境
我們使用user01這個(gè)郵箱用戶,然后登陸owa;
我們可以看見(jiàn),user01這個(gè)郵箱用戶下有不同時(shí)間的測(cè)試郵件
同樣我們查看當(dāng)前用戶user01的數(shù)據(jù)庫(kù)信息
Get-mailbox -identity user01 | fl database
然后我們首先確認(rèn)user01用戶的郵件信息
然后我們創(chuàng)建備份還原路勁,我們?cè)赒盤下創(chuàng)建還原目錄
所以我們需要對(duì)用戶的郵箱進(jìn)行備份,然后進(jìn)行還原,此次過(guò)程中,我們使用系統(tǒng)自帶的windos server backup進(jìn)行備;我們首先安裝windows serverbackup服務(wù)
備份服務(wù)安裝好后,就是開始備份了
因?yàn)槲覀冎皇菧y(cè)試,所以我們選擇一次性備份
我們自定義備份
我們選擇需要備份的數(shù)據(jù)庫(kù);我們前面看見(jiàn)user01所在的數(shù)據(jù)庫(kù)為DB01,所以我們需要備份DB01
選擇選擇需要備份的數(shù)據(jù)庫(kù),然后單擊高級(jí)設(shè)置
選擇VSS設(shè)置---VSS完整備份
選擇備份路徑
備份完成
備份完成后,我們?cè)赒盤可以看見(jiàn)備份的信息
備份后,我們將user01下的用戶郵箱中的郵件刪除
刪除后,我們接著就是還原備份數(shù)據(jù)到指定的路徑下:
接下來(lái)就是還原數(shù)據(jù)庫(kù)了,首先我們將通過(guò)windows serverbackup備份的數(shù)據(jù)還原到RDB01上,
我們打開windows server backup---單擊恢復(fù)
選擇備份日期
選擇恢復(fù)類型
選擇恢復(fù)的項(xiàng)目
選擇恢復(fù)的選項(xiàng)----我們選擇其他
我們選擇恢復(fù)到還原數(shù)據(jù)庫(kù)目錄下
準(zhǔn)備好后可以恢復(fù)
開始恢復(fù)
恢復(fù)完成
接下來(lái)我們查看恢復(fù)數(shù)據(jù)庫(kù)目錄下的信息
還原備份數(shù)據(jù)庫(kù)到指定目錄后,接下來(lái)我們需要對(duì)
使用 Eseutil 將該數(shù)據(jù)庫(kù)置于干凈關(guān)閉狀態(tài)。在以下示例中,EXX 是數(shù)據(jù)庫(kù)的日志生成前綴(例如,E00、E01、E02 等等)。
1 | Eseutil /R EXX /l <RDBLogFilePath> /d <RDBEdbFolder> |
以下示例說(shuō)明了 E01 日志生成前綴、恢復(fù)數(shù)據(jù)庫(kù)和日志文件路徑 E:\Databases\RDB1:
1 | Eseutil /R E01 /l E:\Databases\RDB1 /d E:\Databases\RDB1 |
注:我們還原目錄中的數(shù)據(jù)庫(kù)日志生成前綴為E01,所以我們需要使用數(shù)據(jù)庫(kù)恢復(fù)前綴E01即可
我們首先使用以下命令進(jìn)行查看恢復(fù)的數(shù)據(jù)庫(kù)的干凈狀態(tài)
1 | Eseutil.ext /mh "Q:\recovery\RDB\db01.edb" |
我們查看state的狀態(tài)為dirty shutdown
所以我們需要使用以下命令進(jìn)行將還原的數(shù)據(jù)庫(kù)進(jìn)行處理干凈
1 | Eseutil.exe /r e01 /I /d "q:\recovery\rdb" /a /l "q:\recovery\rdb" |
然后我們繼續(xù)使用以下命令繼續(xù)查看還原數(shù)據(jù)庫(kù)的狀態(tài)是否為clean shutdown
1 | Eseutil.ext /mh "Q:\recovery\RDB\db01.edb" |
接下來(lái)我們就是創(chuàng)建恢復(fù)數(shù)據(jù)庫(kù)
https://technet.microsoft.com/ZH-CN/library/ee332321(v=exchg.150).aspx
我們?cè)谄渲幸慌_(tái)Mailbox服務(wù)器上
創(chuàng)建一個(gè)恢復(fù)數(shù)據(jù)庫(kù)。為該恢復(fù)數(shù)據(jù)庫(kù)指定一個(gè)唯一的名稱,但要將數(shù)據(jù)庫(kù)文件的名稱和路徑用于 EdbFilePath 參數(shù),將恢復(fù)的日志文件的位置用于 LogFolderPath 參數(shù)。
1 | New-MailboxDatabase -Recovery -Name <RDBName> -Server <ServerName> -EdbFilePath <RDBPathandFileName> -LogFolderPath <LogFilePath> |
注:如果要移除數(shù)據(jù)庫(kù)的話
Remove-MailboxDatabase -Recovery -Name <RDBName> -Server <ServerName> -EdbFilePath <RDBPathandFileName> -LogFolderPath <LogFilePath>
所以我們使用以下命令來(lái)創(chuàng)建一個(gè)恢復(fù)數(shù)據(jù)庫(kù)
確保EDB文件為clean shutdown后,創(chuàng)建新的RDB,使用從備份中還原出來(lái)的DB01.edb文件:
1 | New-MailboxDatabase -Recovery -Name RDB -Server IXM-EX01 -EdbFilePath "Q:\Recovery\RDB\DB01.EDB" |
-Name中的RDB名稱為 RDB數(shù)據(jù)庫(kù)的顯示名稱;
而指定EDBfilepath路勁中的DB01.EDB的名稱建議修改為還原數(shù)據(jù)庫(kù)的名稱,
注:如果提示需要制定logfolderpath的話在參數(shù)后面添加即可
1 | New-MailboxDatabase -Recovery -Name RDB -Server IXM-EX01 -EdbFilePath "Q:\Recovery\RDB\DB01.EDB" -LogFolderPath "Q:\Recovery\RDB" |
1 | Restart-Service MsexchangeIS |
創(chuàng)建完成RDB后,我們查看當(dāng)前的所有數(shù)據(jù)庫(kù)信息
1 | Get-mailboxdatabase |
設(shè)置RDB可以restore:
1 | Set-MailboxDatabase -Identity RDB -AllowFileRestore $ true |
Mount數(shù)據(jù)庫(kù),并查找你要還原的郵箱:
1 | Mount-Database -Identity RDB |
驗(yàn)證已裝入的數(shù)據(jù)庫(kù)包含您希望還原的郵箱:
1 2 | Get-MailboxStatistics -Database <RDBName> | ft -auto Get-mailboxStatistics -Database RDB | ft -auto |
接下來(lái)就是正式的數(shù)據(jù)恢復(fù)了,我們要將RDB下的數(shù)據(jù)恢復(fù)到user01下
恢復(fù)數(shù)據(jù)庫(kù) (RDB) 是一種特殊的郵箱數(shù)據(jù)庫(kù),通過(guò)它您可以從在恢復(fù)操作中還原的郵箱數(shù)據(jù)庫(kù)裝入和提取數(shù)據(jù)。RSG 使您能夠從備份或數(shù)據(jù)庫(kù)副本中恢復(fù)數(shù)據(jù),而不會(huì)影響用戶對(duì)當(dāng)前數(shù)據(jù)的訪問(wèn)。
創(chuàng)建 RDB 之后,可以通過(guò)使用備份應(yīng)用程序或通過(guò)將數(shù)據(jù)庫(kù)及其日志文件復(fù)制到 RDB 文件夾結(jié)構(gòu),將郵箱數(shù)據(jù)庫(kù)還原到該 RDB 中。然后,可以使用 New-MailboxRestoreRequest cmdlet 從恢復(fù)的數(shù)據(jù)庫(kù)中提取數(shù)據(jù)。提取數(shù)據(jù)后,可以將該數(shù)據(jù)導(dǎo)出到某個(gè)文件夾或合并到某個(gè)現(xiàn)有的郵箱中。
https://technet.microsoft.com/ZH-CN/library/ee332351(v=exchg.150).aspx
使用 New-MailboxRestoreRequest cmdlet 將郵箱或項(xiàng)目從恢復(fù)數(shù)據(jù)庫(kù)還原到生產(chǎn)郵箱中。
以下示例將郵箱數(shù)據(jù)庫(kù) DB1 上具有 MailboxGUID 1d20855f-fd54-4681-98e6-e249f7326ddd 的源郵箱還原到具有別名 Morris 的目標(biāo)郵箱。
1 | New-MailboxRestoreRequest -SourceDatabase DB1 -SourceStoreMailbox a10d9f18a5b94028a73 5bb90fd67c1a4-user01 -TargetMailbox user01 |
以下示例將郵箱數(shù)據(jù)庫(kù) DB1 上具有顯示名稱 Morris Cornejo 的源郵箱的內(nèi)容還原至 Morris@contoso.com 存檔郵箱。
1 | New-MaiboxRestoreRequest -SourceDatabase RDB -SourceStoreMailbox "Morris Cornejo" -TargetMailbox Morris@contoso.com -TargetIsArchive |
所以我們需要通過(guò)命令查看RDB數(shù)據(jù)庫(kù)中所需要還用用戶所需要的信息:
1 | Get-MailboxStatistics -Database RDB | fl displayname,mailboxguid,itemcount |
上面的命令是顯示的是列fl,所以我們?yōu)榱朔奖泔@示顯示table方式
1 | Get-MailboxStatistics -Database RDB | ft displayname,mailboxguid,itemcount |
有了上面的數(shù)據(jù)后,我們就可以還原了;
從RDB數(shù)據(jù)庫(kù)中選擇源為User01的數(shù)據(jù)庫(kù)信息還原到本地用戶數(shù)據(jù)對(duì)應(yīng)的用戶user01中
1 | New-MailboxRestoreRequest -SourceDatabase RDB -SourceStoreMailbox User01 -TargetMailbox user01 |
sourceDatabase : RDB 為還原數(shù)據(jù)庫(kù)
SourceStoreMailbox:user01 位RDB中顯示需要還原的用戶信息
targetMailbox user01: 要還要的目標(biāo)的用戶信息
當(dāng)然我們也可以使用mailboxguid進(jìn)行還原
1 | Get-MailboxStatistics -Database RDB | ft displayname,mailboxguid,itemcount |
有了上面的數(shù)據(jù)后,我們就可以還原了;
從RDB數(shù)據(jù)庫(kù)中選擇源為User01的數(shù)據(jù)庫(kù)信息還原到本地用戶數(shù)據(jù)對(duì)應(yīng)的用戶user01中
1 2 3 4 | New-MailboxRestoreRequest -SourceDatabase RDB -SourceStoreMailbox 6aabcdc9-83df-49a8-af6d-2fe3a725bebc -TargetMailbox user01 sourceDatabase : RDB 為還原數(shù)據(jù)庫(kù) SourceStoreMailbox:guid 位RDB中顯示需要還原的用戶信息字符中的guid targetMailbox user01: 要還要的目標(biāo)的用戶信息 |
使用 Get-MailboxRestoreRequest 定期檢查郵箱還原請(qǐng)求的狀態(tài)。
當(dāng)還原狀態(tài)為“已完成”時(shí),使用 Remove-MailboxRestoreRequest 刪除還原請(qǐng)求。例如:
1 | Get-MailboxRestoreRequest -Status Completed | Remove-MailboxRestoreRequest |
查看后我們可以刪除還原記錄
最后我們查看user01刪除的郵件是否還原成功了
最后我們總結(jié)一下相關(guān)命令
1 2 3 4 | Dismount-database -identity RDB01 斷開數(shù)據(jù)庫(kù) Remove-mailboxdatabase -identity RDB01 刪除數(shù)據(jù)庫(kù) eseutil /p “Q:\Recovery\RDB\DB01.EDB” 修復(fù)數(shù)據(jù)庫(kù) Restart-service msexchangeis 重啟exchange存儲(chǔ)服務(wù) |
本文出自 “高文龍” 博客
聯(lián)系客服