web-dev-qa-db-ja.com

データファイルなしでスタンバイログを出荷する

新しいスタンバイデータベースを構築するときに、まだスタンバイにデータファイルがない状態で、プライマリからアーカイブログの送信を開始することはできますか?

4
Leigh Riffel

はい!私たちはそれができる。

これは次のデモで確認できます。

2つのホストServer1(192.168.30.132)とServer2(192.168.30.142)があり、ORClデータベースはServer1にあります。

いくつかの手順を省略し、たとえばスタンバイREDOログを作成し、答えを短くするための構成を省略しました。

On Server1

アーカイブログを有効にする

SQL> alter database archivelog;

Database altered.

強制ロギングを有効にします。

SQL> alter database force logging;

Database altered.

スタンバイ制御ファイルを作成します。

SQL> alter database create standby controlfile as '/home/Oracle/Desktop/orcl_stby.ctl';

Database altered.

Server2へのSCPスタンバイ制御ファイル。

 [Oracle@server1 Desktop]$ scp orcl_stby.ctl [email protected]:/u01/app/Oracle/fast_recovery_area/ORCL2/controlfile/

Server2へのSCPパスワードファイル。

[Oracle@server1 dbs]$ scp orapworcl [email protected]:/u01/app/Oracle/product/11.2.0/db_1/dbs/

ログアーカイブ構成およびログアーカイブ宛先パラメーターを設定します。

SQL>ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2)';
SQL>ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=orcl2 NOAFFIRM lgwr ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=orcl2';

サーバー2上

必要なディレクトリを作成します。

$Oracle_BASE/admin/db_unique_name/adump
fast_recovery_area/db_unique_name/controlfile
fast_recovery_area/db_unique_name/archivelog

次のパラメータを使用してinitSID.oraファイルを作成しますOR Server1にpfileを作成し、Server2にSCPを作成できます。

[Oracle@server2 dbs]$ vi initorcl2.ora

db_name= orcl
db_unique_name=orcl2
compatible=11.2.0.4
control_files='/u01/app/Oracle/fast_recovery_area/ORCL2/controlfile/orcl_stby.ctl

[Oracle@server2 dbs]$ sqlplus / as sysdba
SQL> startup nomount

SQL> create spfile from memory;

File created.
SQL> shut immediate
ORA-01507: database not mounted


Oracle instance shut down.
SQL> startup nomount
ORA-32004: obsolete or deprecated parameter(s) specified for RDBMS instance
Oracle instance started.

Total System Global Area  217157632 bytes
Fixed Size          2251816 bytes
Variable Size         159384536 bytes
Database Buffers       50331648 bytes
Redo Buffers            5189632 bytes
SQL> alter database mount;

Database altered.

SQL> ALTER SYSTEM SET LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,orcl2)';

System altered.

SQL> alter system set db_recovery_file_dest_size=500M;

System altered.

SQL> alter system set db_recovery_file_dest='/u01/app/Oracle/fast_recovery_area/';

System altered.

On Server1

SQL> alter system switch logfile;

System altered.

SQL> /

System altered.

サーバー2上

[Oracle@server2 archivelog]$ pwd
/u01/app/Oracle/fast_recovery_area/ORCL2/archivelog
[Oracle@server2 archivelog]$ ls
2017_02_22
[Oracle@server2 archivelog]$ cd 2017_02_22/
[Oracle@server2 2017_02_22]$ ls
o1_mf_1_36_dbtc52mg_.arc
[Oracle@server2 2017_02_22]$ 

プライマリのLGWR/ARCnプロセスとスタンバイのRFSプロセスが実行されている限り、スタンバイデータベースにデータファイルを配置せずにアーカイブログを転送できます。

サーバー2上

SQL> SELECT PROCESS, STATUS, THREAD#, SEQUENCE#, BLOCK#, BLOCKS FROM V$MANAGED_STANDBY;
PROCESS   STATUS      THREAD#  SEQUENCE#     BLOCK#     BLOCKS
--------- ----------- -------- ----------    ---------- ----------
RFS       IDLE          0      0             0           0
3
JSapkota