UJP - 技術情報

Life is fun and easy!

不正IP報告数

Okan Sensor
 
メイン
ログイン
ブログ カテゴリ一覧

     

ASE 12.5 for Linux Install 〜Step 16 バックアップシェル〜

ASE 12.5 for Linux Install

〜Step 16 バックアップシェルの作成〜


0.更新履歴

  • 2002.03.12 新規作成
  • 2002.04.11 誤字修正

1.はじめに

 このドキュメントでは,SybaseASE12.5 for Linuxで,バックアップを行うシェルを作成する.

2.前提事項

 ここで紹介する方法では,次のような前提事項がある.

  • 毎日1回.すべてのデータベースのダンプを取る.
    • たとえば,masterデータベースは,特定の処理を実行した場合にのみダンプを取得すればよいが,そうしていると忘れちゃって面倒なので,毎日取る.
  • 1時間に1回,トランザクションダンプを取得する.
    • ラストチャンススレッショルドは利用しない.
  • それぞれのバックアップジョブは,crontabで定義し,cronを使用して自動実行する.

 なお,ここで紹介するすべてのファイルは,"/opt/sybase-12.5/bakabon"に保存する事とする.

3.フルダンプの作成

3.1.フルダンプ用のSQL文の作成

  • 現在存在しているデータベースを確認する.
1> sp_helpdb
2> go
 name                     db_size       owner      dbid
         created
         status
 ------------------------ ------------- -----------------
         --------------
         ----------------------------------------------------------
-----
 BAKABONDB                  1536.0 MB bakabon           4
         Mar 11, 2002
         select into/bulkcopy/pllsort
 master                         64.0 MB sa              1
         Mar 08, 2002
         no options set
 model                           2.0 MB sa              3
         Mar 08, 2002
         no options set
 sybsystemdb                     2.0 MB sa          31513
         Mar 08, 2002
         no options set
 sybsystemprocs                100.0 MB sa          31514
         Mar 08, 2002
         trunc log on chkpt
 tempdb                        515.0 MB sa              2
         Mar 11, 2002
         select into/bulkcopy/pllsort, trunc log on chkpt

(1 row affected)
(return status = 0)
1>
  • tempdbは,バックアップ取らなくて良いので,それ以外のデータベースをダンプするために,次のようなSQL文を書く.
FullDump.sql
bash$ cat FullDump.sql
dump database master to '/opt/sybase-12.5/database/dump/master.dmp'
go
dump database model to '/opt/sybase-12.5/database/dump/model.dmp'
go
dump database sybsystemprocs to '/opt/sybase-12.5/database/dump/sybsystemprocs.dmp'
go
dump database sybsystemdb to '/opt/sybase-12.5/database/dump/sybsystemdb.dmp'
go
dump database BAKABONDB to '/opt/sybase-12.5/database/dump/BAKABONDBfull.dmp'
go
bash$

3.2.実行用シェルの作成

  • cronで自動実行する事を前提として,次のようなシェルスクリプトを作成する.
syb_fulldump.sh
bash$ cat syb_fulldump.sh
SYBASE=/opt/sybase-12.5/                                     ; export SYBASE
SYVASE_ASE=ASE                                               ; export SYBASE_ASE
SYBASE_OCS=OCS                                               ; export SYBASE_OCS
SYBPLATFORM=linux                                            ; export SYBPLATFORM
LD_LIBRARY_PATH=$SYBASE/ASE/lib                              ; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sybase-12.5/OCS/lib:   ; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sybase-12.5/lib:       ; export LD_LIBRARY_PATH
LC_ALL=default                                               ; export LC_ALL
unset LANG
PATH=.:$PATH:                                                ; export PATH
PATH=$PATH:$SYBASE/ASE/bin:                                  ; export PATH
PATH=$PATH:$SYBASE/OCS/bin:                                  ; export PATH
PATH=$PATH:$SYBASE/ASE/install:                              ; export PATH
PATH=$PATH:$SYBASE/bakabon:                                  ; export PATH

isql -Udumpuser -Pdumpusers -SBAKABON -i/opt/sybase-12.5/bakabon/FullDump.sql \
-o/opt/sybase-12.5/database/log/FullDump.log
bash$

3.3.crontabにsyb_fulldump.shを登録

  • crontabに,次のようにダンプを登録する.
bash$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.5954 installed on Tue Mar 12 12:07:56 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0 4 * * * /opt/sybase-12.5/bakabon/syb_fulldump.sh
bash$

4.トランザクションダンプの作成

  • 毎時間実行するという事で,ファイル名に時間を忍び込ませるように,次のような簡単なTransactSQL?を使ってトランザクションダンプ用のSQL文を作成する.
TranDump.sql
bash$ cat TranDump.sql
declare @hourchar char(2)
declare @dumpfilepath char(100)
select @hourchar = convert(char(2),getdate(),8)
select @dumpfilepath = '/opt/sybase-12.5/database/dump/BAKABONDBtran'+ @hourchar + '.dmp'
dump transaction BAKABONDB to @dumpfilepath
go
bash$
  • 同じように,シェルスクリプトも作成する.
syb_trandump.sh
bash$ cat syb_trandump.sh
SYBASE=/opt/sybase-12.5/                                     ; export SYBASE
SYVASE_ASE=ASE                                               ; export SYBASE_ASE
SYBASE_OCS=OCS                                               ; export SYBASE_OCS
SYBPLATFORM=linux                                            ; export SYBPLATFORM
LD_LIBRARY_PATH=$SYBASE/ASE/lib                              ; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sybase-12.5/OCS/lib:   ; export LD_LIBRARY_PATH
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/sybase-12.5/lib:       ; export LD_LIBRARY_PATH
LC_ALL=default                                               ; export LC_ALL
unset LANG
PATH=.:$PATH:                                                ; export PATH
PATH=$PATH:$SYBASE/ASE/bin:                                  ; export PATH
PATH=$PATH:$SYBASE/OCS/bin:                                  ; export PATH
PATH=$PATH:$SYBASE/ASE/install:                              ; export PATH
PATH=$PATH:$SYBASE/bakabon:                                  ; export PATH

isql -Udumpuser -Pdumppass -Sbakabon -i/opt/sybase-12.5/bakabon/TranDump.sql \
-o/opt/sybase-12.5/database/log/TranDump.log
bash$
  • で,crontabに登録する.
bash$ crontab -l
# DO NOT EDIT THIS FILE - edit the master and reinstall.
# (/tmp/crontab.5954 installed on Tue Mar 12 12:07:56 2002)
# (Cron version -- $Id: crontab.c,v 2.13 1994/01/17 03:20:37 vixie Exp $)
0 4 * * * /opt/sybase-12.5/bakabon/syb_fulldump.sh
15 * * * * /opt/sybase-12.5/bakabon/syb_trandump.sh
bash$

5.実行結果を確認してみる

  • ダンプが格納される領域を見てみる.
bash$ pwd
/opt/sybase-12.5/database/dump
bash$
bash$ ls -al
total 62536
drwxrwxr-x    2 sybase   sybase       4096 Mar 12 12:15 .
drwxrwxr-x    9 sybase   sybase       4096 Mar  8 03:23 ..
-rw-rw-r--    1 sybase   sybase    7088128 Mar 12 11:36 BAKABONDBfull.dmp
-rw-rw-r--    1 sybase   sybase     204800 Mar 12 12:15 BAKABONDBtran12.dmp
-rw-rw-r--    1 sybase   sybase    6275072 Mar 12 11:36 master.dmp
-rw-rw-r--    1 sybase   sybase     366592 Mar 12 11:36 model.dmp
-rw-rw-r--    1 sybase   sybase     380928 Mar 12 11:36 sybsystemdb.dmp
-rw-rw-r--    1 sybase   sybase   49616896 Mar 12 11:36 sybsystemprocs.dmp
bash$
  • なんかできている.


広告スペース
Google