トランザクションログデータベースの作成は、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)を変更してください。