複写元サーバでは、データベースの更新によって取得された差分ログを、差分ログファイルに一定間隔で収集するレプリケーションサービスを開始します。
ここでは、複写元サーバでのレプリケーションサービスの開始について、以下の2つの方法について説明します。
Linkexpress Replication optionのコマンドで行う場合
自動起動停止スクリプトで行う場合
なお、レプリケーションサービスの開始・停止により、差分ログ収集が開始・終了されます。差分ログ収集については、“1.1.3.4 差分ログ収集について”を参照してください。
Linkexpress Replication optionのコマンドでレプリケーションサービスを開始する場合は、lxrepstrコマンドを使用します。lxrepstrコマンドの詳細については、“コマンドリファレンス”の“lxrepstrコマンド”を参照してください。
サーバの起動時や停止時にレプリケーションサービスの開始と停止を自動的に行う場合は、自動起動停止スクリプトを利用します。
Linuxの場合に自動起動停止スクリプトを利用する場合について説明します。
セットアップ方法
セットアップ手順を以下に示します。
サービス名の命名
同一サーバ内の他のレプリケーションサービスと重複しない名前を命名します。
スクリプトを複写して権限を変更
Linkexpress Replication optionのインストール先に格納されているスクリプトを、手順1.で命名したサービス名で複写します。以下、手順例です。
# cp /opt/FJSVlnkre/SAMPLE/ORACLE/rc_lnkrep /etc/rc.d/init.d/サービス名 # chmod 755 /etc/rc.d/init.d/サービス名
スクリプトを編集
手順2.で複写したスクリプト内の変数を編集します。
変数名 | 編集内容 |
---|---|
ORACLE_SID | Oracleシステム名を指定します。 |
ORACLE_HOME | Oracleのインストールパスを指定します。 |
REPUSER | レプリケーションサービスを開始するOSユーザ名を指定します。編集しない場合にはrootとなります。 |
DBUSER_ID | レプリケーション管理者のユーザ名を指定します。編集しない場合にはREPUSERとなります。 |
DBUSER_PASSWD | レプリケーション管理者のパスワードを指定します。編集しない場合にはREPUSERとなります。 |
シンボリックリンクの作成
自動起動させるために、以下のディレクトリに対してシンボリックリンクを作成します。
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
以下、手順例です。
# ln -s /etc/rc.d/init.d/サービス名 /etc/rc.d/rc2.d/S99サービス名
また、自動停止させるために、以下のディレクトリに対してもシンボリックリンクを作成します。
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc6.d
以下、手順例です。
# ln -s /etc/rc.d/init.d/サービス名 /etc/rc.d/rc0.d/K00サービス名
レプリケーションサービス名の決定
他のレプリケーションサービスと重複しない名前を決定します。
Unitファイルの作成
Linkexpress Replication optionのインストール先に格納されているUnitファイルのサンプルを複写し、対象とするレプリケーションサービスに合わせて修正します。以下、手順例です。
レプリケーションサービスのサービス名が“repsvc1”の場合
# cp /opt/FJSVlnkre/SAMPLE/ORACLE/lnkrep.service.sample /usr/lib/systemd/system/lnkrep_repsvc1.service
Unitファイルは以下のパラメタを修正します。
セクション | パラメタ | 指定値 | 説明 |
---|---|---|---|
Unit | Description | Linkexpress Replication option service <レプリケーションサービス名> | 機能概要を記述します。 該当するレプリケーションサービスを識別できる名称を記述します。 |
Requires | 接続先のOracelのUnitファイル名(注) 例: | レプリケーションサービス起動時の前提となる、接続先データベース・インスタンスのUnitファイル名を指定します。 | |
After | network.target network-online.target 接続先のOracle のUnitファイル名(注) 例: | レプリケーションサービス起動時の前提となる、接続先データベース・インスタンスのUnitファイル名を指定します。 | |
Service | User | ユーザ名 | レプリケーションサービスを開始するOSのユーザ名を指定します。 |
Group | グループ | レプリケーションサービスを開始するOSのユーザ名の所属するグループを指定します。 | |
Environment | 環境変数名=設定値 | レプリケーションサービスを開始する際に必要な環境変数を指定します。 |
注) Oracleの自動起動の設定においてsystemctlコマンドに指定したUnitファイル名を指定します。
Linkexpress Replication optionのUnitファイルにおいて、UnitセクションのAfterパラメタにOracleのUnitファイル名を記述しないでください。
ServiceセクションのEnvironmentに指定するパラメタは以下の通りです。
パラメタ | 指定値 | 説明 |
---|---|---|
ORACLE_SID | Oracleシステム名 例: | Oracleシステム名を指定します。 |
ORACLE_HOME | Oracleのインストール先パス名 例: | Oracleのインストール先を絶対パスで指定します。 |
NLS_LANG | Japanese_Japan.AL32UTF8 例: | Oracleの言語環境を指定します。 |
LANG | ja_JP.UTF-8またはC 例: | Linkexpress Replication optionのインストール時のOSのデフォルトロケールを設定します。 |
LD_LIBRARY_PATH | ライブラリのパス名 例: | Linkexpress Replication optionとOracleのライブラリを絶対パスで設定します。 |
DBUSER | Oracleに接続するユーザ名 例: | レプリケーションプロセスがOracleに接続するユーザの名前を指定します。 省略した場合は、Unitファイルに指定したUserパラメタが指定値になります。 |
DBPASSWD | Oracleに接続するユーザのパスワード | レプリケーションプロセスがOracleに接続するユーザのパスワードを指定します。 省略した場合は、Unitファイルに指定したUserパラメタが指定値になります。 |
自動起動・停止の有効化
OSのスーパーユーザーで、systemctlコマンドを使って自動起動・停止を有効にします。以下、手順例です。
レプリケーションサービスのサービス名が“repsvc1”の場合
# systemctl enable lnkrep_repsvc1.service
アンセットアップ方法
アンセットアップ手順を以下に示します。
レプリケーションサービスの停止
“1.2.2.3 レプリケーションサービスの開始と停止”を参照してください。
シンボリックリンクの削除
シンボリックリンクを以下のディレクトリから削除して、自動停止を解除します。
/etc/rc.d/rc0.d
/etc/rc.d/rc1.d
/etc/rc.d/rc6.d
以下、手順例です。
# rm /etc/rc.d/rc0.d/K00サービス名
また、シンボリックリンクを以下のディレクトリから削除して、自動起動を解除します。
/etc/rc.d/rc2.d
/etc/rc.d/rc3.d
/etc/rc.d/rc4.d
/etc/rc.d/rc5.d
以下、手順例です。
# rm /etc/rc.d/rc2.d/S99サービス名
スクリプトの削除
複写したスクリプトを削除します。以下、手順例です。
# rm /etc/rc.d/init.d/サービス名
レプリケーションサービスの停止
“1.2.2.3 レプリケーションサービスの開始と停止”を参照してください。
自動起動停止の無効化
OSのスーパーユーザーで、systemctlコマンドを使って自動起動停止を無効にします。以下、手順例です。
レプリケーションサービスのサービス名が“repsvc1”の場合
# systemctl disable lnkrep_repsvc1.service
Unitファイルの削除
複写したUnitファイルを以下のディレクトリから削除します。以下、手順例です。
レプリケーションサービスのサービス名が“repsvc1”の場合
# rm /usr/lib/systemd/system/lnkrep_repsvc1.service
注意
自動起動は以下の順番になるようにシンボリックリンクの名前を決定してください。起動順序についてはシステム・ベンダのドキュメントを参照してください。
1. Oracleインスタンスの起動
2. Linkexpressの起動
3. レプリケーションサービスの開始
自動停止は以下の順番になるようにシンボリックリンクの名前を決定してください。停止順序についてはシステム・ベンダのドキュメントを参照してください。
1. レプリケーションサービスの停止
2. Linkexpressの停止
3. Oracleインスタンスの停止
クラスタシステムで動作させる場合は、クラスタシステムにより起動停止が制御されるため、本機能を利用する必要はありません。
Solarisの場合に自動起動停止スクリプトで行う場合の手順を説明します。
セットアップ方法
セットアップ手順を以下に示します。
サービス名の命名
同一サーバ内の他のレプリケーションサービスと重複しない名前を命名します。
スクリプトを複写して権限を変更
Linkexpress Replication optionのインストール先に格納されているスクリプトを、手順1.で命名したサービス名で複写します。以下、手順例です。
$ cp /opt/FSUNlnkre/SAMPLE/ORACLE/rc_lnkrep /etc/init.d/サービス名 $ chmod 755 /etc/init.d/サービス名
スクリプトを編集
手順2.で複写したスクリプト内の変数を編集します。
変数名 | 編集内容 |
---|---|
ORACLE_SID | Oracleシステム名を指定します。 |
ORACLE_HOME | Oracleのインストールパスを指定します。 |
NLS_LANG | NLS環境を指定します。 |
LANG | レプリケーションサービスを実行するロケールを指定します。 |
REPUSER | レプリケーションサービスを開始するOSユーザ名を指定します。編集しない場合にはrootとなります。 |
DBUSER_ID | レプリケーション管理者のユーザ名を指定します。編集しない場合にはREPUSERとなります。 |
DBUSER_PASSWD | レプリケーション管理者のパスワードを指定します。編集しない場合にはREPUSERとなります。 |
シンボリックリンクの作成
自動起動させるために、以下のディレクトリに対してシンボリックリンクを作成します。
/etc/rc2.d
以下、手順例です。
$ ln -s /etc/init.d/サービス名 /etc/rc2.d/S99サービス名
また、自動停止させるために、以下のディレクトリに対してもシンボリックリンクを作成します。
/etc/rc0.d
/etc/rc1.d
/etc/rcS.d
以下、手順例です。
$ ln -s /etc/init.d/サービス名 /etc/rc0.d/K00サービス名
アンセットアップ方法
アンセットアップ手順を以下に示します。
レプリケーションサービスの停止
“1.2.2.3 レプリケーションサービスの開始と停止”を参照してください。
シンボリックリンクの削除
シンボリックリンクを以下のディレクトリから削除して、自動停止を解除します。
/etc/rc0.d
/etc/rc1.d
/etc/rcS.d
以下、手順例です。
$ rm /etc/rc0.d/K00サービス名
また、シンボリックリンクを以下のディレクトリから削除して、自動起動を解除します。
/etc/rc2.d
以下、手順例です。
$ rm /etc/rc2.d/S99サービス名
スクリプトの削除
複写したスクリプトを削除します。以下、手順例です。
$ rm /etc/init.d/サービス名
注意
自動起動は以下の順番になるようにシンボリックリンクの名前を決定してください。起動順序についてはシステム・ベンダのドキュメントを参照してください。
1.Oracleインスタンスの起動
2.Linkexpressの起動
3.レプリケーションサービスの開始
自動停止は以下の順番になるようにシンボリックリンクの名前を決定してください。停止順序についてはシステム・ベンダのドキュメントを参照してください。
1.レプリケーションサービスの停止
2.Linkexpressの停止
3.Oracleインスタンスの停止
クラスタシステムで動作させる場合は、クラスタシステムにより起動停止が制御されるため、本機能を利用する必要はありません。