トランザクションログデータベースの作成は、Linkexpress Replication optionが提供するシェルスクリプトを実行することによって行います。
作成方法は、まずLinkexpress Replication optionが提供しているシェルスクリプトを実際の運用に合うように修正します。その後、修正したシェルスクリプトを実行します。なお、トランザクションログデータベースの作成の実行時には、Oracleを起動している必要があります。
以下にトランザクションログデータベース作成用シェルスクリプトについて説明します。
シェルスクリプトの格納場所
Linuxの場合 : /opt/FJSVlnkre/ORACLE/SETUP/lxcrtdb.sh
Solarisの場合 : /opt/FSUNlnkre/ORACLE/SETUP/lxcrtdb.sh
シェルスクリプトの実施内容
レプリケーション管理者用OracleユーザID(スキーマ)の登録
トランザクションログデータベースの作成
TABLESPACE定義
表定義
トリガで使用する外部ファンクション・ライブラリの定義
シェルスクリプトの内容
#!/bin/bash # # Copyright FUJITSU LIMITED 2016-2023 # # Linkexpress Replication option # This is the shell script for creating transaction log database # on Redhat Linux 6/7/8. # # Function overview # Creating the transaction log database. # ##### Parameter for tuning (START) ##### # Set of Oracle Version [Necessary] # Definition of Version [1930] ORACLE_VERSION=1930 # 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 " ROWINF CHAR(18)) " >> 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 # for Linux 32bit # sqlplus $USER_ID/$USER_PASS @/opt/FJSVlnkre/etc/CREATE_FUNCTION.sql # for Linux 64bit sqlplus $USER_ID/$USER_PASS @/opt/FJSVlnkre/etc/CREATE_FUNCTION64.sql # Recovery and Return rm -f repwk.sql exit 0;
#!/sbin/sh
#
# Copyright FUJITSU LIMITED 2000-2021
#
# Linkexpress Replication option
# This is the shell script for creating transaction log database
# on Oracle Solaris 10/11.
#
# Function overview
# Creating the transaction log database.
#
##### Parameter for tuning (START) #####
# Set of Oracle Version [Necessary]
# Definition of Version [1930]
ORACLE_VERSION=1930
# 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 " ROWINF CHAR(18)) " >> 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
1930 )
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の容量を設定します。見積り方法の詳細は“システム設計ガイド”の“トランザクションログデータベースの容量見積り”を参照してください。
AUTOEXTEND
自動容量拡張の使用可否を設定します。容量不足に備えて自動容量拡張するように指定してください。
TABLE定義について
トランザクションログデータベースを作成します。シェルスクリプトの内容をそのまま実行してください。
外部ファンクション・ライブラリ定義について
シェルスクリプトの内容をそのまま実行してください。
なお、シェルスクリプトのレプリケーション管理者用のユーザIDとパスワードを変更した場合は、外部ファンクション・ライブラリ定義のスキーマ名(REPUSER)を変更してください。