使用 RMAN DUPLICATE...FROM ACTIVE DATABASE 建立物理備用資料庫的分步指南
文件內容
|
目標 |
|
解決方案 |
|
參考 |
適用於:
Oracle Database - Enterprise Edition - 版本 9.2.0.8 和更高版本本文件所含資訊適用於所有平臺
目標
如何在不關閉主資料庫,而是使用主資料庫的活動檔案(無需備份),使用 RMAN DUPLICATE ... FROM ACTIVE DATABASE 命令建立物理備用資料庫的分步指南。
此功能從版本 11g 開始適用。
Database Name :- chicago
Primary db_unique_name :- chicago
standby db_unique_name :- Boston
有關複製 NONE-Standby,請參閱:
Note 452868.1 RMAN 'Duplicate From Active Database' Feature in 11G
解決方案
1.對主資料庫進行必要的更改。
a. 啟用 force logging。
b. 如果沒有密碼檔案,則建立密碼檔案。
c. 建立備用 redo 日誌。
d. 修改引數檔案,使其適用於 Dataguard。
2. 確保 sql*net 連線正常。
3. 使用主資料庫活動檔案,透過網路建立備用資料庫。
a. 建立密碼檔案
b. 為備用資料庫(輔助資料庫)建立初始化引數檔案
c. 為資料庫檔案建立需要的裝載點或資料夾
d. 連線至主資料庫作為其目標資料庫,以執行建立備用 ON STANDBY。
FOR STANDBY
FROM ACTIVE DATABASE
SPFILE
PARAMETER_VALUE_CONVERT '', ''
SET DB_FILE_NAME_CONVERT '', ''
SET LOG_FILE_NAME_CONVERT '', ''
SET SGA_MAX_SIZE 200M
SET SGA_TARGET 125M;
4. 檢查日誌傳送和應用。
程式:
我們使用主資料庫活動檔案建立備用資料庫,也就是說,此命令將在透過網路使用主資料庫活動檔案建立物理備用資料庫時有用。
1. 為生產資料庫成為主資料庫做準備
a. 確保資料庫是 archivelog 模式。
SQL> select log_mode from v$database;
LOG_MODE
------------
ARCHIVELOG
b. 啟用 force logging
SQL> ALTER DATABASE FORCE LOGGING;
c. 建立備用 redo 日誌
SQL> alter database add standby logfile '<name>' size <size>;
d. 修改主要初始化引數,使其適用於主資料庫的 dataguard
SQL> alter system set LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)';
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_1='LOCATION=/u01/app/oracle/databases/chicago/redo/ VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago';
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_2='SERVICE=boston LGWR ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston';
System altered.
SQL> alter system set LOG_ARCHIVE_DEST_STATE_1=ENABLE;
System altered.
SQL> alter system set FAL_SERVER=boston;
System altered.
SQL> alter system set FAL_CLIENT=chicago;
System altered.
SQL> alter system set DB_FILE_NAME_CONVERT='/u01/app/oracle/databases/boston/data/','/u01/app/oracle/databases/chicago/data' scope=spfile;
System altered.
SQL> alter system set LOG_FILE_NAME_CONVERT='/u01/app/oracle/databases/boston/redo/','/u01/app/oracle/databases/chicago/redo' scope=spfile;
System altered.
2. 確保 sql*net 連線正常。
在備庫的 listener.ora 檔案中插入 Boston 的靜態條目。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = boston.us.oracle.com)
(ORACLE_HOME = /u01/app/oracle/product/OraHome111)
(SID_NAME = boston)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = <auxiliary host>)(PORT = 1521))
)
主庫和備庫的 TNSNAMES.ORA 應該有兩個條目
CHICAGO =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <target host>)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = chicago.us.oracle.com))
)
BOSTON =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = <auxiliary host>)(PORT = 1521))
)
(CONNECT_DATA = (SERVICE_NAME = boston.us.oracle.com))
)
在主資料庫和備用資料庫中使用以下命令,檢查 SQL*Net 配置
% tnsping chicago
% tnsping boston
3. 建立備用資料庫
a. 從主資料庫 $ORACLE_HOME/dbs 中複製密碼檔案,並將其重新命名為備用資料庫名稱。
使用者名稱必須為 SYS 且主資料庫和備用資料庫的密碼需相同。
此處的最佳做法是按照建議複製密碼檔案。
密碼檔名稱必須和備用站點上使用的例項名稱/SID 匹配,而非 DB_NAME。
b. 僅用一個引數 DB_NAME 建立初始化引數。
DB_NAME=chicago
DB_UNIQUE_NAME=boston
DB_BLOCK_SIZE=<same as primary>
c. 在備庫建立需要的目錄以放置 $ADR_HOME 中的資料檔案和跟蹤檔案。
d. 將環境變數 ORACLE_SID 設定為備用服務並啟動備用例項。
% export ORACLE_SID=boston
% sqlplus "/ as sysdba"
SQL> startup nomount pfile=$ORACLE_HOME/dbs/initcore1.ora
注意:使用 PFILE 或 SPFILE
# 附加註釋
# 如果使用了 DUPLICATE without TARGET connection,則不能使用 SPFILE
# 否則將得到以下錯誤訊息
RMAN-05537: DUPLICATE without TARGET connection when auxiliary instance is started with spfile cannot use SPFILE clause
e. 驗證“AS SYSDBA”連線正在執行
% sqlplus /nolog
SQL> connect sys/<passwd<@boston AS SYSDBA
connect sys/<passwd>@chicago AS SYSDBA
f. 在主系統上執行RMAN 並連線主資料庫和輔助資料庫(即備用資料庫)
connected to target database: CHICAGO (DBID=761464750)
connected to auxiliary database: CHICAGO (not mounted)
RMAN> run {
allocate channel prmy1 type disk;
allocate channel prmy2 type disk;
allocate channel prmy3 type disk;
allocate channel prmy4 type disk;
allocate auxiliary channel stby type disk;
duplicate target database for standby from active database
spfile
parameter_value_convert 'chicago','boston'
set db_unique_name='boston'
set db_file_name_convert='/chicago/','/boston/'
set log_file_name_convert='/chicago/','/boston/'
set control_files='/u01/app/oracle/oradata/control01.ctl'
set log_archive_max_processes='5'
set fal_client='boston'
set fal_server='chicago'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(chicago,boston)'
set log_archive_dest_2='service=chicago ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=chicago'
;
}
using target database control file instead of recovery catalog
allocated channel: prmy1
channel prmy1: SID=147 device type=DISK
allocated channel: prmy2
channel prmy2: SID=130 device type=DISK
allocated channel: prmy3
channel prmy3: SID=137 device type=DISK
allocated channel: prmy4
channel prmy4: SID=170 device type=DISK
allocated channel: stby
channel stby: SID=98 device type=DISK
Starting Duplicate Db at 19-MAY-08
contents of Memory Script:
{
backup as copy reuse
file '/u02/app/oracle/product/11.1.0/db_1/dbs/orapwcore' auxiliary format'/u02/app/oracle/product/11.1.0/db_1/dbs/orapwcore1'
file'/u02/app/oracle/product/11.1.0/db_1/dbs/spfilecore.ora' auxiliary format'/u02/app/oracle/product/11.1.0/db_1/dbs/spfilecore1.ora' ;
sql clone "alter system set spfile= ''/u02/app/oracle/product/11.1.0/db_1/dbs/spfilecore1.ora''";
}
executing Memory Script
Starting backup at 19-MAY-08
Finished backup at 19-MAY-08
sql statement: alter system set spfile= ''/u02/app/oracle/product/11.1.0/db_1/dbs/spfilecore1.ora''
contents of Memory Script:
{
sql clone "alter system set audit_file_dest =''/u02/app/oracle/admin/boston/adump'' comment='''' scope=spfile";
sql clone "alter system set dispatchers =''(PROTOCOL=TCP) (SERVICE=core1XDB)'' comment='''' scope=spfile";
sql clone "alter system set log_archive_dest_2 =''service=core11 arch async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=boston'' comment='''' scope=spfile";
sql clone "alter system set db_unique_name =''boston'' comment='''' scope=spfile";
sql clone "alter system set db_file_name_convert =''/chicago/'', ''/boston/'' comment='''' scope=spfile";
sql clone "alter system set log_file_name_convert =''/chicago/'', ''/boston/'' comment='''' scope=spfile";
sql clone "alter system set control_files =''/u01/app/oracle/oradata/control01.ctl'' comment='''' scope=spfile";
sql clone "alter system set log_archive_max_processes =5 comment='''' scope=spfile";
sql clone "alter system set fal_client =''boston'' comment='''' scope=spfile";
sql clone "alter system set fal_server =''chicago'' comment='''' scope=spfile";
sql clone "alter system set standby_file_management =''AUTO'' comment='''' scope=spfile";
sql clone "alter system set log_archive_config =''dg_config=(chicago,boston)'' comment='''' scope=spfile";
sql clone "alter system set log_archive_dest_2 =''service=chicago ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=chicago'' comment='''' scope=spfile";
shutdown clone immediate;
startup clone nomount ;
}
executing Memory Script
sql statement: alter system set audit_file_dest = ''/u02/app/oracle/admin/boston/adump'' comment= '''' scope=spfile
sql statement: alter system set dispatchers = ''(PROTOCOL=TCP) (SERVICE=core1XDB)'' comment= '''' scope=spfile
sql statement: alter system set log_archive_dest_2 = ''service=core11 arch async VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) db_unique_name=boston'' comment= '''' scope=spfile
sql statement: alter system set db_unique_name = ''boston'' comment= '''' scope=spfile
sql statement: alter system set db_file_name_convert = ''/chicago/'', ''/boston/'' comment= '''' scope=spfile
sql statement: alter system set log_file_name_convert = ''/chicago/'', ''/boston/'' comment= '''' scope=spfile
sql statement: alter system set control_files = ''/u01/app/oracle/oradata/control01.ctl'' comment= '''' scope=spfile
sql statement: alter system set log_archive_max_processes = 5 comment= '''' scope=spfile
sql statement: alter system set fal_client = ''boston'' comment= '''' scope=spfile
sql statement: alter system set fal_server = ''chicago'' comment= '''' scope=spfile
sql statement: alter system set standby_file_management = ''AUTO'' comment= '''' scope=spfile
sql statement: alter system set log_archive_config = ''dg_config=(chicago,boston)'' comment= '''' scope=spfile
sql statement: alter system set log_archive_dest_2 = ''service=chicago ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=chicago'' comment= '''' scope=spfile
Oracle instance shut down
connected to auxiliary database (not started)
Oracle instance started
Total System Global Area 845348864 bytes
Fixed Size 1303188 bytes
Variable Size 482348396 bytes
Database Buffers 356515840 bytes
Redo Buffers 5181440 bytes
contents of Memory Script:
{
backup as copy current controlfile for standby auxiliary format '/u01/app/oracle/oradata/control01.ctl';
sql clone 'alter database mount standby database';
}
executing Memory Script
Starting backup at 19-MAY-08
channel prmy1: starting datafile copy
copying standby control file
output file name=/u02/app/oracle/product/11.1.0/db_1/dbs/snapcf_chicago.f tag=TAG20080519T173406 RECID=2 STAMP=655148053
channel prmy1: datafile copy complete, elapsed time: 00:00:03
Finished backup at 19-MAY-08
sql statement: alter database mount standby database
contents of Memory Script:
{
set newname for tempfile 1 to"/u02/app/oracle/oradata/boston/temp01.dbf";
switch clone tempfile all;
set newname for datafile 1 to "/u02/app/oracle/oradata/boston/system01.dbf";
set newname for datafile 2 to "/u02/app/oracle/oradata/boston/sysaux01.dbf";
set newname for datafile 3 to "/u02/app/oracle/oradata/boston/undotbs01.dbf";
set newname for datafile 4 to "/u02/app/oracle/oradata/boston/users01.dbf";
backup as copy reuse
datafile 1 auxiliary format "/u02/app/oracle/oradata/boston/system01.dbf"
datafile 2 auxiliary format "/u02/app/oracle/oradata/boston/sysaux01.dbf"
datafile 3 auxiliary format "/u02/app/oracle/oradata/boston/undotbs01.dbf"
datafile 4 auxiliary format "/u02/app/oracle/oradata/boston/users01.dbf" ;
sql 'alter system archive log current';
}
executing Memory Script
executing command: SET NEWNAME
renamed tempfile 1 to /u02/app/oracle/oradata/boston/temp01.dbf in control file
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
executing command: SET NEWNAME
Starting backup at 19-MAY-08
channel prmy1: starting datafile copy
input datafile file number=00001 name=/u02/app/oracle/oradata/chicago/system01.dbf
channel prmy2: starting datafile copy
input datafile file number=00002 name=/u02/app/oracle/oradata/chicago/sysaux01.dbf
channel prmy3: starting datafile copy
input datafile file number=00003 name=/u02/app/oracle/oradata/chicago/undotbs01.dbf
channel prmy4: starting datafile copy
input datafile file number=00004 name=/u02/app/oracle/oradata/chicago/users01.dbf
output file name=/u02/app/oracle/oradata/boston/undotbs01.dbf tag=TAG20080519T173421 RECID=0 STAMP=0
channel prmy3: datafile copy complete, elapsed time: 00:00:24
output file name=/u02/app/oracle/oradata/boston/users01.dbf tag=TAG20080519T173421 RECID=0 STAMP=0
channel prmy4: datafile copy complete, elapsed time: 00:00:16
output file name=/u02/app/oracle/oradata/boston/system01.dbf tag=TAG20080519T173421 RECID=0 STAMP=0
channel prmy1: datafile copy complete, elapsed time: 00:02:32
output file name=/u02/app/oracle/oradata/boston/sysaux01.dbf tag=TAG20080519T173421 RECID=0 STAMP=0
channel prmy2: datafile copy complete, elapsed time: 00:02:32
Finished backup at 19-MAY-08
sql statement: alter system archive log current
contents of Memory Script:
{
switch clone datafile all;
}
executing Memory Script
datafile 1 switched to datafile copy
input datafile copy RECID=2 STAMP=655148231 file name=/u02/app/oracle/oradata/boston/system01.dbf
datafile 2 switched to datafile copy
input datafile copy RECID=3 STAMP=655148231 file name=/u02/app/oracle/oradata/boston/sysaux01.dbf
datafile 3 switched to datafile copy
input datafile copy RECID=4 STAMP=655148231 file name=/u02/app/oracle/oradata/boston/undotbs01.dbf
datafile 4 switched to datafile copy
input datafile copy RECID=5 STAMP=655148231 file name=/u02/app/oracle/oradata/boston/users01.dbf
Finished Duplicate Db at 19-MAY-08
released channel: prmy1
released channel: prmy2
released channel: prmy3
released channel: prmy4
4. 現在連線備用資料庫 sqlplus 並啟動 MRP(管理恢復程式)。比較主資料庫的最新序列和 MRP(管理恢復程式)的應用序列。
示例:
5. 如果您是購買了ADG 許可證的客戶可以用只讀模式開啟 DB 並啟動恢復。
SQL> alter database open;
SQL> alter database recover managed standby database disconnect;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31393455/viewspace-2130462/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 使用RMAN DUPLICATE...FROM ACTIVE DATABASE命令來建立DataGuard物理備庫Database
- 使用RMAN複製資料庫 active database資料庫Database
- 使用RMAN建立物理Standby資料庫資料庫
- ORACLE DATAGUARD 資料庫---建立物理備用資料庫Oracle資料庫
- 利用RMAN建立備用資料庫資料庫
- RMAN duplicate from active database 複製資料庫Database資料庫
- RMAN DUPLICATE建立DataGuard物理備庫
- 使用RMAN建立資料庫備份庫(筆記)資料庫筆記
- dataguard回顧之安裝———使用rman建立物理備庫
- 使用oracle 11g rman新特性 duplicate target database for standby from active database 建立物理dataguard並開啟RealOracleDatabase
- Oracle 11gR2 使用 RMAN duplicate from active database 複製資料庫OracleDatabase資料庫
- 物理備用資料庫(二)資料庫
- 物理備用資料庫(一)資料庫
- 通過RMAN Duplicate建立Oracle物理standby備庫Oracle
- Step by Step Guide on Creating Physical Standby Using RMAN DUPLICATE...FROM ACTIVE DATABASE WithoutGUIIDEDatabase
- 11g RMAN新特性active database duplicate 資料庫異構Database資料庫
- 11g RMAN新特性 active database duplication 複製資料庫Database資料庫
- 11gR2中使用duplicate建立physical standby (從rman備份或從active database)Database
- RMAN備份 建立catalog資料庫資料庫
- 使用RMAN建立Duplicate資料庫資料庫
- 使用rman建立standby資料庫資料庫
- 使用RMAN備份資料庫資料庫
- 【DG】怎麼使用Data Pump備份物理備用資料庫資料庫
- 使用RMAN線上建立DataGuard備用庫(資料檔案不同路徑結構)
- 使用RMAN backup和restore方式部署物理備庫REST
- oracle rman備用資料庫(一)Oracle資料庫
- 用rman建立dataguard備用資料庫繼續(無法找到備份檔案)資料庫
- Oracle11g的Dataguard測試,建立物理備庫(Physical Standby Database)OracleDatabase
- 2.4.1 使用 CREATE DATABASE 子句建立資料庫Database資料庫
- 建立RMAN catalog實現物理備份
- 使用RMAN建立STANDBY資料庫——RMAN使用者手冊資料庫
- 配置Oracle11g的Dataguard測試,建立物理備庫(Physical Standby Database)OracleDatabase
- 使用rman建立standby database的過程Database
- 2.4 使用 CREATE DATABASE 語句建立資料庫Database資料庫
- 【DATAGUARD 學習】使用duplicate 建立物理standby 資料庫資料庫
- 使用 xtrabackup 進行MySQL資料庫物理備份MySql資料庫
- rman全備資料庫資料庫
- 使用RMAN進行快速Dataguard資料庫建立資料庫