如何進行資料庫的維護,平時需要做些什麼

  • 作者:由 匿名使用者 發表于 攝影
  • 2021-10-28

如何進行資料庫的維護,平時需要做些什麼匿名使用者 2013-09-17

資料庫日常維護(參考) 資料庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分: 一、備份系統資料 SYBASE 系統的備份與恢復機制保證了在系統失敗時重新獲取資料的可能性。SQL Server 提供了兩種不同型別的恢復機制:一類是系統自動完成的恢復,這種措施在每次系統啟動時都自動進行,保證了在系統癱瘓前完成的事務都寫到資料庫裝置上,而未完成的事務都被回退;另一類是人工完成的恢復,這是透過 DUMP 和 LOAD 命令來執行人工備份和恢復工作。因此定期備份事務日誌和資料庫是一項十分重要的日常維護工作。 1、備份資料庫 每一個數據庫都應在建立之後卸出,從而提供一個裝入基點。在此之後按排定的時間週期表卸出。比如每週五卸出資料庫。對一般資料庫系統卸出資料庫週期建議為每週一次。 除了按計劃週期卸出資料庫之外,還需在每次執行沒有日誌的操作後卸出資料庫。例如: ·每次強制地運行了 DUMP TRAN WITH NO_LOG (因為資料庫的磁碟空溢位); ·每次用 sp_dboption 允許 select into/bulkcopy 做快速複製,或用 SELECT INTO 命令建立一個永久性的表,或使用了 WRITETEXT 命令。 卸出資料庫的命令為: DUMP DATABASE database_name TO dump_device database_name 是要卸出的資料庫名稱,dump_device 是卸出裝置的名稱。用系統過程 sp_helpdevice 可以獲得裝置的資訊。 下面一條命令用來卸出資料庫 my_db : DUMP DATABASE my_db TO db_bk_dev 2、備份事務日誌 如果事務日誌與資料庫放在同一個裝置上,則事務日誌不應與資料庫分開備份。master 資料庫和小於 4M 的使用者資料庫就是這種情況。一般資料庫系統的資料庫和日誌分別放在不同的裝置上,因此,可以用 DUMP TRAN 命令單獨備份日誌。 備份事務日誌的週期直接影響資料的恢復程度,因此建議每天備份。 備份事務日誌的命令格式為: DUMP TRANsaction database_name [TO dump_device] [WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE] 其中 database_name 是要備份事務的資料庫名稱,dump_device 是備份裝置名稱,僅當包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到裝置。 注意:如果總是用 DUMP DATEBASE (備份資料庫及其日誌),而不用 DUMP TRAN ,事務日誌將不會重新整理,而變得非常龐大。 對於 master 資料庫和小型資料庫每次執行 DUMP DATEBASE 之後應當執行 DUMP TRANsaction 命令重新整理日誌 。 下面一條命令備份資料庫 db160 的事務日誌到備份裝置上: DUMP TRANsaction db160 TO db_log_bk_dev WITH TRUNCATE_ONLY 3、備份資料庫及其日誌間的相互作用 在至少卸出一次資料庫前,卸出事務日誌是毫無意義的。下圖顯示了備份資料庫及其日誌間的關係 如果在星期二下午5:01出現非硬體故障,需要做的所有工作是裝入磁帶5(參見下一節:資料恢復),由於磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鐘內的資料損失。 但是,如果在星期二下午4:49失效會怎麼樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然後,依次裝入磁帶2,3以及4。這樣,系統將恢復到星期二上午10:00點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。 二、萬一系統失敗時恢復資料庫系統 如果使用者資料庫儲存的裝置失效,從而資料庫被破壞或不可存取,透過裝入最新的資料庫備份以及後來的事務日誌備份可以恢復資料庫。假設當前的事務日誌存在於一個並沒有毀壞的裝置上,帶著 WITH NO_TRUNCATE 選項的 DUMP TRANsaction 命令卸出它。 要恢復資料庫按如下步驟去做: 1、如果日誌存在於一個分離的裝置上,用帶著 NO_TRUN

Top