一、安裝環境
1、服務器環境:Windows server 2008 R2 x64 Standard 兩台
CPU:8核
內存:8G
硬盤空間:1060G
2、軟件:oracle 11g R2
二、安裝前配置
1、IP地址配置要求
主庫IP:192.168.2.50
備庫IP:192.168.2.51
注:兩台主機要保證可以ping通
2、oracle安裝要求
主庫:安裝oracle軟件,並創建數據庫
備庫:僅安裝oracle軟件
3、安裝位置
主庫:
4、數據庫實例預設:
主庫:數據庫實例 orcl(已創建)
備庫:數據庫實例 djl (未創建)
注意:如果已經安裝數據庫實例,可以新建一個實例,或者把原來的實例給刪除
三、配置dataguard主從庫
1、檢查數據庫,開啟歸檔模式,如下圖所示:
連接數據庫
C:\Users\Administrator>sqlplus / as sysdba
查看是否是歸檔模式
SQL> archive log list
關閉數據庫
SQL> shutdown immediate
啟動到mount狀態
SQL> startup mount
開啟歸檔模式
SQL> alter database archivelog;
開啟強制日志模式
SQL> alter database force logging;
2、為備庫添加日志組(在主庫mount狀態下執行)
查看當前主庫日志組:
SQL> select * from v$logfile order by group#;
在主庫為備庫添加日志組,結果如下:
SQL> alter database add standby logfile group 4 'E:\app\Administrator\oradata\orcl\redo04.log' size 50m;
SQL> alter database add standby logfile group 5 'E:\app\Administrator\oradata\orcl\redo05.log' size 50m;
SQL> alter database add standby logfile group 6 'E:\app\Administrator\oradata\orcl\redo06.log' size 50m;
SQL> alter database add standby logfile group 7 'E:\app\Administrator\oradata\orcl\redo07.log' size 50m;
SQL> select * from v$logfile order by group#;
3、主備庫配置網絡監聽
修改文件listener.ora, tnsnames.ora它們的位置在E:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN目錄下(根據實際安裝位置)
主庫:
listener.ora文件
注意:空格字符也要對齊,否則報語法錯誤
# listener.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) (SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (SID_NAME = ORCL) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1521)) ) ) ADR_BASE_LISTENER = E:\app\Administrator
tnsnames.ora文件
# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) ) djl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.51)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = djl) ) )
備庫:
listener.ora文件
# listener.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\listener.ora # Generated by Oracle configuration tools. SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = CLRExtProc) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (PROGRAM = extproc) (ENVS = "EXTPROC_DLLS=ONLY:E:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll") ) (SID_DESC = (GLOBAL_DBNAME = djl) (ORACLE_HOME = E:\app\Administrator\product\11.2.0\dbhome_1) (SID_NAME = djl) ) ) LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.51)(PORT = 1521)) ) ) ADR_BASE_LISTENER = E:\app\Administrator
tnsnames.ora文件
# tnsnames.ora Network Configuration File: E:\app\Administrator\product\11.2.0\dbhome_1\network\admin\tnsnames.ora # Generated by Oracle configuration tools. ORACLR_CONNECTION_DATA = (DESCRIPTION = (ADDRESS_LIST = (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)) ) (CONNECT_DATA = (SID = CLRExtProc) (PRESENTATION = RO) ) ) djl = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.51)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = djl) ) ) ORCL = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.2.50)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = orcl) ) )
4、重啟監聽服務
主庫:
C:\Users\Administrator>lsnrctl stop
C:\Users\Administrator>lsnrctl start
備庫:
5、使用tnsping檢查監聽及服務命名
主庫
C:\Users\Administrator>tnsping orcl
C:\Users\Administrator>tnsping djl
備庫
C:\Users\Administrator>tnsping orcl
C:\Users\Administrator>tnsping djl
6、主備庫創建相關目錄,詳述如下
主庫創建目錄:
- F:\oracle_db_arch\arch --歸檔日志位置
- F:\oracle_db_arch\arch_std --主庫轉為備庫時,歸檔日志位置
從庫創建目錄:
- F:\oracle_db_arch\arch ----歸檔日志位置
- F:\oracle_db_arch\arch_std --備庫轉為主庫時,歸檔日志位置
- E:\app\Administrator\oradata\djl --數據文件位置
- E:\app\Administrator\admin\djl\adump --審計文件位置
- E:\app\Administrator\flash_recovery_area\djl\ONLINELOG --聯機重做位置
7、為主備庫准備參數文件
主庫
select * from v$logfile order by group#;
SQL> create pfile from spfile;
注:執行create語句之后,在E:\app\Administrator\product\11.2.0\dbhome_1\database目錄下會出現文件INITorcl.ORA,用筆記本打開進行編輯
orcl.__db_cache_size=1124073472 orcl.__java_pool_size=16777216 orcl.__large_pool_size=16777216 orcl.__oracle_base='E:\app\Administrator'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=1040187392 orcl.__sga_target=1543503872 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=352321536 orcl.__streams_pool_size=0 *.audit_file_dest='E:\app\Administrator\admin\orcl\adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='E:\app\Administrator\oradata\orcl\control01.ctl','E:\app\Administrator\flash_recovery_area\orcl\control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.db_recovery_file_dest='E:\app\Administrator\flash_recovery_area' *.db_recovery_file_dest_size=4102029312 *.diagnostic_dest='E:\app\Administrator' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)' *.memory_target=2577399808 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' *.db_unique_name=orcl *.log_archive_config='dg_config=(orcl,djl)' *.log_archive_dest_1='LOCATION=F:\oracle_db_arch\arch valid_for=(online_logfiles,primary_role) db_unique_name=orcl' *.log_archive_dest_2='SERVICE=djl lgwr async affirm valid_for=(online_logfiles,primary_role) db_unique_name=djl' *.log_archive_dest_3='LOCATION=F:\oracle_db_arch\arch_std valid_for=(standby_logfiles,standby_role) db_unique_name=orcl' *.log_archive_dest_state_1='enable' *.log_archive_dest_state_2='enable' *.log_archive_dest_state_3='enable' *.fal_server=djl *.fal_client=orcl *.standby_file_management=auto *.db_file_name_convert=('E:\app\Administrator\oradata\djl','E:\app\Administrator\oradata\orcl') *.log_file_name_convert=('E:\app\Administrator\oradata\djl','E:\app\Administrator\oradata\orcl')
將主庫initorcl.ora復制到備庫對應目錄下並修改內容如下
orcl.__db_cache_size=1124073472 orcl.__java_pool_size=16777216 orcl.__large_pool_size=16777216 orcl.__oracle_base='E:\app\Administrator'#ORACLE_BASE set from environment orcl.__pga_aggregate_target=1040187392 orcl.__sga_target=1543503872 orcl.__shared_io_pool_size=0 orcl.__shared_pool_size=352321536 orcl.__streams_pool_size=0 *.audit_file_dest='E:\app\Administrator\admin\djl\adump' *.audit_trail='db' *.compatible='11.2.0.0.0' *.control_files='E:\app\Administrator\oradata\djl\control01.ctl','E:\app\Administrator\flash_recovery_area\djl\control02.ctl' *.db_block_size=8192 *.db_domain='' *.db_name='orcl' *.db_recovery_file_dest='E:\app\Administrator\flash_recovery_area' *.db_recovery_file_dest_size=4102029312 *.diagnostic_dest='E:\app\Administrator' *.dispatchers='(PROTOCOL=TCP) (SERVICE=orclXDB)','(address=(protocol=tcp)(host=192.168.2.51))(dispatchers=4)','(address=(protocol=ipc)(host=192.168.2.51))(dispatchers=2)' *.memory_target=2577399808 *.open_cursors=300 *.processes=150 *.remote_login_passwordfile='EXCLUSIVE' *.undo_tablespace='UNDOTBS1' *.db_unique_name=djl *.log_archive_config='dg_config=(djl,orcl)' *.log_archive_dest_1='LOCATION=F:\oracle_db_arch\arch valid_for=(online_logfiles,primary_role) db_unique_name=djl' *.log_archive_dest_2='SERVICE=orcl lgwr async affirm valid_for=(online_logfiles,primary_role) db_unique_name=orcl' *.log_archive_dest_3='LOCATION=F:\oracle_db_arch\arch_std valid_for=(standby_logfiles,standby_role) db_unique_name=djl' *.log_archive_dest_state_1='enable' *.log_archive_dest_state_2='enable' *.log_archive_dest_state_3='enable' *.fal_server=orcl *.fal_client=djl *.standby_file_management=auto *.db_file_name_convert=('E:\app\Administrator\oradata\orcl','E:\app\Administrator\oradata\djl') *.log_file_name_convert=('E:\app\Administrator\oradata\orcl','E:\app\Administrator\oradata\djl')
8、密碼文件配置
將主庫的參數文件PWDorcl.ora復制到備庫對應目錄下,並重命名為PWDdjl.ora
路徑位置:E:\app\Administrator\product\11.2.0\dbhome_1\database
9、控制文件配置
將主庫的參數文件control01.ctl和control02.ctl復制到備庫參數文件中指定位置下
10、創建備庫實例djl
C:\Users\Administrator>oradim -new -sid djl
11、主備庫的啟動
主庫:登錄sqlplus在showdown狀態下創建參數文件
查看oracle 啟動狀態
SQL> select status from v$instance;
關閉數據庫
SQL> shutdown immediate
創建參數文件
SQL> create spfile from pfile;
啟動數據庫
SQL> startup
SQL> select status from v$instance; STATUS ------------ MOUNTED SQL> shutdown immediate ORA-01109: 數據庫未打開 已經卸載數據庫。 ORACLE 例程已經關閉。 SQL> SQL> create spfile from pfile; 文件已創建。 SQL> startup ORACLE 例程已經啟動。 Total System Global Area 2572144640 bytes Fixed Size 2178496 bytes Variable Size 1426063936 bytes Database Buffers 1124073472 bytes Redo Buffers 19828736 bytes 數據庫裝載完畢。 數據庫已經打開。 SQL>
備庫:
登錄sqlplus出現如下錯誤
C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期日 8月 11 17:43:35 2019 Copyright (c) 1982, 2010, Oracle. All rights reserved. ERROR: ORA-12560: TNS: 協議適配器錯誤 請輸入用戶名: ERROR: ORA-12560: TNS: 協議適配器錯誤 請輸入用戶名: ERROR: ORA-12560: TNS: 協議適配器錯誤 SP2-0157: 在 3 次嘗試之后無法連接到 ORACLE, 退出 SQL*Plus C:\Users\Administrator>
解決辦法參考:https://www.jianshu.com/p/1c3dbe96af03
C:\Users\Administrator>set oracle_sid=djl C:\Users\Administrator>sqlplus / as sysdba SQL*Plus: Release 11.2.0.1.0 Production on 星期日 8月 11 17:57:13 2019 Copyright (c) 1982, 2010, Oracle. All rights reserved. 已連接到空閑例程。 SQL>
創建參數文件
SQL> create spfile from pfile;
將數據庫啟動到nomount(必須是nomount狀態)
SQL> startup nomount
SQL> create spfile from pfile; 文件已創建。 SQL> startup nomount ORACLE 例程已經啟動。 Total System Global Area 3423965184 bytes Fixed Size 2180544 bytes Variable Size 1862273600 bytes Database Buffers 1543503872 bytes Redo Buffers 16007168 bytes SQL>
12、使用rman連接主備庫
在主庫執行:
C:\Users\Administrator>rman target sys/111111@orcl auxiliary sys/111111@djl
注意:連接前使用rman登錄主備庫做測試
13、為備庫備份參數文件
RMAN> backup current controlfile for standby database;
報錯情況:
RMAN> backup current controlfile for standby database; 啟動 backup 於 11-8月 -19 使用目標數據庫控制文件替代恢復目錄 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=67 設備類型=DISK 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 輸入數據文件: 文件號=00007 名稱=D:\ORACLE_DATA\BRDB_1031.DBF 輸入數據文件: 文件號=00006 名稱=D:\ORACLE_DATA\BRDB_JSNK20190716.DBF 輸入數據文件: 文件號=00008 名稱=D:\ORACLE_DATA\BRDB_ZJC_0508.DBF 輸入數據文件: 文件號=00001 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF 輸入數據文件: 文件號=00002 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF 輸入數據文件: 文件號=00003 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF 輸入數據文件: 文件號=00005 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF 輸入數據文件: 文件號=00004 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 08/11/2019 18:12:52 上) 失敗 ORA-19809: 超出了恢復文件數的限制 ORA-19804: 無法回收 52428800 字節磁盤空間 (從 4102029312 限制中) 繼續執行其他作業步驟, 將不重新運行失敗的作業 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括當前控制文件 備份集內包括當前的 SPFILE 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 通道 ORA_DISK_1: 已完成段 1 於 11-8月 -19 段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_08_11\O1_MF_ NCSNF_TAG20190811T181047_GNZTK5KL_.BKP 標記=TAG20190811T181047 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括備用控制文件 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 通道 ORA_DISK_1: 已完成段 1 於 11-8月 -19 段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_08_11\O1_MF_ NCNNF_TAG20190811T181047_GNZTK7NZ_.BKP 標記=TAG20190811T181047 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 RMAN-00571: =========================================================== RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS =============== RMAN-00571: =========================================================== RMAN-03009: backup 命令 (ORA_DISK_1 通道上, 在 08/11/2019 18:12:52 上) 失敗 ORA-19809: 超出了恢復文件數的限制 ORA-19804: 無法回收 52428800 字節磁盤空間 (從 4102029312 限制中)
需要修改歸檔日志的路徑,默認路徑存儲大小為2G
或者修改默認路徑存儲大小為500G
SQL> alter system set db_recovery_file_dest_size=500G;
系統已更改。
參考:
https://blog.csdn.net/mengxiang209/article/details/6936096
https://www.cnblogs.com/andy6/p/5997410.html
https://blog.csdn.net/weixin_34384557/article/details/89774544
https://blog.csdn.net/weixin_34384557/article/details/89774544
RMAN> backup current controlfile for standby database; 啟動 backup 於 11-8月 -19 使用目標數據庫控制文件替代恢復目錄 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=131 設備類型=DISK 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 輸入數據文件: 文件號=00007 名稱=D:\ORACLE_DATA\BRDB_1031.DBF 輸入數據文件: 文件號=00006 名稱=D:\ORACLE_DATA\BRDB_JSNK20190716.DBF 輸入數據文件: 文件號=00008 名稱=D:\ORACLE_DATA\BRDB_ZJC_0508.DBF 輸入數據文件: 文件號=00001 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF 輸入數據文件: 文件號=00002 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF 輸入數據文件: 文件號=00003 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF 輸入數據文件: 文件號=00005 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF 輸入數據文件: 文件號=00004 名稱=D:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 通道 ORA_DISK_1: 已完成段 1 於 11-8月 -19 段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_08_11\O1_MF_ NNNDF_TAG20190811T191415_GNZY482X_.BKP 標記=TAG20190811T191415 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:05:36 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括當前控制文件 備份集內包括當前的 SPFILE 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 通道 ORA_DISK_1: 已完成段 1 於 11-8月 -19 段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_08_11\O1_MF_ NCSNF_TAG20190811T191415_GNZYGR2X_.BKP 標記=TAG20190811T191415 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 通道 ORA_DISK_1: 正在啟動全部數據文件備份集 通道 ORA_DISK_1: 正在指定備份集內的數據文件 備份集內包括備用控制文件 通道 ORA_DISK_1: 正在啟動段 1 於 11-8月 -19 通道 ORA_DISK_1: 已完成段 1 於 11-8月 -19 段句柄=D:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\ORCL\BACKUPSET\2019_08_11\O1_MF_ NCNNF_TAG20190811T191415_GNZYGT5V_.BKP 標記=TAG20190811T191415 注釋=NONE 通道 ORA_DISK_1: 備份集已完成, 經過時間:00:00:01 完成 backup 於 11-8月 -19
14、將主庫數據庫復制到備庫
RMAN> duplicate target database for standby from active database;
RMAN> duplicate target database for standby from active database; 啟動 Duplicate Db 於 27-8月 -19 使用目標數據庫控制文件替代恢復目錄 分配的通道: ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: SID=10 設備類型=DISK 內存腳本的內容: { backup as copy reuse targetfile 'E:\app\Administrator\product\11.2.0\dbhome_1\DATABASE\PWDorcl.OR A' auxiliary format 'E:\app\Administrator\product\11.2.0\dbhome_1\DATABASE\PWDdjl.ORA' ; } 正在執行內存腳本 啟動 backup 於 27-8月 -19 分配的通道: ORA_DISK_1 通道 ORA_DISK_1: SID=147 設備類型=DISK 完成 backup 於 27-8月 -19 內存腳本的內容: { backup as copy current controlfile for standby auxiliary format 'E:\APP\ADMI NISTRATOR\ORADATA\DJL\CONTROL01.CTL'; restore clone controlfile to 'E:\APP\ADMINISTRATOR\FLASH_RECOVERY_AREA\DJL\C ONTROL02.CTL' from 'E:\APP\ADMINISTRATOR\ORADATA\DJL\CONTROL01.CTL'; } 正在執行內存腳本 啟動 backup 於 27-8月 -19 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 啟動數據文件副本 復制備用控制文件 輸出文件名=E:\APP\ADMINISTRATOR\PRODUCT\11.2.0\DBHOME_1\DATABASE\SNCFORCL.ORA 標 記=TAG20190827T092232 RECID=4 STAMP=1017393753 通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:01 完成 backup 於 27-8月 -19 啟動 restore 於 27-8月 -19 使用通道 ORA_AUX_DISK_1 通道 ORA_AUX_DISK_1: 已復制控制文件副本 完成 restore 於 27-8月 -19 內存腳本的內容: { sql clone 'alter database mount standby database'; } 正在執行內存腳本 sql 語句: alter database mount standby database 內存腳本的內容: { set newname for tempfile 1 to "E:\APP\ADMINISTRATOR\ORADATA\DJL\TEMP01.DBF"; switch clone tempfile all; set newname for datafile 1 to "E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSTEM01.DBF"; set newname for datafile 2 to "E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSAUX01.DBF"; set newname for datafile 3 to "E:\APP\ADMINISTRATOR\ORADATA\DJL\UNDOTBS01.DBF"; set newname for datafile 4 to "E:\APP\ADMINISTRATOR\ORADATA\DJL\USERS01.DBF"; backup as copy reuse datafile 1 auxiliary format "E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSTEM01.DBF" datafile 2 auxiliary format "E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSAUX01.DBF" datafile 3 auxiliary format "E:\APP\ADMINISTRATOR\ORADATA\DJL\UNDOTBS01.DBF" datafile 4 auxiliary format "E:\APP\ADMINISTRATOR\ORADATA\DJL\USERS01.DBF" ; sql 'alter system archive log current'; } 正在執行內存腳本 正在執行命令: SET NEWNAME 臨時文件 1 在控制文件中已重命名為 E:\APP\ADMINISTRATOR\ORADATA\DJL\TEMP01.DBF 正在執行命令: SET NEWNAME 正在執行命令: SET NEWNAME 正在執行命令: SET NEWNAME 正在執行命令: SET NEWNAME 啟動 backup 於 27-8月 -19 使用通道 ORA_DISK_1 通道 ORA_DISK_1: 啟動數據文件副本 輸入數據文件: 文件號=00001 名稱=E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF 輸出文件名=E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSTEM01.DBF 標記=TAG20190827T092241 通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:25 通道 ORA_DISK_1: 啟動數據文件副本 輸入數據文件: 文件號=00002 名稱=E:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF 輸出文件名=E:\APP\ADMINISTRATOR\ORADATA\DJL\SYSAUX01.DBF 標記=TAG20190827T092241 通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:15 通道 ORA_DISK_1: 啟動數據文件副本 輸入數據文件: 文件號=00003 名稱=E:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF 輸出文件名=E:\APP\ADMINISTRATOR\ORADATA\DJL\UNDOTBS01.DBF 標記=TAG20190827T09224 1 通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:07 通道 ORA_DISK_1: 啟動數據文件副本 輸入數據文件: 文件號=00004 名稱=E:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF 輸出文件名=E:\APP\ADMINISTRATOR\ORADATA\DJL\USERS01.DBF 標記=TAG20190827T092241 通道 ORA_DISK_1: 數據文件復制完畢, 經過時間: 00:00:01 完成 backup 於 27-8月 -19 sql 語句: alter system archive log current 內存腳本的內容: { switch clone datafile all; } 正在執行內存腳本 數據文件 1 已轉換成數據文件副本 輸入數據文件副本 RECID=4 STAMP=1017393812 文件名=E:\APP\ADMINISTRATOR\ORADATA\DJ L\SYSTEM01.DBF 數據文件 2 已轉換成數據文件副本 輸入數據文件副本 RECID=5 STAMP=1017393812 文件名=E:\APP\ADMINISTRATOR\ORADATA\DJ L\SYSAUX01.DBF 數據文件 3 已轉換成數據文件副本 輸入數據文件副本 RECID=6 STAMP=1017393812 文件名=E:\APP\ADMINISTRATOR\ORADATA\DJ L\UNDOTBS01.DBF 數據文件 4 已轉換成數據文件副本 輸入數據文件副本 RECID=7 STAMP=1017393812 文件名=E:\APP\ADMINISTRATOR\ORADATA\DJ L\USERS01.DBF 完成 Duplicate Db 於 27-8月 -19 RMAN>exit
15、將備庫設置為接受日志模式
說明:此時,主庫為open狀態,備庫為mounted
主庫:
SQL> select status from v$instance; STATUS ------------ OPEN SQL>
備庫:
在備庫執行以下語句
將備庫修改為接收應用主庫歸檔的模式
SQL> alter database recover managed standby database disconnect from session;
SQL> select status from v$instance; STATUS ------------------------ MOUNTED SQL> alter database recover managed standby database disconnect from session; 數據庫已更改。 SQL>
16、日志驗證dataguard:
主庫:
E:\app\Administrator\diag\rdbms\orcl\orcl\trace
備庫:
在主庫切換日志,再次查看日志如下
主庫:
SQL> alter system switch logfile;
備庫:
日志驗證dataguard完畢,且驗證成功。
17、備庫后期配置
設置備庫
SQL> alter database mount standby database;
SQL> select sequence#,applied from V$archived_log where applied='YES';
SQL> alter database recover managed standby database cancel;
設置備庫只讀
SQL> alter database open read only;
SQL> alter database recover managed standby database using current logfile disconnect from session;
說明:重啟數據庫后必須執行,這樣數據才能同步。
查看日志應用情況
SQL> select sequence#,applied from V$archived_log where applied='IN-MEMORY';
如果看到IN-MEMORY說明當前正在進行實時同步,如果最后一個是YES,也是正常的,說明當前操作為0
SQL> select sequence#,applied from V$archived_log;
SQL> select open_mode,database_role,db_unique_name,PROTECTION_MODE from v$database;
到此,oracle 11g dataguard 配置完畢。
四、啟動從庫,同步因停機未同步的歸檔日志
SQL> shutdown immediate;
SQL> startup nomount;
SQL> alter database mount standby database;
備庫啟用日志應用
SQL> alter database recover managed standby database disconnect from session;
SQL> select sequence#,applied from V$archived_log where applied='YES';
以只讀方式啟動從庫
SQL> alter database open read only;
SQL> alter database recover managed standby database using current logfile disconnect from session;
更改數據庫恢復托管備用數據庫取消
停止應用日志
SQL> alter database recover managed standby database cancel;
參考博客:
Windows server 2008 R2 安裝 Oracle 11g R2 dataguard
https://blog.csdn.net/u013986802/article/details/70207566
物理standby database的日常維護
https://blog.csdn.net/robbie1314520/article/details/8267283