我從來沒接觸過SYBASE數據庫,現在老總給我個任務,叫我給SYBASE數據庫定時備份,我看了好多資料都不明白,主要是沒個思路,不知道是要編程解決還是通過設置SYBASE數據庫自己備份,急死我了 ?
我想寫個備份的進程,定時備份,可是不知道SYBASE的接口是怎么樣的,怎么與SYBASE數據庫交互 ?
請大家幫我出出主意,了解這些的朋友請給個思路,謝謝了 ?
--------------------------------------------------------------- ?
?
如果是UNIX下的就通過使用crontab了。WIN平臺下面有一個任務管理器。也可以相應使用。 ?
--------------------------------------------------------------- ?
?
看看bcp命令和dump,load命令了。有書的話。 ?
--------------------------------------------------------------- ?
?
sybase不提供定時備份功能,自己寫腳本放到cron或計劃任務 ?
?
建立批處理back.bat或sh腳本,腳本內容為 ?
isql ?-Usa ?-P ?-STESTSVR–o ?/sybase ?/dump.log(用于產生日志,windows下指定window格式的路徑) ?–i ?dump.sql ? ?
?
備份工作通過isql調用備份腳本實現: ? ?
? ?
isql ?-Usa ?-P ?-STESTSVR–o ?/sybase ?/dump.log ?–i ?dump.sql ? ?
? ?
為使sybase用戶成功執行本操作,我們應同時將sybase的環境變量定制在dump.sh中,其主要命令可參考sybase用戶的.profile文件。另外,本命令從外部讀取的備份腳本dump.sql文件的內容如下: ? ?
? ?
declare ?@ddate ?char(28) ?/* ?定義一個變量,用于備份的文件名稱 ?*/ ? ?
select ?@ddate ?= ?'/sybase/backup/dbname' ?+ ?convert(char(6), ?getdate(), ?12) ?+ ?stuff(convert(char(5), ?getdate(), ?8),3,1,null) ?+”.dmp”/* ?將當前日期進行轉換 ?*/ ? ?
dump ?database ?test ?to ?@ddate ? ?
dump ?transaction ?with ?truncate_only ? ?
?
go ? ?
? ?
說明:該腳本將當前日期進行轉換,形成備份的文件名,其格式為: ?backupyymmddhhmi ?
?
?
最后把批處理back.bat或sh分別加入計劃任務或cron ?
這里給出cron的方法,計劃任務很容易,不說了 ?
?
①.定義權限并定制cron ?job ? ?
?UNIX系統中有一條命令crontab,通過它我們可以定制cron ?job,它安排各命令在指定的時間間隔內執行,有定時器的功能。我們所制定的自動備份及自動檢測方案就是用它來實現的。但是,并不是每個UNIX系統的用戶都有權限使用它。 ? ?
HP ?UNIX在默認情況下只有root,admin,uucp三個用戶有權限使用,這時我們需要將數據庫管理員sybase用戶添加到cron.allow文件中。首先,應以root用戶身份登錄,到路徑/var/adm/cron下確認無cron.deny文件,或該文件中無sybase這條記錄。然后,編輯cron.allow文件,將sybase ?用戶添加進去,這樣,sybase用戶就有了定制cron ?job的權限。 ? ? ?
以sybase用戶登錄后,執行crontab ?–e ?編輯cron ?job, ?例: ? ?
? ?
00 ?18 ?* ?* ?* ?/sybase/dump.sh ? ?
? ?
其中,第一條命令的意思是在每天的18∶00開始自動執行腳本文件dump.sh,對數據庫進行備份, ?dump.sh ?的編輯在后面討論。第二條命令是在每月15日的21∶30自動執行腳本文件dbcc.sql,對數據庫進行數據的一致性檢測,其結果輸出到文件dbcc.err中。當然,我們應該根據不同情況適當調整定義的工作時間。
posted on 2006-09-06 11:04
水煮三國 閱讀(742)
評論(0) 編輯 收藏 所屬分類:
Sybase