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的文件,內容如下:
2)、執行isql命令,以此文件作為輸入,執行結果輸出到另外一個文件里:
3)、對bcppout文件稍微修改,增加可執行權限
4)、執行bcpout,導出數據文本