對於某些大型軟體產品,一旦商用,必然會儲存很多使用者資訊,這就對產品所使用的資料庫(以下簡稱業務資料庫)帶來了壓力。為了保證業務資料庫的平穩運行,需要在日常工作中對資料庫做一些基本的維護操作。
業務資料庫的維護規則如下:
1. 對業務資料庫必須進行定期全量備份
業務資料庫的定期備份能在資料庫被意外破壞時進行快速恢複,備份策略可以根據資料增量大小採用周計劃或月計劃。
假如備份資料庫db_100,則Oracle、Sybase和SQL Server中的操作方法如下:
(1) Oracle使用者模式的備份
exp db_100/db_100 owner=db_100 buffer=8192(或64000) file=exp_db100.dmp(或磁帶裝置/dev/rmt0) tables= rows=y compress=n log= exp_db100.log
參數說明:
owner:將要卸出的使用者名稱列表。
buffer:緩衝區大小。
file:由export建立的輸出檔案的名字。
tables:將要卸出的表名列表。
rows:指明是否卸出表資料的行數,預設為“y”。
compress:指明在裝入期間是否將表資料壓縮到一個地區中。如果在卸出資料時,指定參數compress=y,那麼裝入時,就會將資料壓縮到一個初始地區中。這種選擇可以保持初始化地區的原始大小。預設為“y”。
log:指定一個接收有用資訊和錯誤資訊的檔案。
(2) Sybase中資料庫的備份
dump database db_100 with /home/data/db100.dmp(或磁帶裝置/dev/rmt0)
(3) SQL Server中資料庫的備份
use master go exec sp_addumpdevice 'disk', 'dev_db100', disk ='C:backupdev_db100.dat' go backup database db_100 to dev_db100 go
2. 對業務資料庫定期進行資料清理,清理前必須完成備份操作
對每天記錄增長較多的日誌表採用備份表的機制,即建立和生產表一樣結構的備份表,根據項目的需要決定生產表和備份表保留的時間。
假設1000號業務要處理主日誌生產表tb_mainlog,要求是該生產表保留2天的記錄,備份表保留90天的記錄,篩選日期的欄位名為startdatetime,分批提交的間隔為60分鐘,有一個預存程序pr_backuptable用於備份,則只需如下調用:
exec pr_backuptable ‘tb_mainlog’,’tb_mainlog_bak’,2,90,’startdatetime’, ‘yyyy.mm.dd hh:mi:ss’,60,’’
參數說明:
參數1:生產表名
參數2:備份表名
參數3:生產表保留的天數
參數4:備份表保留的天數
參數5:篩選日期欄位名
參數6:篩選日期欄位的格式
參數7:分批提交的間隔(單位:分鐘)
參數8:用於進行比較的擴充條件
更多精彩內容:http://www.bianceng.cnhttp://www.bianceng.cn/Programming/project/