30分鐘創建一個Oracle11g DataGuard物理備庫的步驟:
主庫主機名:prmy
備庫主機名:sby1
主庫ip:192.168.1.1
備庫ip:192.168.1.2
主庫dbname:prmy
備庫dbname:sby1
主庫db_unique_name=prmy
備庫db_unique_name=sby1
主庫listener.ora:prmy
備庫listener.ora:sby1
主庫備庫tnsnames.ora:prmy,sby1
概述:
1.準備主庫
2.設置物理備庫上的參數
3.配置oracle 網絡服務
4.啓動備份實例
5.執行RMAN 命令:DUPLICATE TARGET DATABASE FOR
STANDBY FROM ACTIVE DATABASE
6.開啓redo的傳輸和應用
準備主庫:
在數據庫層面啓用FORCE LOGGING
如果需要的話創建一個密碼文件
創建備份日誌組(standby redo log)
設置初始化參數
SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER DATABASE ARCHIVELOG;
ALTER DATABASE OPEN;
alter database force logging;
select log_mode,force_logging from v$database;
scp orapwprmy [email protected]:/u01/app/oracle/product/11.2.0/dbhome_1/dbs/orapwsby1
ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/prmy/srl01.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/prmy/srl02.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/prmy/srl03.log') SIZE 50M;
ALTER DATABASE ADD STANDBY LOGFILE('/u01/app/oracle/oradata/prmy/srl04.log') SIZE 50M;
select group#,type,member from v$logfile where type='STANDBY';
select group#,dbid,thread#,sequence#,status from v$standby_log;
(1)alter system set log_archive_config='dg_config=(prmy,sby1)';
show parameter log_ARCHIVE_CONFIG;
select * from v$dataguard_config;
(2)ALTER SYSTEM SET log_archive_dest_1='location=use_db_recovery_file_dest valid_for=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=prmy';
show parameter log_archive_dest_1;
(3)ALTER SYSTEM SET LOG_ARCHIVE_DEST_2='SERVICE=sby1 NOAFFIRM ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=sby1';
show parameter LOG_ARCHIVE_DEST_2;
show parameter log_archive_dest_state_2
(4)alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
show parameter log_archive_format;
(5)alter system set log_archive_max_processes=10;
show parameter log_archive_max_processes;
show parameter remote_login_passwordfile;
(6)alter system set fal_server=sby1;
show parameter fal_server
(7)alter system set standby_file_management=auto;
show parameter standby_file_management
(8)alter system set db_file_name_convert='/u01/app/oracle/oradata/sby1/','/u01/app/oracle/oradata/prmy/' scope=spfile;
(9)alter system set log_file_name_convert='/u01/app/oracle/oradata/sby1/','/u01/app/oracle/oradata/prmy/'scope=spfile;
爲物理備庫創建一個參數文件
cat dg.ora
DB_NAME=prmy
DB_UNIQUE_NAME=sby1
DB_BLOCK_SIZE=8192
爲物理備庫創建目錄
mkdir -p /u01/app/oracle/oradata/sby1
mkdir -p /u01/app/oracle/fast_recovery_area/sby1
mkdir -p /u01/app/oracle/fast_recovery_area/SBY1
mkdir -p /u01/app/oracle/admin/sby1/adump
啓動物理備庫
export ORACLE_SID=sby1
sqlplus /nolog
connect /as sysdba
startup nomount pfile='$ORACLE_HOME/dbs/dg.ora';
select instance_name,host_name from v$instance;
select name from v$database;
爲主庫及物理備庫創建網絡服務名
prmy:
cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = prmy)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = prmy)
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = prmy)(PORT = 1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = /u01/app/oracle
cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PRMY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = prmy)(PORT = 1521))
)
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = prmy)
)
)
SBY1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sby1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sby1)
)
)
sby1:
cat listener.ora
# listener.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = sby1)
(ORACLE_HOME = /u01/app/oracle/product/11.2.0/dbhome_1)
(SID_NAME = sby1)
)
)
LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = sby1)(PORT = 1521))
)
ADR_BASE_LISTENER = /u01/app/oracle
cat tnsnames.ora
# tnsnames.ora Network Configuration File: /u01/app/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
# Generated by Oracle configuration tools.
PRMY =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = prmy)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = prmy)
)
)
SBY1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = sby1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = sby1)
)
)
tnsping prmy
tnsping sby1
使用RMAN腳本來創建物理備庫
cat du.rmn
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 'prmy','sby1'
set db_unique_name='sby1'
set db_file_name_convert='/u01/app/oracle/oradata/prmy/','/u01/app/oracle/oradata/sby1/'
set log_file_name_convert='/u01/app/oracle/oradata/prmy/','/u01/app/oracle/oradata/sby1/'
set control_files='/u01/app/oracle/oradata/sby1/control01.ctl', '/u01/app/oracle/fast_recovery_area/sby1/control02.ctl'
set log_archive_max_processes='10'
set fal_server='prmy'
set standby_file_management='AUTO'
set log_archive_config='dg_config=(prmy,sby1)'
set log_archive_dest_2='service=prmy ASYNC valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE) db_unique_name=prmy';
}
rman target sys/sys@prmy auxiliary sys/sys@sby1
@du.rmn
開啓實時應用
alter database open;
ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
archvie log list;
alter system switch logfile;