在實際應用中,我們總結出了兩種全量備份方案:
一、使用Sybase的Backup Server(備份服務器),做Dump備份
轉儲數據庫(Dump database),就是為整個數據庫(包括數據、表結構、觸發器、游標、存儲過程、事務日志等)做一次物理備份。轉儲數據庫時,系統自動執行一次checkpoint,即將日志和數據從緩沖區拷貝到硬盤(只拷貝臟頁),把已被分配的頁(日志和數據)轉儲到設備。
命令格式為:
dump database 數據庫名 to 設備文件名 with 參數
如果備份到硬盤的文件上,可以不預先估算備份文件的大小,只要硬盤有足夠的存儲空間就可以。如果是備份到dds磁帶上,那么就要估算一下備份后的大小,90米的dds磁帶壓縮存儲空間為4G,120米的磁帶壓縮存儲空間為8G,如果數據庫的備份文件超過了這個尺寸,就要考慮多文件轉儲,使用stripe參數。
命令格式為:
dump database 數據庫名 to 設備文件名1
stripe on 設備文件名2
stripe on 設備文件名3……
with 參數
這種數據備份方式是將整個數據庫的運行環境完整的復制一份,包括數據庫的臟頁和碎片,在使用load命令恢復時,只能恢復到同樣大小的數據庫中(數據和日志的大小都只能和原來完全一致),適用于在每天的日終營業網點下班后的日常備份。優點是數據庫完整無誤,缺點是不能直接查看備份內容。
二、分數據結構和數據記錄做兩次備份
在一般情況下,生產機的數據庫都比較龐大,而實驗機則相對較小,難以在實驗環境中以load命令恢復工作機的內容。所以,在工作實踐中,我們摸索出了第二種全量備份方案。
1、數據結構備份
在windows平臺的Sybase SQL Server Manager(數據庫管理)平臺中選擇ServeràGenerate ddl則產生整個數據庫服務器的所有信息,如果選擇databaseàgenerate ddl則產生所選定數據庫的信息,以master庫為例,產生的文件主要包括:config.ddl(配置)、devices.ddl(設備)、database.ddl(數據庫)、logins.ddl(用戶)、remote.ddl(遠程)、cache.ddl(緩沖)、segment.ddl()、group.ddl(用戶組)、user.ddl(用戶)、default.ddl(確。、rule.ddl(規則)、udt.ddl、table.ddl(表)、view.ddl(視圖)、proc.ddl(存儲過程)、triger.ddl(觸發器)。
2、數據記錄備份
將數據庫各表以Sybase自代的bcp(bulk copy)工具的方式導成一定格式的文本文件,命令格式:
bcp 表名 out 路徑名 文件名 -c -t 分隔符 -u (用戶名)-p(密碼)-S(服務器名)
如果將一個數據庫中的所有表都做一個bcp備份,就需要針對每一個表都做一次bcp,在一般情況下,一個數據庫有100多個表,工作量比較大?梢岳脭祿䦷熘械南到y表信息做一個bcp備份腳本。原理是每一個用戶表在系統表中都有信息記載,可以通過isql語句查詢得到,F舉一例說明:
1)、先編輯一個名為mkbcpout.sql的文件,內容如下:
"+"bcp "+name+" out ./+"name+".table -c -t '|' -Uuser -Ppassword -S SERVER" from sysobjects where type='U'
go
2)、執行isql命令,以此文件作為輸入,執行結果輸出到另外一個文件里:
3)、對bcppout文件稍微修改,增加可執行權限
4)、執行bcpout,導出數據文本
文章來源于領測軟件測試網 http://www.kjueaiud.com/