具體的請參照sybase 安裝指南(中文版) Adaptive Server Enterprise
12.5 Linux/Intel.
本文參考了網上的好幾家資料,感謝他們!
(一) 以root 登入:
建立sybase使用者及使用者組(useradd,groupadd或linuxconf)
mount CDROM
#mount /mnt/cdrom (#mount -t iso9660 /dev/cdrom /mnt/cdrom)
注意:在安裝Sybase資料庫前,首先備份/etc/ld.so.conf:
cp /etc/ld.so.conf /etc/ld.so.conf.sybase
安裝 SYBASE產品
(1)選用字元方式 (可做成shell)
# rpm -ivh /mnt/cdrom/RPMS/sybase-common-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-ase-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-chinese-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-monserver-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-openclient-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-efts-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-esql-12.5-3.i386.rpm
# rpm -ivh /mnt/cdrom/RPMS/sybase-sqlremote-7.0.2-1.i386.rpm
(2) 更改sybase使用者權限
安裝完後,SYBASE自動化佈建好sybase使用者帳號和環境變數,只要更改sybase使用者的口令;
(3) 修改sybase對/tmp的目錄訪問
#chmod o+wx /tmp
為使得sybase重啟動時能對/var/lock/subsys/sybase目錄訪問
#chmod o+rwx /var/lock/subsys
(4) 改sybase使用者環境變數
編輯使用者登入檔案:
例:bash 使用者,編輯bash_profile檔案
$ vi .bash_profile
DSQUERY=www
LANG=us_english
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
把 $SYBASE/install加入到PATH
(5)建立ASE Server前的準備工作
作業系統共用記憶體預設值,對於大多數 Linux 版本為 32MB。
Adaptive Server 的最小要求為 64MB。要調優每個請求堆的最大
共用記憶體段的大小,請轉至 /proc 目錄。檢查可用的作業系統的
大小。
# ipcs -lm | grep ’max seg size’
max seg size (kbytes) = 32768
為作業系統共用記憶體參數選擇新的大小。例如,要將共用記憶體更改
為 512MB,可以輸入:
#echo ’512 * 1024 * 1024’|bc >
proc/sys/kernel/shmmax
檢驗該更改是否生效:
# ’pcs -lm | grep ’max seg size’
max seg size (kbytes) = 524288
若要避免每次重新啟動後必須進行此更改
修改/etc/sysctl.conf檔案,會後一行加入kernel.shmmax=128*1024*1024(128M)記憶體數(以位元組為單位).
(6) 在安裝Sybase資料庫前,首先備份/etc/ld.so.conf:
cp /etc/ld.so.conf /etc/ld.so.conf.sybase
原因請參考其他資料
(7) SYBASE 註冊
用sybase使用者登陸
$ /opt/Sybase-12.5/SYSAM/bin/startd.sh $SYBASE/SYSAM
$ cd /opt/Sybase-12.5/SYSAM
$ lmgr
輸入:
• 序號
• 功能名
• 功能計數
• 軟體版本
• 授權碼
Adaptive Server 軟體包中提供的認證資訊,列印在“Sybase 軟體資
產管理認證”中。
輸入了全部許可證以後,單擊“完成”!
(windows2k中的認證資訊應該也可以用在sybase12.5 for linux, 大家可以試一下 )
檢驗軟體是否在運行:
當lmgrd 精靈啟動時,它將自動啟動SYBASE精靈。要檢驗許可
證管理軟體是否運行在系統上。使用:
$SYBASE/SYSAM-1_0/bin/lmutil lmstat -c
繼續安裝或啟動 Adaptive Server 前,先確認 lmgrd 和 SYBASE 在運行,
即“up”。
注意:為了保證系統啟動時啟動SySAM(Sybase 軟體資產管理器)許可機制
在:/etc/init.d/rc.local中加入:
/opt/Sybase-12.5/SYSAM/bin/startd.sh /opt/Sybase-12.5/SYSAM
(二) install ASE12.5
用sybase使用者登陸(重現啟動機器後)
(1) 選用字元方式
--編輯源檔案(/init/sample_resourde_files/srvbuild.adaptive_server.rs,
/init/sample_resourde_files/srvbuild.backup_server.rs)
將源檔案拷貝到備用目錄/usr/中:
$cp /init/sample_resourde_files/srvbuild.adaptive_server.rs /usr/ase.rs
$cp /init/sample_resourde_files/srvbuild.adaptive_server.rs /usr/backup.rs
編輯ase.rs,backup.rs
--運行源檔案
$ cd /opt/sybase-12.5/bin
$srvbuildres -r /opt/sybase-12.5 /usr/ase.rs
$srvbuildres -r /opt/sybase-12.5 /usr/backup.rs
(2)在X-Windows中使用asecfg工具配置ASE產品
1、用sybase使用者登入X-Windows,執行sybase安裝目錄(/opt/sybase-12.5/bin/)
#asecfg
選擇Build New Servers。
注意:運行asecfg , 可能會出現錯誤資訊:
Error occurred during initialization of VM
Unable to load native library:
/opt/Sybase-12.5/jre/lib/i386
/libjava.so symbol _libc_wait, version GLIBC_2.0 not
defined in file libc.so.6 with link time reference
為瞭解決 _libc_wait 符號問題,從 http://metalink.oracle.com/ 下載補丁
p3006854_ 9204_LINUX.zip。
為了應用這個補丁,可以運行:
$su – root
#unzip p3006854_9204_LINUX.zip
#cd 3006854
[root@www 3006854]# ls
README.txt rhel3_pre_install.sh
[root@www 3006854]# sh rhel3_pre_install.sh
或者
#rpm –ivh compat-libcwait-2.0-2.i386.rpm
2、在srvbuild視窗中,選擇要安裝Server類型。我把四種Server都選上。
3、給Server命名。我將Adaptive Server命名為www,相應地,Backup Server自動命名為www_back,Monitor Server命名為www_mon,XP Server命名為www_XP。點擊OK按鈕,進入各Server的配置過程。
4、配置Adaptive Server。填寫或選擇以下內容:
Master device path(主裝置路徑):$SYBASE/data/master.dat
Master device size(MB)(主裝置大小):100
Master database size(MB)(主要資料庫大小):60
Sybsystemprocs device path(系統預存程序裝置路徑): $SYBASE /data /systemprocs.dat
Sybsystemprocs device size(MB)(系統預存程序裝置大小):60
Sybsystemprocs database size(MB)(系統預存程序資料庫大小):60
Error log path(錯誤記錄檔路徑):/opt/sybase-12.5/install/www.log
Transport type(傳輸協議類型):tcp
Host name(主機名稱):192.168.9.1
Port number(監聽連接埠號碼):5000
點擊OK按鈕,進入下一配置過程。
5、配置Backup Server。填寫或選擇以下內容:
Error log path:/opt/sybase-12.5/install/www_back.log
Tape configuration file:/opt/sybase-12.5/backup_tape.cfg
Language:(不填)
Character set:(不填)
Maximum number of network connections:25
Maximum number of server connections:100
Transport type:tcp
Host name:192.168.9.1
Port number:5001
點擊OK按鈕,進入下一配置過程。
6、配置Monitor Server。填寫或選擇以下內容:
Maximum number of connections:5
Error log path:/opt/sybase-12.5/install/www_mon.log
Configuration file path:/opt/sybase-12.5/install/www_mon.cfg
Share memory directory:/opt/sybase-12.5
Transport type:tcp
Host name:192.168.9.1
Port number:5002
點擊OK按鈕,進入下一配置過程。
7、配置XP Server。填寫或選擇以下內容:
Transport type:tcp
Host name:192.168.9.1
Port number:5003
點擊Build Server按鈕,開始建立Server,這時出現一個視窗,你可以看到整個建立過程。如果有顯示以下類似資訊,表示建立Server成功:
……
Server www was successfully created.
Done.
8、安裝成功後要做的幾件事。首先在Linux控制台模式下以sybase使用者登入。
①確認Server是否在運行。使用$SYBASE/install/下的showserver或rc.sybase status命令($SYBASE表示sybase的安裝目錄),應該可看見系統有幾個sybase相關進程。或者用$SYBASE/bin/下的 isql -Usa -P -Swww命令來登入Server,應該可以看見isql的提示符“1>”,再鍵入exit就可以退出了。
②設定sa帳戶的口令。裝好Server後,系統自動建立sa使用者,即系統管理員,對整個系統擁有最大的權力,但這時sa的口令是空的,必須馬上更改。
$SYBASE/bin/isql -Usa -P -Swww
1>sp_password null,新口令
2>go
③關閉主裝置預設狀態。否則使用者的資料庫會安裝在主裝置上。
$SYBASE/bin/isql -Usa -Swww
Password:(輸入新口令)
1>sp_diskdefault master,defaultoff
2>go
④rh的hosts檔案default儲存的主機名稱對應的都是127.0.0.1,這樣就會產生sybase的使用者無法通過網路連接的問題,只需要在hosts的第一行添加
hostname 192.168.9.1就可,記住不可以在sybase運行時更改!還有就是注意firewall是否已經開放sybase連接埠(使用 setup,iptable更改)
⑤ 有使用者總是說isql在rh下一定要帶-S參數的話是DSQUERY沒有設定所致,只需要export DSQUERY=www可以添加到.profile!
9 、手工起動資料庫
$SYBASE/install/startserver -f $SYBASE/install/RUN_www > /dev/null
$SYBASE/install/startserver -f $SYBASE/install/RUN_www_back >/dev/null
或$SYBASE/install/rc.sybase start
停止資料庫
$SYBASE/install/rc.sybase stop
資料庫狀態查看
$SYBASE/install/rc.sybase status
注意:在Red Hat LINUX 9.0或Fedora core 4中,由於我裝的是預設中文(root使用者),且語言只有中文zh_CN.GB18030/UTF-8,使得SYBASE 資料庫起不來,提示環境變數中langue= zh_CN.GB18030或zh_CN.UTF-8在 $SYBASE/locales/locales.dat中不存在。 我在locales.dat中加了一行就好了,並做了相應的修改.
[linux]
locale = zh_CN.GB18030,us_english,cp850
locale = zh_CN.UTF-8,us_english,cp850
locale = ENGLISH, us_english, cp850
locale = en, us_english, cp850
locale = en_US, us_english, cp850
locale = us_EN, us_english, cp850
locale = C, us_english, cp850
locale=default,us_english,cp850
10 、設定語言 、字元和排序
安裝完成後,回到sybsetup主視窗
選擇Localize Adaptive Server,並選擇Adaptive Server名稱,按OK繼續
選擇安裝語言為Us English,
字元集為Code Page 850,
排序方式為Altername dictionary sorting with case and accent insensitivity
或
運行$SYBASE/bin/sqlloc設定
Languages=“us_english”
Code =“cp850”
Sort order=“Altername dictionary sorting with case and accent insensitivity”
在用戶端也要設定c:\sybase\locales\locales.dat中
[linux]最上和最下一行把iso_1 改成cp850這樣一來,在用戶端才能顯示中文.
11、編輯並修改/opt/sybase-12.5/SYBSERVER.cfg
(其中SYBSERVER為SYBASE伺服器名稱)
max network packet size = 2048
default network packet size = 1024
number of user connections = 100
number of open indexes = 2000
number of open objects = 1000
number of locks = 150000
修正sybase 配置
用isql登陸
sp_configure “max mem”,100M
go
sp_cacheconfig “default data cache”,“60M”
go
12、通過Sybase Central 串連到Adaptive Server
Sybase Central 提供了一個圖形化使用者介面,在此可執行Adaptive Server 管
理任務。Sybase Central 介面非常類似於Windows資源管理員,所有服務
器的分層列表在左窗格中顯示,選定伺服器的細節資訊顯示在右窗格。
要選擇一個伺服器,用滑鼠在左窗格中單擊它即可。
若要啟動 Sybase Central:
$SYBASE/sybcent32/scjview
在左窗格中,單擊要已連線的服務器。
“登入”視窗中,輸入系統管理員的使用者名稱和口令。
必須以系統管理員登入來.
注意:運行bash-3.00$ ./scjview 出錯資訊如下:
\nStarting Sybase Central Java Edition (displaying to ) ...\n
/opt/sybase-12.5/shared-1_0/jre-1_1/lib/i686/green_threads/libzip.so: symbol errno, version GLIBC_2.0 not defined in file libc.so.6 with link time reference (libzip.so)
Unable to initialize threads: cannot find class java/lang/Thread
Could not create Java VM
mv: cannot stat `/tmp/scj_7784.log': No such file or directory
\n
The following error(s) occured while running Sybase Central
-----------------------------------------------------------
cat: /tmp/scj_error.log: No such file or directory
\nError(s) have been written to the file: /tmp/scj_error.log\n
解決方案: vi $SYBASE/.profile 加入:
#如果核心是2.6.*以上,把LD_ASSUME_KERNEL設成2.4.19
export LD_ASSUME_KERNEL=2.4.19
export THREADS_FLAG=native
然後./scjview 後:
註冊ase外掛程式: $SYBASE/ASEP-1_0/ASEPlugin.jar後,就可以管理資料庫了,可以配置和建立資料庫!
13、建立資料庫
①建立資料庫裝置(Device):Sybase的資料庫和交易記錄都是建立在資料庫裝置上的,它可以是物理磁碟、磁碟分割或作業系統檔案。使用disk init命令建立資料庫裝置,使用diskdefault命令指定預設資料庫裝置,並且可以指定多個預設資料庫裝置。建立資料庫時不指定資料庫裝置,則在預設資料庫裝置上建立。例如執行命令:
$SYBASE/bin/isql -Usa -Swww
Password:(輸入口令)
1>disk init name = "userdev", &&裝置名稱字為userdev
2>physname = "/db/sybsystem/userdev.dat", &&裝置檔案名稱為userdev.dat
3>vdevno = 3, &&裝置號為3
4>size = 51200 &&大小為100M(51200塊,1塊=2k)
5>go
1>sp_diskdefault userdev,defaulton &&指定為預設資料庫裝置
2>go
②建立資料庫(Database)例子:
1> disk init
2> name = "branch60",
3> physname = "/opt/sybase-12.5/data/branch60.dat",
4> vdevno = 4,size = 102400 (200M)
5> go
-----------------
1> disk init
2> name = "branch60_log",
3> physname = "/opt/sybase-12.5/data/branch60_log.dat",
4> vdevno = 5,size = 51200 (100M)
5> go
---------------------------------------
1>create database branch60
2>on branch60 = 200
3>log on branch60_log = 100
4>go
CREATE DATABASE: allocating 102400 logical pages (200.0 megabytes) on disk
'branch60'.
CREATE DATABASE: allocating 51200 logical pages (100.0 megabytes) on disk
'branch60_log'.
(三)安裝文法資料庫和樣本資料庫
先建立一個放置文法資料庫和樣本資料庫的資料庫裝置,大小為10M,並設定為預設狀態。
$SYBASE/bin/isql -Usa -Swww
Password:(輸入口令)
1>disk init name = "sybsyntaxdev",
2>physname = “/db/sybsystem/sybsyntaxdev.dat”,
3>vdevno =3,size = 5120
4>go
1>sp_diskdefault sybsyntaxdev,defaulton
2>go
1、安裝sybsyntax文法資料庫。這是通過$SYBASE/scripts/ins_syn_sql這個指令檔來安裝的。但 ins_syn_sql需要修改一下,去掉開頭用來指定預設資料庫裝置的一段語句,加入“create database sybsyntax”一句,然後執行以下命令:
$SYBASE/bin/isql -Usa -P口令 -Swww -i $SYBASE/scripts/ins_syn_sql
文法資料庫安裝好後,可用系統預存程序sp_syntax查詢Transact-SQL語言、系統預存程序、Sybase工具的使用協助。例如要查詢select命令的用法:
$SYBASE/bin/isql -Usa -Swww
Password:(輸入口令)
1>sp_syntax "select"
2>go
2、安裝pubs2、pubs3樣本資料庫。技術文檔中的例子就是來自樣本資料庫。執行以下命令:
$SYBASE/bin/isql -Usa -P口令 -Swww -i $SYBASE/scripts/installpubs2
$SYBASE/bin/isql -Usa -P口令 -Swww -i $SYBASE/scripts/installpubs3
(四)安裝ASE補丁
據Sybase公司講,EBF10492.tar.gz修正了ASE12.5最新已知的一些問題。
1、先關閉Server。
$SYBASE/install/rc.sybase stop 或
$SYBASE/bin/isql -Usa -Swww
Password:(輸入口令)
1>shutdown www_back &&關閉Backup Server
2>go
1>shutdown &&關閉Adaptive Server
2>go
$SYBASE/bin/isql -Usa -P口令 -Swww_mon
1>sms_shutdown &&關閉Monitor Server
2>go
2、在Linux控制台模式下以root使用者登入。
#mkdir /tmp/ebf &&建立放置補丁的臨時目錄
#mount -t iso9660 /dev/cdrom /mnt/cdrom &&裝載光碟片或者就拷到硬碟中
#cp /mnt/cdrom/EBF10492.tgz /tmp/ebf &&將補丁複製到臨時目錄
#cd /tmp/ebf
#tar -zxf EBF10492.tar.gz
#rpm -ivh /tmp/ebf/ebf10492/RPMS/sybase-SWR-10492-1.i386.rpm
退出root使用者登入,以sybase使用者登入。由於打了補丁後資料庫不能啟動,需執行重新$SYBASE/install/sybinstalll.sh,重新設定sybase使用者對$SYBASE的讀寫權限。
做一個shell指令碼ebfsetup(根據ebf說明檔案做下面的指令碼)
#!/bin/sh
#filename : ebfsetup
#echo "setup sybase ebf10492.tar.gz..."
#rpm -ivh /tmp/ebf/ebf10492/RPMS/*.rpm
echo "start sybase"
$SYBASE/install/rc.sybase start
echo "sybase status"
rc.sybase status
echo "sybase install script...1"
isql -Usa -Ppassword -Stimes -n -i$SYBASE/scripts/installmaster -o m.txt
echo "sybase install script...2"
isql -Usa -Ppassword -Stimes -n -i$SYBASE/scripts/installcommit -o commit.txt
echo "sybase install script...3"
isql -Usa -Ppassword -Stimes -n -i$SYBASE/scripts/installdbccdb -o db.txt
echo "sybase install script...4"
isql -Usa -Ppassword -Stimes -n -i$SYBASE/scripts/installsecurity -o security.txt
echo "sybase install script...5"
isql -Usa -Ppassword -Stimes -n -i$SYBASE/scripts/instmsgs.ebf -o instmsgs.txt
echo "sybase install script.finish…."
3、以sybase使用者登入,啟動Adaptive Server。
$SYBASE/install/rc.sybase start 或
$SYBASE/install/startserver -f $SYBASE/install/RUN_www > /dev/null
$SYBASE/install/startserver -f $SYBASE/install/RUN_www_back > /dev/null
(五)
1、實現開機時自動裝載Sybase資料庫
原先要使Sybase SQL Server啟動,一般需要先以sybase使用者登入,
要實現linux系統啟動時就能在後台裝載Sybase的功能,我們可
$SYBASE/install /sybinstall.sh
#chkconfig sybase on
在/etc/rc5.d/S85sybase/etc/init.d/Sybase
相當:ln –sf /etc/init.d/sybase /etc/rc5.d/S85sybase
再在服務中設為自啟動就可以了
2、實現關機時自動卸載Sybase資料庫
為保證Sybase系統的正常運行,每次在關閉linux系統時要先結束Sybase SQL Server 的服務進程
#chkconfig sybase on 後,自動在/etc/rc0.d/K15sybase /etc/init.d/sybase
3、Sybase庫備份技巧
一般對Sybase庫進行備份都用磁帶作介質進行,但還有一更好的方法,即先備份到硬碟上然後經壓縮,拷貝到磁帶上,這樣便於恢複,多了一個備份拷貝,同時也節省了備份時間。具體實現步驟如下:
(1)建立磁碟備份裝置
運行isql,以sa進入Sybase系統,運行如下內容:
sp_addumpdevice "disk",disk_bkupdevice ,/tmp/dumpdb ,2
go
這樣就在Sybase中建立了一個名為“disk_bkupdevice”的備份裝置,它對應Unix系統下的/tmp/dumpdb檔案。
(2)建立備份使用者
以root身份進入linux系統,建立使用者backupdb,並歸屬於sybase組。
(3)修改相關檔案
在/home/backupdb/.bash_profile中添加以下語句:
SYBASE=/opt/sybase –12.5
DSQUERY=www
PATH=$PATH:$SYBASE/bin
export SYBASE DSQUERY PATH
rm /tmp/backupdb.Z
echo"開始備份SYBASE資料庫…"
isql -Usa -Ppassword -ibackup.sql > /tmp/dbbackup.log
echo"硬碟備份完成,正在壓縮備份的資料檔案…"
compress /tmp/backupdb
echo "正在將備份的壓縮資料拷入磁帶…"
tar c8v /tmp/backupdb.Z
echo “備份完成!”
其中“PASSWORD”為sa使用者的口令,backup.sql是一簡單的文字檔,內容如下:
dump database db_main to disk_bkupdevice
go
備份的執行日誌被記錄在/tmp/dbbackup.log中,當然系統管理員也可通過查看$SYBASE/install/backup.log
獲知備份日誌。
這種備份方法要求硬碟空間足夠大,這點請系統管理員在為linux建分區時特別注意。
(4) 還有二種方法:
(A)bcp備份
備份目錄是/export
$SYBASE/bin/bcp databasename..tablename –out /export/tablename.txt –Usa –Ppassword –Swww –c
(B)dump備份
isql –Usa –Ppassword –Swww -ibackup.sql >/dev/null
Backup.sql:
Dump tran databasename to “/export/db_log.dat“ with {no_log |truncate_only|no_truncate}
Go
Dump database databasename to “/export/db_1.1”
Stripe on “/export/db_1.2”
Stripe on “/export/db_1.3”
Go
Exit
關於定時備份
crontab 中可以這樣寫:
00 23 * * * /opt/Sybase-12.5/ASE-12_5/bin/DUMPDB.sh >>//opt/Sybase-12.5/ASE-12_0/install/DUMPDB.out
放那裡都無所謂,一個dumpdb.sh的例子:
#rh linux
#!/bin/sh
export SYBASE_FTS=FTS
export SYBASE_OCS=OCS
export SYBASE_ASE=ASE
export SYBASE_SYSAM=SYSAM
export LM_LICENSE_FILE=${SYBASE}/${SYBASE_SYSAM}/licenses/license.dat:$LM_LICENSE_FILE
export LD_LIBRARY_PATH=${SYBASE}/${SYBASE_ASE}/lib:${SYBASE}/${SYBASE_FTS}/lib:${SYBASE}/${SYBASE_OCS}/lib:${SYBASE}/SQLRemote/lib:$LD_LIBRARY_PATH
export PATH="${SYBASE}/${SYBASE_ASE}/bin:${SYBASE}/${SYBASE_ASE}/install:${SYBASE}/${SYBASE_OCS}/bin:${SYBASE}/${SYBASE_SYSAM}/bin:${SYBASE}/shared/jre/bin:$PATH"
echo"開始備份SYBASE資料庫…"
su - sybase -c "isql -Swww -Usa -P " dump database branch60 to "/export/dump.01"
stripe on "/export/dump.02"
stripe on "/export/dump.03"
go
!
echo"硬碟備份完成,正在壓縮備份的資料檔案…"
compress /export/dump*
echo “備份完成!”
這裡是一個典型的指令碼,用於實現full備份!
#!/bin/sh
# *************************************************************************
#for full backup after excuted dbcc operation
# *************************************************************************
export SYBASE_FTS=FTS
export SYBASE_OCS=OCS
export SYBASE_ASE=ASE
export SYBASE_SYSAM=SYSAM
LM_LICENSE_FILE=${SYBASE}/${SYBASE_SYSAM}/licenses/license.dat:$LM_LICENSE_FILE
export LM_LICENSE_FILE
LD_LIBRARY_PATH=${SYBASE}/${SYBASE_ASE}/lib:${SYBASE}/${SYBASE_FTS}/lib:${SYBASE}/${SYBASE_OCS}/lib:${SYBASE}/SQLRemote/lib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
PATH="${SYBASE}/${SYBASE_ASE}/bin:${SYBASE}/${SYBASE_ASE}/install:${SYBASE}/${SYBASE_OCS}/bin:${SYBASE}/${SYBASE_SYSAM}/bin:${SYBASE}/shared/jre/bin:$PATH"
Export PATH
dump="www"
ymd=`date +%y%m%d`
bk_db="branch60"
cd /export
#mkdir $ymd
LOG="/export/backup/$ymd"
#mkdir $LOG
#touch $LOG/backup.log
echo $ymd >$LOG/backup.log
echo "\n11*************************" >>$LOG/backup.log
echo "dbcc Check database $bk_db..." >>$LOG/backup.log
d1=`date`
su - sybase -c "isql -Swww -Usa -P "$LOG/dbcc-$ymd.log 2>&1
go
dbcc checkdb($bk_db)
go
DBCC
echo “dbcc 完成!”
d1=`date`
echo $d1,`date` >>$LOG/backup.log
echo "\n22*************************" >>$LOG/backup.log
d1=`date`
dump_file="/export/backup/$dump-$ymd.dat"
echo "Dump database $bk_db to " $dump_file >>$LOG/backup.log
touch $LOG/dump-$ymd.log
echo"開始備份SYBASE資料庫…"
su - sybase -c "isql -Swww -Usa -P " $LOG/dump-$ymd.log 2>&1
dump database $bk_db to "$dump_file"
go
DUMP
#dump database yourdatabasename to "/export/backup/dump.01"
#stripe on "/export/backup/dump.02"
#stripe on "/export/backup/dump.03"
echo $d1,`date` >>$LOG/backup.log
echo "\n33*************************" >>$LOG/backup.log
echo “備份完成!”
請根據自身系統,調試後再使用!
至於備份日誌的指令碼與此類似,自己根據sybase的相關文法,稍加變動即可!
(5)恢複備份目錄是/export
①bcp恢複$SYBASE/bin/bcp databasename..tablename –in /export/tablename.txt –Usa –Ppassword –Swww –c -b
②load恢複
$SYBASE/bin/isql –Usa –Ppassword –Swww -irestore.sql >/dev/null
Restore.sql:
load database databasename from “/export/db_1.1”
Stripe on “/export/db_1.2”
Stripe on “/export/db_1.3”
Go
Online database databasename
go
Checkpoint
Go
Sp_dboption databasename,’single user’,false
Go
Use databasename
Go
Checkpoint
Go
Dbcc checkdb(databasename)
Go
注意:
Bcp指令碼的產生: select.sql
Set nocount on
Use pubs2
Go
Select “bcp”+””+databasename+”..”+name+””+”-out” +””+”/path/”+name+”.txt”+”-Usa –Ppassword -Swww -c” from sysobjects where type=‘U’
或
Select “bcp”+””+databasename+”..”+name+””+”-in” +””+”/path/”+name+”.txt”+”-Usa –Ppassword -Swww –c -b” from sysobjects where type=‘U’
Isql –Usa –P –Swww –b –iselect.sql –o bcpout
Chmod +x bcpout