Sybase數(shù)據(jù)備份之BCP用法簡(jiǎn)介
BCP一般存放在所安裝的ASE或者Open Client 的BIN目錄中。12版本以前的ASE,bcp存放目錄為 $SYBASE/bin,12版本(含12版本)以后存放目錄為 $SYBASE/OCS-12_x/bin。其中$SYBASE為SYBASE安裝目錄,12_x代表12.0、12.5版本,顯示為12_0或者12_5,可執(zhí)行文件名稱為bcp.EXE。
參數(shù)列表如下:(可用 bcp – 得到)
usage: bcp [[database_name.]owner.]table_name[:slice_number] {in | out} datafile
[-m maxerrors] [-f formatfile] [-e errfile]
[-F firstrow] [-L lastrow] [-b batchsize]
[-n] [-c] [-t field_terminator] [-r row_terminator]
[-U username] [-P password] [-I interfaces_file] [-S server]
[-a display_charset] [-q datafile_charset] [-z language] [-v]
[-A packet size] [-J client character set]
[-T text or image size] [-E] [-g id_start_value] [-N] [-X]
[-M LabelName LabelValue] [-labeled]
[-K keytab_file] [-R remote_server_principal]
[-V [security_options]] [-Z security_mechanism] [-Q]
常用數(shù)據(jù)備份格式為:
bcp dbname..tablename out c:\temp\filename -Usa -Ppassword –Sservername –c |
其中 –U后為SYBASE登錄名稱,–P后為SYBASE登錄口令,–S后為SYBASE服務(wù)名稱,–c代表使用可見文本方式導(dǎo)出數(shù)據(jù),如果為數(shù)據(jù)恢復(fù)只需要將out 替換為 in 即可。
可用如下方法生成一個(gè)可以一次導(dǎo)出一個(gè)數(shù)據(jù)庫(kù)中所有表的數(shù)據(jù)的執(zhí)行腳本。
編輯一個(gè)如下文本文件,文件名稱例為 bcpscript:
use dbname 選中將要導(dǎo)出數(shù)據(jù)的數(shù)據(jù)庫(kù)
go
select 'bcp dbname..' + name + ' out c:\temp\' + name + ' -Usa -P -Ssybcdsrv -c' from sysobjects where type = 'U' (在sysobjects系統(tǒng)表中type為U的表為用戶表,系統(tǒng)表為S)
go
用如下格式執(zhí)行:
isql –Usa –Ppassword –Sservername –i bcpscript –o bcpout.bat(i參數(shù)后為輸入文件,o參數(shù)后文件為輸入文件執(zhí)行后得到的輸出文件)
執(zhí)行后可以得到一個(gè)后綴名為 BAT 的批處理文件(在unix下則生成一個(gè)shell文件并更改相應(yīng)的執(zhí)行權(quán)限),可直接執(zhí)行。即在指定的目錄下導(dǎo)出了相應(yīng)的數(shù)據(jù)文件。一個(gè)表的數(shù)據(jù)為一個(gè)文件。如在UNIX下則可不用BAT后綴。
備份得到的數(shù)據(jù)文件如果需要重新往數(shù)據(jù)庫(kù)中恢復(fù),只需要將上面操作步驟中BCP命令中的out 參數(shù)換為in參數(shù)即可。
注意:在對(duì)正式數(shù)據(jù)做操作前最好先作一些測(cè)試。
另外,如果牽涉到使用bcp進(jìn)行字符集的更改,可以采用 –J charset 參數(shù)進(jìn)行,關(guān)于BCP等工具的具體使用指南,請(qǐng)參見SYBASE相關(guān)文檔。
針對(duì)系統(tǒng)移植所需做的工作,應(yīng)該有如下幾個(gè)步驟:
1. 安裝新環(huán)境的硬件環(huán)境,包括網(wǎng)絡(luò),硬盤狀況;
2. 安裝新環(huán)境的操作系統(tǒng),包括Service Pack;
3. 安裝相同版本的SYBASE數(shù)據(jù)庫(kù)產(chǎn)品,包括補(bǔ)丁;
4. 添加數(shù)據(jù)庫(kù)用戶,設(shè)備等相關(guān)信息,應(yīng)與老系統(tǒng)中一致
5. 創(chuàng)建新系統(tǒng)數(shù)據(jù)庫(kù);
6. 利用你所擁有的表腳本或者通過SYBASE CENTRAL中的生成DDL功能,將老系統(tǒng)中的建表腳本導(dǎo)出,生成數(shù)據(jù)庫(kù)中的表.最好將建表腳本與建立表上約束(主鍵,外鍵等)的腳本分開,先在表上不建約束,在數(shù)據(jù)導(dǎo)入后,再加上.;
7. BCP OUT 老系統(tǒng)中數(shù)據(jù),根據(jù)上面提到的方法;
8. 運(yùn)行建立其他對(duì)象的腳本,包括索引,主鍵,外鍵及存儲(chǔ)過程,觸發(fā)器,缺省等;
9. 在新系統(tǒng)中對(duì)需要更改的表結(jié)構(gòu)做更改,或者添加新表;
10. 測(cè)試應(yīng)用系統(tǒng)是否工作正常.
【編輯推薦】