任務 | 數據庫 |
---|---|
建立主數據庫數據文件的備份副本html |
主sql |
爲備用數據庫建立控制文件數據庫 |
主服務器 |
主session |
|
將文件從主系統複製到備用系統oracle |
主app |
設置環境以支持備用數據庫ide |
備庫性能 |
備庫 |
|
備庫 |
做爲爲備用數據庫建立準備主數據庫的一部分,必須啓用與計劃使用數據保護配置的方式相適應的日誌模式。不屬於數據保護配置的數據庫的默認日誌記錄模式容許以非日誌方式執行某些數據加載操做。這種默認模式不適用於具備備用的數據庫,由於它會致使從備用數據庫中丟失加載的數據,這須要手動干預才能修復。除了默認的日誌記錄模式以外,還有其餘三種模式是
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;
通常比原來的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;
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>
參數 | 推薦設置 |
---|---|
在主數據庫上,指定建立數據庫時使用的名稱。在物理備用數據庫上,使用 |
|
爲每一個數據庫指定惟一的名稱。即便主數據庫和備用數據庫反向角色,此名稱仍保留在數據庫中,而且不會更改。 |
|
|
|
指定主數據庫上控制文件的路徑名。建議控制文件的第二個副本可用,以便在將良好的控制文件複製到錯誤控制文件的位置後能夠輕鬆地從新啓動實例。 |
|
指定在主系統和備用系統上歸檔重作數據的位置。
注意:若是配置了快速恢復區域(使用 |
|
必須將此參數設置爲 |
|
使用線程(%t),序列號(%s)和resetlogs ID(%r)指定歸檔重作日誌文件的格式。 |
|
指定FAL服務器的Oracle Net服務名稱(一般這是以主角色運行的數據庫)。當Chicago數據庫以備用角色運行時,若是Boston沒法自動發送丟失的日誌文件,它將使用Boston數據庫做爲FAL服務器從中獲取(請求)丟失的歸檔重作日誌文件。 |
|
指定備用數據庫數據文件的路徑名和文件名位置,後跟主要位置。此參數將主數據庫數據文件的路徑名轉換爲備用數據文件路徑名。此參數僅用於轉換物理備用數據庫的路徑名。此參數能夠指定多對路徑。 |
|
指定備用數據庫聯機重作日誌文件的位置,後跟主要位置。此參數將主數據庫日誌文件的路徑名轉換爲備用數據庫上的路徑名。此參數能夠指定多對路徑。 |
|
設置爲 |
建立備庫的控制文件 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
須要修改的地方
參數 | 推薦設置 |
---|---|
爲此數據庫指定惟一名稱。此名稱保留在數據庫中,即便主數據庫和備用數據庫反向角色也不會更改。 |
|
在備用數據庫上指定控制文件的路徑名。例3-1顯示瞭如何爲兩個控制文件執行此操做。建議控制文件的第二個副本可用,以便在將良好的控制文件複製到錯誤控制文件的位置後能夠輕鬆地從新啓動實例。 |
|
指定主數據庫數據文件的路徑名和文件名位置,後跟備用位置。此參數將主數據庫數據文件的路徑名轉換爲備用數據文件路徑名。 |
|
指定主數據庫聯機重作日誌文件的位置,後跟備用位置。此參數將主數據庫日誌文件的路徑名轉換爲備用數據庫上的路徑名。 |
|
指定要歸檔重作數據的位置。在例3-1中:
注意:若是配置了快速恢復區域(使用 |
|
指定FAL服務器的Oracle Net服務名稱(一般這是以主角色運行的數據庫)。當Boston數據庫以備用角色運行時,它使用Chicago數據庫做爲FAL服務器,若是Chicago沒法自動發送丟失的日誌文件,則從該服務器獲取(請求)丟失的歸檔重作日誌文件。 |
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
拷貝到備庫
用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;