この付録では、Oracle Real Application Clusters (Oracle RAC)構成監査ツール(RACcheck)を実行およびメンテナンスするために必要な情報について説明します。このツールは、Oracle RACシステムの重要な様々な構成設定を監査するよう設計されています。
内容は次のとおりです。
RACcheckは、次のカテゴリの構成設定の監査に使用できます。
オペレーティング・システムのカーネル・パラメータ
Oracle RACに重要なオペレーティング・システム・パッケージおよびその他のオペレーティング・システム構成設定
Oracle Grid Infrastructure
Oracle Automatic Storage Management(Oracle ASM)
Oracle Database
Oracle RACに重要なデータベース・パラメータおよびその他のデータベース構成設定
Oracle Database 11gリリース2 (11.2)へのアップグレード準備状況評価
RACcheckは、Oracle RAC Databaseサーバー、Oracle RACデータベース(10gリリース2 (10.2)、11gリリース1 (11.1)および11gリリース2 (11.2))、Oracle Grid Infrastructure、ハードウェア、オペレーティング・システムおよびOracle RACソフトウェアで使用できます。また、RACcheckは、クラスタ化されていないOracle Database(10gリリース2 (10.2)、11gリリース1 (11.1)、11gリリース2 (11.2))、Oracle Restartシステム、およびOracle Real Application Clusters One Node構成で使用できます。
RACcheckは、次のプラットフォームで使用可能です。
Intel Linux脚注 1 (Enterprise Linux、RedHatおよびSuSE 9、10、11)
Oracle Solaris SPARC (Solaris 10および11)
Oracle Solaris x86-64 (Solaris 10および11)
IBM AIX脚注 2
HP-UX脚注 2
RACcheckには、次のような機能もあります。
RACcheckでは必要な処理は少なく、次の項目以外の環境の変更は行いません。
監査対象のすべてのデータベース・サーバーで、Oracle Databaseのソフトウェア所有者に対してSSHユーザー等価を構成しないと、RACcheckでは、リモート・データベース・サーバー・ノードでコマンドを実行できません。RACcheckでSSHユーザー等価が構成済でないと判断されると、ツールではユーザー等価を一時的または永続的に設定するオプションを示します。SSHユーザー等価を一時的に設定するよう選択すると、セッションの終わりにRACcheckによりキーが削除され、システムは元のSSHユーザー等価の状態にリストアされます。(構成済でない場合に)RACcheck外でSSHユーザー等価を構成する場合は、次のURLでMy Oracle Supportノート372795.1を参照してください。
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=372795.1
注意: Oracle Databaseソフトウェアのインストール所有者には必ずSSHユーザー等価が必要ですが、Oracle Grid Infrastructureの構成には必要はありません。 |
RACcheckは、評価を実行するために必要なデータを収集する多数の小さい出力ファイルを生成します。
RACcheckは、一部のデータを収集するために、一部のスクリプトを動的に作成および実行します。
RACcheckは、収集の一貫として、作成された不要なすべての一時ファイルを削除します。
RACcheckは、Oracleスタック・コンポーネント(具体的には、Oracle Grid Infrastructure、Oracle Database、Oracle RACなど)の状態を判断し、それらがインストールされ実行されているか、システムに問合せます。各コンポーネントの状態に応じて、RACcheckは適切な収集および監査チェックを行います。
関連項目: ローカルの環境構成が原因でRACcheckが必要な環境情報を正しく特定できない場合のトラブルシューティング |
RACcheckは、バックグラウンドで自動的にプロセスを実行し、コマンドの実行の進捗を監視します。なんらかの理由により、RACcheckで実行されたコマンドの1つがハングしたり、予想よりも長く実行されている場合、この監査プロセスにより構成可能な時間の経過後にコマンドは停止され、RACcheckは実行を続行できます。これが発生した場合、RACcheckではハングした収集またはコマンドをスキップし、ログに注記を記録します。
関連項目: デフォルトのタイムアウト期間が短すぎる場合に、RAT_TIMEOUTおよびRAT_ROOT_TIMEOUT パラメータを調整するには、「ランタイム・コマンドのタイムアウト」 を参照してください。 |
RACcheckのドライバ・ファイルが90日より古い場合、そのドライバ・ファイルは失効しているとみなされ、ドライバ・ファイルが失効しているという通知がされます。
RACcheckでは、収集および分析が完了すると、利点、影響、リスク、アクションおよび修復情報を含むHTML形式の詳細なレポートを生成します。このレポートには、公開されているドキュメントへの参照および問題とその解決方法の追加情報も含まれる場合があります。RACcheckでは、圧縮された出力ファイルも生成します。この出力ファイルは、必要に応じてMy Oracle Supportに渡すことができます。
オプションで、レポート目的で、監査チェックの結果をデータベース表にアップロードできます。
RACcheckを使用する可能性のある各クラスタにコピーせず、RACcheckを共有のファイル・システムにステージングして、1つの場所に維持し様々なシステムからアクセスできるようにしたい場合があります。RACcheckでは、デフォルトの動作として、ステージングされる場所にサブディレクトリおよびその出力ファイルを作成します。ステージング領域が読取り専用のファイル・システムであったり、出力を他の場所に作成したい場合、この目的に使用できる環境変数があります。RAT_OUTPUT
パラメータを任意の有効な書込み可能な場所に構成します。
RACcheckの使用時には、次を考慮します。
RACcheckは、Oracle DatabaseサーバーでOracle Databaseソフトウェア所有者(oracle
)として実行します。
RACcheckには、RACcheckを定期的に(バッチまたはサイレント・モードで)非対話的に実行することを可能にするデーモンが含まれます。
RACcheckで最高のパフォーマンスを得るには、1つのデータベース・サーバー上のローカル・ファイル・システムにインストールして実行することをお薦めします。
RACcheckは、Oracle Grid Infrastructureおよび最低1つのデータベースが稼働中のときにを実行すると、有効性を最大限にできます。
RACcheckは、システムに対する負荷が最小のときに実行することをお薦めします。
RACcheckで、ネットワークに接続されたワークステーションやノート型コンピュータの端末セッションから実行する際に発生する可能性のある問題を避けるには、VNCを使用してツールを実行すると、ネットワークに障害が発生した場合にも、それが終了するまでツールを実行し続けることができます。
RACcheckになんらかの理由で障害が発生した場合は、最初から再度実行します。RACcheckは、障害が発生したところから再開することはできません。
RACcheckはすべてのノードから同時に実行できます。このツールを並行して実行しながら、root
固有のチェックを利用するには、システムにインストールされているEXPECT
ユーティリティを使用するか、RACcheckでsudo
を使用できるよう構成します。
sudo
を構成するには、visudo
コマンドを使用して、各クラスタ・ノードのsudoers
ファイルにデータベース・ソフトウェアをインストールしたユーザーとowner
を置き換える次の行を追加します。
owner ALL=(root) NOPASSWD:/tmp/root_raccheck.sh
RACcheckに対する権限が755
(-rwxr-xr-x
)であることを確認します。権限の設定が不正な場合は、次のコマンドを実行します。
$ chmod 755 raccheck
この項の内容は次のとおりです。
RACcheckを使用する状況
RACcheckはご希望の時間に使用できますが、RACcheckは次のときに使用することをお薦めします。
Oracle RACの最初のデプロイ後
すべての計画メンテナンスの前後
最低90日ごとに1回
RACcheckで使用可能なオプション
表D-1にRACcheckで使用可能なオプションとその説明を示します。
表D-1 RACcheckのオプション
オプション | 説明 |
---|---|
-a |
このオプションは、ベスト・プラクティスおよび推奨されるパッチ・チェックの両方を実行する場合に指定します。これは、RACcheckを実行するデフォルトの方法です。 |
-b |
このオプションは、ベスト・プラクティスのチェックのみを実行する場合に指定します。 |
-p |
このオプションは、推奨のパッチ・チェックのみを実行する場合に指定します。 |
-v |
このオプションは、現在使用中のRACcheckのバージョンを表示する場合に指定します。 |
-m |
このオプションは、最大可用性アーキテクチャ(MAA)スコアカードのチェックを除外する場合に指定します。 MAAスコアカードとは、最大可用性アーキテクチャに対するベスト・プラクティスのセットについての結果で、Oracle RAC環境で発生する可能性のある様々な種類の障害に対するシステムの準備状況を示します。 MAAは重要な概念および機能セットと考えられているため、RACcheckではMAAスコアカードが示されます。ただし、Oracle Data Guardスタンバイ・データベースを実装している場合、最も役立ちます。 |
-u |
このオプションは、アップグレード前、アップグレード後のベスト・プラクティスをチェックするためにRACcheckを実行する場合に使用します。 $ raccheck -u -o pre |
-o |
このオプションは、オプションに引数を追加する場合に使用します。引数には次のようなものがあります。
|
-f |
このオプションは、システムからすでに収集されたデータをオフラインでチェックする場合に使用します。 |
-clusternodes |
このオプションは、RACcheckを実行するカンマ区切りのノード名のリストを入力するために使用します。 このオプションは、RACcheckをクラスタ・ノードのサブセットで実行する場合や、RACcheckが |
-localonly |
このオプションは、RACcheckをローカル・ノードで実行する場合のみ使用します。 |
-nopass |
このオプションは、パスしたチェックをHTMLレポートで省略する場合に使用します。 |
-diff report_1 report_2 [-outfile output_HTML] |
このオプションは、2つのRACcheckレポートとともに、それを相互に比較するために、ディレクトリ名、zipファイル、またはHTMLレポートの形式で使用します。オプションで 注意: 出力ディレクトリの権限は、可能なかぎり制限して、セキュリティ上の脆弱性を制限することをお薦めします。出力ディレクトリには構成に関する機密情報および、他に方法がない場合は、一時データの収集ファイルが含まれる可能性があります。 関連項目: 詳細は、「RACcheckでのレポートの比較」を参照してください。 |
-daemon |
このオプションは、RACcheckデーモンの実行中のみRACcheckを実行する場合に使用します。 |
-nodaemon |
このオプションは、コマンドの実行にRACcheckデーモンを使用しない場合に使用します。 |
-d command
|
このオプションは、RACcheckデーモンを制御するコマンドとともに使用します。次のコマンドを使用できます。
|
-set "parameter_1=value_1 ;parameter_2=value_2..." |
このオプションは、「RACcheckデーモンを使用したRACcheckの実行」で列挙したRACcheck構成パラメータを設定するために使用します。 |
-get parameter | all
|
このオプションは、特定のRACcheckの構成パラメータ、またはすべてのRACcheckの構成パラメータの値を取得する場合に指定します。 |
-profile profile_name
|
このオプションは、特定のプロファイルを実行するためにRACcheckを構成するために使用します。サポートされるプロファイルは次のとおりです。
|
-h |
このオプションは、RACcheckの用途を表示するために使用します |
RACcheck使用のガイドライン
oracle
ユーザーがシステム上に存在し、(Oracle Clusterware、Oracle Database、Oracle ASMなどの)すべてのOracleコンポーネントがインストール済または実行中の場合、RACcheckをoracle
(またはOracle Databaseソフトウェアのインストール所有者)ユーザーとして実行することをお薦めします。RACcheckでは、root権限が必要な監査チェックをいくつか行うため、sudo
が構成されていなかったり、root
のパスワードがわからない場合、root
パスワード・メニューでオプション3
を選択してRACcheckを構成し、これらの監査チェックをスキップできます。
RACcheckは、raccheck -profile sysadmin
コマンドを使用してsysadmin
プロファイルを指定した場合のみ、root
として実行できます。この場合、RACcheckではデータベース関連のすべてのベスト・プラクティスをスキップしますが、全クラスタ・ノードでroot
ユーザーに対してSSHユーザー等価を設定する必要があるため、RACcheckではroot
のパスワードは求められません。
注意: 通常、RACcheckをoracle で実行した場合、オペレーティング・システムによる認証がOracle Databaseソフトウェア所有者用に設定されるため、RACcheckでデータベースのログイン資格証明は不要になります。 |
関連項目:
|
RACcheckのパスワードの処理方法
RACcheckではパスワードを格納したり保存しません。root
パスワードの処理は、expect
ユーティリティがインストールされているかどうかによって異なります。
(Oracle Enterprise Linux 5を除くすべてのプラットフォームでデフォルトである) expect
ユーティリティがインストールされていない場合、root
のパスワード要求は延期され、RACcheckの実行の進捗を注意深く監視して、クラスタ内の各ノードで1回要求された際に、パスワードを入力する必要があります。それ以外の場合、RACcheckではパスワードを対話的に自動化するexpect
ユーティリティを使用します。他のLinuxディストリビューションにexpect
ユーティリティをインストールすると、パスワードの対話的な処理を自動化できます。
RACcheckによってexpect
ユーティリティが検出されると、プロセスの最初でツールによってroot
パスワードが収集され、各ノードでroot
パスワードが要求され必要とされるたびに、expect
ユーティリティによってそれが提供され、ユーザーがさらに入力を行う必要なくRACcheckを続行できます。
RACcheckは、クラスタ内のすべてのデータベース・サーバーでroot
パスワードが同一であるか照会をします。(デフォルトである)肯定の応答を行った場合、root
パスワードが1回要求され検証され、以降クラスタ内のすべてのノードで使用されるようになります。(クラスタ内のすべてのノードのroot
パスワードは同一でないという)否定の応答を行った場合、RACcheckによってクラスタ内の各ノードで個々にroot
パスワードが求められ検証されます。
また、RACcheckによってexpect
ユーティリティが検出される場合、正しいパスワードを入力する機会が3回与えられ、root
パスワードは検証されます。正しいパスワードの入力に3回失敗すると、RACcheckは次のノードに移り、パスワードがまだ不正で、そのノードで収集されたデータに対するチェックがスキップされることを示すメッセージを表示します。この時点で、RACcheckの実行をキャンセルして正しいroot
パスワードを入手するか、レポートに重要な情報が欠落している可能性がある認識で続行するかを選択します。
RACcheckでexpect
ユーティリティを使用する場合、root
パスワードが入力され検証されてから、それらのパスワードの対象であるノードに到達する間に、そのパスワードが変更されてしまう可能性もあります。その場合、RACcheckは、パスワードが変更された可能性があり、そのノードに対する収集(そのノードのチェック)をスキップするというメッセージを表示しますが、これはそのノードのチェックがスキップされることを意味します。データおよびチェックがスキップされることを把握したままRACcheckを完了させるか、RACcheckの実行をキャンセルして問題を解決するかいずれかを実行できます。
なんらかの理由によりRACcheckでチェックが1つでもスキップされる場合、実行の終了後に、どのノードでどのチェックがスキップされたか、ツールによってログにレポートがされます。
RACcheckは、対話的にも、サイレントにも、また指定した間隔でRACcheckを自動的に実行することも可能です。RACcheckを対話的に実行するには、次のコマンドを実行します。
$ raccheck
RACcheckにより監査プロセスの間プロンプトが表示されます。
注意: RACcheckの実行にかかる時間は、クラスタ内のノード数、CPUに対する負荷、ネットワークの遅延などの要因によって異なります。通常、処理全体は各ノードで5分ほどです。これは一般的な目安で、これよりも大幅に時間がかかる場合は、調査の必要がある他の問題がある場合があります。 |
この項の内容は次のとおりです。
RACcheckデーモンを使用しないRACcheckのサイレント・モードでの実行
RACcheckをサイレント・モードで実行するには、次の手順を実行します。
まずSSHユーザー等価を構成します。SSHユーザー等価の構成方法の詳細は、次のURLを参照してください。
https://support.oracle.com/CSP/main/article?cmd=show&type=NOT&id=372795.1
注意: SSHユーザー等価は、クラスタをサポートするためにシステムでOracle Grid Infrastructureを実行している場合のみ必要です。これはクラスタ化されていないデータベースやOracle Restart構成では、必要ありません。 |
RACcheckでは、root
固有のチェックの実行に、root
でのアクセスを必要とします。これらのチェックをサイレント・モードで進めるには、パスワード不要のsudo
を構成して-s
オプションを使用してRACcheckを実行します。
注意: 環境でsudo が許可されない場合には、この手順をスキップします。この場合でも、-S オプションを使用して、ルート固有のチェックを行わずRACcheckをサイレントに実行することができます。ルート固有のチェックを排除すると、RACcheckの能力が制限されるため、この方法でのRACcheckの実行はお薦めしません。 |
RACcheckをサイレントで実行するには、構成に応じて次のいずれかの引数を指定します。
-s
: このオプションでは、sudo
をoracle
ユーザーがroot
パスワードを使用せず、無人でRACcheckを実行できます
-S
: このオプションでは、root
パスワードを使用せず、root
権限の収集や監査を行わずRACcheckを無人で実行できます
注意: RACcheckの機能を完全に利用するために、「RACcheckの用途」 で説明するように、/tmp/root_raccheck.sh のroot には、パスワード不要のsudoを実装することをお薦めします。 |
RACcheckは、Oracle Clusterwareから収集した情報を使用してサイレント・モードで実行されます。RACcheckをサイレント・モードで実行すると、Oracle Clusterwareのリソースと定義されているローカル・ノード上で実行されるすべてのデータベースに対して、データの収集と監査チェックが行われます。
RACcheckデーモンを使用したRACcheckの実行
RACcheckデーモンを実行するには、まずraccheck -set
parameter
=
value
コマンドを実行してデーモン・パラメータを構成する必要があります。次の構成パラメータを設定できます。
AUTORUN_INTERVAL
: このパラメータでは、RACcheckを実行する間隔を日時(d | h
)を指定して定義できます。次に例を示します。
$ raccheck -set AUTORUN_INTERVAL=1d
前述のコマンドでは、RACcheckデーモンが毎日実行されるよう構成されます。パラメータを0に設定した場合には、RACcheckデーモンは自動では実行されません。これがこのパラメータのデフォルト設定です。
AUTORUN_FLAGS
: このパラメータでは、表D-1に示したフラグを使用してRACcheckを実行する方法を定義できます。次に例を示します。
$ raccheck -set "AUTORUN_INTERVAL=12h;AUTORUN_FLAGS=-profile sysadmin"
前述のコマンドでは、12時間ごとにRACcheckでsysadmin
プロファイルが実行されるよう構成されます。
PASSWORD_CHECK_INTERVAL
: このパラメータでは、実行中のデーモンがデーモンの開始時に入力したパスワードを検証する頻度を(時間単位で)定義できます。(パスワードが変更されたことにより)デーモンに対して不正なパスワードが示される場合、デーモンは実行を停止し、デーモン・ログ(raccheck_daemon.log
)に通知を入力します(構成されている場合は、電子メールも送信します)。次に例を示します。
$ raccheck -set PASSWORD_CHECK_INTERVAL=1
前述のコマンドでは毎時パスワードが検証されます。
NOTIFICATION_EMAIL
: このパラメータでは、特定のユーザーに通知が電子メールで送信されるようRACcheckデーモンを構成します。次に例を示します。
$ raccheck -set NOTIFICATION_EMAIL=firstname.lastname@company.com
注意: 各パラメータをセミコロンで区切ったリストにして、二重引用符("" )で囲み、1つのコマンドに複数のパラメータを構成できます。たとえば、次のコマンドでは、RACcheckデーモンは毎日verboseモードで実行され、デーモンからの通知として電子メール・アドレスが指定され、毎時パスワードの変更がチェックされます。
$ raccheck -set "AUTORUN_INTERVAL=1d;AUTORUN_FLAGS= -o verbose; NOTIFICATION_EMAIL=firstname.lastname@company.com;PASSWORD_CHECK_INTERVAL=1" |
RACcheckデーモンのすべてのパラメータの現在の構成を取得するには、次のコマンドを実行します。
$ raccheck -get all
前述のコマンドでは次のような出力が戻されます。
AUTORUN_INTERVAL = 1d AUTORUN_FLAGS = -o verbose NOTIFICATION_EMAIL = firstname.lastname@company.com PASSWORD_CHECK_INTERVAL = 1
RACcheckのパラメータは、RACcheckデーモンの起動後に設定または変更できます。
注意: 最低でもNOTIFICATION_EMAIL およびPASSWORD_CHECK_INTERVAL のパラメータは構成することをお薦めします。 |
RACcheckデーモンを起動するには、次のコマンドを実行します。
$ raccheck –d start
RACcheckによって、必要な情報が収集され、デーモン・プロセスを起動する対話型のグラフィカル・ユーザー・インタフェースが起動されます。
RACcheckデーモンの実行中に、デーモン・プロセスを起動したユーザーとしてRACcheckデーモンを起動した同じディレクトリから、引数なしにコマンドラインにraccheck
を入力して、RACcheckを必要に応じて実行することも可能です。このように実行した場合、デーモンがすべての要求でパラメータを渡し、対話的にRACcheckが実行されるときと同様な出力が画面に生成され、RACcheckは非対話的に実行されます。
注意: RACcheckデーモンの実行時に、RACcheckを対話的に実行する場合は、次のコマンドを実行します。$ raccheck -nodaemon |
RACcheckデーモンの使用方法
RACcheckデーモンが起動中の場合、他のユーザーがRACcheckデーモンを使用してRACcheckを非対話モードで実行することはできません。RACcheckデーモンを使用するには、デーモンが起動されたのと同じディレクトリから同じユーザーとして、RACcheckを必要に応じて実行する必要があります。
RACcheckデーモンは一度起動されると、デーモンを(raccheck –d stop
コマンドを使用して)明示的に停止するか、次の条件が満たさないかぎり、バックグラウンドで実行が継続します。
実行中のサーバーでデーモンが再起動されるか停止されます。
いずれかのノードでパスワードが変更されてデーモンが停止され、raccheck_daemon.log
にエントリが追加されます。加え、NOTIFICATION_EMAIL
構成パラメータに入力されたアドレスにRACcheckが電子メールを送信します。必要なパスワードの有効性を確認するには、PASSWORD_CHECK_INTERVAL
構成パラメータを設定します。
デーモンの開始以降、RACcheckのスクリプトが変更されたり、新しいスクリプトに置き換えられた場合、RACcheckをそれ以降実行しようとしたり、自動実行されても失敗します。それ以降実行するには、デーモンを新しいスクリプトを使用して再起動する必要があります。
(ノードまたはインスタンスが追加または削除されるなど)システムの構成が変わった場合、構成の変更が認識されるようRACcheckデーモンを再起動する必要があります。
RACcheckでのレポートの比較
RACcheckを使用して、2つのRACcheckレポートの結果を比較することができます。比較結果を使用して、わかりやすいHTMLレポートで、時間の経過とともにまたは計画メンテナンス後に変化するトレンドおよびベスト・プラクティスを監視できます。RACcheck出力ディレクトリ、.zip
出力ファイル、HTMLレポートのRACcheckレポートにアクセスできることを確認します。
2つのRACcheckレポートを比較するには、次のコマンドを実行します。
$ raccheck -diff report_1 report_2
比較する2つのレポート・ファイルの名前を指定します。RACcheckで2つのファイルの比較が終了すると、ユーティリティによってサマリーが出力され、参照可能な比較レポートの場所が提供されます。
アップグレードの準備状況を判断するためのRACcheckの実行
RACcheckを使用すると、Oracle RACおよびOracle Clusterwareのアップグレード計画の促進に役立つ自動化されたアップグレード準備状況評価を取得することができます。次のアップグレード関係のドキュメントで詳細に説明する、多数の手動でのアップグレード前およびアップグレード後チェックを、RACcheckを使用し、自動で実行できます。
『Oracle Databaseアップグレード・ガイド』
ご使用のプラットフォーム用のOracle Grid Infrastructureインストレーション・ガイド
次のMy Oracle Supportノート:
RACcheckは、ソフトウェアのアップグレードの前後に実行できます。アップグレード前チェックは、発生する可能性のある問題を解決するための十分な時間がある、実際のアップグレード・プロセス前のアップグレード・プロセスの計画段階で実行します。アップグレード後のチェックは、Oracle Grid InfrastructureおよびOracle Databaseが健全な状態にあることを確認するために実行します。次に、RACcheckのアップグレード・チェックから得ることができる可能性のあるものの要約を示します。
アップグレード前チェックを実行する際、RACcheckではOracle Clusterwareに登録されているすべてのデータベースを検出し、アップグレード前チェックを実行するデータベースのリストを生成します。最新バージョンのデータベースが検出される場合、RACcheckではそれをスキップし、まったくチェックを行いません。
アップグレード後チェックを実行する際、RACcheckではOracle Clusterwareに登録されているすべてのデータベースを検出し、アップグレード後チェックを実行するデータベースのリストを生成します。RACcheckによってOracle Database 11gリリース2 (11.2.0.3)より前のデータベース・バージョンが検出される場合、RACcheckではそれをスキップし、まったくチェックを行いません。
アップグレード前チェックまたはアップグレード後チェックのいずれかが実行される場合でも、RACcheckではOracle Clusterwareとオペレーティング・システムの両方をチェックします。
RACcheckではチェックを終了すると、その結果とその他の詳細および情報へのリンクを含むレポートをHTML形式で生成します。
RACcheckのアップグレード・チェックを実行するには、次の構文を使用します。
$ raccheck -u -o pre | post
出力ファイルのメンテナンス
RACcheckを実行すると、ツールによってraccheckで開始され、日時を含む命名規則の(raccheck_SIEBXL_072613_141001
などの)サブディレクトリ、および(raccheck_SIEBXL_072611_141001.zip
など)サブディレクトリのコンテンツを含むzipファイルが、ファイル・システム上のRACcheck自体と同じレベルで作成されます。ファイル・システム上のサブディレクトリおよびzipファイルの合計サイズは、5MB未満である必要があります。システム上のノード数およびデータベース数により、正確なものは異なります。RACcheckはシステムに対する負荷が最小のときに実行することをお薦めしますが、時間の経過に伴い、ファイル数は増え、古いファイル、サブディレクトリまたはこの両方をメンテナンスおよび削除する必要性が生じます。
複数のデータベースのサポート
RACcheckは複数のデータベースをサポートするよう設計されています。このツールは、Oracle Grid Infrastructureに登録されている実行中のデータベースのリストを提示します。1つ選択するか、すべて選択するか、またはリストされたデータベースを指定する数のカンマ区切りリストを選択できます。クラスタ内の他のノードで実行されているデータベース・インスタンスをチェックするために複数のノードにツールをインストールする必要はありません。
RACcheckはローカルbequeath接続を使用してすべてのデータベースにログインし、ツールを実行するユーザーのデータベースにオペレーティング・システム認証が存在することを前提としています。構成によっては、(oracle
など)同じオペレーティング・システム・ユーザーが所有するデータベース・ホームが複数あったり、すべて異なるオペレーティング・システム・ユーザーが所有するデータベース・ホームがいくつもある場合があります。
前者の場合、RACcheckをoracle
として実行します。後者の場合、可能なかぎりの情報を得るために、最大数のデータベースがあるホームにRACcheckうをデプロイします(この場合、そのホームの所有者としてRACcheckをインストールします)。その他のデータベースをスキャンするには、各データベース・ホーム・ユーザー・アカウントとしてRACcheckをインストールして実行する必要があります。
データベースへのレポート用のRACcheckの結果およびパッチのアップロード
レポート用のデータ・ソースとして使用するために、RACcheckによって実行された監査チェックの結果またはインストール済パッチのリストをデータベース表にアップロードすることできます。
このオプションの機能を利用するには、実行環境に多数の環境変数を設定し、2つの表を(1つは監査チェックの結果、もう1つはシステムにインストール済のパッチ用に)作成して、そのデータを受取る必要があります。
auditcheck_result
という結果表を作成するには、次のDDLコマンドを実行します。
create table auditcheck_result ( COLLECTION_DATE TIMESTAMP, CHECK_NAME VARCHAR2(256), PARAM_NAME VARCHAR2(256), STATUS VARCHAR2(256), STATUS_MESSAGE VARCHAR2(256), ACTUAL_VALUE VARCHAR2(256), RECOMMENDED_VALUE VARCHAR2(256), COMPARISON_OPERATOR VARCHAR2(256), HOSTNAME VARCHAR2(256), INSTANCE_NAME VARCHAR2(256), CHECK_TYPE VARCHAR2(256), DB_PLATFORM VARCHAR2(256), OS_DISTRO VARCHAR2(256), OS_KERNEL VARCHAR2(256), OS_VERSION NUMBER, DB_VERSION VARCHAR2(256), CLUSTER_NAME VARCHAR2(256), DB_NAME VARCHAR2(256), ERROR_TEXT VARCHAR2(256) CHECK_ID VARCHAR2(40), NEEDS_RUNNING VARCHAR2(100), MODULES VARCHAR2(4000), DATABASE_ROLE VARCHAR2(100), CLUSTERWARE_VERSION VARCHAR2(100), GLOBAL_NAME VARCHAR2(256) );
auditcheck_patch_result
というパッチの表を作成するには、次のDDLコマンドを実行します。
create table auditcheck_patch_result ( COLLECTION_DATE TIMESTAMP(6), HOSTNAME VARCHAR2(256), ORACLE_HOME_TYPE VARCHAR2(256), ORACLE_HOME_PATH VARCHAR2(256), ORACLE_HOME_VERSION VARCHAR2(256), PATCH_NUMBER NUMBER, CLUSTER_NAME VARCHAR2(256), DESCRIPTION VARCHAR2(256), PATCH_TYPE VARCHAR2(128), APPLIED NUMBER, RECOMMENDED NUMBER );
次の環境変数を設定します(例の値が示されています)。
$ export RAT_UPLOAD_CONNECT_STRING="(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP) (HOST = bonanza)(PORT = 1521)) (LOAD_BALANCE = yes) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl)))" $ export RAT_UPLOAD_TABLE=auditcheck_result (name must match that of the table created for the purpose) $ export RAT_PATCH_UPLOAD_TABLE=auditcheck_patch_result (name must match the name of the table created for the purpose) $ export RAT_UPLOAD_USER=auditcheck (schema owner of the table created for the purpose) $ export RAT_UPLOAD_PASSWORD=auditcheck (password for the schema owner) $ export RAT_UPLOAD_ORACLE_HOME=path_of_database_home (optional, alternate home containing sqlplus that you want to use for connecting in case it is not the current $ORACLE_HOME as derived by RACcheck from the environment)
注意: 接続文字列には、RACcheckを実行する可能性のあるすべてのサーバーでのtnsnames.ora ファイルの名前解決に依存する必要のないように、tnsnames.ora ファイルの別名ではなく、(前述の例に示した)完全修飾されたアドレスを使用します。二重引用符("" )を使用する必要があります。 |
実行環境に(前述の例で示した)最初の4つの環境変数を設定すると、RACcheckでは、プロセスの最後にデータを表にアップロードすることが目的であると想定し、データのアップロードを試行します。このプロセスでは、ユーザーが環境を正しく設定している必要があります(つまり、接続文字列はアクセス可能で、ユーザー名およびパスワードは正しく、表名は正しい必要があります)。RACcheckでデータベースに接続できない場合、それに関するメッセージがログに記述されます。RAT_UPLOAD_ORACLE_HOME
の変数を設定すると、RACcheckから派生する現在のOracleホームからSQL*Plusを起動せず、RACcheckによりそのホームからSQL*Plusが起動されます。最初の4つの環境変数をいずれも設定しない場合、RACcheckではデータのアップロードを試行しません。
監査チェックの除外
オプションで、RACcheckの最初の実行後、次のように1つ以上の監査チェックを除外できます。
RACcheckスクリプトおよびドライバ・ファイルと同じディレクトリに、excluded_check_ids.txt
という名前のテキスト・ファイルを作成します。
ツールの前回の実行の出力ディレクトリにあるraccheck.log
ファイルを開きます。
以降の実行で除外する監査チェックを検索します。
除外する監査チェックのCHECK_ID
のメモを取ります。CHECK ID
はCHECK_ID = 65E4DC8B76BC4DA6E040E50A1EC03704
のような英数字の文字列です。監査チェックのブロックにCHECK_ID
行がない場合、その監査チェックは除外できません。
excluded_check_ids.txt
ファイルに除外する監査チェックのCHECK_ID
を、1行にCHECK_ID
を1つずつ入力します。
以降、RACcheckを実行すると、ツールによって監査チェックが実行される前に、除外するチェックがあるかexcluded_check_ids.txt
ファイルが確認され、それらがスキップされます。
この項では、RACcheckの実行時に発生する可能性のある様々な問題とその解決方法を、次の内容で説明します。
ランタイム・コマンドのタイムアウト
root
権限で実行されていない個別のコマンドが完了前にタイムアウトする場合、そのプロセスはRACcheckにより停止され、必要なデータは収集されません。これが発生する場合は、次の環境変数をスクリプトの実行環境に設定して延長することができます。
$ export RAT_TIMEOUT=120
環境変数のデフォルト値は90秒です。
RACcheckでは、クラスタ内のノードごとにroot
権限でのデータ収集のセットを実行します。データの収集前に収集がタイムアウトする場合、そのプロセスはRACcheckにより停止され、必要なデータは収集されません。これが発生する場合は、次の環境変数をスクリプトの実行環境に設定して延長することができます。
$ export RAT_ROOT_TIMEOUT=600
環境変数のデフォルト値は300秒です。
注意: これらのタイムアウトのいずれかが発生する場合、遅延の原因を特定して修正し、システムに対する負荷が最小のときにRACcheckを実行することをお薦めします。 |
エラーを含むraccheck_error.logファイル
raccheck_error.log
ファイルにある、次のエラーは無視してかまいません。
/bin/sh: /u01/app/11.2.0/grid/OPatch/opatch: Permission denied
chmod: changing permissions of '/u01/app/oracle_ebs/product/11.2.0.2/VIS_RAC/.patch_storage': Operation not permitted
OPatch could not open log file, logging will not be possible
Inventory load failed... OPatch cannot load inventory for the given Oracle Home.
前述のエラーは、ロールが分かれている環境で、データベース・ソフトウェア所有者によって実行されたRACcheckが、OPatchを使用してその他のユーザー(grid
やその他のデータベース・ホーム所有者など)が所有するホームのパッチ・インベントリを列挙しようとするときに発生します。それらのその他のユーザーのためにパッチ・インベントリを列挙するためにOPatchを実行する場合、現在のユーザーはその他のホームに対する権限を持たないためにエラーが発生します。これらの場合、OPatchエラーは無視され、それらのホームのパッチ・インベントリはその他の手段で収集されます。
また、次に類似したエラーを無視できます。
./raccheck: line [N]: [: : integer expression expected
行番号は経時変化する場合がありますが、このエラーは、RACcheckが整数の戻り値を期待しているにもかかわらず、値が見つからないときに発生します。比較を実行するときに、RACcheckではこのエラーを返します。このエラーは、同じコマンドに対し各ノードで1回ずつ何度も返されます。
リモートからのrootのログインの問題
SSHを介したリモートからのroot
ログインが許可されない場合、root
権限コマンドが失敗する場合があります。Oracleソフトウェアの所有者(oracle
)を確認するには、稼働していない任意のノードから次のコマンドを手動で実行し、次のように出力されることを確認します。
$ ssh root@remotehostname "id" root@remotehostname's password: uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
リモートのroot
ログインが動作していない場合、RACcheckではリモート・ノードをチェックできません。一時的なものであったとしても、RACcheckを実行する際は、システム管理者に問い合せて修正します。
リモートのroot
ログインを構成できる場合、次のようにして/etc/ssh/sshd_config
ファイルを編集します。
PermitRootLogin to yes
root
として、クラスタのすべてのノードで次のコマンドを実行します。
# /etc/init.d/sshd restart
ローカル環境の問題
RACcheckでは、環境(オペレーティング・システムおよびOracle Cluster Registry)から必要なデータをすべて導出しようとしますが、ローカル・システムの違いにより期待どおりにツールが機能せず、可能なシナリオをすべて予想したりテストすることが困難な場合があります。したがって、環境変数が多数サポートされているので、ツールのデフォルトの動作をオーバーライドするか、必要な情報を提供する必要があります。次に環境変数の一覧とそれぞれの説明を示します。
RAT_INV_LOC
: 期待の場所(/u01/app/oraInventory
)にoraInst.loc
ファイルがない場合、この環境変数内にoraInventory
ディレクトリの正しい場所を指定できます。
RAT_CRS_HOME
: Oracle Clusterwareがインストールされているにもかかわらず、RACcheckが正しいGrid_home
パスを特定できず、ソフトウェアがインストールされていないという情報が表示される場合にこの環境変数を設定します。
RAT_ORACLE_HOME
: Oracle Clusterwareに登録されているデータベースの正しいORACLE_HOME
パスをRACcheckが特定できず、データベース・ソフトウェアがインストールされているにもかかわらず、そのソフトウェアがインストールされていないという情報が表示される場合にこの環境変数を設定します。RACcheckでは、この環境変数に指定したホームから実行されるすべてのデータベースに対して、ベスト・プラクティスおよび推奨のパッチのチェックを実行します。
RAT_ASM_HOME
: Oracle Clusterwareから(Grid_home
パスと同じ)正しいOracle ASMホーム・パスをRACcheckが特定できず、Oracle ASMソフトウェアがインストールされているにもかかわらず、そのソフトウェアがインストールされていないという情報が表示される場合にこの環境変数を設定します。
RAT_OS
: RACcheckが正しいプラットフォームを特定できず、判断されたプラットフォームに必要なデータが見つからないとツールから通知される場合に、この環境変数を設定します。
RAT_DB
: RACcheckによって不正なデータベース・バージョンが特定される場合に、この環境変数を設定します。
RAT_DBNAMES
: RACcheckがOracle Clusterwareから有効なデータベース名を判断できない場合に、この環境変数を設定します。スペース区切りのデータベース名のリストを指定すると、RACcheckでは、Oracle Clusterwareから導出されたものではなくそのリストを使用します。次に例を示します。
$ export RAT_DBNAMES="ORCL ORADB PROD"
複数のデータベース名を指定する場合は、二重引用符(""
)を使用します。
注意: Oracle Clusterwareに登録されたデータベースのサブセットとしてRAT_DBNAMES を構成する場合、Oracle Clusterwareに登録されていると検出されるすべてのデータベースのパッチ・インベントリを推奨のパッチに対してチェックする場合、RAT_DBHOMES も構成することをお薦めします。 |
RAT_DBHOMES
: RAT_DBNAMES
環境変数を設定する場合、デフォルトで推奨のパッチ解析は、リストしたデータベース名のホームに限定されます。RAT_DBNAMES
に指定した以外の追加のデータベース・ホームで推奨のパッチ解析を実行する場合は、推奨されるパッチをチェックするホームをスペース区切りのデータベース・リストで指定します。たとえば、export RAT_DBNAMES="ORCL ORADB"
コマンドを実行したが、PROD
データベースがダウンしていてもPROD
データベース・ホームもチェックしたい場合を想定します。export RAT_DBHOMES="ORCL ORADB PROD"
コマンドを実行すると、ORCL
およびORADB
のデータベースに対してベスト・プラクティスがチェックされますが、推奨のパッチは、ORCL
、ORADB
およびPROD
のデータベース・ホームに対してチェックされます。複数のデータベース名を指定する場合は、二重引用符(""
)を使用します。
RAT_SSHELL
: ssh
が期待する場所になく、ssh
コマンドが次のエラーを返す場合、デフォルトの場所(通常は/usr/bin/ssh
)をオーバーライドしセキュア・シェルの場所を指定する、この環境変数を設定します。
-bash: /usr/bin/ssh -q: No such file or directory
RAT_SCOPY
: scp
が期待する場所になく、scp
コマンドが次のエラーを返す場合、デフォルトのセキュア・コピーの場所(通常は/usr/bin/scp
)をオーバーライドしセキュア・コピーの場所を指定する、この環境変数を設定します。
/usr/bin/scp -q: No such file or directory
データベースのログイン上の問題
データベース・ソフトウェアのインストール所有者以外のユーザー(root
またはgrid
など)としてRACcheckを実行する場合にデータベース接続で問題が発生した場合、次を実行します。
grid
としてシステムにログインします。
次のコマンドを実行します。
$ export ORACLE_HOME=path_to_Oracle_Database_home $ export ORACLE_SID=database_SID $ export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/lib:$PATH
$ORACLE_HOME/network/admin/tnsnames.ora
ファイルにdatabase_SID
の別名を追加します。
パスワードを含め、次のようにデータベースに接続します。
$ORACLE_HOME/bin/sqlplus sys@SID as sysdba
正常に接続したことを確認します。
この方法でデータベース接続に失敗する場合、RACcheckでも同様に接続できません。ツールをOracle Databaseソフトウェア・インストール所有者として実行することを検討してください。
脚注の凡例
脚注 1: Linux Itaniumはサポート対象外です