DB2/backup and restore tool
をテンプレートにして作成
Search in
this wiki
and
or
[
トップ
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
開始行:
DB2のデータを取り扱う場合、"backup"だと別のインスタンス...
こうした作業負荷を多少軽減するスクリプトを書いてみた。...
*** export helper for AIX [#uc505b77]
&ref(export_tables.ksh);
#!/bin/ksh
#
# DBのデータを、テーブル毎に、exportしてgzip圧縮するスク...
# 引数にテーブル名(スペース区切り)を指定した場合は、それ...
# 引数なし実行の場合は、全てのテーブルが対象。
#
# ※ DB2操作可能ユーザ(db2inst1等)が実行すること。
#
# 2GB以上のファイルはgzip圧縮できないため、splitコマンド...
# 分割したファイルは、UNIXのcatコマンドや、Windowsのcopy...
#
# @author K.Jomura ( kazuhiko@jomura.net http://jomura.n...
# @version 2011/05/20
# 対象データベース名
DATABASE_NAME=Sample
# 対象テーブルスキーマ名(大文字)
SCHEMA_NAME=DB2INST1
# 以下、編集の必要なし
db2 connect to $DATABASE_NAME
if [ $# -ne 0 ]; then
set -A tables $*
else
tables=`db2 -x "select tabname from syscat.tables wher...
fi
for tname in ${tables[*]}
do
[ -f $tname.del ] && rm -f $tname.del
[ -f $tname.del.gz ] && rm -f $tname.del.gz
echo "Exporting $tname ..."
db2 EXPORT TO $tname.del OF DEL MODIFIED BY codepage=1...
[ -f $tname.del ] || exit 1
fsize=`ls -l $tname.del | tr -s ' ' | cut -d ' ' -f5 -`
echo "Compressing $tname.del($fsize Byte)..."
if [ $fsize -gt 2097152000 ]
then
echo " File size 2000 MB over. Splitting..."
rm -f $tname.del.split.*
split -b 1800m $tname.del $tname.del.split.
rm -f $tname.del
gzip $tname.del.split.*
else
gzip $tname.del
fi
done
db2 connect reset
*** export helper for Windows [#u2610a43]
&ref(export_tables.bat); ※ 実行には、[[gzip.exe:http://...
*** load helper for Windows [#f7e30061]
&ref(load_tables.bat); ※ 実行には、[[gzip.exe:http://gn...
@echo off
::
:: DBのgzip圧縮されたデータファイルを、テーブル毎にload...
:: カレントフォルダにデータファイルがあるテーブルのみを...
:: 「入れ替えたいテーブルのデータだけをカレントフォルダ...
:: もしくは「入れ替えたいテーブル名を引数に指定(9ヶまで)...
::
:: ※ DBコマンドウィンドウで、DB2操作可能ユーザ(db2admin...
:: ※ 実行には、gzip.exeが必要
:: gzip.exe : http://gnuwin32.sourceforge.net/package...
::
:: @author K.Jomura ( kazuhiko@jomura.net http://jomura....
:: @version 2011/05/20
:: 対象データベース名
set DATABASE_NAME=Sample
:: 対象テーブルスキーマ名(大文字)
set SCHEMA_NAME=DB2ADMIN
:: 以下、編集の必要なし
setlocal enabledelayedexpansion
db2 connect to %DATABASE_NAME%
if not "%*" == "" (
set TABLES=%*
) else (
set TABLES=
db2 -x -z_table.list select tabname from syscat.tables ...
for /f %%L in (_table.list) do (
set TABLES=!TABLES! %%L
)
del _table.list
)
for %%i in (%TABLES%) do @call :load %%i
db2 connect reset
endlocal
exit /b
:load
if exist %1.del.gz (
echo Uncompressing %1.del...
gzip -dk %1.del.gz
echo Loading %1 ...
db2 load from %1.del of DEL REPLACE INTO %1 NONRECOVER...
del %1.del
exit /b
)
if exist %1.del.split.aa.gz (
echo Uncompressing %1.del.split.*...
gzip -dk %1.del.split.*.gz
ren %1.del.split.*.gz %1.del.splited.*.gz
copy /b %1.del.split.* %1.del
del %1.del.split.*
echo Loading %1 ...
db2 load from %1.del of DEL REPLACE INTO %1 NONRECOVER...
del %1.del
ren %1.del.splited.*.gz %1.del.split.*.gz
exit /b
)
終了行:
DB2のデータを取り扱う場合、"backup"だと別のインスタンス...
こうした作業負荷を多少軽減するスクリプトを書いてみた。...
*** export helper for AIX [#uc505b77]
&ref(export_tables.ksh);
#!/bin/ksh
#
# DBのデータを、テーブル毎に、exportしてgzip圧縮するスク...
# 引数にテーブル名(スペース区切り)を指定した場合は、それ...
# 引数なし実行の場合は、全てのテーブルが対象。
#
# ※ DB2操作可能ユーザ(db2inst1等)が実行すること。
#
# 2GB以上のファイルはgzip圧縮できないため、splitコマンド...
# 分割したファイルは、UNIXのcatコマンドや、Windowsのcopy...
#
# @author K.Jomura ( kazuhiko@jomura.net http://jomura.n...
# @version 2011/05/20
# 対象データベース名
DATABASE_NAME=Sample
# 対象テーブルスキーマ名(大文字)
SCHEMA_NAME=DB2INST1
# 以下、編集の必要なし
db2 connect to $DATABASE_NAME
if [ $# -ne 0 ]; then
set -A tables $*
else
tables=`db2 -x "select tabname from syscat.tables wher...
fi
for tname in ${tables[*]}
do
[ -f $tname.del ] && rm -f $tname.del
[ -f $tname.del.gz ] && rm -f $tname.del.gz
echo "Exporting $tname ..."
db2 EXPORT TO $tname.del OF DEL MODIFIED BY codepage=1...
[ -f $tname.del ] || exit 1
fsize=`ls -l $tname.del | tr -s ' ' | cut -d ' ' -f5 -`
echo "Compressing $tname.del($fsize Byte)..."
if [ $fsize -gt 2097152000 ]
then
echo " File size 2000 MB over. Splitting..."
rm -f $tname.del.split.*
split -b 1800m $tname.del $tname.del.split.
rm -f $tname.del
gzip $tname.del.split.*
else
gzip $tname.del
fi
done
db2 connect reset
*** export helper for Windows [#u2610a43]
&ref(export_tables.bat); ※ 実行には、[[gzip.exe:http://...
*** load helper for Windows [#f7e30061]
&ref(load_tables.bat); ※ 実行には、[[gzip.exe:http://gn...
@echo off
::
:: DBのgzip圧縮されたデータファイルを、テーブル毎にload...
:: カレントフォルダにデータファイルがあるテーブルのみを...
:: 「入れ替えたいテーブルのデータだけをカレントフォルダ...
:: もしくは「入れ替えたいテーブル名を引数に指定(9ヶまで)...
::
:: ※ DBコマンドウィンドウで、DB2操作可能ユーザ(db2admin...
:: ※ 実行には、gzip.exeが必要
:: gzip.exe : http://gnuwin32.sourceforge.net/package...
::
:: @author K.Jomura ( kazuhiko@jomura.net http://jomura....
:: @version 2011/05/20
:: 対象データベース名
set DATABASE_NAME=Sample
:: 対象テーブルスキーマ名(大文字)
set SCHEMA_NAME=DB2ADMIN
:: 以下、編集の必要なし
setlocal enabledelayedexpansion
db2 connect to %DATABASE_NAME%
if not "%*" == "" (
set TABLES=%*
) else (
set TABLES=
db2 -x -z_table.list select tabname from syscat.tables ...
for /f %%L in (_table.list) do (
set TABLES=!TABLES! %%L
)
del _table.list
)
for %%i in (%TABLES%) do @call :load %%i
db2 connect reset
endlocal
exit /b
:load
if exist %1.del.gz (
echo Uncompressing %1.del...
gzip -dk %1.del.gz
echo Loading %1 ...
db2 load from %1.del of DEL REPLACE INTO %1 NONRECOVER...
del %1.del
exit /b
)
if exist %1.del.split.aa.gz (
echo Uncompressing %1.del.split.*...
gzip -dk %1.del.split.*.gz
ren %1.del.split.*.gz %1.del.splited.*.gz
copy /b %1.del.split.* %1.del
del %1.del.split.*
echo Loading %1 ...
db2 load from %1.del of DEL REPLACE INTO %1 NONRECOVER...
del %1.del
ren %1.del.splited.*.gz %1.del.split.*.gz
exit /b
)
ページ名: