I.概要
この記事では、単一ノードのDG RACを構築し、どのような役割の逆転にする方法について説明します。( - 単一インスタンスのDGを構築するためにRAC構築シングルインスタンス)以前に知識を持っています
第二に、実験環境の紹介
メインライブラリRAC(既にインストールRAC、および既存のデータベースorcl)
のRac1:192.168.56.11、SID1:ORCL1、バージョン:11.2.0.4
RAC2:192.168.56.12、SID2:ORCL2、バージョン:11.2.0.4
ライブラリ(シングル・インスタンスのデータベース・ソフトウェアがインストールされている、いないデータベースインスタンス)から
192.168.56.102、SID:orcldg、バージョン:11.2.0.4 oradgなど
第三に、ビルドDG
次の主要なライブラリ操作がノード1で行われの**すべて、ノード2で行うために必要であれば、私はマークされます
1.メインライブラリアーカイブモードと書き込みログ
最初のビューには、状態データベースアーカイブとアーカイブを開いて、また書き込みログ力が入らない、現在のデータベースを参照することができチャートから、ログを書き込むように強制的になっている
のVからFORCE_LOGGING、SQL>を選択しlog_modeを $データベース;
データベースがアーカイブのマウント状態で開かれ
; SQL> ALTER SYSTEM SET LOG_ARCHIVE_DEST_1 = 'LOCATION = +データ' SID = '*'スコープ= SPFILE
SQL> SHUTDOWN IMMEDIATEを、#2のノードが閉じている
SQL>マウントSTARTUP;#オープンのみのノード1。
SQL > ALTERデータベースのARCHIVELOG;
SQL> ALTERオープンデータベース。
ログを書き込むように強制、データベースがオープン状態の変更することができるようになります
SQL> alter databaseを力のログを、
SQL>スタートアップ;#1open完成したときに開いているデータベース内のノード、ノード2
アーカイブされた状態データベースを表示するには、是非、書き込みログを開いて強制するかどうか
log_modeを選択> SQLを、VのからFORCE_LOGGING $データベース;
2.一次ライブラリーは、スイッチのDataGuard
SQL> ALTER SYSTEMセットLOG_ARCHIVE_CONFIG = 'DG_CONFIG =(ORCL、orcldg)' SID = '*';#のORCLはライブラリDB_UNIQUE_NAMEからDB_UNIQUE_NAMEメインライブラリ、orcldgあります
3.メイン図書館は、リモート・アーカイブを設定しました
SQL> ALTER SYSTEMセットLOG_ARCHIVE_DEST_3 = 'サービス= orcldg VALID_FOR =(ONLINE_LOGFILES、PRIMARY_ROLE)DB_UNIQUE_NAME = orcldg' SID = '*';
ライブラリにライブラリからマスターパスワードファイルを転送4.
[オラクル@ RAC1〜] $ scpコマンド$ ORACLE_HOME / DBS / orapw $ ORACLE_SID 192.168.56.102:$ORACLE_HOME/dbs/orapworcldg
ライブラリの準備パラメータファイル5.
ここで構築されたDGとファイルのパラメータ単一インスタンスの単一のインスタンスに違いはありません、それが特異的に導入されていない
場合[root @ oradgなど〜]#viの $ ORACLE_HOME / dbsに/ initorcldg.ora
* .audit_file_dest = 'は/ u01 / app / oracle /管理/ orcldg / adump' * .audit_trail = 'db'と * .compatible = '11 .2.0.4.0' * .control_files = 'は/ u01 / app / oracle / oradataの/ orcldg /制御ファイル/ control01.ctlと' * .db_block_size = 8192 * .db_domain = '' * .db_name = 'ORCL' * .diagnostic_dest = '/ U01 /アプリ/オラクル' * .log_archive_config =' DG_CONFIG =(ORCL、orcldg) ' * .log_archive_dest_2 =' LOCATION = / U01 /アプリ/オラクル/ oradataに/ orcldg / archstdlog / VALID_FOR =(STANDBY_LOGFILES、STANDBY_ROLE)DB_UNIQUE_NAME = orcldg」 * .memory_target = 838860800 * .open_cursors = 300 * .processes = 150 * .remote_login_passwordfile = '排他的な' * .undo_tablespace = 'UNDOTBS1' パラメータのSTANDBY_FILE_MANAGEMENT =自動#デフォルト値はそれに応じて修正対応するライブラリーから、(例えば、新しい、名前の変更、等)が変更されたライブラリをマスタデータファイルを示す、自動に変更する必要がある、手動で DB_UNIQUE_NAME = 'orcldg' DB_FILE_NAME_CONVERT = '+ DATA / ORCL /データファイル/'、 '/ U01 /アプリ/オラクル/ oradataに/ orcldg /データファイル/'、 '+ DATA / ORCL /一時ファイル/'、 '/ U01 /アプリ/オラクル/ oradataに/ orcldg /一時ファイル/」 LOG_FILE_NAME_CONVERT = '+ DATA / ORCL / ONLINELOG /'、 '/ U01 /アプリ/オラクル/ oradataに/ orcldg / ONLINELOG /'
ライブラリから関連するカタログを準備する6
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle /管理/ orcldg / adump
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg /制御ファイル
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg / archstdlog
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg /データ・ファイルの
[オラクル@ oradgなど〜] $ます。mkdir -p / U01 / app / oracleは/ oradataに/ orcldg /一時ファイル
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg / ONLINELOG
ライブラリの例から7.スタート
[オラクル@ oradgなど〜] $輸出ORACLE_SID = orcldg
[オラクル@ oradgなど〜] $ sqlplusを/ SYSDBAのよう
SQL>、PFILEからSPFILEを作成します。
SQL>起動NOMOUNT
ライブラリーから8.設定やリスナーを開始
重複データの方法の使用が主なライブラリをコピーするので、コンフィギュレーション・レジスタから静的ライブラリを形成する必要があります
[オラクル@ oradgなど〜] $ viの$ ORACLE_HOME / network / adminに/のlistener.ora
SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (GLOBAL_DBNAME = orcldg) (ORACLE_HOME = /u01/app/oracle/product/11.2.0/db_1) (SID_NAME = orcldg) ) ) LISTENER = (DESCRIPTION = (ADDRESS =(PROTOCOL = TCP )(HOST = 192.168.56.102)(PORT = 1521)) )
[オラクル@ oradgなど〜] $ LSNRCTL開始
9.メインライブラリ構成・ネーミング・サービス
#2つのノードを設定する必要があります
[オラクル@ RAC1〜] $ viの $ ORACLE_HOME / network / adminに/ tnsnames.oraの
orcldg = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.56.102)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcldg) ) )
[オラクル@ RAC2〜] $ viの $ ORACLE_HOME / network / adminに/ tnsnames.oraファイル
、RAC1とコンテンツの一貫わずか
ネットワーク接続を使用して、ライブラリーから10のメインライブラリ(接続性テスト)
ここに私のメインのライブラリは、ライブラリからのメインライブラリと一致し、123456である#SYSパスワード
[オラクル@ RAC1〜] $ sqlplusとのsys / 123456 @ orcldg SYSDBAとして
11.メイン図書館開始RMANでライブラリからコピーします
RMANライブラリーからの接続とマスターライブラリ
[オラクル@ RAC1〜] $ Recovery Managerは 、ターゲット/補助SYS / 123456 @ orcldg
RMAN>のアクティブ・データベースからスタンバイのための複製ターゲット・データベース。
ライブラリーからの12追加standbylog
ONLINELOG追加ログのサイズは、メインのライブラリと一致して、数個以上の(ビュー情報をメインライブラリONLINELOGは、V $をログ)
グループ番号が繰り返されていないと、現在のONLINELOGへ
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg / standbylog /
SQL> ALTERデータベースの追加スタンバイログファイルグループ21 '/u01/app/oracle/oradata/orcldg/standbylog/std01.log'サイズ50M;
SQL> alter databaseを追加スタンバイログファイルグループ22 '/u01/app/oracle/oradata/orcldg/standbylog/std02.log'サイズ50M;
SQL> alter databaseを追加スタンバイログファイルグループ23 '/u01/app/oracle/oradata/orcldg/standbylog/std03.log'サイズ50M;
SQL> alter databaseを追加スタンバイログファイルグループ24 '/u01/app/oracle/oradata/orcldg/standbylog/std04.log'サイズ50M;
SQL> alter databaseを追加スタンバイログファイルグループ25 '/u01/app/oracle/oradata/orcldg/standbylog/std05.log'サイズ50M;
SQL> alter databaseを追加スタンバイログファイルグループ26 '
13.オープンライブラリーからのアプリケーションログ
SQL> alter databaseコマンドは、セッションから管理対象スタンバイ・データベースの切断を回復します。
マスターアーカイブライブラリを切り替える14. A
SQL> ALTER SYSTEMスイッチのログファイル。
ライブラリから15.オープン
ライブラリアーカイブアプリケーションからの期間の後、あなたはライブラリから、開いているアプリケーションのアーカイブログを閉じます。
SQL>データベースSTANDBYキャンセルALTER管理データベースを回復し、
SQL>開くのALTER DATABASE;
SQL> ALTERデータベースは、セッションから使用してデータベース管理スタンバイ電流のログファイルの切断を回復。
16.同期を確認します
メイクの主なライブラリが変更
SQL>更新SCOTT.EMP SET SAL = 2000;
SQL>をコミット。
データベースクエリから
SQL>を選択* SCOTT.EMPから。
この時点で、ギブRACはそれの単一のインスタンスは、単一のインスタンスで、行われた構築DG差なしの単一のインスタンスを構築DG。その後、我々は切り替える方法を説明します。
スイッチングマスターから調製した第四に、
17.プライマリ・データベースのアーカイブ・パスのスタンバイ・ログファイルを追加します。
使用グリッドアカウント、アーカイブパスを作成することは
$ ASMCMD [Rac1の〜@グリッド]
ASMCMD> lsdg#は、ディスク・グループ名を表示
ASMCMD> CDデータ
ASMCMD> CD ORCL
ASMCMD>ます。mkdir ARCHSTDLOG
パラメータデータベース変更に使用SYSアカウントデータベース、
SQL>をALTERシステムセットLOG_ARCHIVE_DEST_2 = ' LOCATION = + DATA / ORCL / ARCHSTDLOG / VALID_FOR =(STANDBY_LOGFILES、STANDBY_ROLE)DB_UNIQUE_NAME = ORCL' SID = '*'。
18.メインライブラリは、スタンバイログファイルを追加します
ONLINELOGは、プライマリ・データベースのログのサイズを追加一貫性がある、(メイン情報レポジトリビュー$ログV ONLINELOG)複数のグループの数は
サイズ50Mを追加データベース21ログファイルSQL> ALTER STANDBYがスレッドグループである1(「+データ」);
SQL> ALTERデータベースの追加STANDBYログファイルスレッド1グループ22は、( '+データ')サイズ50Mである;。
。SQL> ALTERデータベースの追加STANDBYログファイルスレッド1グループ23( '+データ')でサイズ50M;
SQL> ALTERデータベースの追加STANDBYログファイルスレッド2グループ24( '+データ')サイズ50M;
SQL> ALTER STANDBYデータベースの追加25スレッドグループ2( '+データ')サイズ50Mログファイル、
データベースの追加26ログファイルSQL> ALTER STANDBYは、スレッドグループ2( '+データ')サイズ50Mです。
19.メインライブラリの変更パラメータファイル
SQL> ALTER SYSTEMセットSTANDBY_FILE_MANAGEMENT =自動SID = '*';
SQL> ALTER SYSTEMセットDB_FILE_NAME_CONVERT = '/ U01 /アプリ/オラクル/ oradataに/ orcldg /データファイル/'、 '+ DATA / ORCL /データファイル/'、 '/ U01 /アプリ/オラクル/ oradataに/ orcldg /一時ファイル/'、」 + DATA / ORCL /一時ファイル/」SID = '*'スコープ= SPFILE。
SQL> ALTER SYSTEMセットLOG_FILE_NAME_CONVERT = '/ U01 /アプリ/オラクル/ oradataに/ orcldg / ONLINELOG /'、 '+ DATA / ORCL / ONLINELOG /' SID = '*'スコープ= SPFILE。
ここでは、主なライブラリは、準備作業が完了したライブラリ装置に変換しました!
構成リポジトリTNSNAMES.ORAから20
ここでの目的は、configure tnsnams.oraにあるライブラリーメインライブラリーからの移行は、ライブラリーは、DGライブラリアプリケーションのみをアーカイブするためので、ここでは、ライブラリに原点をTNSNAMES、そして、起源のライブラリにライブラリからアーカイブログを送信するために元の所有者のニーズになったとき一つのノードにすることができ、唯一のノード1 toorclを指します。
[オラクル@ oradgなど〜] $ viの$ ORACLE_HOME / network / adminに/ tnsnames.oraの
toorcl = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS =(PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521)) ) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = ORCL) ) )
アーカイブライブラリパスから21. ONLINELOGに配置されました
[オラクル@ oradgなど〜] $ます。mkdir -pは/ u01 / app / oracle / oradataに/ orcldg /アーカイブ・ログ
SQL> ALTER SYSTEMセットLOG_ARCHIVE_DEST_1 = 'LOCATION = / U01 /アプリ/オラクル/ oradataに/ orcldg /アーカイブ・ログ/ VALID_FOR =(ONLINE_LOGFILES、PRIMARY_ROLE)DB_UNIQUE_NAME = orcldg'。
リモートアーカイブライブラリから22パラメータを設定
SQL> ALTER SYSTEMセットLOG_ARCHIVE_DEST_3 = 'サービス= toorcl VALID_FOR =(ONLINE_LOGFILES、PRIMARY_ROLE)DB_UNIQUE_NAME = ORCL'。
ここで、完了した準備作業のライブラリーからの主なライブラリを回します!
第四に、マスター・スレーブの切り替え
23.役割の逆転メインライブラリーの状態を確認してください
SQL> DATABASE_ROLEを選択し、五$データベースからSWITCHOVER_STATUS。
24.マスターノードから転送された1
集群在做角色转换时,只能有一个实例是打开状态,其余都要关闭,所以将节点2的实例关闭。
SQL> shutdown immediate; # 只在节点2上做
在节点1上执行以下命令,将主库转为从库,并且关闭实例
SQL> alter database commit to switchover to physical standby with session shutdown;
25. 在节点3上从转主
SQL> select database_role,switchover_status from v$database;
如果是"NOT ALLOWED"表示归档还没有应用完成,可以等待一段时间
如果日志全部应用了再查看角色转换状态
SQL> select database_role,switchover_status from v$database;
如果角色转换状态是TO PRIMARY,那么表示可以进行角色转换
执行从转主的命令,命令执行成功后,数据库的状态会变为mount
SQL> alter database commit to switchover to primary;
SQL> alter database open;
26. 打开新从库
在节点1和节点2上
SQL> startup
节点1上应用归档
SQL> alter database recover managed standby database using current logfile disconnect from session;
3ノード切替アーカイブ
SQL> ALTERシステムスイッチログファイルを、
27.同期を確認します
一次ライブラリーは、変更ありません
。SQL> SET SALを=アップデート3000 SCOTT.EMP
SQL>コミットを。
データベースクエリから
SQL>を選択* SCOTT.EMPから。
28.エラー処理
あなたはログがスタンバイ・データベースに到達していないことが判明した場合は、次のコマンドでメインライブラリでエラー原因を表示することができます
SQL> DEST_ID、DEST_NAME、log_sequence、ステータス、ARCHIVE_DEST V $からエラーを選択します。
エラー上記のメッセージは、スイッチを再起動した場合にアーカイブすることができます
。SQL> SET ALTERシステムlog_archive_dest_state_3 = '延期' SID = '*';
SQL> SET ALTERシステムlog_archive_dest_state_3 = SIDを= '*' '有効';
V.の概要
1. DGハンドオーバ要求は、すべてのアプリケーションを停止し、アンロックスイッチの完了後、すべてのすべてのデータベース、全体ロックアカウントに接続された殺すために
、他のすべての閉鎖ライブのみ残して、実施例2のスイッチングラセミ
3。各コマンドの実行、返された結果に注意を払う、とリアルタイムビューALERT.LOG