トランザクションログデータベースの作成は、Linkexpress Replication optionが提供するシェルスクリプトを実行することによって行います。
作成方法は、まずLinkexpress Replication optionが提供しているシェルスクリプトを実際の運用に合うように修正します。その後、修正したシェルスクリプトを実行します。なお、トランザクションログデータベースの作成の実行時には、Oracleを起動している必要があります。
以下にトランザクションログデータベース作成用シェルスクリプトについて説明します。
シェルスクリプトの格納場所
/opt/FSUNlnkre/ORACLE/SETUP/lxcrtdb.sh
シェルスクリプトの実施内容
レプリケーション管理者用OracleユーザID(スキーマ)の登録
トランザクションログデータベースの作成
TABLESPACE定義
表定義
トリガで使用する外部ファンクション・ライブラリの定義
シェルスクリプトの内容
#!/sbin/sh
#
# ALL RIGHTS RESERVED, COPYRIGHT FUJITSU LIMITED 2000-2005
#
# Linkexpress Replication option
# トランザクションログデータベース作成シェルスクリプト
#
# 機能概要
# トランザクションログデータベースを作成する。
#
# オラクル・バージョン設定 [設定要]
# 指定可能値[ 815 | 816 | 817 | 901 | 920 | 1010 ]
ORACLE_VERSION=920
# ORACLE管理者のユーザIDとパスワード [固定]
SYSTEM_ID=system
SYSTEM_PASS=manager
#レプリケーション用ユーザIDとパスワード [設定要]
USER_ID=REPUSER
USER_PASS=REPUSER
# データベースシステム名指定 [設定要]
ORACLE_SID=orcl
# トランザクションログデータベースの割付1
# TABLESPACEのファイル名(又はローデバイス)とそのサイズ [設定要]
TBLSPACE_FILE1=/repdir1/rep_tblspace_file1.dat
TBLSPACE_SIZE1=50M
# トランザクションログデータベースの割付2 (容量拡張の増分、容量監視目的)
# TABLESPACEのファイル名とそのサイズ [設定は任意]
TBLSPACE_FILE2=/repdir2/rep_tblspace_file2.dat
TBLSPACE_SIZE2=50M
NEXT_SIZE2=5M
MAX_SIZE2=100M
# ユーザID(スキーマ)登録, および権限設定
echo > repwk.sql
echo "CREATE USER $USER_ID IDENTIFIED BY $USER_PASS;" >> repwk.sql
echo "GRANT ANALYZE ANY TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE SESSION TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE TABLESPACE TO $USER_ID; " >> repwk.sql
echo "GRANT ALTER TABLESPACE TO $USER_ID; " >> repwk.sql
echo "GRANT DROP TABLESPACE TO $USER_ID; " >> repwk.sql
echo "GRANT UNLIMITED TABLESPACE TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE ANY TABLE TO $USER_ID; " >> repwk.sql
echo "GRANT ALTER ANY TABLE TO $USER_ID; " >> repwk.sql
echo "GRANT DROP ANY TABLE TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE ANY TRIGGER TO $USER_ID; " >> repwk.sql
echo "GRANT ALTER ANY TRIGGER TO $USER_ID; " >> repwk.sql
echo "GRANT DROP ANY TRIGGER TO $USER_ID; " >> repwk.sql
echo "GRANT SELECT ANY TABLE TO $USER_ID; " >> repwk.sql
echo "GRANT DELETE ANY TABLE TO $USER_ID; " >> repwk.sql
echo "GRANT ALTER DATABASE TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE ANY LIBRARY TO $USER_ID; " >> repwk.sql
echo "GRANT CREATE ANY PROCEDURE TO $USER_ID; " >> repwk.sql
case $ORACLE_VERSION in
901 | 920 | 1010 )
echo "GRANT SELECT ANY DICTIONARY TO $USER_ID; " >> repwk.sql
;;
esac
echo "exit; " >> repwk.sql
sqlplus $SYSTEM_ID/$SYSTEM_PASS @repwk.sql
# TABLESPACE定義
echo > repwk.sql
echo "CREATE TABLESPACE REP_TBLSPACE_1 " >> repwk.sql
echo " DATAFILE '$TBLSPACE_FILE1' SIZE $TBLSPACE_SIZE1 REUSE, " >> repwk.sql
echo " '$TBLSPACE_FILE2' SIZE $TBLSPACE_SIZE2 REUSE " >> repwk.sql
echo " AUTOEXTEND ON NEXT $NEXT_SIZE2 " >> repwk.sql
echo " MAXSIZE $MAX_SIZE2 ; " >> repwk.sql
echo "exit; " >> repwk.sql
sqlplus $USER_ID/$USER_PASS @repwk.sql
# テーブル定義
echo > repwk.sql
echo "CREATE TABLE $USER_ID.REPTABLE( " >> repwk.sql
echo " LOGKIND NUMBER(1), " >> repwk.sql
echo " SQLKIND NUMBER(1), " >> repwk.sql
echo " TBLCODE NUMBER(10), " >> repwk.sql
echo " RENTIME CHAR(20), " >> repwk.sql
echo " PARTNUM NUMBER(8), " >> repwk.sql
echo " PARTNO NUMBER(8), " >> repwk.sql
echo " BEFORE_LL VARCHAR2(4000), " >> repwk.sql
echo " AFTER_LL VARCHAR2(4000), " >> repwk.sql
echo " BEFORE VARCHAR2(4000), " >> repwk.sql
echo " AFTER VARCHAR2(4000)) " >> repwk.sql
echo " TABLESPACE REP_TBLSPACE_1; " >> repwk.sql
echo "exit; " >> repwk.sql
sqlplus $USER_ID/$USER_PASS @repwk.sql
# トランザクションログデータベースINSERT権付与
echo > repwk.sql
echo "GRANT INSERT ON $USER_ID.REPTABLE “ >> repwk.sql
echo “ TO PUBLIC WITH GRANT OPTION; “ >> repwk.sql
echo "exit; " >> repwk.sql
sqlplus $USER_ID/$USER_PASS @repwk.sql
# 外部ファンクション・ライブラリ定義
sqlplus $USER_ID/$USER_PASS @/opt/FSUNlnkre/etc/CREATE_FUNCTION.sql
# 回収・復帰
rm -f repwk.sql
exit 0;シェルスクリプトの説明
ユーザIDの登録について
レプリケーション管理者用のユーザIDを登録します。登録するユーザIDを指定してください。
TABLESPACE定義について
割り付け量
トランザクションログデータベースを割り付けるTABLESPACEの容量を設定します。見積り方法の詳細は“A.2.1 トランザクションログデータベースの容量見積り”を参照してください。
AUTOEXTEND
自動容量拡張の使用可否を設定します。容量不足に備えて自動容量拡張するように指定してください。
TABLE定義について
トランザクションログデータベースを作成します。シェルスクリプトの内容をそのまま実行してください。
外部ファンクション・ライブラリ定義について
シェルスクリプトの内容をそのまま実行してください。
なお、シェルスクリプトのレプリケーション管理者用のユーザIDとパスワードを変更した場合は、外部ファンクション・ライブラリ定義のスキーマ名(REPUSER)を変更してください。