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
現在、このインスタンスはアーカイブログをアクティブに回復していますが、「ライブ」ではありません。まだスタンバイデータベースとしてマウントされていないかどうかを確認する方法を探しています。
わかった!
V $ databaseのCONTROLFILE_TYPEがキーです
SQL> select CONTROLFILE_TYPE from v$database;
CONTROL
-------
CURRENT
versus
SQL> select CONTROLFILE_TYPE from v$database;
CONTROL
-------
STANDBY
これは、フィジカルスタンバイ、Oracle 10g以上で機能します。
SELECT open_mode FROM v $ database;
値が次の場合:
プライマリ:
select database_role from v$database;
DATABASE_ROLE
----------------
PRIMARY
スレーブ上:
OPEN_MODE
-------------------- --------------------
MOUNTED or READ ONLY WITH APPLY
他の値もあるかもしれませんが、わかりません。
HTH
私はこの質問の答えが本当にわかりません-「Oracleデータベースがマウントされてアクティブ化されているかどうかはどうすればわかりますか?」回答を投稿する必要があるため、知らないでください。ほとんどが著しく誤解されているため、この投稿の回答から誤解されます。
「v $ instance」を使用していると言っている人は、それが「インスタンス」がマウントされているか、起動しているか、アクティブであるかを知るため、間違いです。 データベースとデータベースインスタンスは異なるものであることに注意してください。違いがわからない場合は、よく読んで、Oracle RACおよびOracle Data Gurard。
あなたが言っているものはselect CONTROLFILE_TYPE from v$database;
も正しくありません。これは Oracle のように、この列は制御ファイル情報を示し、データベースがスタンバイモードとアクティブモードのどちらであるかを示します。これは、データベースがマウントされているかどうか、またはデータベースがアクティブであるかどうかとは異なります。
先ほど述べたように、データベースとデータベースインスタンスの違いを理解し、Oracle RACとOracle Data Gurardについて理解することは非常に重要だと思います。
プライマリデータベースと別のスタンバイDatabguardデータベースがあり、両方のデータベース/インスタンスがアクティブに使用されていると仮定しますが、以下のスクリーンショットとの違いを確認してください。
プライマリデータベース:
スタンバイデータガードデータベース:
スタンバイデータベースに慣れていないので、これはあまりにも単純すぎるかもしれません。
しかし、インスタンスが稼働している限り、たとえばv $ instanceビューをクエリしてデータベースのステータスを取得できるはずです。
SELECT INSTANCE_NAME, DATABASE_STATUS, INSTANCE_ROLE, ACTIVE_STATE FROM v$instance;
Netstat/lsofを介してデータベースへの接続を監視できますか?おそらくあなたはクライアントがそれを使い始めていることに気付くでしょう。
これらのコマンドのアーカイブログを監視することもできます。