程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> Sybase數據庫輕松日常維護

Sybase數據庫輕松日常維護

編輯:SyBase綜合文章

數據庫日常維護工作是系統管理員的重要職責。其內容主要包括以下幾個部分:

一、備份系統數據

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點的狀態,星期二的大部分工作丟失了。此例顯示了經常卸出事務的重要性。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved