Sybase數據庫維護是每一個DBA的重要工作,作為C/S構架的主流產品,Sybase數據庫在我國有著廣泛的應用,因此,對Sybase數據庫維護也顯得至關重要。筆者在對Sybase數據庫維護工作中,總結了一些技巧和經驗,現介紹給大家。
1.實現開機時自動裝載Sybase數據庫
原先要使Sybase SQL Server啟動,一般需要先以sybase用戶登錄,然後運行$SYBASE/install目錄下的startserver命令啟動Sybase_XXXX服務進程和SYB_BACKUP_XXXX備份服務進程。
要實現Unix系統啟動時就能在後台裝載Sybase的功能,我們可在/etc/rc2.d/目錄下新建一文件S99Sybase,內容如下:
SYBASE=/usr/Sybase
PATH=$PATH:$Sybase/bin
export $Sybase $PATH
$SYBASE/install/startserver -f $SYBASE/install/RUN_Sybase_XXXX > /dev/null
$SYBASE/install/startserver -f $Sybase/install/RUN_SYB_BACKUP_XXX >/dev/null
然後修改Sybase的權限,重啟系統即可。
2.實現關機時自動卸載Sybase數據庫
為保證Sybase系統的正常運行,每次在關閉Unix系統時要先結束Sybase SQL Server 的服務進程,從減輕系統管理人員操作的角度出發建立一用戶halt,修改/etc/passwd文件,將halt用戶的uid改為0(或其他可運行shutdown的用戶id),在/usr/halt/.profile中添加以下語句:
SYBASE=/usr/Sybase
DSQUERY=Sybase_XXXX
PATH=$PATH:$Sybase/bin
export Sybase DSQUERY PATH
isql -Usa -Pabcabc -ihalt.sql > /dev/null
shutdown -y -g0
其中“abcabc”為sa用戶的口令,halt.sql是一簡單的文本文件,內容如下:
shutdown
go
這樣每次只要以halt用戶登錄,就實現了自動卸下Sybase數據庫,然後關閉Unix系統。
3.Sybase庫備份技巧
一般對Sybase庫進行備份都用磁帶作介質進行,但還有一更好的方法,即先備份到硬盤上然後經壓縮,拷貝到磁帶上,這樣便於恢復,多了一個備份拷貝,同時也節省了備份時間。具體實現步驟如下:
(1)建立磁盤備份設備
運行isql,以sa進入Sybase系統,運行如下內容:
sp_addumpdevice "disk",disk_bkupdevice ,/tmp/dumpdb ,2
go
這樣就在Sybase中建立了一個名為“disk_bkupdevice”的備份設備,它對應Unix系統下的/tmp/dumpdb文件。
(2)創建備份用戶
以root身份進入Unix系統,新建用戶backupdb,並歸屬於Sybase組。
(3)修改相關文件
在/usr/backupdb/.profile中添加以下語句:
SYBASE=/usr/Sybase
DSQUERY=Sybase_XXXX
PATH=$PATH:$Sybase/bin
export Sybase DSQUERY PATH
rm /tmp/backupdb.Z
echo"開始備份Sybase數據庫…"
isql -Usa -Pabcabc -ibackup.sql > /tmp/dbbackup.log
echo"硬盤備份完成,正在壓縮備份的數據文件…"
compress /tmp/backupdb
echo "正在將備份的壓縮數據拷入磁帶…"
tar c8v /tmp/backupdb.Z
echo "備份完成!"
其中"abcabc"為sa用戶的口令,backup.sql是一簡單的文本文件,內容如下:
dump database db_main to disk_bkupdevice
go
備份的執行日志被記錄在/tmp/dbbackup.log中,當然系統管理員也可通過查看$Sybase/install/backup.log獲知備份日志。
這種備份方法要求硬盤空間足夠大,這點請系統管理員在為Unix建分區時特別注意。
在SCO Open Server 5.0.4、Sybase 11.0.3平台上,以上幾個小技巧已應用成功,為筆者的日常維護節省了許多時間,取得了非常好的效果。