oracle--oracle18C DG搭建(二)

配置清單

任務 數據庫

建立主數據庫數據文件的備份副本html

sql

爲備用數據庫建立控制文件數據庫

服務器

爲備用數據庫建立參數文件網絡

session

將文件從主系統複製到備用系統oracle

app

設置環境以支持備用數據庫ide

備庫性能

啓動物理備用數據庫

備庫

驗證物理備用數據庫是否正常運行

備庫

一,主庫配置 

 (1)歸檔模式 

    做爲爲備用數據庫建立準備主數據庫的一部分,必須啓用與計劃使用數據保護配置的方式相適應的日誌模式。不屬於數據保護配置的數據庫的默認日誌記錄模式容許以非日誌方式執行某些數據加載操做。這種默認模式不適用於具備備用的數據庫,由於它會致使從備用數據庫中丟失加載的數據,這須要手動干預才能修復。除了默認的日誌記錄模式以外,還有其餘三種模式是

  01, 啓用強制歸檔

FORCE LOGGING模式可防止以非記錄方式執行任何加載操做。這會下降加載過程的速度,由於必須將加載的數據複製到重作日誌中。FORCE LOGGING使用如下命令啓用模式:
SQL> ALTER DATABASE FORCE LOGGING;

  02, STANDBY NOLOGGING FOR DATA AVAILABILITY

模式使加載操做經過其自身到備用服務器的鏈接將加載的數據發送到每一個備用服務器。提交將被延遲,直到全部備用應用數據做爲在活動數據保護環境中運行託管恢復的一部分。
使用如下命令啓用:

SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR DATA AVAILABILITY;

  03, STANDBY NOLOGGING FOR LOAD PERFORMANCE

備用掛載性能相似於前一種模式,但若是網絡沒法跟上將數據加載到主服務器的速度,則加載過程能夠中止向備用服務器發送數據。在這種模式下,備用服務器可能有丟失的數據,
可是做爲在活動數據保護環境中運行託管恢復的正常部分,每一個備用服務器自動從主服務器獲取數據。使用如下命令啓用:

SQL> ALTER DATABASE SET STANDBY NOLOGGING FOR LOAD PERFORMANCE;

  (2)配置主數據庫接受重作數據

通常比原來的redo多一組
查詢系統的redo
SQL> select MEMBER from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/ORCL/redo03.log
/u01/app/oracle/oradata/ORCL/redo02.log
/u01/app/oracle/oradata/ORCL/redo01.log


SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/slog1.rdo') SIZE 500M;
 


SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/slog2.rdo') SIZE 500M;
 


SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/slog3.rdo') SIZE 500M;
 
SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/u01/app/oracle/oradata/ORCL/slog4.rdo') SIZE 500M;

  (3) 配置pfile

DB_NAME=orcl
DB_UNIQUE_NAME=orcl
LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,standby)'
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl'
LOG_ARCHIVE_DEST_1=
 'LOCATION=/oradata/archivelog/ 
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES)
  DB_UNIQUE_NAME=orcl'
LOG_ARCHIVE_DEST_2=
 'SERVICE=standby ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=standby'
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
FAL_SERVER=standby
FAL_CLIENT=orcl
STANDBY_FILE_MANAGEMENT=AUTO
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(orcl,standby)'
  2  scope=both
  3  ;

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/oradata/archivelog/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=orcl' scope=both;

System altered.

SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=standby ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)  DB_UNIQUE_NAME=standby' scope=both;

System altered.


SQL>
SQL> alter system set FAL_SERVER=standby
  2  scope=both;

System altered.

SQL> alter system set FAL_CLIENT=orcl scope=both;

System altered.

SQL> alter system set STANDBY_FILE_MANAGEMENT=AUTO scope=both;

System altered.

SQL>
參數 推薦設置

DB_NAME

在主數據庫上,指定建立數據庫時使用的名稱。在物理備用數據庫上,使用DB_NAME主數據庫。

DB_UNIQUE_NAME

爲每一個數據庫指定惟一的名稱。即便主數據庫和備用數據庫反向角色,此名稱仍保留在數據庫中,而且不會更改。

LOG_ARCHIVE_CONFIG

DG_CONFIG必須在Oracle Data Guard配置中的每一個數據庫上顯式設置此參數屬性,以啓用完整的Oracle Data Guard功能。設置DG_CONFIG爲包含配置DB_UNIQUE_NAME中每一個數據庫的文本字符串,此列表中的每一個名稱用逗號分隔。

CONTROL_FILES

指定主數據庫上控制文件的路徑名。建議控制文件的第二個副本可用,以便在將良好的控制文件複製到錯誤控制文件的位置後能夠輕鬆地從新啓動實例。

LOG_ARCHIVE_DEST_n

指定在主系統和備用系統上歸檔重作數據的位置。

  • LOG_ARCHIVE_DEST_1 歸檔主數據庫從本地聯機重作日誌文件生成的重作數據到/ arch1 / chicago /中的本地歸檔重作日誌文件。

  • LOG_ARCHIVE_DEST_2僅對主要角色有效。此目標將重作數據傳輸到遠程物理備用目標boston

注意:若是配置了快速恢復區域(使用DB_RECOVERY_FILE_DEST初始化參數)而且您還沒有使用該LOCATION屬性顯式配置本地歸檔目標,則Oracle Data Guard會自動使用LOG_ARCHIVE_DEST_1初始化參數(若是還沒有設置)做爲默認目標用於本地存檔。另請參閱LOG_ARCHIVE_DEST_n參數屬性以獲取完整LOG_ARCHIVE_DEST_n信息。

REMOTE_LOGIN_PASSWORDFILE

必須將此參數設置爲EXCLUSIVE或者SHARED若是使用遠程登陸密碼文件來驗證管理用戶或重作傳輸會話。

LOG_ARCHIVE_FORMAT

使用線程(%t),序列號(%s)和resetlogs ID(%r)指定歸檔重作日誌文件的格式。

FAL_SERVER

指定FAL服務器的Oracle Net服務名稱(一般這是以主角色運行的數據庫)。當Chicago數據庫以備用角色運行時,若是Boston沒法自動發送丟失的日誌文件,它將使用Boston數據庫做爲FAL服務器從中獲取(請求)丟失的歸檔重作日誌文件。

DB_FILE_NAME_CONVERT

指定備用數據庫數據文件的路徑名和文件名位置,後跟主要位置。此參數將主數據庫數據文件的路徑名轉換爲備用數據文件路徑名。此參數僅用於轉換物理備用數據庫的路徑名。此參數能夠指定多對路徑。

LOG_FILE_NAME_CONVERT

指定備用數據庫聯機重作日誌文件的位置,後跟主要位置。此參數將主數據庫日誌文件的路徑名轉換爲備用數據庫上的路徑名。此參數能夠指定多對路徑。

STANDBY_FILE_MANAGEMENT

設置爲AUTO在向主數據庫添加數據文件或從主數據庫中刪除數據文件時,將自動對備用數據庫進行相應的更改。

  (4) 建立備用數據庫須要的文件,並拷貝

建立備庫的控制文件
ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/standby.ctl';

建立備庫的參數文件
 CREATE PFILE ='/tmp/initstandby.ora' FROM SPFILE;
[oracle@oracle18c dbs]$ scp /tmp/initstandby.ora 192.168.0.163:/u01/app/oracle/product/18.3.0/dbhome_1/dbs
oracle@192.168.0.163's password:
initstandby.ora                                               100% 1392     1.4KB/s   00:00

[oracle@oracle18c dbs]$ scp orapworcl 192.168.0.163:/u01/app/oracle/product/18.3.0/dbhome_1/dbs
The authenticity of host '192.168.0.163 (192.168.0.163)' can't be established.
ECDSA key fingerprint is 37:33:3c:b8:42:24:45:9d:6e:a1:6a:ba:f3:c8:1d:d9.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.0.163' (ECDSA) to the list of known hosts.
oracle@192.168.0.163's password:
orapworcl                                                     100% 3584     3.5KB/s   00:00

再備庫上操做:

更改密碼文件名字
[oracle@oracle18c2 dbs]$ mv orapworcl orapwstandby

修改pfile
須要修改的地方
參數 推薦設置

DB_UNIQUE_NAME

爲此數據庫指定惟一名稱。此名稱保留在數據庫中,即便主數據庫和備用數據庫反向角色也不會更改。

CONTROL_FILES

在備用數據庫上指定控制文件的路徑名。例3-1顯示瞭如何爲兩個控制文件執行此操做。建議控制文件的第二個副本可用,以便在將良好的控制文件複製到錯誤控制文件的位置後能夠輕鬆地從新啓動實例。

DB_FILE_NAME_CONVERT

指定主數據庫數據文件的路徑名和文件名位置,後跟備用位置。此參數將主數據庫數據文件的路徑名轉換爲備用數據文件路徑名。

LOG_FILE_NAME_CONVERT

指定主數據庫聯機重作日誌文件的位置,後跟備用位置。此參數將主數據庫日誌文件的路徑名轉換爲備用數據庫上的路徑名。

LOG_ARCHIVE_DEST_n

指定要歸檔重作數據的位置。例3-1中

  • LOG_ARCHIVE_DEST_1 歸檔從主數據庫接收的重作數據到/ arch1 / boston /中的歸檔重作日誌文件。

  • LOG_ARCHIVE_DEST_2當前被忽略,由於此目標僅對主要角色有效。若是發生切換而且此實例成爲主數據庫,則它會將重作數據傳輸到遠程芝加哥目的地。

注意:若是配置了快速恢復區域(使用DB_RECOVERY_FILE_DEST初始化參數)而且您沒有使用該LOCATION屬性顯式配置本地歸檔目標,則Oracle Data Guard會自動使用LOG_ARCHIVE_DEST_1初始化參數(若是還沒有設置)做爲默認值本地存檔的目的地。另外,有關完整信息,請參閱LOG_ARCHIVE_DEST_n參數屬性LOG_ARCHIVE_DEST_n

FAL_SERVER

指定FAL服務器的Oracle Net服務名稱(一般這是以主角色運行的數據庫)。當Boston數據庫以備用角色運行時,它使用Chicago數據庫做爲FAL服務器,若是Chicago沒法自動發送丟失的日誌文件,則從該服務器獲取(請求)丟失的歸檔重作日誌文件。

  (5) 主庫備份文件

RMAN>  backup as compressed backupset database;

Starting backup at 2019:08:3015:52:27
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=87 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/u01/app/oracle/oradata/ORCL/system01.dbf
input datafile file number=00003 name=/u01/app/oracle/oradata/ORCL/sysaux01.dbf
input datafile file number=00004 name=/u01/app/oracle/oradata/ORCL/undotbs01.dbf
input datafile file number=00007 name=/u01/app/oracle/oradata/ORCL/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2019:08:3015:52:27
channel ORA_DISK_1: finished piece 1 at 2019:08:3015:53:22
piece handle=/oradata/data/02uah0hr_1_1_ORCL tag=TAG20190830T155227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:55
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00010 name=/u01/app/oracle/oradata/ORCL/kingle/sysaux01.dbf
input datafile file number=00009 name=/u01/app/oracle/oradata/ORCL/kingle/system01.dbf
input datafile file number=00011 name=/u01/app/oracle/oradata/ORCL/kingle/undotbs01.dbf
input datafile file number=00012 name=/u01/app/oracle/oradata/ORCL/kingle/users01.dbf
channel ORA_DISK_1: starting piece 1 at 2019:08:3015:53:22
channel ORA_DISK_1: finished piece 1 at 2019:08:3015:53:57
piece handle=/oradata/data/03uah0ji_1_1_ORCL tag=TAG20190830T155227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00006 name=/u01/app/oracle/oradata/ORCL/pdbseed/sysaux01.dbf
input datafile file number=00005 name=/u01/app/oracle/oradata/ORCL/pdbseed/system01.dbf
input datafile file number=00008 name=/u01/app/oracle/oradata/ORCL/pdbseed/undotbs01.dbf
channel ORA_DISK_1: starting piece 1 at 2019:08:3015:53:58
channel ORA_DISK_1: finished piece 1 at 2019:08:3015:54:33
piece handle=/oradata/data/04uah0km_1_1_ORCL tag=TAG20190830T155227 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:35
Finished backup at 2019:08:3015:54:33

Starting Control File and SPFILE Autobackup at 2019:08:3015:54:33
piece handle=/u01/app/oracle/product/18.3.0/dbhome_1/dbs/c-1545453018-20190830-01 comment=NONE
Finished Control File and SPFILE Autobackup at 2019:08:3015:54:34
RMAN>  backup current controlfile for standby
2> ;

Starting backup at 2019:08:3015:57:19
using channel ORA_DISK_1
channel ORA_DISK_1: starting full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
including standby control file in backup set
channel ORA_DISK_1: starting piece 1 at 2019:08:3015:57:20
channel ORA_DISK_1: finished piece 1 at 2019:08:3015:57:21
piece handle=/oradata/data/06uah0qv_1_1_ORCL tag=TAG20190830T155719 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:01
Finished backup at 2019:08:3015:57:21

Starting Control File and SPFILE Autobackup at 2019:08:3015:57:21
piece handle=/u01/app/oracle/product/18.3.0/dbhome_1/dbs/c-1545453018-20190830-02 comment=NONE
Finished Control File and SPFILE Autobackup at 2019:08:3015:57:23

拷貝到備庫

  (6) 備庫啓動

用pfile 啓動數據庫

SQL> startup nomount pfile='/u01/app/oracle/product/18.3.0/dbhome_1/dbs/initstandby.ora';
ORACLE instance started.

Total System Global Area 2516580872 bytes
Fixed Size            8899080 bytes
Variable Size          671088640 bytes
Database Buffers     1828716544 bytes
Redo Buffers            7876608 bytes
SQL>

rman 恢復

恢復控制文件
RMAN> restore standby controlfile from '/oradata/data/db_08uah0tg_1_1.ctl'; Starting restore at 2019:08:3016:04:30 using target database control file instead of recovery catalog allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=38 device type=DISK channel ORA_DISK_1: restoring control file channel ORA_DISK_1: restore complete, elapsed time: 00:00:01 output file name=/u01/app/oracle/oradata/ORCL/control01.ctl output file name=/u01/app/oracle/oradata/ORCL/control02.ctl Finished restore at 2019:08:3016:04:32

恢復數據文件

指定目錄

RMAN> alter database mount;

released channel: ORA_DISK_1
Statement processed

RMAN> catalog start with '/oradata/data/';

searching for all files that match the pattern /oradata/data/

List of Files Unknown to the Database
=====================================
File Name: /oradata/data/db_08uah0tg_1_1.ctl;;

Do you really want to catalog the above files (enter YES or NO)? yes
cataloging files...
cataloging done

List of Cataloged Files
=======================
File Name: /oradata/data/db_08uah0tg_1_1.ctl;;

恢復

RMAN> restore database;

Starting restore at 2019:08:3016:06:38
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=38 device type=DISK

channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00001 to /u01/app/oracle/oradata/ORCL/system01.dbf
channel ORA_DISK_1: restoring datafile 00003 to /u01/app/oracle/oradata/ORCL/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00004 to /u01/app/oracle/oradata/ORCL/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00007 to /u01/app/oracle/oradata/ORCL/users01.dbf
channel ORA_DISK_1: reading from backup piece /oradata/data/02uah0hr_1_1_ORCL
channel ORA_DISK_1: piece handle=/oradata/data/02uah0hr_1_1_ORCL tag=TAG20190830T155227
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:01:05
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00009 to /u01/app/oracle/oradata/ORCL/kingle/system01.dbf
channel ORA_DISK_1: restoring datafile 00010 to /u01/app/oracle/oradata/ORCL/kingle/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00011 to /u01/app/oracle/oradata/ORCL/kingle/undotbs01.dbf
channel ORA_DISK_1: restoring datafile 00012 to /u01/app/oracle/oradata/ORCL/kingle/users01.dbf
channel ORA_DISK_1: reading from backup piece /oradata/data/03uah0ji_1_1_ORCL
channel ORA_DISK_1: piece handle=/oradata/data/03uah0ji_1_1_ORCL tag=TAG20190830T155227
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
channel ORA_DISK_1: starting datafile backup set restore
channel ORA_DISK_1: specifying datafile(s) to restore from backup set
channel ORA_DISK_1: restoring datafile 00005 to /u01/app/oracle/oradata/ORCL/pdbseed/system01.dbf
channel ORA_DISK_1: restoring datafile 00006 to /u01/app/oracle/oradata/ORCL/pdbseed/sysaux01.dbf
channel ORA_DISK_1: restoring datafile 00008 to /u01/app/oracle/oradata/ORCL/pdbseed/undotbs01.dbf
channel ORA_DISK_1: reading from backup piece /oradata/data/04uah0km_1_1_ORCL
channel ORA_DISK_1: piece handle=/oradata/data/04uah0km_1_1_ORCL tag=TAG20190830T155227
channel ORA_DISK_1: restored backup piece 1
channel ORA_DISK_1: restore complete, elapsed time: 00:00:35
Finished restore at 2019:08:3016:08:54

RMAN>


備庫行同步

alter database recover managed standby database using current logfile disconnect from session;
相關文章
相關標籤/搜索