この付録では、データベース・コピー・プロシージャを使用して、Oracle Internet Directoryの既存のレプリケート・システムに新しいノードを追加する方法について説明します(コールド・バックアップとも呼ばれます)。
|
注意: このプロシージャはOracle Internet Directoryでのみ機能します。Oracle Single Sign-Onなど、他のOracle Identity Managementコンポーネントがインストールされている場合は、このプロシージャを使用しないでください。Oracle Internet Directoryノードがスタンドアロンの場合は、データベース・コピー・プロシージャを使用して新しいディレクトリ・レプリケーション・グループ(DRG)を作成できます。このプロシージャは、Oracle Databaseアドバンスト・レプリケーション・ベースのレプリカと、完全LDAPベース・レプリカにのみ適用できます。 |
この付録の内容は次のとおりです。
スポンサ・サイトは、Oracle Internet Directoryとそのリポジトリ(Oracleデータベース)がインストールされているサイト、ホストまたはノードです。スポンサ・サイトはスポンサ・ノードとも呼ばれます。
新規サイトは、Oracle Internet Directoryリポジトリのコピー先となるサイト、ホストまたはノードです。新規サイトは新規ノードとも呼ばれます。
このプロシージャを開始するには、コンピューティング環境が次の前提条件を満たしている必要があります。
新規ディレクトリ・サイトとスポンサ・ディレクトリ・サイトで、オペレーティング・システム、バージョンおよびパッチ・レベルが同じである必要があります。オペレーティング・システムのパッチ・レベルが異なると、このプロシージャが機能しない場合があります。
このプロシージャを実行する前に、スポンサ・ディレクトリのリポジトリのバックアップを強くお薦めします。
このプロシージャではOracleデータ・ファイルをコピーするので、使用しているネットワーク環境によってパフォーマンスが異なります。ネットワークの通信速度が遅い場合は、第40章「レプリケーションの設定」または付録C「Oracle Databaseアドバンスト・レプリケーション・ベースのレプリケーションの設定」で説明されている方法でレプリケーション・グループを設定することを検討してください。または、圧縮したOracleデータ・ファイルをリムーバブル・メディアに保存し、物理的に移動する方法もあります。ネットワークについては、ローカルのシステム管理者またはネットワーク管理者に確認してください。
Oracleデータベースをよく理解しているユーザーのみが、このプロシージャを実行してください。
スポンサ・サイトがすでにアドバンスト・レプリケーション・グループの一員である場合、スポンサ・ノードはマスター定義サイト(MDS)である必要があります。
この付録の例は、スポンサ・ディレクトリ・サイトが次の環境であることを前提としています。
Hostname = rst-sun
Domain name = example.com
ORACLE_BASE = /private/oracle/app/oracle
ORACLE_HOME = /private/oracle/app/oracle/product/OraHome_1
ORACLE_SID = LDAP
LD_LIBRARY_PATH = $ORACLE_HOME/lib
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
datafile location = /private/oracle/oradata/LDAP
Dump destination = /private/oracle/app/oracle/admin/LDAP/pfile,
/private/oracle/app/oracle/admin/LDAP/bdump,
/private/oracle/app/oracle/admin/LDAP/cdump,
/private/oracle/app/oracle/admin/LDAP/udump,
/private/oracle/app/oracle/admin/LDAP/create
この付録の例は、新規ディレクトリ・サイトが次の環境であることを前提としています。
Hostname = dsm-sun
Domain name = example.com
ORACLE_BASE = /private1/oracle/app/oracle
ORACLE_HOME = /private1/oracle/app/oracle/product/OraHome_1
ORACLE_SID = NLDAP
LD_LIBRARY_PATH = $ORACLE_HOME/lib
NLS_LANG = AMERICAN_AMERICA.AL32UTF8
datafile location = /private1/oracle/oradata/NLDAP
Dump destination = /private1/oracle/app/oracle/admin/NLDAP/pfile,
/private1/oracle/app/oracle/admin/NLDAP/bdump,
/private1/oracle/app/oracle/admin/NLDAP/cdump,
/private1/oracle/app/oracle/admin/NLDAP/udump,
/private1/oracle/app/oracle/admin/NLDAP/create
ホスト名とドメイン名以外のすべてが、手順10のOracle Databaseのインストール時に作成されます。
次のようにしてノードを追加し、ステータスを確認します。
Identity ManagementとOracle Internet Directoryコンポーネントをスポンサ・ノードにインストールします。『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』を参照してください。
|
関連項目:
|
Oracle Internet Directoryのステータスを確認するには、次のように入力します。
$ cd ORACLE_INSTANCE/bin
$ ./opmnctl status
ステータスはAliveである必要があります。
スポンサ・ノード上のOracle Internet Directoryおよび他のすべてのopmnプロセスを次のように入力して停止します。
$ cd ORACLE_INSTANCE/bin
$ opmnctl stopall
スポンサ・ノードで次の手順を実行します。
コマンド行プロンプトで、次のSQL*Plusコマンドを実行します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE RESETLOGS;
このコマンド・シーケンスを実行すると、ダンプ先ディレクトリの下にトレース・ファイルが作成されます。
ユーザー・ダンプ先ディレクトリの位置を確認するには、次のコマンドを実行します。
SQL> show parameter user_dump_dest;
新たに作成したトレース・ファイルの名前は次の形式になります。
ORACLE_SID_ora_processid.trc
スポンサ・ノードのデータベースとOracle Net Servicesリスナーを停止します。デフォルトのリスナー名はLISTENERです。次のように入力します。
$ lsnrctl stop $ sqlplus /nolog SQL> connect / as sysdba SQL> shutdown SQL> exit
コピーされるノードがアドバンスト・レプリケーション・ベースのDRGの一員の場合、次の手順を実行します。
DRGの他のノードで、LDAPレプリケーション・サーバーのみを停止します。
$ oidctl connect=connect_string server=oidrepld \ instance=instance_number stop
スポンサ・ノード以外のすべてのノードで、この手順を繰り返します。対応するノードに適したネット・サービス名を指定してください。
ノードを既存のDRGに追加する場合、SQL*Plusを使用してOracle Databaseアドバンスト・レプリケーションを静止させます。次のコマンドは、マスター定義サイト(MDS)でのみ実行してください。
$ cd ORACLE_HOME/ldap/admin
$ sqlplus /nolog SQL> connect repadmin/repadmin_password;
SQL> @oidrsusp.sql
|
注意: SQL*Plusのこの手順は、マスター定義サイトでのみ実行してください。 |
これで、レプリケーションが停止され、他のノードの変更が可能になります。
手順3aで作成したトレース・ファイルの名前を、同じディレクトリ内でnewdb.sqlに変更します。
$ cp ORACLE_SID_ora_processid.trc newdb.sql
スポンサ・ノードで、newdb.sqlをテキスト・エディタで開き、STARTUP NOMOUNT文とCREATE CONTROLFILE文以外のすべての行を削除します。これらの行を削除した後のnewdb.sqlファイルは次のようになります。
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE SET DATABASE "LDAP" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100 MAXINSTANCES 8
MAXLOGHISTORY 454
LOGFILE
GROUP 1 '/private/oracle/oradata/LDAP/redo01.log' SIZE 10M,
GROUP 2 '/private/oracle/oradata/LDAP/redo02.log' SIZE 10M,
GROUP 3 '/private/oracle/oradata/LDAP/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/private/oracle/oradata/LDAP/system01.dbf',
'/private/oracle/oradata/LDAP/sysaux01.dbf',
'/private/oracle/oradata/LDAP/users01.dbf',
'/private/oracle/oradata/LDAP/dcm.dbf',
'/private/oracle/oradata/LDAP/portal.dbf',
'/private/oracle/oradata/LDAP/ptldoc.dbf',
'/private/oracle/oradata/LDAP/ptlidx.dbf',
'/private/oracle/oradata/LDAP/ptllog.dbf',
'/private/oracle/oradata/LDAP/oca.dbf',
'/private/oracle/oradata/LDAP/discopltc1.dbf',
'/private/oracle/oradata/LDAP/discopltm1.dbf',
'/private/oracle/oradata/LDAP/oss_sys01.dbf',
'/private/oracle/oradata/LDAP/wcrsys01.dbf',
'/private/oracle/oradata/LDAP/uddisys01.dbf',
'/private/oracle/oradata/LDAP/b2b_dt.dbf',
'/private/oracle/oradata/LDAP/b2b_rt.dbf',
'/private/oracle/oradata/LDAP/b2b_idx.dbf',
'/private/oracle/oradata/LDAP/b2b_lob.dbf',
'/private/oracle/oradata/LDAP/bam.dbf',
'/private/oracle/oradata/LDAP/orabpel.dbf',
'/private/oracle/oradata/LDAP/attrs1_oid.dbf',
'/private/oracle/oradata/LDAP/battrs1_oid.dbf',
'/private/oracle/oradata/LDAP/gcats1_oid.dbf',
'/private/oracle/oradata/LDAP/gdefault1_oid.dbf',
'/private/oracle/oradata/LDAP/svrmg1_oid.dbf',
'/private/oracle/oradata/LDAP/ias_meta01.dbf',
'/private/oracle/oradata/LDAP/undotbs.dbf'
CHARACTER SET AL32UTF8
;
スポンサ・ノードのファイルnewdb.sqlの編集を次のように続行します。
次の行が変更対象の行です。
CREATE CONTROLFILE REUSE DATABASE "LDAP" RESETLOGS NOARCHIVELOG
次のように変更します。
CREATE CONTROLFILE REUSE SET DATABASE "NLDAP" RESETLOGS NOARCHIVELOG
データベースとログ・ファイルのUNIXディレクトリ位置を変更し、新規ノード・サイトのディレクトリを指し示すようにします。
この例では、newdb.sqlを次のように変更します。
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE SET DATABASE "NLDAP" RESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 454
LOGFILE
GROUP 1 '/private1/oracle/oradata/NLDAP/redo01.log' SIZE 10M,
GROUP 2 '/private1/oracle/oradata/NLDAP/redo02.log' SIZE 10M,
GROUP 3 '/private1/oracle/oradata/NLDAP/redo03.log' SIZE 10M
-- STANDBY LOGFILE
DATAFILE
'/private1/oracle/oradata/NLDAP/system01.dbf',
'/private1/oracle/oradata/NLDAP/sysaux01.dbf',
'/private1/oracle/oradata/NLDAP/users01.dbf',
'/private1/oracle/oradata/NLDAP/dcm.dbf',
'/private1/oracle/oradata/NLDAP/portal.dbf',
'/private1/oracle/oradata/NLDAP/ptldoc.dbf',
'/private1/oracle/oradata/NLDAP/ptlidx.dbf',
'/private1/oracle/oradata/NLDAP/ptllog.dbf',
'/private1/oracle/oradata/NLDAP/oca.dbf',
'/private1/oracle/oradata/NLDAP/discopltc1.dbf',
'/private1/oracle/oradata/NLDAP/discopltm1.dbf',
'/private1/oracle/oradata/NLDAP/oss_sys01.dbf',
'/private1/oracle/oradata/NLDAP/wcrsys01.dbf',
'/private1/oracle/oradata/NLDAP/uddisys01.dbf',
'/private1/oracle/oradata/NLDAP/b2b_dt.dbf',
'/private1/oracle/oradata/NLDAP/b2b_rt.dbf',
'/private1/oracle/oradata/NLDAP/b2b_idx.dbf',
'/private1/oracle/oradata/NLDAP/b2b_lob.dbf',
'/private1/oracle/oradata/NLDAP/bam.dbf',
'/private1/oracle/oradata/NLDAP/orabpel.dbf',
'/private1/oracle/oradata/NLDAP/attrs1_oid.dbf',
'/private1/oracle/oradata/NLDAP/battrs1_oid.dbf',
'/private1/oracle/oradata/NLDAP/gcats1_oid.dbf',
'/private1/oracle/oradata/NLDAP/gdefault1_oid.dbf',
'/private1/oracle/oradata/NLDAP/svrmg1_oid.dbf',
'/private1/oracle/oradata/NLDAP/ias_meta01.dbf',
'/private1/oracle/oradata/NLDAP/undotbs.dbf'
CHARACTER SET AL32UTF8
;
初期化パラメータ・ファイルinit$ORACLE_SID.oraを、スポンサ・ディレクトリのデータベースからinit$ORACLE_SID_NEW_DIR_DB.oraにコピーします。初期化パラメータ・ファイルのデフォルトの場所は、UNIXまたはLinuxの場合は$ORACLE_HOME/dbs、Windowsの場合は%ORACLE_HOME%\databaseです。ここでは、次に示すように、/private/oracle/app/oracle/product/OraHome_1/dbs/initLDAP.oraを/private/oracle/app/oracle/product/OraHome_1/dbs/initNLDAP.oraにコピーします。
$ cd ORACLE_HOME/dbs
$ cp initLDAP.ora initNLDAP.ora
初期化パラメータ・ファイルのかわりにサーバー・パラメータ・ファイルspfile$ORACLE_SID.oraまたはspfile.oraを使用している場合は、サーバー・パラメータ・ファイルから初期化パラメータ・ファイルを作成します。たとえば、spfile$ORACLE_SID.oraがデフォルトの場所である$ORACLE_HOME/dbsにある場合、次のように入力します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> create pfile from spfile SQL> shutdown immediate
このコマンド・シーケンスを実行すると、spfileLDAP.oraからinitLDAP.oraファイルが作成され、/private/oracle/app/oracle/product/OraHome_1に配置されます。サーバー・パラメータ・ファイルがデフォルトの場所にない場合は、次の例のように、完全なパスを指定する必要があります。
SQL> connect / as sysdba SQL> create pfile='/private/oracle/initLDAP.ora' from spfile=/private/oracle/initLDAP.ora SQL> shutdown immediate
初期化パラメータ・ファイルを作成したら、この手順の最初に説明した方法でそのファイルのコピーを作成します。
スポンサの新しい初期化パラメータ・ファイルで、次の変更を行います。
JOB_QUEUE_PROCESSESパラメータがあれば、コメント・アウトします。
dbnameパラメータをLDAPからNLDAPに変更します。
新規サイトのドメイン名がスポンサ・ディレクトリのドメイン名と異なる場合は、db_domainパラメータも変更します。
次のパラメータの場所を変更して、新規サイトの場所を指し示すようにします。
background_dump_dest core_dump_dest user_dump_dest control_files db_recovery_file_dest
手順7dに記載されているパラメータに加え、DB_RECOVERY_FILE_DESTやDB_CREATE_FILE_DESTなど、ノード固有のパラメータが初期化パラメータ・ファイルに含まれている場合は、それらのパラメータも変更します。
この例の場合、変更後の初期化パラメータ・ファイルinitNLDAP.oraは次のようになります。
*.aq_tm_processes=1
*.background_dump_dest='/private1/oracle/app/oracle/admin/NLDAP/bdump'
*.compatible='10.1.0.2.0'
*.control_files='/private1/oracle/app/oracle/admin/NLDAP/control01.ctl',
'/private1/oracle/app/oracle/admin/NLDAP/control02.ctl',
'/private1/oracle/app/oracle/admin/NLDAP/control03.ctl'
*.core_dump_dest='/private1/oracle/app/oracle/admin/NLDAP/cdump'
*.db_block_size=8192*.db_cache_size=50331648
*.db_domain='example.com'
*.db_file_multiblock_read_count=16
*.db_name='NLDAP'*.db_recovery_file_dest='/private/oracle1/app/oracle/flash_recovery_area'
*.db_recovery_file_dest_size=2147483648
*.dispatchers='(PROTOCOL=TCP)(PRE=oracle.aurora.server.GiopServer)',
'(PROTOCOL=TCP)(PRE=oracle.aurora.server.SGiopServer)'
*.java_pool_size=67108864#*.job_queue_processes=5
*.large_pool_size=8388608
*.max_commit_propagation_delay=0
*.open_cursors=300
*.pga_aggregate_target=33554432*.processes=150
*.remote_login_passwordfile='EXCLUSIVE'
*.sessions=400
*.shared_pool_size=150994944
*.undo_management='AUTO'
*.undo_tablespace='UNDOTBS'
*.user_dump_dest='/private1/oracle/app/oracle/admin/NLDAP/udump'
新規ノードの接続詳細が含まれるようtnsnames.oraファイルを編集します。次のサンプル・ファイルを参照してください。
LDAP.ACME.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rst-sun)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ldap.acme.com)
)
)
NLDAP.ACME.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsm-sun)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = nldap.acme.com) )
)
すべてのデータ・ファイルのアーカイブを作成し、アーカイブしたファイルを圧縮します。newdb.sqlのDATAFILEの下に示されたファイルをすべて含めてください。
たとえば、次のコマンドを実行すると、データベース・ファイルの場所に移動し、OID_DB.tar.Zという圧縮アーカイブを生成できます。
$ cd $ORACLE_BASE/oradata/$ORACLE_SID $ tar -cvf OID_db.tar *.dbf $ compress OID_db.tar
ソフトウェアのみのオプションを使用して、Oracle Databaseを新規ノードにインストールします。使用しているプラットフォームのOracle Databaseのインストレーション・ガイドおよび『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』を参照してください。
新規ノードでソフトウェアのみのインストールが完了すると、次のディレクトリが存在します。
/private1/oracle/app/oracle/product/OraHome_1/diag/rdbms
新規ノードで次のディレクトリを作成します。
データファイルの場所: /private1/oracle/app/oracle/oradata/NLDAP
ダンプ先:
/private1/oracle/app/oracle/admin/NLDAP/adump
/private1/oracle/app/oracle/admin/NLDAP/udump
/private1/oracle/app/oracle/flash_recovery_area
トレース・ファイルの場所: /private1/oracle/app/oracle/product/OraHome_1/diag/rdbms/nldap/nldap/trace
FTPまたはその他の適切なツールを使用して、手順9でスポンサ・ノードに作成したアーカイブ・ファイルを新規ノードにコピーします。新規ノードのデータベース・ファイルの場所にディレクトリを移動し、FTPを使用してrst-sunからアーカイブ・ファイルをコピーします。
$ cd /private1/oracle/app/oracle/oradata/NLDAP $ ftp ftp> open rst-sun Connected to rst-sun.us.example.com. 220 rst-sun FTP server (UNIX(r) System V Release 4.0) ready. Name (rst-sun:oracle): 331 Password required for oracle. Password: 230 User oracle logged in. ftp> cd /private/oracle/oradata/LDAP 250 CWD command successful. ftp> binary 200 Type set to I. ftp> mget oradb.tar.Z
データ・ファイルのサイズが非常に大きく(数GBまたはTB)、ネットワーク帯域幅が狭いときは、テープやディスクなどのメディアを使用して、圧縮したファイルをスポンサ・ノードから新規ノードに移動することを検討してください。
新規ノードでアーカイブ・ファイルを展開します。次に例を示します。
$ uncompress oradb.tar.Z $ tar xvf oradb.tar
データ・ファイルが正しいディレクトリに展開されたことを確認してください。この例では、/private1/oracle/oradata/NLDAPディレクトリに展開します。
スポンサ・ノードがアドバンスト・レプリケーション・グループの一員の場合、次の手順を実行します。
FTPなどのツールを使用して、初期化パラメータ・ファイルinitLDAP.oraを、スポンサ・ノード(rst-sun)から新規ノードのUNIXディレクトリ$ORACLE_HOME/dbsへコピーします。ファイル名をinitNLDAP.oraに変更します。
コピー後、コピーしたinitLDAP.oraファイルのデータが破損していないことを確認します。
ファイルinitLDAP.oraを編集します。次の変更を行います。
.db_name='NLDAP'
次のように変更します。
.db_name='LDAP'
FTPなどの適切なツールを使用して、手順5でスポンサ・ノードに作成したファイルnewdb.sqlを新規ノードにコピーします。newdb.sqlの名前をolddb.sqlに変更します。
olddb.sqlを編集します。次の変更を行います。
CREATE CONTROLFILE REUSE SET DATABASE "NLDAP" RESETLOGS NOARCHIVELOG
次のように変更します。
CREATE CONTROLFILE REUSE SET DATABASE "LDAP" RESETLOGS NOARCHIVELOG
tnsnames.oraをコピーし、tnsnames.ora.bkとします。
tnsnames.oraを編集します。次の変更を行います。
LDAP.ACME.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = rst-sun)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ldap.acme.com)
)
)
NLDAP.ACME.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsm-sun)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = nldap.acme.com) )
)
次のように変更します。
LDAP.ACME.COM =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = dsm-sun)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ldap.acme.com) )
)
新規ノードのシェル・プロンプトで、ORACLE_BASE、ORACLE_HOMEおよびORACLE_SIDの各環境変数を設定します。次に例を示します(Cシェルを使用)。
$ setenv ORACLE_BASE /private1/oracle/app/oracle $ setenv ORACLE_HOME /private1/oracle/app/oracle/product/OraHome_1 $ setenv ORACLE_SID LDAP
同じシェルで、次の例に示すように、SQL*Plusを使用してolddb.sqlを実行します。
cd /private1/oracle/app/oracle/admin/NLDAP/udump $ sqlplus /nolog SQL> connect / as sysdba SQL> @olddb.sql SQL> shutdown normal SQL>exit
次のように、データベースとリスナーを起動します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> startup mount SQL> alter database open resetlogs SQL> exit $ lsnrctl start
別のノードを使用して構成されたアドバンスト・レプリケーションを持つノードからデータベース・コピーを実行した場合、新規ノードでLDAP_REPレプリケーション・グループを削除する必要があります。これを行うには、次のコマンドを実行します。
sqlplus / as sydba SQL> dbms_defer_sys.delete_tran(null,null); SQL> dbms_defer_sys.delete_error(null,null); SQL> dbms_repcat.purge_master_log(null,null,null); SQL> exit
sqlplus rep_admin_db_account_name/password SQL> exec dbms_repcat.drop_master_repgroup( gname => 'LDAP_REP' ) SQL> shutdown immediate
FTPまたは他の適切なツールを使用して、初期化パラメータ・ファイルinitLDAP.oraを、スポンサ・ノード(rst-sun)から新規ノードのUNIXディレクトリ$ORACLE_HOME/dbsへコピーします。コピー後、コピーしたinitLDAP.oraファイルのデータが破損していないことを確認します。
これに加えて、データベース・パスワード・ファイルorclpwORACLE_SIDもスポンサ・ノードから新規ノードへコピーします。
新規ノードで、$ORACLE_HOME/dbsディレクトリ(UNIX)またはORACLE_HOME\databaseディレクトリ(Windows)に次のファイルが存在しないことを確認します。
spfileNLDAP.ora
spfile.ora
これらのファイルのいずれかが存在する場合、スポンサ・ノードからコピーしたinitNLDAP.oraファイルではなく、そのファイルがOracleデータベースで使用されます。
FTPまたはその他の適切なツールを使用して、手順5でスポンサ・ノードに作成したファイルnewdb.sqlを新規ノードにコピーします。次に例を示します。
$ cd /private1/oracle/app/oracle/admin/NLDAP/udump $ ftp ftp> open rst-sun ftp> cd /private1/oracle/app/oracle/admin/LDAP/udump ftp> mget newdb.sql
新規ノードのUNIXシェル・プロンプトで、ORACLE_BASE、ORACLE_HOMEおよびORACLE_SIDの各環境変数を設定します。次に例を示します(Cシェルを使用)。
$ setenv ORACLE_BASE /private1/oracle/app/oracle $ setenv ORACLE_HOME /private1/oracle/app/oracle/product/OraHome_1 $ setenv ORACLE_SID NLDAP
同じUNIXシェルで、次の例に示すように、SQL*Plusを使用してnewdb.sqlを実行します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> @newdb.sql SQL> shutdown normal SQL>exit
新規ノードの変更を完了します。
次のように、データベースとリスナーを起動します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> startup mount SQL> alter database open resetlogs SQL> exit $ lsnrctl start
新規ノードのグローバル・データベース名を変更します。
SQL> connect / as sysdba SQL> alter database rename global_name to NLDAP; SQL> exit
新規ノードのORACLE_SIDはNLDAPであることに注意してください。
次のコマンドを使用して、一時ファイルを表領域に追加します。
SQL> connect / as sysdba SQL> ALTER TABLESPACE TEMP ADD TEMPFILE 'temp01.dbf' size 2000k; SQL> exit
値2000Kは単なる例です。環境の要件に応じて値を決定します。
新規ノードでOracle Internet Directoryを構成します。
WebLogic Serverをインストールします。『Oracle Fusion Middleware Oracle WebLogic Serverインストレーション・ガイド』を参照してください。
Oracle Internet Directoryをインストールします。『Oracle Fusion Middleware Oracle Identity Managementインストレーション・ガイド』を参照してください。
opmnctlを使用してOracle Internet Directoryを停止します。
新規ノードで、ウォレット・ファイルoidpwdlldap1とoidpwdr*を削除し、ODSパスワードをリセットします。
$ cd $ORACLE_INSTANCE/OID/admin $ rm oidpwdlldap1 oidpwdr*
新規ノードで、パスワードをリセットし、Oracle Internet Directoryプロセスを起動します。
oidpasswd connect=oiddb create_wallet=true
現在のデータベースのパスワード入力を要求されます。新しいデータベース・パスワードを入力し、新規パスワードを確認します。
opmnctlコマンドを使用して、新規ノードでOracle Internet Directoryを起動します。
$opmnctl startproc ias-component=oid1
この時点では、新規ノードでOracle Internet Directoryが稼働しています。ただし、新規Oracle Internet Directoryノードのreplicaid値は、スポンサ・ノードのレプリカIDのままです。したがって、新規ノードのreplicaidをリセットする必要があります。replicaidの新しい値は、hostname_sidの形式である必要があります。
hostnameは、新規ノードのホスト名(ドメイン名なし)です。
sidは、新規ノードのデータベースのORACLE_SIDです。
replicaidのすべての文字が小文字であることを確認してください。
chgrid.ldifファイルを作成します。内容は次のとおりです。
dn:
changetype: modify
replace: orclreplicaid
orclreplicaid: new_replicaid
ldapmodifyツールを使用してreplicaidを変更します。
$ORACLE_HOME/bin/ldapmodify -h new_node_host -p port_ldap_server -D cn=orcladmin -q -f chgrid.ldif
新規ノードのレプリカIDは手順23で変更されたため、新規ノードの相対レプリカ・エントリを次のように再作成する必要があります。
$ remtool -pcleanup -bind "new_node_host:new_node_port/new_node_repl_pswd"
新しいレプリカIDに対応するレプリカ・エントリがまだないため、remtoolコマンドによりエラーが報告され、入力を求められます。remtoolコマンドは、その入力を使用して、エラーを修正します。次の例では、ユーザー入力は太字で示されています。
remtool -pcleanup -bind "new_node_host:new_node_port/new_node_repl_pswd" Error occurred while getting replication configuration information. This tool will try to rectify the problem if super user DN and password are provided. Do you want to continue? [y/n] : y Enter superuser DN : cn=orcladmin Enter superuser password : Enter new password of replication DN : Reenter new password of replication DN : DRG identified by replica ldap://new_node_host:new_node_port (new_replicaid) will be cleaned up. Do you want to continue? [y/n] : y ------------------------------------------------------------------------------ ------------------------------------------------------------------------------ Replica replica ldap://new_node_host:new_node_port (new_replicaid) has been cleaned up.
レプリカ・サブエントリの名前を変更したら、レプリカ・サブエントリのorclreplicauri属性、orclreplicasecondaryuri属性およびorclreplicastate属性も変更します。orclreplicauri属性とorclreplicasecondaryuri属性には、新規ノードのLDAPサーバーのURIを追加する必要があります。orclreplicastate属性は6に設定します。remtoolはこの属性を使用して、データベース・コピー・ベースのaddnodeであることを識別します。この値を変更するには、次の手順を実行します。
LDIFファイルmodsubentry.ldifを作成します。このファイルの内容は次のとおりです。
dn: orclreplicaid=new_replicaid,cn=replication configuration changetype: modify replace: orclreplicauri # Use your host name and port number # where ldap server is listening orclreplicauri: ldap://new_node_host:new_node_port/ --- replace:orclreplicasecondaryuri # Use your fully qualified host name and # the port number where ldap server is listening orclreplicasecondaryuri: ldap://new_node_host_with_domain_name:new_node_port/ ---- replace:orclreplicastate orclreplicastate: 6
ldapmodifyツールを使用して、ディレクトリを次のように変更します。
$ ldapmodify -h new_node_host -p port_of_ldap_server -f modsubentry.ldif
Oracle Internet Directoryプロセスを停止します。
$opmnctl stopproc ias-component=oid1
新規ノードで、changelog表をクリーンアップします。
$ sqlplus /nolog SQL> connect ods/ods_password; SQL> truncate table ods.ods_chg_log; SQL> truncate table ods.ods_chg_stat; SQL> truncate table ods.asr_chg_log;
新規ノードがアドバンスト・レプリケーション・ベースのDRGの一部になる場合、次の手順を実行します。
新規ノードを既存のDRGに追加する場合、Oracle Databaseアドバンスト・レプリケーションを構成するには、シェル・プロンプトで次のコマンドを実行します。
$ remtool -addnode
スポンサ・ノードと新規ノードで構成された新しいDRGを作成する場合、Oracle Databaseアドバンスト・レプリケーションを構成するには、シェル・プロンプトで次のコマンドを実行します。
$ remtool -asrsetup
新規ノードとスポンサ・ノードを含め、すべてのノードでOracle Internet Directoryとレプリケーション・サーバーを起動します。
次のコマンドを使用してレプリケーション・サーバーを起動します。
oidctl connect=oiddb server=OIDREPLD instance=1 \ flags="-p new_node_port -h new_node_host" start
次に、resumeasrまたはoidrrsme.sqlを実行します。
新規ノードがLDAPベースのレプリケーションの完全なレプリカである場合、LDAPベースのレプリケーションを構成し、完全なレプリカをファンアウトとして次のように追加します。
データベースとOracle Internet Directoryサーバーがスポンサ・ノードで稼働していることを確認します。
スポンサ・ノードで、次のように入力します。
$ sqlplus /nolog SQL> connect / as sysdba SQL> startup SQL> exit $ lsnrctl start Start OID $opmnctl startproc ias-component=oid1
次のように入力して、Oracle Internet Directoryのステータスを確認します。
$opmnctl status
remtoolを使用して、LDAPベース・レプリケーションを次のように構成します。
remtool -paddnode
新規レプリケーション承諾のレプリケーション変更ステータスを初期化します。
スポンサ・ノードから、最大の使用済変更番号を取得します。
$ ldapsearch -h sponsor_node_host -p sponor_node_port -b " " \ -s base "objectclass=*" lastchangenumber
LDIFファイルchgstatus.ldifを作成します。このファイルの内容は次のとおりです。
dn: orclagreementid=new_agreement_id,orclreplicaid=new_replicaid,cn=replication configuration changetype: modify replace: orcllastappliedchangenumber;transport$sponsor_replicaid$new_replicaid orcllastappliedchangenumber;transport$sponsor_replicaid$new_replicaid: Number_from_ldapsearch - replace: orcllastappliedchangenumber;apply$sponsor_replicaid$new_replicaid orcllastappliedchangenumber;apply$sponsor_replicaid$new_replicaid: Number_from_ldapsearch
Number_from_ldapsearchは、ldapsearchコマンドを使用して取得したスポンサ・ノードからの最大変更番号のことです。
ldapmodifyを使用して、スポンサ・ノードと新規ノードの両方に変更を適用します。
ldapmodify -p sponsor_node_port -h sponsor_node_host -v \ -f chgstatus.ldif ldapmodify -p new_node_port -h new_node_host -v -f chgstatus.ldif
すべてのノードでOracle Internet Directoryとレプリケーション・サーバーを起動します。一方向レプリケーションの場合は、コンシューマ・ノードでのみレプリケーション・サーバーを起動します。