大家好,還是樓主我,以下是我能找到的恢復(fù)方法,大家看可行嗎?
將生產(chǎn)環(huán)境中AIX5.3平臺上的Sybase ASE12.5.2遷移到備機(jī)作測試用,下面簡單記錄下主要步驟。 環(huán)境: Sybase ASE version: 12.5.2 32bit OS Version: AIX 5.3 $SYBASE: /home/syb123 Instance name: TEST database name: testdb 備機(jī)上建立好了與主機(jī)相同的vg與lv
主要步驟: 1.將主機(jī)上的目錄/home/syb123打包,拷貝到備機(jī),解開tar包到備機(jī)的相同目錄下。刪除備機(jī)/home/syb123下的interfaces文件。 2.修改資源文件resource file中的實(shí)例名(srvbuild.server_name),主機(jī)名(srvbuild.network_hostname_list)等信息。主要有3個(gè)rs文件: syb_dataserver.rs,syb_backupserver.rs,syb_sqlloc.rs 3.新建Sybase ASE實(shí)例。執(zhí)行: srvbuildres -r /home/syb123/syb_dataserver.rs 在新建實(shí)例的過程中,因?yàn)楫惒絀O沒有開啟,報(bào)錯Symbol resolution failed for /usr/ccs/lib/libc.a[aio_64.o] 。解決方法見: AIX上未啟動異步IO導(dǎo)致Sybase服務(wù)創(chuàng)建失敗 4.配置字符集roman8。 源數(shù)據(jù)庫的字符集為roman8,使用資源文件配置新建的備機(jī)上的字符集為roman8、排序規(guī)則為:bin_roman8。unix/linux環(huán)境上新建的實(shí)例默認(rèn)沒有安裝bin_roman8這個(gè)排序規(guī)則,需要手動添加: cd /home/syb123/charsets/roman8 charset -Usa -P -STEST binary.srt roman8
然后在執(zhí)行:srvbuildres -r /home/syb123/syb_sqlloc.rs 來修改實(shí)例的默認(rèn)字符集和排序規(guī)則。 5.新建備份服務(wù) srvbuildres -r /home/syb123/syb_backupserver.rs 6.從源實(shí)例中導(dǎo)出disk init腳本 使用下面的SQL語句能夠?qū)С觯?/font> select 'disk init name="'+name+'",physname="'+phyname+'",size="'+convert(varchar,convert(int,(high-low+1)*2.0/1024.0))+'M"'+char(10)+'go' from master.dbo.sysdevices
where low/power(2,24)>0
go
7.導(dǎo)出create database語句 使用ddlgen導(dǎo)出源實(shí)例中用戶數(shù)據(jù)庫的create database語句。 /home/syb123/ASEP/bin/ddlgen -Usa -P -STEST -TDB -Ntestdb -O./ddlgen-testdb.sql 從上面的輸出文件ddlgen-testdb.sql中將create database命令提取出來,加上for load選項(xiàng)。類似如下的命令: create database test on ..... log on ...... for load go
8.在備機(jī)上上初始化設(shè)備和創(chuàng)建用戶數(shù)據(jù)庫 在執(zhí)行disk init命令先配置參數(shù): number of devices, sp_configure "number of devices",50 go 然后分別執(zhí)行上面得到的disk init命令來初始化Sybase邏輯設(shè)備,執(zhí)行create database來創(chuàng)建用戶數(shù)據(jù)庫以備恢復(fù)用。 在create database命令中加入for load選項(xiàng),能夠提高創(chuàng)建庫的速度,因?yàn)椴恍枰獙⑦壿嬙O(shè)備上的頁面清空。 9.恢復(fù)源數(shù)據(jù)庫 在備機(jī)上恢復(fù)從主機(jī)上拷貝過來的testdb數(shù)據(jù)庫的備份。 load database testdb from '/syb_backup/testdb20110920.dump' go
在主機(jī)上備份數(shù)據(jù)庫testdb的時(shí)候,加入了壓縮選項(xiàng):compress=4。在恢復(fù)的時(shí)候不需要加入壓縮選項(xiàng),sybase備份服務(wù)器能夠自動識別壓縮級別。這點(diǎn)還是挺方便的! 10.增加臨時(shí)數(shù)據(jù)庫tempdb的空間 alter database tempdb on tempdb_data01='4000m' 11.在備機(jī)將數(shù)據(jù)庫testdb的屬主有sa改為syb use testdb go sp_changedbowner syb go
12.重建登錄、角色、用戶信息 因?yàn)橹鳈C(jī)與備機(jī)是相同的平臺,可以直接導(dǎo)出源實(shí)例master數(shù)據(jù)庫中系統(tǒng)表的數(shù)據(jù)。從源實(shí)例中導(dǎo)出下面4張系統(tǒng)表的數(shù)據(jù)。 syslogins,sysloginroles,sysroles,sysusers 在備機(jī)上導(dǎo)入: 先開啟選項(xiàng):allow updates to system catalog。sp_configure "allow updates",1 導(dǎo)入4張系統(tǒng)表的數(shù)據(jù),只追加新添加的登錄、用戶信息。 bcp master.dbo.syslogins in ./syslogins-20110920.bcpout -c -Usa -P -STEST -t~# -b1 bcp master.dbo.sysloginroles in ./sysloginroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1 bcp master.dbo.sysroles in ./sysroles-20110920.bcpout -c -Usa -P -STEST -t~# -b1 bcp master.dbo.sysusers in ./sysusers-20110920.bcpout -c -Usa -P -STEST -t~# -b1
13.配置用戶數(shù)據(jù)庫testdb的options use master go sp_dboption testdb,'select into',true go sp_dboption testdb,'trunc',true go use testdb go checkpoint go
14.配置備機(jī)的參數(shù) 如果備機(jī)與主機(jī)環(huán)境相同的話,可以將主機(jī)上的<servername>.cfg直接拷貝到備機(jī)。否則,根據(jù)主機(jī)的cfg文件適當(dāng)調(diào)整sybase ase的參數(shù)。 15.備份master數(shù)據(jù)庫、導(dǎo)出幾張重要系統(tǒng)表的數(shù)據(jù) 初始化設(shè)備、新建數(shù)據(jù)庫,添加登錄等操作后,要及時(shí)備份master數(shù)據(jù)庫。最好對幾張重要的系統(tǒng)表再做一次備份。使用bcp導(dǎo)出系統(tǒng)表sysusages,sysdatabases,sysdevices,syslogins,sysloginroles,sysroles,sysusers。
|