C#實現Database Backup學習
來源:互聯網
上載者:User
因為公司的的資料庫比較多(但資料量很小),每個星期都要完全備份,以前就是一個庫挨著一個庫備份,sql server備份完了還有oracle,覺得很麻煩,這兩天用業餘時間做一個Database Backup工具,從網上查大部分都用的資料庫內建的定時作業進行備份,由於考慮到這個小工具將來可能交給客戶使用,需要融進我們自己的產品中,所以就想自己做一個小usercontrol,(我們主要是基於winform開發),分為oracle和sqlserver兩種,
oracle9i :先建立一個臨時的bat檔案,然後把執行指令碼寫入該檔案,然後在執行bat檔案,使用指令碼為
exp userid/pwd@servicename file = "backupfilepath" owner = user
注意userid為系統管理員,backupfilepath為檔案儲存路徑(檔案尾碼為dmp) ,user是針對那個用 戶進行 備份,如果不寫該參數,則預設針對userid使用者進行備份,對多個資料庫,多謝幾條exp語句,就可以了。
最後在bat檔案末尾加上exit,就是當執行完備份工作的時候自動結束dos視窗。
執行該檔案:
ProcessStartInfo psi = new ProcessStartInfo(batFilePath);
Process.Start(psi);
sql server 2000 :備份指令碼:backup database to disk = "filepath";sql server2000備份檔案尾碼為dat
把直接該備份指令碼當作一個普通sql語句拿到master資料庫中執
行即可。(在做這個測試的時候發現不能對sqlserver2000內建
的資料庫進行備份和恢複,這是個意外收穫)但是sql server2000不能實現遠程備份,遺 憾,這個usercontrol還必須要放到 資料庫伺服器上執行。
目前僅僅完成一個備份功能,還沒有實現完全自動化,下一步考慮把添加定時器,做成一個windows托盤程式,好好偷把懶。