web-dev-qa-db-ja.com

Oracleデータベースがマウントおよびアクティブ化されているかどうかを確認するにはどうすればよいですか?

IANADBAですが、Oracleスタンバイデータベースがアクティブ化されていない限り、アクションを実行するスクリプトを作成しています。私が探しているのは、2つのクエリ(または必要に応じてクエリのセット)です。

1-データベースがマウントされていますか(同様に、「代替データベースマウントスタンバイデータベース」が実行されています)

2-データベースがアクティブ化されているかどうかを確認するにはどうすればよいですか(「alter database activate standby database」のように)?

先ほど触れたように、クエリを探していますが、システムでそれを伝える方法があれば、それも受け入れます。ありがとう!

更新

私は以下の提案を採用しました(私はOracle 8iを扱っているため、少し変更しましたが、これは次のとおりです:

 SQL>  SELECT INSTANCE_NAME, DATABASE_STATUS, INSTANCE_ROLE from v$instance; 

 INSTANCE_NAME    DATABASE_STATUS   INSTANCE_ROLE
 ---------------- ----------------- ------------------
 RGR01            ACTIVE            PRIMARY_INSTANCE

現在、このインスタンスはアーカイブログをアクティブに回復していますが、「ライブ」ではありません。まだスタンバイデータベースとしてマウントされていないかどうかを確認する方法を探しています。

6
Matt Simmons

わかった!

V $ databaseのCONTROLFILE_TYPEがキーです

 SQL> select CONTROLFILE_TYPE from v$database; 

 CONTROL
 -------
 CURRENT

versus

 SQL> select CONTROLFILE_TYPE from v$database; 

 CONTROL
 -------
 STANDBY
9
Matt Simmons

これは、フィジカルスタンバイ、Oracle 10g以上で機能します。

SELECT open_mode FROM v $ database;

値が次の場合:

  1. 'MOUNTED'、データベースはマウントされています。
  2. 「READ WRITE」の場合は、アクティブ化されていると想定できます。
  3. 「読み取り専用」の場合、読み取り専用モードでクエリ用に開かれる可能性がありますが、アクティブ化されません。
  4. アクティブなデータガードを使用する場合は、「APPLY WITH WITH APPLY」を読み取ります。

プライマリ:

select database_role from v$database;

DATABASE_ROLE
----------------
PRIMARY

スレーブ上:

OPEN_MODE
--------------------    --------------------
MOUNTED              or READ ONLY WITH APPLY

他の値もあるかもしれませんが、わかりません。

HTH

3
DCookie

私はこの質問の答えが本当にわかりません-「Oracleデータベースがマウントされてアクティブ化されているかどうかはどうすればわかりますか?」回答を投稿する必要があるため、知らないでください。ほとんどが著しく誤解されているため、この投稿の回答から誤解されます

  • 「v $ instance」を使用していると言っている人は、それが「インスタンス」がマウントされているか、起動しているか、アクティブであるかを知るため、間違いです。 データベースとデータベースインスタンスは異なるものであることに注意してください。違いがわからない場合は、よく読んで、Oracle RACおよびOracle Data Gurard

  • あなたが言っているものはselect CONTROLFILE_TYPE from v$database;も正しくありません。これは Oracle のように、この列は制御ファイル情報を示し、データベースがスタンバイモードとアクティブモードのどちらであるかを示します。これは、データベースがマウントされているかどうか、またはデータベースがアクティブであるかどうかとは異なります。

先ほど述べたように、データベースとデータベースインスタンスの違いを理解し、Oracle RACとOracle Data Gurardについて理解することは非常に重要だと思います。

プライマリデータベースと別のスタンバイDatabguardデータベースがあり、両方のデータベース/インスタンスがアクティブに使用されていると仮定しますが、以下のスクリーンショットとの違いを確認してください。

プライマリデータベース:

enter image description here

スタンバイデータガードデータベース:

enter image description here

1
hagrawal

スタンバイデータベースに慣れていないので、これはあまりにも単純すぎるかもしれません。

しかし、インスタンスが稼働している限り、たとえばv $ instanceビューをクエリしてデータベースのステータスを取得できるはずです。

SELECT INSTANCE_NAME, DATABASE_STATUS, INSTANCE_ROLE, ACTIVE_STATE FROM v$instance;
1
OilyRag

Netstat/lsofを介してデータベースへの接続を監視できますか?おそらくあなたはクライアントがそれを使い始めていることに気付くでしょう。

これらのコマンドのアーカイブログを監視することもできます。

0
Matt