トランザクションログデータベースの作成は、Linkexpress Replication optionが提供するシェルスクリプトを実行することによって行います。
作成方法は、まずLinkexpress Replication optionが提供しているシェルスクリプトを実際の運用に合うように修正します。その後、修正したシェルスクリプトを実行します。なお、トランザクションログデータベースの作成の実行時には、Oracleを起動している必要があります。
以下にトランザクションログデータベース作成用シェルスクリプトについて説明します。
シェルスクリプトの格納場所
/opt/FSUNlnkre/ORACLE/SETUP/lxcrtdb.sh
シェルスクリプトの実施内容
レプリケーション管理者用OracleユーザID(スキーマ)の登録
トランザクションログデータベースの作成
TABLESPACE定義
表定義
トリガで使用する外部ファンクション・ライブラリの定義
シェルスクリプトの内容
#!/sbin/sh
#
# Copyright FUJITSU LIMITED 2000-2012
#
# Linkexpress Replication option
# This is the shell script for creating transaction log database.
#
# Function overview
# Creating the transaction log database.
#
##### Parameter for tuning (START) #####
# Set of Oracle Version [Necessary]
# Definition of Version [ 901 | 920 | 1010 | 1020 | 1110 | 1120 ]
ORACLE_VERSION=1120
# User ID and password for Oracle administrator [Necessary]
SYSTEM_ID=system
SYSTEM_PASS=manager
# User ID and password for Linkexpress Replication [Necessary]
USER_ID=repuser
USER_PASS=repuser
# Allocation I of transaction log database
# File name (or raw device) and the size of TABLESPACE [Necessary]
TBLSPACE_FILE1=/repdir1/rep_tblspace_file1.dat
TBLSPACE_SIZE1=50M
# Allocation II of transaction log database
# (Increment of capacity expansion, Purpose is monitoring of capacity)
# File name and the size of TABLESPACE [Optional]
TBLSPACE_FILE2=/repdir2/rep_tblspace_file2.dat
TBLSPACE_SIZE2=50M
NEXT_SIZE2=5M
MAX_SIZE2=100M
##### Parameter for tuning (END) #####
# Registering of user ID(Schema), Configuration of authority
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
echo "GRANT SELECT ANY DICTIONARY TO $USER_ID; " >> repwk.sql
echo "exit; " >> repwk.sql
sqlplus $SYSTEM_ID/$SYSTEM_PASS @repwk.sql
# Definition of 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
# Definition of TABLE
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
# Provide INSERT authority to transaction log database
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
# Definition of external function library
case $ORACLE_VERSION in
901 | 920 | 1010 | 1020 )
sqlplus $USER_ID/$USER_PASS @/opt/FSUNlnkre/etc/CREATE_FUNCTION.sql
;;
* )
sqlplus $USER_ID/$USER_PASS @/opt/FSUNlnkre/etc/CREATE_FUNCTION64.sql
;;
esac
# Recovery and Return
rm -f repwk.sql
exit 0;シェルスクリプトの説明
ユーザIDの登録について
レプリケーション管理者用のユーザIDを登録します。登録するユーザIDを指定してください。
TABLESPACE定義について
割り付け量
トランザクションログデータベースを割り付けるTABLESPACEの容量を設定します。見積り方法の詳細は“A.2.1 トランザクションログデータベースの容量見積り”を参照してください。
AUTOEXTEND
自動容量拡張の使用可否を設定します。容量不足に備えて自動容量拡張するように指定してください。
TABLE定義について
トランザクションログデータベースを作成します。シェルスクリプトの内容をそのまま実行してください。
外部ファンクション・ライブラリ定義について
シェルスクリプトの内容をそのまま実行してください。
なお、シェルスクリプトのレプリケーション管理者用のユーザIDとパスワードを変更した場合は、外部ファンクション・ライブラリ定義のスキーマ名(REPUSER)を変更してください。