ysk_son’s diary

勉強の記録

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

【目的】

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やらが
出てしまい作業が進まなかったので、今回はこの部分の解消を目指す。

まずはORA-01034について調査。

調べたところ、REDOログをアーカイブする際に、何らかの原因でREDOログが
アーカイブREDOログに書き込めずエラーとなっている可能性が考えられるので、
アーカイブログのモードを一旦リセットしてみることに。

[oracle@node1 ~]$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.2.0 Production on 木 11月 30 20:20:02 2017

Copyright (c) 1982, 2014, Oracle.  All rights reserved.

アイドル・インスタンスに接続しました。

SQL接続はできた。
次に試しにDBパラメータを確認してみる。

SQL> show parameters db_name

ORA-01034: ORACLE not available

エラー。
またORA-01034。

この状態で

SQL> startup mount

とすると

ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed

と返ってくるので、アーカイブログの設定がおかしいのは間違いなさそう。
こいつを一旦リセットして設定をし直せば良いのだろうか。

調査…

おぉ。このサイトはドンピシャで「ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed」
の対処法が書かれている。

www.dba-oracle.com


以下抜粋

Question: I am getting the ORA-16024 error in my init.ora file:

log_archive_dest_1 = 'LOCATION=/u01/app/oracle/prim/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=prim'

ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed

Answer: The cause of this ORA-16024 error is a missing space in the variable declaration.

log_archive_dest_1 = 'LOCATION=/u01/app/oracle/prim/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES)DB_UNIQUE_NAME=prim'

Should be containing a space before db)uniaue_name:

log_archive_dest_1 = 'LOCATION=/u01/app/oracle/prim/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prim'

unique_nameの前にスペースを入れなさいとの事。
前回の私の記事を見ると。。

# ローカル・ノードへのアーカイブ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;

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

スペースない。

ここを設定し直せば良さそうだ。

スペースの見落としがこんなに重要とは。
コピペを使わなかった自分を呪いたい。
# 手打ちした方が覚えると思ってわざわざ打ち込んでた

そしてこの場合エラーも出ずに設定を進められてしまうことも勉強になった。


「ORA-16024: parameter LOG_ARCHIVE_DEST_1 cannot be parsed」で調べると
unique_nameの前にスペースを入れないさいという情報は多々見つけられるのだが
これの再設定方法についての情報がなかなか見つからない。

一息つく。
続きはまた次のエントリにて。