ysk_son’s diary

勉強の記録

Oracle Database 12c Release 1 でData Guardを学ぶ - フィジカル・スタンバイ・データベースの作成(4)

【目的】

Oracle Database 12c Release 1 でData Guardを実装する。

【環境】

ホストOS:MacBook Air OS X EI Capitan / 1.6GHz Intel Core i5 / 4GB /
ゲストOS:Oracle Linux Release 6 Update 4 for x86_64 (64 bit)

# 今回の勉強用途でMacBook Air買ったのだかすでに容量パンパン。。

【参考資料】

Data Guardに関する社内ハンズオンの資料とかWeb上の資料とか。

【現状】

このエントリに書いたとおり、VirtualBox上にOracle DB 12cR2を構築した経験はある。
逆にそれ以外の経験はなし。

【今日やること】

フィジカル・スタンバイ・データベースの作成。

---以下作業---


前回のエントリの続き。
ORA-16024やらORA-01034やらが出てしまい作業が進まなかったので、この部分の解消を目指す。


まず現状の整理。

# ローカル・ノードへのアーカイブREDOログ格納
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST
  2  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=orcl'Scope=spfile;

システムが変更されました。

# リモート・ノードへのREDOログ転送
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=node2 ASYNC
  2  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=orcls'scope=spfile;

システムが変更されました。

上記手順の中で「DB_UNIQUE_NAME」の前にスペースを入れていなかったことが原因で
アーカイブログが誤設定されていると思われる。
# 多分正しいと思う

なので今回はアーカイブログの再設定の手順を調べ、実行しようと思う。

アーカイブ運用の再設定

www.shift-the-oracle.com

このサイトを参考にしてアーカイブ運用の再設定を行ってみる。
まず以下のとおりDBを停止して、MOUNT状態にする。

SQL> SHUTDOWN IMMEDIATE ;

SQL> STARTUP MOUNT;


結果は以下。

SQL> SHUTDOWN IMMEDIATE ;
ERROR:
ORA-01034: ORACLE not available
ORA-27101: shared memory realm does not exist
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3640
Additional information: 1371676159
プロセスID: 0
セッションID: 0、シリアル番号: 0


SQL> STARTUP MOUNT;
ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed

思ってた挙動と違う。
もしかして一度アーカイブ設定を間違えると取り返しつかない?

いやそんなことないはず。
調べてみる。

こんなサイトを見つけた。

www.shift-the-oracle.com

アーカイブの出力先設定を間違えて起動不能になった場合」というタイトルなので期待大。


こう記載がある。

メモリやプロセス関連の初期化パラメータに誤った設定を行なうとマウントができないことがあり、
初期化パラメータを元に戻せないことがある。

私のことですね。
早速手順に従って作業を行う。

f:id:ysk_son:20171130235753p:plain

…わからない。
今までの作業工程で'initXXX.ora'とか一度も出てきていない。。
とりあえず[]内は飛ばしてOKとあるので以下のようにコマンド。

SQL> CREATE PFILE FROM SPFILE
  2  CREATE SPFILE FROM PFILE
  3  

コマンドはエラーなく受け入れてもらえるんだけど、特にメッセージもない。
これで正しいのかどうかわからないので試しにアーカイブログ・モードの設定へと作業を進めてみる。

SQLモードを終えて以下を実行。

[oracle@node1 ~]$ srvctl stop database -db orcl -stopoption immediate

PRCC-1016 : orclはすでに停止しています

[oracle@node1 ~]$ srvctl start database -db orcl -startoption mount

PRCR-1079 : リソースora.orcl.dbの起動に失敗しました
CRS-5017: リソース・アクション"ora.orcl.db start"に次のエラーが発生しました: 
ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed
。詳細は"(:CLSN00107:)"("/u01/app/grid/diag/crs/node1/crs/trace/ohasd_oraagent_grid.trc")を参照してください。

CRS-2674: 'ora.orcl.db'('node1')の起動に失敗しました
[oracle@node1 ~]$ 

DBの起動に失敗したとのこと。
また「ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed」が出てきているので
一つ前の手順は正解ではなかったということか。

「詳細は"(:CLSN00107:)"("/u01/app/grid/diag/crs/node1/crs/trace/ohasd_oraagent_grid.trc")を参照してください。」
というのが気になるので調べてみよう。

……

ううん。。。有効な手段が見つからない。。