方案通過Windows2003系統中的計劃任務結合Sybase遠程網絡備份實現數據庫的自動全庫備份。自動批處理的命令是通過SYBASE的全庫備份備份命令,將Sybase數據庫的電量數據備份到在網絡上的另外一台Windows備份服務器上。時間的備份策略可以通過Windows的計劃任務隨時更改。
使用Sybase的Backup Server(備份服務器),做Dump備份
轉儲數據庫(Dump database),就是為整個數據庫(包括數據、表結構、觸發器、游標、存儲過程、事務日志等)做一次物理備份。轉儲數據庫時,系統自動執行一次checkpoint,即將日志和數據從緩沖區拷貝到硬盤(只拷貝髒頁),把已被分配的頁(日志和數據)轉儲到設備。
命令格式為:
dump database 數據庫名 to 設備文件名 with 參數
如果備份到硬盤的文件上,可以不預先估算備份文件的大小,只要硬盤有足夠的存儲空間就可以。由於Sybase數據庫的備份文件非常大,就要考慮多文件轉儲,使用stripe參數。
命令格式為:
dump database 數據庫名 to 設備文件名1 stripe on 設備文件名2 stripe on 設備文件名3…… with 參數
這種數據備份方式是將整個數據庫的運行環境完整的復制一份,包括數據庫的髒頁和碎片,在使用load命令恢復時,只能恢復到同樣大小的數據庫中(數據和日志的大小都只能和原來完全一致),適用於日常備份。優點是數據庫完整無誤,缺點是不能直接查看備份內容。
安裝備份服務器
需要安裝了一台備份服務器,硬盤要足夠大。安裝了Windows 2003的操作系統,並安裝了Sybase備份服務器。並定義了任務計劃,定時執行DUMP備份語句。
2.定義備份的策略.
在Windows 2003計劃任務裡定時將全部的電量數據備份在Windows2003備份服務器上的本地磁盤上。
恢復數據需要有相同的環境:
步驟如下:
先增加用戶數據庫xx_data(需要查看已經用的設備文件和日志文件),並創建xxxx的用戶。並將設備及日志增加到xx_data數據庫中
在小型機器上執行以下命令
#su C Sybase
$ isql -Usa CP CSxxxx_zjb
1>load database xx_data from "/xx/xxdata1.dat"
Backup Server session id is: 6. Use this value when executing the
'sp_volchanged' system stored procedure after fulfilling any volume change
request from the Backup Server. (顯示部分)
Backup Server: 6.28.1.1: Dumpfile name 'xx_data0520112753' section number 1
mounted on disk file '/xx/xxdata1.dat'
Backup Server: 4.58.1.1: Database xxfk_data: 144278 kilobytes LOADed.
Backup Server: 4.58.1.1: Database xxfk_data: 274280 kilobytes LOADed.
Backup Server: 4.58.1.1: Database xxfk_data: 403898 kilobytes LOADed.
Backup Server: 4.58.1.1: Database xxfk_data: 533900 kilobytes LOADed.
Backup Server: 4.58.1.1: Database xxfk_data: 678176 kilobytes LOADed
Redo pass for database 'xxfk_data': 223288 records done (64%); 120241 records left.
Redo pass for database 'xxfk_data': 240464 records done (69%); 103065 records left.
Redo pass for database 'xxfk_data': 257640 records done (74%); 85889 records left.
Redo pass for database 'xxfk_data': 274816 records done (79%); 68713 records left.
Redo pass for database 'xxfk_data': 291992 records done (84%); 51537 records left.
Redo pass for database 'xxfk_data': 309168 records done (89%); 34361 records left.
Redo pass for database 'xxfk_data': 326344 records done (94%); 17185 records left.
Redo pass for database 'xxfk_data': 343520 records done (99%); 9 records left.
Redo pass of recovery has processed 84054 committed and 0 aborted transactions.
Completed REDO pass for database 'xxfk_data'.
Use the ONLINE DATABASE command to bring this database online; SQL Server will
not bring it online automatically.
2> quit