因為工作上需求,開始研究「SQL Server」,就目前「工作」常遇到「SQL Server 2000」、「SQL Server 2005」,常常摸「SQL Server」的「朋友」一定知道,一份「資料庫」,通常會有「.mdf」(資料檔)、「.ldf」(交易記錄檔),這點是「必須知道的」,在「
SQL Server 2005 」的「備份」方式,就是將「.mdf」(資料檔)、「.ldf」(交易記錄檔),打包成「.bak」檔,進行「還原」動作。
=============================================
找到「資料庫名稱」=>「工作」=>「備份」
1. 選擇「資料庫」
2. 備份類行為「完整」
3. 選擇「資料庫」
4. 名稱「SQL Server」會自行帶入
5. 選擇「磁碟」=>「加入」=>設定「存放位置」
備份完成以後,就會顯示「資料庫」順利備份完成
找到「備份檔」
手動給予「副檔名」.bak
1. 選擇「一般」
2. 選擇「存放位置」的「.bak」檔
PS. 由於採用「完整備份」所以「.bak」檔,包含「.MDF」與「.LDF」
3. 選擇「資料庫名稱」
4. 選擇「備份檔」存放「資料庫位置」地方
PS. 您無須手動「建立資料庫」,當您讀取 「.bak」 備份檔,會自動找到來源的「資料庫名稱」,設定好以後,就會「自行建立」
1. 點選「選項」
2. 設定「.MDF」與「.LDF」存放位置
PS.「.MDF」與「.LDF」分別為「資料檔」、「交易紀錄」
點選「回復未認可的交易......」
PS. 下列「三種」復原狀態,都有其「用途」...
點選「確定」進行「資料還原」
「畫面左下角」看到「進度」正在「轉一轉」
復原「完成」 YA ....
這時候,各位以為「大功告成」這麼簡單嗎?
由於先前對「資料庫不熟」,以為只要建立「相同」的「使用者」即可「順利操作」,此「觀念」非常「不正確」,正確下法「如下圖所示」。
查詢「A-SQL Server」原來「使用者」的「SID」,使用「SQL」語法
「SELECT * FROM [資料庫].sys.sysusers;」
PS. 此「語法」會搜尋「資料庫」所有「User」「SID」
「B-SQL Server」使用此「SQL」語法,建立「相同」的「使用者」與「SID」。
接著就會看到,如「下圖所示」,資料顯示「正在還原......」,選擇「資料庫」=>「工作」=>「還原」=>「資料庫」
1. 載入「差異備份」檔
2. 選擇「還原備份」名稱
3. 選擇「資料庫」位置
顯示「資料庫」已順利完成
還原成功 ^_^" 「完整」+「差異」備份
找到「管理」=>「維護計畫」=>「維護計畫精靈」
可愛的畫面...
1. 輸入「備份名稱」
2. 選擇「伺服器」,您也可以輸入「IP」
3. 選擇「使用 Windows 驗證」
PS. 何謂「Windows 驗證」與「SQL Server 驗證」,請各位「搞懂」,才不會「霧煞煞」
選擇「完整」備份
如果您在上一個「步驟」,有「複選」功能,則此「清單」就會「顯示」工作「順序」
選擇「需要」備份「資料庫」
1. 點選「為每個資料庫建立一個備份檔案」
2. 選擇「備份位置」
點選「變更」
1. 輸入「排程」的「名稱」
2. 輸入「備份」的「週期」循環
3. 「設定」執行時間
4. 設定「開始日期」
此時就會看到「排程」計畫表
選擇「是/否」建立「報表」
確認「完成」後,點選「完成」
如果要立即「執行」,選擇「排程名稱」=>「右鍵」=>「執行」即可。
PS. 如需要建立「差異備份」的「維護計畫」,需要先執行「完整備份」,再執行「差異備份」
首先「檢查」-「復原模式」
「完整」
[完整]復原模式下,所有交易紀錄會被「SQL Server」保存在該資料庫的紀錄檔內。「DBA」可以針對該資料庫,進行「完整備份」、「差異備份」和「交易紀錄備份」。
「大量紀錄」
[大量紀錄]復原模式下,除了「BULK」行為(載入大量資料或建立索引)所產生的「交易紀錄」之外,絕大多數的交易紀錄都會被保留,所以此模式無法保證能將資料庫還原到過去的任何時間,因為沒有「BULK」成為的交易紀錄。
「簡單」
[簡單]復原模式下,每次的「Check Point」動作發生時「SQL Server」會截斷已完成或回複的交易紀錄,也就是說「SQL Server」可以重複使用「交易紀錄」的「儲存空間」。此模式下「DBA」只能執行「完整備份」與「差異備份」。
=============================================
「完整備份」+「異機還原」
如圖片所示,將「A-SQL Server」還原「B-SQL Server」
「A-SQL Server」
找到「資料庫名稱」=>「工作」=>「備份」
1. 選擇「資料庫」
2. 備份類行為「完整」
3. 選擇「資料庫」
4. 名稱「SQL Server」會自行帶入
5. 選擇「磁碟」=>「加入」=>設定「存放位置」
備份完成以後,就會顯示「資料庫」順利備份完成
找到「備份檔」
手動給予「副檔名」.bak
「B-SQL Server」
點選「資料庫」=>「還原資料庫」
1. 選擇「一般」
2. 選擇「存放位置」的「.bak」檔
PS. 由於採用「完整備份」所以「.bak」檔,包含「.MDF」與「.LDF」
3. 選擇「資料庫名稱」
4. 選擇「備份檔」存放「資料庫位置」地方
PS. 您無須手動「建立資料庫」,當您讀取 「.bak」 備份檔,會自動找到來源的「資料庫名稱」,設定好以後,就會「自行建立」
1. 點選「選項」
2. 設定「.MDF」與「.LDF」存放位置
PS.「.MDF」與「.LDF」分別為「資料檔」、「交易紀錄」
點選「回復未認可的交易......」
PS. 下列「三種」復原狀態,都有其「用途」...
點選「確定」進行「資料還原」
「畫面左下角」看到「進度」正在「轉一轉」
復原「完成」 YA ....
這時候,各位以為「大功告成」這麼簡單嗎?
由於先前對「資料庫不熟」,以為只要建立「相同」的「使用者」即可「順利操作」,此「觀念」非常「不正確」,正確下法「如下圖所示」。
查詢「A-SQL Server」原來「使用者」的「SID」,使用「SQL」語法
「SELECT * FROM [資料庫].sys.sysusers;」
PS. 此「語法」會搜尋「資料庫」所有「User」「SID」
「B-SQL Server」使用此「SQL」語法,建立「相同」的「使用者」與「SID」。
「
CREATE LOGIN [User] WITH PASSWORD=N'1234',
DEFAULT_DATABASE=[AdvantureWorks], CHECK_EXPIRATION=OFF,
CHECK_POLICY=OFF,
SID = 0x98C57C7B2F64C040886FC5F6F1579C62
」
PS.建立完成後,您才可以設定「資料庫」的「權限」
「完整備份」+「差異備份」+「異機還原」
「A-SQL Server」使用「完整」+「差異」備份,還原「B-SQL Server」
還原過程,大同「小異」,重點整理。
先還原「完整」的「.bak」備份,設定「.MDF」與「.LDF」存放位置,此時「復原狀態」,選擇為「讓資料庫保持不運作......」
接著就會看到,如「下圖所示」,資料顯示「正在還原......」,選擇「資料庫」=>「工作」=>「還原」=>「資料庫」
1. 載入「差異備份」檔
2. 選擇「還原備份」名稱
3. 選擇「資料庫」位置
顯示「資料庫」已順利完成
還原成功 ^_^" 「完整」+「差異」備份
「使用維護計畫精靈」設定「備份排程」
PS.「SQL Express」無此「功能」找到「管理」=>「維護計畫」=>「維護計畫精靈」
可愛的畫面...
1. 輸入「備份名稱」
2. 選擇「伺服器」,您也可以輸入「IP」
3. 選擇「使用 Windows 驗證」
PS. 何謂「Windows 驗證」與「SQL Server 驗證」,請各位「搞懂」,才不會「霧煞煞」
選擇「完整」備份
如果您在上一個「步驟」,有「複選」功能,則此「清單」就會「顯示」工作「順序」
選擇「需要」備份「資料庫」
1. 點選「為每個資料庫建立一個備份檔案」
2. 選擇「備份位置」
點選「變更」
1. 輸入「排程」的「名稱」
2. 輸入「備份」的「週期」循環
3. 「設定」執行時間
4. 設定「開始日期」
此時就會看到「排程」計畫表
選擇「是/否」建立「報表」
確認「完成」後,點選「完成」
如果要立即「執行」,選擇「排程名稱」=>「右鍵」=>「執行」即可。
PS. 如需要建立「差異備份」的「維護計畫」,需要先執行「完整備份」,再執行「差異備份」
參考資料:
「The Will Will Web」-「SQL 資料庫還原到到另一台後無法登入要怎麼解決」
「The Will Will Web」 - 「觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份」
「The Will Will Web」 - 「觀念釐清:SQL Server 完整備份、差異備份、交易記錄備份」
「TechNet」-「使用維護計畫精靈」
「think_fish」-「無法還原記錄或差異備份,因為沒有可向前復原的檔案」
「iT邦幫忙」-「SQL Server 無敵手冊第七篇- 淺談SQL Server備份基本概念」
沒有留言:
張貼留言