[dgデータベースは毎日手動で同期する必要があります] oracleDataGuardをリアルタイムで自動的に同期することはできません

この投稿は最後にmssql_wangwangによって2017-9-2315に編集されました:26

最近、私はOracleのDGを学び、DGを正常に構成しましたが、毎回メインライブラリでaltersystemswitchlogfileを実行する必要があります。データを同期できます。

スタンバイデータベースでalterdatabaserecovermanagedstandbydatabasedisconnectfromsessionを実行すると言われていることをオンラインで確認してください。

ただし、データを手動で実行して毎回同期することしかできません。

データベースマスターパリマリーとスタンバイがリアルタイムでデータを自動的に同期する方法を尋ねたいのですが、

たとえば、メインデータベースでデータの一部を挿入または変更してコミットし、スタンバイデータベースですぐにクエリを実行できます。SQL ServerのAlwayson関数と同じように、自動的に同期できます。

Oracleバージョンは12Cです

スタンバイモード:

SQL> selectopen_modefromv $ database;

OPEN_MODE

--------------------

READONLYWITHAPPLY

チャントの不一致。完全な手順を投稿してください。

2017-9-2321に公開されたjieyancai:00

チャントの不一致。完全な手順を投稿してください。

まず、メインライブラリの構成

-メインライブラリをFORCELOGGINGモードに設定します

SQL> alterdatabaseforcelogging;

SQL> selectforce_loggingfromv $ database;

-メインライブラリパラメータファイルを変更します。

altersystemsetdb_unique_name = 'ORCLMAIN'scope = spfile;

altersystemsetlog_archive_config = 'DG_CONFIG =(ORCLMAIN、ORCLSTANDBY)';

altersystemsetlog_archive_dest_1 = 'LOCATION = / data / archlogvalid_for =(all_logfiles、all_roles)db_unique_name = ORCLmain'scope = spfile;

altersystemsetlog_archive_dest_2 = 'SERVICE = ORCLSTANDBYlgwrasyncvalid_for =(online_logfile、primary_role)db_unique_name = ORCLSTANDBY'scope = spfile;

altersystemsetlog_archive_dest_state_1 = ENABLE;

altersystemsetlog_archive_dest_state_2 = ENABLE;

altersystemsetfal_client = 'ORCLMAIN'scope = spfile;

altersystemsetfal_server = 'ORCLSTANDBY'scope = spfile;

altersystemsetstandby_file_management = autoscope = spfile;

alterdatabaseaddstandbylogfilegroup6( '/ oracle / app / redolog / redo06_1.log'、 '/ data / redolog / redo06_2.log')size500M;

alterdatabaseaddstandbylogfilegroup7( '/ oracle / app / redolog / redo07_1.log'、 '/ data / redolog / redo07_1.log')size500M;

alterdatabaseaddstandbylogfilegroup8( '/ oracle / app / redolog / redo08_1.log'、 '/ data / redolog / redo08_1.log')size500M;

-データベースを再起動します

SQL> shutdownimmediate;

SQL>スタートアップ

SQL> createpfilefromspfile;

-メインライブラリのpfileファイルをスタンバイライブラリにコピーする

scp-P2237 $ ORACLE_HOME / dbs / initORCLmain.oraORCLstandby:$ ORACLE_HOME / dbs--pfileファイルをスタンバイデータベースにコピーします

scp-P2237 $ ORACLE_HOME / dbs / orapwORCLmain.oraORCLstandby:$ ORACLE_HOME / dbs--パスワードファイルをスタンバイデータベースにコピーします

次に、スタンバイデータベースの構成

-監視の構成(静的登録の構成)

vim $ ORACLE_HOME / network / admin / listener.ora

SID_LIST_LISTENER =

(SID_LIST =

(GLOBAL_DBNAME = ORCLma)

(ORACLE_HOME = / oracle / app / oracle / product / 11.2.0 / db_1)

(SID_NAME = ORCLmain)

リスナー=

(DESCRIPTION_LIST =

(説明=

(アドレス=(プロトコル= TCP)(ホスト= 192.168.1.6)(ポート= 5015))

(ADDRESS =(PROTOCOL = IPC)(KEY = EXTPROC5015))

-tnsnamesファイルを変更します。

ORCLSTANDBY =

(説明=

(ADDRESS_LIST =

(アドレス=(プロトコル= TCP)(ホスト= 192.168.1.6)(ポート= 5015))

(CONNECT_DATA =

(SERVICE_NAME = ORCLma)

ORCLMAIN =

(説明=

(ADDRESS_LIST =

(アドレス=(プロトコル= TCP)(ホスト= 192.168.1.7)(ポート= 1521))

(CONNECT_DATA =

(SERVICE_NAME = ORCLmain)

-11gデータベースの基本ディレクトリを作成します。

#su-oracle

mkdir-p / oracle / app / oracle / admin / ORCLmain / {adump、dpdump、pfile}

mkdir-p / oracle / app / oracle / fast_recovery_area / {ORCLmain、ORCLMAIN}

mkdir-p / data / oradata / ORCLmain

mkdir-p / data / archlog

-スタンバイデータベースのpfileファイルを変更します。

* .db_name = 'ORCLma'

* .db_unique_name = 'ORCLstandby'

* .fal_client = 'ORCLSTANDBY'

* .fal_server = 'ORCLMAIN'

* .log_archive_dest_2 = 'SERVICE = ORCLMAINlgwrasyncvalid_for =(online_logfile、primary_role)db_unique_name = ORCLMAIN'

-スタンバイデータベース作成-SID

--oradim-new-sidORCLSTANDBY

-スタンバイデータベースのnodata状態を開始します。

SQL> createspfilefrompfile = '$ ORACLE_HOME / dbs / initORCLmain.ora'

SQL> startupnomount;

3番目に、スタンバイデータベースでRMANを使用して、ダンプ(コピー)データベースを起動します。

[oracle @ ORCLstandby〜] $ rmantarget'sys / "SysTest!" '@ ORCLmainauxiliary'sys / "SysTest"' @ ORCLstandby

RMAN>アクティブデータベースからのスタンバイのファイル名チェックのためのターゲットデータベースの複製;

注:エラーは報告されず、コピーは成功します。次の手順に進みます。

1.スタンバイデータベースのステータスを表示する

SQL> selectopen_mode、database_role、db_unique_namefromv $ database;

alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

上記は設定手順です。アドバイスしてください。ありがとう

mssql_wangwang投稿日:2017-9-2410:44

まず、メインライブラリの構成

-メインライブラリをFORCELOGGINGモードに設定します

次のコマンドを実行して結果を確認します。

スタンバイマシン:

sqlplus / assysdba

SHUTDOWNIMMEDIATE;

STARTUPMOUNT;

ALTERDATABASERECOVERMANAGEDSTANDBYDATABASEDISCONNECTFROMSESSION;

selectopen_modefromv $ database;

この投稿の最終編集者:mssql_wangwang(2017-9-2413):40

2017年9月24日発行のonca416:54

次のコマンドを実行して結果を確認します。

スタンバイマシン:

SQL> selectopen_modefromv $ database;

OPEN_MODE

--------------------

READONLYWITHAPPLY

上記の方法を試しましたが、データを自動的に同期できません。メインライブラリのaltersystemswitchlogfileを手動で実行する必要があります。

手動でスタンバイデータベースをアーカイブして同期データをクエリする必要があるたび。私はDGの3つのモードも試しましたが、どれも、最大の保護、最大の使いやすさ、最大のパフォーマンスはすべて同じ問題です。

問題は何ですか

SQL Serverのalwaysonの同期データと非同期データのどちらが基本的に5秒も変わらないかどうかは、スタンバイデータベースに送られます。

これは私にも当てはまります。ロググループのステータスを見ると、それらはすべてUNASSIGNEDですか?

selectgroup#、sequence#、first_change#、next_change#、status、used、con_idfromv $ standby_log;

スタンバイデータベースのストランドバイロググループのサイズがメインライブラリのonlineredologよりも小さいことが原因で、この問題が発生している可能性があります。

待機データベースの待機ロググループのサイズを変更し、解決しました。

2017年9月24日発行のyueli34:47

スタンバイデータベースのストランドバイロググループのサイズがメインライブラリのonlineredologよりも小さいことが原因で、この問題が発生している可能性があります。

待機データベースの待機ロググループのサイズを変更したところ......

待機する:

SQL> SELECTgroup#、members、bytes / 1024 / 1024byte_mb、statusFROMv $ log;

GROUP#MEMBERSBYTE_MBSTATUS

----------------------------------------------

1250通貨

2250クリア

3250クリア

メイン:

SQL> SELECTgroup#、members、bytes / 1024 / 1024byte_mb、statusFROMv $ log;

GROUP#MEMBERSBYTE_MBSTATUS

----------------------------------------------

1250通貨

2250非アクティブ

3250非アクティブ

両面とも同じサイズです。

待機する:

SQL> selectgroup#、sequence#、first_change#、next_change#、status、used、con_idfrom

v $ standby_log;

GROUP#SEQUENCE#FIRST_CHANGE#NEXT_CHANGE#STATUSUSED

-------------------------------------------------- ---------------

CON_ID

----------

61423865432387891ACTIVE484352

0

71323846162386543ACTIVE761344

0

81523878912426347ACTIVE26267136

0。

メイン:

SQL> selectgroup#、sequence#、first_change#、next_change#、status、used、con_idfrom

v $ standby_log;

GROUP#SEQUENCE#FIRST_CHANGE#NEXT_CHANGE#STATUSUSED

-------------------------------------------------- ---------------

CON_ID

----------

60UNASSIGNED0

0

70UNASSIGNED0

0

80UNASSIGNED0

0

メインライブラリはUNASSIGNEDです

mssql_wangwang投稿日時:2017-9-2510:51

待機する:

SQL> SELECTgroup#、members、bytes / 1024 / 1024byte_mb、statusFROMv $ log;

スタンバイデータベースは、スタンバイロググループをv $ standby_logビューとして認識します。v $ログビューではありません。

現在のログファイルを使用してデータベースを回復し、管理されたスタンバイデータベースをセッションから切断します。

代わりに

alterdatabaserecovermanagedstandbydatabasedisconnectfromsession;

おすすめ

転載: www.cnblogs.com/sqlserver-mysql/p/12709662.html