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 oracle@192.168.76.134:/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=prmyDB_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;