sybase資料庫備份
在win7客戶端上使用isql連接linux伺服器上的sybase資料庫。
備份使用mp
database
資料庫名
to
備份路徑
恢復使用
load
database
資料庫名
from
備份路徑
② 如何恢復用mp備份的sybase資料庫,在LINUX系統下。
load database A from '\u\databak\a.dmp'
online database A
註:
A --資料庫的名。
a\databak\u.dmp --mp下來的庫,保存在伺服器上的路徑和文件名。
load 之前,要求沒有用戶聯接到A庫。
load之後,原有的數據被覆蓋,無法恢復。
③ sybase怎麼備份某張表的數據
1,確保備份伺服器bs的空間足夠存放遠程資料庫伺服器ds的備份文件。
df -k (unix)
df -h (linux)
2.檢查備份伺服器bs的interfaces文件是否正常
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
3.啟動備份伺服器bs的backupServer服務
startserver -f RUN_sample_bs_backup >> sample_bs_backup.log
4.在資料庫伺服器ds的interfaces文件添加備份伺服器bs的ip和埠信息,名字須根備份伺服器bs的interfaces文件保持一致
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
5.檢查資料庫伺服器ds的interfaces文件是否正常
sample_ds_backup
master tcp ether 132.230.99.1 4200
query tcp ether 132.230.99.1 4200
6.啟動資料庫伺服器ds的backupServer服務
startserver -f RUN_sample_ds_backup >> sample_ds_backup.log
7.連接資料庫伺服器ds的數據服務,添加備份伺服器sample_bs_backup到master..sysservers表中。
執行 sp_addserver sample_bs_backup,null;
或者
print 'sample_bs_backup' ;
exec sp_addserver sample_bs_backup, sql_server, sample_bs_backup;
exec sp_serveroption sample_bs_backup, 'timeouts', true;
exec sp_serveroption sample_bs_backup, 'net password encryption', false;
exec sp_serveroption sample_bs_backup, 'readonly', false;
exec sp_serveroption sample_bs_backup, 'rpc security model A',true ;
go
並用以下命令用於查看是否添加成功
sp_helpserver;
8. 連接資料庫伺服器ds的資料庫服務,進行備份
isql -Usa -Ssample_ds -P123456
mp database tacdb to "/backup/sybase/20100519db.dmp" at sample_bs_backup
備份完成!
若是還原是資料庫,則執行:
load database tacdb from '/backup/sybase/20100519tacdb.dmp' at sample_bs_backup
9. 備份完畢後,連接資料庫伺服器ds的資料庫服務,刪除備份服務
sp_dropserver sample_bs_backup
10,刪除資料庫伺服器ds的interfaces文件關於sample_bs_backup的配置
sample_bs_backup
master tcp ether 132.230.99.2 4200
query tcp ether 132.230.99.2 4200
說明:
1.經與SYBASE公司資料庫支持工程師聯系,跨平台的資料庫mp和load是無法進行的,就像我這種情況——從UNIX伺服器上mp出來的資料庫,無法load到Windows伺服器上的資料庫中。只能通過bcp來進行。
2.不同版本的數一據庫之間無法進行mp和load。
④ Sybase資料庫備份方案有多少種
分數據結構和數據記錄做兩次備份
在一般情況下,生產機的資料庫都比較龐大,而實驗機則相對較小,難以在實驗環境中以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 )工具的方式導成一定格式的文本文件,命令格式:
bcp 表名 out 路徑名 文件名 -c -t 分隔符 -u (用戶名)-p(密碼)-S(伺服器名)
如果將一個資料庫中的所有表都做一個bcp備份,就需要針對每一個表都做一次bcp,在一般情況下,一個資料庫有100多個表,工作量比較大。可以利用資料庫中的系統表信息做一個bcp備份腳本。原理是每一個用戶表在系統表中都有信息記載,可以通過isql語句查詢得到。現舉一例說明:
1)、先編輯一個名為mkbcpout.sql的文件,內容如下:
select "echo bcp '"+name+" out ……………………'
"+"bcp "+name+" out ./+"name+".table -c -t '|' -Uuser -Ppassword -S SERVER" from sysobjects where type='U'
go
2)、執行isql命令,以此文件作為輸入,執行結果輸出到另外一個文件里:
isql -Uuser -Ppassword -S server -I mkbcpout.sql -O bcpout
3)、對bcppout文件稍微修改,增加可執行許可權
chmod +x bcpout
4)、執行bcpout,導出數據文本
./bcpout
3、資料庫恢復
業務生產機可能為小型機,而實驗開發環境的硬體環境為PC server,安裝好win nt或SCO unix下的Sybase伺服器後,根據需要創建空間足夠大的資料庫和tempdb(系統臨時資料庫),創建資料庫用戶,並將其更改為此資料庫的所有者,要注意兩點:1)此資料庫允許bcp拷貝,2)此資料庫自動清除log。命令格式為:
1> sp_dboption databasedbname ,"select into/bulk",true
2> go
1> sp_dboption databasename,"trunc log on chkpt",true
2> go
上述兩個配置可能與生產機的配置不同。
然後以新創建的資料庫用戶登錄,導入數據結構,注意要首先導入表結構,然後才是存儲過程、觸發器等等。命令格式:
1、 isql -Uusername -Ppassword -I table.ddl -o error.log.table
2、 isql -Uusername -Ppassword -I proc.ddl -o error.log.proc
……
為了提高bcp導入數據的速度,需要將比較大的表的索引和主鍵刪除,否則的話,每bcp進一條數據,資料庫都自動寫一條log日誌,記載此數據的上一條和下一條記錄,確定本記錄在此表中的准確位置,一是影響bcp速度,二是資料庫的log飛速膨脹。資料庫的自動清除log功能只有在一個事務結束後才起作用。
准備工作做完後,開始倒入數據記錄。使用類似做bcpout的方法做一個bcpin的腳本,然後執行:
./bcpin |tee error.bcpin
使用tee管道輸出的目的是讓計算機完整記錄下倒入過程,自動存入error.bcpin文件中,待倒入結束後,我們只需要檢查日誌文件,不需要一直緊盯著計算機屏幕。
所有工作做完之後,不要忘記重新將刪除的主鍵和索引建上。
如果有現成的資料庫,只需要單純地導入數據記錄,則首先將資料庫中所有用戶表(也就是所有type="U"的表)清空,命令格式:
1> truncate table tablename
2> go
當然最好也是利用做bcpout腳本的做一個truncate腳本,通過執行此腳本將所有用戶表清空。然後的數據導入、處理索引和主鍵的過程與上面類似。
三、利用做bcp備份腳本的方法做資料庫碎片整理
Sybase資料庫作為聯機事務處理應用伺服器,每天應用程序都對資料庫做大量的插入、修改和刪除等操作,不可避免的在資料庫的物理存儲介質上留下頁碎片和擴展單元碎片,從而影響資料庫的存儲效率和運行速度。具體表現為:業務繁忙時出現死鎖(dead lock),資料庫的輸入/輸出資源被大量佔用,業務處理速度慢。其解決辦法是:
1、 清空資料庫中的所有表,命令格式:
isql -Uusername -Ppassword -I truncate.sql -o error.truncate
2、 刪除所有表的索引和主鍵
isql -Uusername -Ppassword -I dropindex.sql -o error.dropindex
3、 導入數據
./bcpin
4、 添加索引和主鍵
isql -Uusername -Ppassword -I addindex.sql -o error.addindex
5、 更新資料庫狀態
1> update statistics tablename
2> go
上述操作都是針對資料庫中的所有用戶表進行的,利用做bcp備份腳本的方法做出相應的腳本,使繁瑣的資料庫維護變得簡便易行,還克服了直接使用isql語句操作風險大、沒有操作日誌的毛病。
筆者在實際工作中,使用第一種方法對生產機做日常全量備份,日終通過unix的crontab定時批量作業(具體做法請參考《中國金融電腦》2001年第10期有關crontab的文章)bcp出全部數據。使用高檔PC server 搭建模擬運行環境,在需要的情況下導入生產機數據,處理運行中後台server的各種問題,待研究出解決辦法後再在生產機上做相應調整,這樣做風險小,效果好。
⑤ 如何實現遠程備份SYBASE資料庫
收藏推薦 備份資料庫操作是保證應用系統安全、穩定運行的必要手段。人民銀行各類業務系統基本上都採用了sybase資料庫作為主流資料庫,而備份Sybas。資料庫就成為系統管理員每天必做的工作之一。在大多數情況下,備份Sybase資料庫的方法是利用sybase的bep命令或mp命令。 利用b叩命令的優點是可以在中心機房以外的遠端機將資料庫數據備份到遠端機,而且由於只需記錄少量日誌,速度極快;缺點是只備份了資料庫的數據,並沒有備份資料庫的表結構,如果資料庫的表結構和數據遭到嚴重破壞,並已不可自動修復,恢復時就必須首先重建數據的表結構,然後才能利用bcp out命令恢復資料庫的數據。此外還需手工截斷日誌,以免因日誌空間不足使得資料庫不能正常運行。由於上述缺點,一般Sybase的備份策略不能只利用b叩命令。 mp命令一般可以在中心機房的資料庫伺服器上執行,也可以在遠端機上利用sybase的客機端軟體來執行;可以將資料庫備份到伺服器磁帶上,......(本文共計3頁) 如何獲取本文>>
⑥ sybase 備份恢復問題
是ASE吧?兩台機子的資料庫版本保證一致,兩方都要 ≥ 12.5.4,只有這樣才能相互mp/load,並且流程很復雜,官方有文檔,sybase都不能保證數據一致。如果兩邊版本不一致,使用bcp吧,或者使用PB的pipe。
⑦ sybase資料庫備份出錯
這個可能是你客戶端與服務端的字元集設置不一致導致的,具體你可以看下locales.dat中的字元集是設置成cp850還是iso_1
⑧ sybase怎麼恢復已經備份的資料庫
先建好資料庫,然後還原,既可用sybase Central圖形界面還原,也可以用load語句還原
1,,用語句還原:
使用sybase advantage或其它工具執行下列語句
load datebase 資料庫名 from '備份路徑/備份文件名'
例如 load datebase test from 'E:\backup\test.dmp'
還原完成後還必須執行online操作,資料庫才能正常訪問,語句是:
online datebase 資料庫名
2,用sybase Central圖形界面還原
在Central中,展開相應的資料庫服務結點——Databases——找到按照第二步建立的資料庫,右擊該資料庫選擇Restore,選擇恢復的資料庫,選擇還原整個資料庫,選擇恢復資料庫所示用的設備,在彈出的Select Dump Devices窗口中選擇Explicit mp device,在Physical Path中輸入你的備份文件的存放路徑,點擊OK就可以了。
⑨ SYBASE 資料庫備份
Sybase的備份方法有很多種。
以Sybase 12.5版本為例,介紹兩種常用的方法如下:
1、全庫備份:Dump方式。
備份:
Dump database XXX to "D:/backup/xxx.dmp"
恢復:
Load database XXX from "D:/backup/xxx.dmp"
前提條件是Backup Server服務要啟動。
2、表方式備份:bcp方式。
備份出來:
bcp 資料庫名..表名 out d:\backup\表名.txt -S服務名 -U用戶名 -P口令 -c -t,
恢復入庫:
bcp 資料庫名..表名 in d:\backup\表名.txt -S服務名 -U用戶名 -P口令 -c -t,