複数のglobal zoneまたはnon-global zoneのOracle Solaris ContainersまたはOracle Solaris Legacy Containers上で、SYSモードのデータベース連携サービスを同時に使用する場合は、non-global zoneのhostidを、データベース連携サービスを使用する他のサーバのhostidと異なるユニークな値に変更(エミュレート)する必要があります。他のサーバと同じhostidを使用すると、トランザクションIDが重複するため、データベース連携サービスが正しく動作しない可能性があります。
non-global zoneのhostidを変更(エミュレート)する手順を、以下に示します。
注意
Solaris 10で本作業を行う場合、カーネルパッチ142909-17を適用する必要があります。
必ずOTSを停止した状態で、本作業を行ってください。
global zoneのOracle Solaris上で、zonecfgコマンドを使用して、対象のnon-global zoneのhostidを、データベース連携サービスを使用する他のサーバのhostidと異なるユニークな値に変更(エミュレート)します。
例
non-global zoneのOSがSolaris 9の場合
# zonecfg -z zone名 zonecfg:zone名> add attr zonecfg:zone名:attr> set name=hostid zonecfg:zone名:attr> set type=string zonecfg:zone名:attr> set value=一意のhostid zonecfg:zone名:attr> end
non-global zoneのOSがSolaris 10以降の場合
# zonecfg -z zone名 zonecfg:zone名> set hostid=一意のhostid
対象のnon-global zoneを再起動します。
例
# zlogin zone名 shutdown -i6 -g0 -y
対象のnon-global zoneで、hostidが変更されていることを確認します。
例
# zlogin zone名 hostid
データベース連携サービスの環境構築後に変更する場合、またはSolaris Containerの複製機能でデータベース連携サービスの環境を複製した場合は、Oracle Solaris ContainersまたはOracle Solaris Legacy Containersの以下のファイルをエディタなどで編集して、「RECOVERYKEY」に変更(エミュレート)したhostidを設定します。
ファイル名
/opt/FSUNots/etc/repository/_recoveryinfo
設定例
RECOVERYKEY = 変更後のhostid :
注意
データベース連携サービスの環境を新規に構築する場合は、手順4を行う必要はありません。
リソース管理プログラムを登録していない場合は、リソース管理プログラム登録時に反映されるため、手順4を行う必要はありません。
クラスタシステムの場合は、待機系の上記のファイルに、運用系の上記のファイルを上書きでコピーしてください。