名前
rn_refresh - 辞書ディレクトリの修復コマンド
形式
rn_refresh [-c] [-t スキーマ名] [-u ユーザ名/パスワード] [-d 辞書用ユーザ名/パスワード]> 実行結果ファイル |
rn_refresh [-c] [-a] [-u ユーザ名/パスワード] [-d 辞書用ユーザ名/パスワード] > 実行結果ファイル |
rn_refresh [-r] [-t スキーマ名.テーブル名] [-u ユーザ名/パスワード] [-d 辞書用ユーザ名/パスワード] [-s 参照DBMSのユーザ名/パスワード] > 実行結果ファイル |
rn_refresh -r -a -u ユーザ名/パスワード [-d 辞書用ユーザ名/パスワード] |
機能説明
Navigatorサーバで使用している管理情報ファイルのすべて、または一部のファイルを誤って削除してしまったり、不慮の電源切断やハードディスク障害などで消失や破壊されたりしてしまった場合に正常に動作しなくなることがあります。この状態を「辞書の不整合」と呼びます。
こういった不慮の事態に備え、Navigatorサーバはこの管理情報をDBMS上の辞書テーブルの情報を元にしてリフレッシュし、DBMS上の情報と同期をとるためのコマンドを提供します。
このコマンドを「辞書ディレクトリの修復コマンド」と呼びます。
Postgresのデータソースに対してコマンドを実行した場合は、以下のように出力されます。
#Schema Name | 修復したスキーマ名を出力します。 |
#Table Name | 修復したテーブル名を出力します。 |
#Data Source Name | 修復したスキーマおよびテーブルが所属するデータソース名を出力します。 |
#DBMS | データベース種別として「PostgreSQL」を出力します。 |
SAP IQ のデータソースに対してコマンドを実行した場合は、以下のように出力されます。
#Schema Name | 修復したスキーマ名を出力します。 |
#Table Name | 修復したテーブル名を出力します。 |
#Data Source Name | 修復したスキーマおよびテーブルが所属するデータソース名を出力します。 |
#DBMS | データベース種別として「ODBC」を出力します。 |
検査モードの意味です。検査モードのときに必ず指定します。
-rパラメタと同時には指定できません。
登録スキーマの管理情報ファイルを検査する場合、またはクラスタ運用で、不整合を修復する場合に指定します。
修復モードの意味です。修復モードのときに必要なパラメタですが、検査モードで実行したときの実行結果として出力されるので、コマンドラインで指定する必要はありません。
-cパラメタと同時には指定できません。
このパラメタは、検査モードで実行して不整合が検出された場合、実行結果ファイルに修復モードで実行するためのコマンド文字列の一部として出力されます。不正合を修復する場合、この実行結果ファイルを編集して実行します。
ポイント
クラスタ運用の場合
クラスタ運用時の実行、またはクラスタ運用に移行する時の実行は、パラメタに「-r -a」を指定してください。
辞書のスキーマ名、または辞書に登録したスキーマ名を指定します。
-tとスキーマ名の間には、1文字以上の半角空白が必要です。
辞書のスキーマ名を指定する場合は、KVRGxxxxxxxxの形式で指定します。xxxxxxxxは辞書の管理者のユーザIDを8桁の16進数に変換したものを指定します。たとえば辞書の管理者のユーザIDが3000の場合、KVRG00000BB8を指定します。
なお、検査モードでテーブルの不整合が検出された場合に「スキーマ名.テーブル名」の形式で出力されます。
Navigatorのユーザ名とパスワードを、スラッシュ(/)で区切って指定します。指定できるユーザ名は、辞書の管理者のユーザ名だけです。
なお、パスワードがないユーザの場合、ユーザ名だけを指定してください。
-uとユーザ名の間には、1文字以上の半角空白が必要です。
ユーザ名とパスワードを区切るスラッシュ(/)の前後には空白を指定できません。
Postgres、OracleまたはSQL Serverで辞書の運用をしている場合に指定します。
Symfoware/RDBで辞書を運用している場合には指定しません。
DBMSのユーザ名とパスワードを、スラッシュ(/)で区切って指定します。指定できるDBMSのユーザ名は、KVRGで始まる辞書の管理者のユーザ名だけです。
なお、パスワードがないユーザの場合、DBMSのユーザ名だけを指定してください。
-dとDBMSのユーザ名の間には、1文字以上の半角空白が必要です。
DBMSのユーザ名とパスワードを区切るスラッシュ(/)の前後には空白を指定できません。
検査モードを実行することで出力される実行結果ファイルには、修復モードのコマンドが出力されます。この修復モードのコマンドには、必要に応じて自動的に-sパラメタが付加されます。
参照するデータベースが辞書のDBMS以外で、かつ参照するDBMSの種別が、以下のどれかの場合に指定します。
Postgres
Oracle
SQL Server
他サイトのSymfoware/RDB
ODBC
指定するユーザ名は、データベースへの接続時に指定するユーザ名とパスワードです。たとえば辞書のDBMSがOracleで、参照するデータベースがSQL Serverの場合などに指定します。
DBMSのユーザ名とパスワードを、スラッシュ(/)で区切って指定します。
なお、パスワードがないユーザの場合、DBMSのユーザ名だけを指定してください。
-sとDBMSのユーザ名の間には、1文字以上の半角空白が必要です。
DBMSのユーザ名とパスワードを区切るスラッシュ(/)の前後には空白を指定できません。
コマンドの実行結果は、標準出力に出力されます。必ずファイルにリダイレクトして実行結果を保存してください。検査モードで実行し不整合が検出された場合、不整合を修復するために必要なコマンドとパラメタ文字列が出力されます。その場合、エディタなどでコマンド文字列中のパスワード部分、および-sパラメタのユーザ名とパスワード部分を修正して実行します。
実行結果ファイルの内容
辞書ディレクトリの修復コマンドで不整合の検査を行い、不整合が検出されない場合には正常終了のメッセージだけが出力されます。不整合が検出された場合、出力先のファイルには、検査したデータベースの情報、エラーメッセージ、および修復コマンドを修復モードで実行するのに必要なコマンド文字列が出力されます。不整合が複数ある場合にはこれらの情報とコマンド文字列が複数回出力されます。不整合を辞書ディレクトリの修復コマンドで修復できない場合には、このコマンド文字列は出力されません。
注意事項
辞書ディレクトリの修復コマンドを実行する場合、以下に示す注意が必要です。
不整合を修復する場合のコマンドは、検査モードでコマンドを実行することで実行結果ファイル中に出力されるため、修復モードのコマンド文字列を直接コマンドラインに指定することはありません。
接続時にユーザ名とパスワードを使用しないで接続するODBCドライバの場合には、-sパラメタの指定は不要です。
rn_refreshコマンドは、ユーザがNavigatorに接続していない状態で実行します。rn_refreshコマンドを実行する時に、rn_shutコマンドは実行しないでください。
使用例
rn_refresh -c -t KVRG00000BB8 -u navi/navi -d KVRG00000BB8/xxxxxxxx > refresh.txt |
rn_refresh -c -a -u navi/navi -d KVRG00000BB8/xxxxxxxx > refresh.txt |
rn_refresh -r -t KVRG00000BB8 -u navi/navi -d KVRG00000BB8/xxxxxxxx > refresh.txt |