-- 源库配置
源库 IP :192.168.0.10
DB_NAME:ORA11GR2
DB_UNIQUE_NAME :ORA11GR2
-- 备库配置
备库 IP :192.168.0.11
DB_NAME:ORA11GR2
DB_UNIQUE_NAME :ORA11GR22
-- 级联备库
备库 IP :192.168.0.12
DB_NAME:ORA11GR2
DB_UNIQUE_NAME :ORA11GR21
-- 源库
-- 源库参数文件
-
[oracle@rac1 dbs]$ cat initORA11GR2.ora
-
ORA11GR2.__db_cache_size=360710144
-
ORA11GR2.__java_pool_size=4194304
-
ORA11GR2.__large_pool_size=8388608
-
ORA11GR2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
-
ORA11GR2.__pga_aggregate_target=289406976
-
ORA11GR2.__sga_target=545259520
-
ORA11GR2.__shared_io_pool_size=0
-
ORA11GR2.__shared_pool_size=159383552
-
ORA11GR2.__streams_pool_size=4194304
-
*.audit_file_dest='/u01/app/oracle/admin/ORA11GR2/adump'
-
*.audit_trail='db'
-
*.compatible='11.2.0.4.0'
-
*.control_files='/u01/app/oracle/oradata/ORA11GR2/control01.ctl','/u01/app/oracle/fast_recovery_area/ORA11GR2/control02.ctl'
-
*.db_block_size=8192
-
*.db_domain=''
-
*.db_name='ORA11GR2'
-
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
-
*.db_recovery_file_dest_size=4385144832
-
*.db_unique_name='ORA11GR2'
-
*.diagnostic_dest='/u01/app/oracle'
-
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA11GR2XDB)'
-
*.log_archive_config='dg_config=(ORA11GR2,ORA11GR22)'
-
*.log_archive_dest_1='location=/u01/app/oracle/arch/ORA11GR2/ valid_for=(all_logfiles,all_roles) db_unique_name=ORA11GR2'
-
*.log_archive_dest_2='service=ORA11GR22 sync affirm net_timeout=10 valid_for=(online_logfile,primary_role) db_unique_name=ORA11GR22'
-
*.log_archive_format='%t_%s_%r.dbf'
-
*.memory_target=833617920
-
*.open_cursors=300
-
*.processes=150
-
*.remote_login_passwordfile='EXCLUSIVE'
-
*.undo_tablespace='UNDOTBS1'
-- 源库归档必须开启
-
SQL> archive log list
-
Database log mode Archive Mode
-
Automatic archival Enabled
-
Archive destination /u01/app/oracle/arch/ORA11GR2/
-
Oldest online log sequence 20
-
Next log sequence to archive 22
-
Current log sequence 22
-
-
-- 如果源库归档未开,需启动数据库到 mount 状态开启归档
-
shutdown immediate
-
startup mount
-
alter database archivelog;
-
alter database open;
-- 数据库强制记录日志开启
-
SQL> select force_logging from v$database;
-
-
FOR
-
---
-
YES
-
-
-- 如果未开启执行下面命令开启
-
ALTER DATABASE FORCE LOGGING;
-- 为源库添加备用日志文件,文件大小和 REDO 日志相同,数量比 REDO 日志文件多一个
-
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/ORA11GR2/sdb_01.log' size 50M;
-
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/ORA11GR2/sdb_02.log' size 50M;
-
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/ORA11GR2/sdb_03.log' size 50M;
-
ALTER DATABASE ADD STANDBY LOGFILE '/u01/app/oracle/oradata/ORA11GR2/sdb_04.log' size 50M;
-- 备库
-- 备库参数文件配置
-
-- 源库操作
-
SQL> create pfile from spfile;
-
-
File created.
-
-- 拷贝参数文件和密码文件到备库
-
[oracle@rac1 dbs]$ scp initORA11GR2.ora 192.168.0.11:$ORACLE_HOME/dbs/initORA11GR22.ora
-
[oracle@rac1 dbs]$ scp orapwORA11GR2 192.168.0.11:$ORACLE_HOME/dbs/orapwORA11GR22
-- 编辑备库参数文件
-
[oracle@lzb dbs]$ cat initORA11GR22.ora
-
ORA11GR2.__db_cache_size=285212672
-
ORA11GR22.__db_cache_size=352321536
-
ORA11GR2.__java_pool_size=4194304
-
ORA11GR22.__java_pool_size=4194304
-
ORA11GR2.__large_pool_size=8388608
-
ORA11GR22.__large_pool_size=8388608
-
ORA11GR2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
-
ORA11GR22.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
-
ORA11GR2.__pga_aggregate_target=335544320
-
ORA11GR22.__pga_aggregate_target=335544320
-
ORA11GR2.__sga_target=499122176
-
ORA11GR22.__sga_target=499122176
-
ORA11GR2.__shared_io_pool_size=0
-
ORA11GR22.__shared_io_pool_size=0
-
ORA11GR2.__shared_pool_size=188743680
-
ORA11GR22.__shared_pool_size=125829120
-
ORA11GR2.__streams_pool_size=4194304
-
ORA11GR22.__streams_pool_size=0
-
*.audit_file_dest='/u01/app/oracle/admin/ORA11GR2/adump'
-
*.audit_trail='db'
-
*.compatible='11.2.0.4.0'
-
*.control_files='/u01/app/oracle/oradata/ORA11GR2/control01.ctl','/u01/app/oracle/fast_recovery_area/ORA11GR2/control02.ctl'
-
*.db_block_size=8192
-
*.db_domain=''
-
*.db_file_name_convert='ORA11GR2','ORA11GR2'
-
*.db_name='ORA11GR2'
-
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
-
*.db_recovery_file_dest_size=4385144832
-
*.db_unique_name='ORA11GR22'
-
*.diagnostic_dest='/u01/app/oracle'
-
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA11GR2XDB)'
-
*.fal_server='ORA11GR2'
-
*.log_archive_config='dg_config=(ORA11GR2,ORA11GR22,ORA11GR21)'
-
*.log_archive_dest_1='location=/u01/app/oracle/arch/ORA11GR2/ valid_for=(all_logfiles,all_roles) db_unique_name=ORA11GR22'
-
*.log_archive_dest_2='service=ORA11GR2 sync affirm net_timeout=10 valid_for=(online_logfile,primary_role) db_unique_name=ORA11GR2'
-
*.log_archive_dest_3='service=ORA11GR21 sync affirm net_timeout=10 valid_for=(standby_logfile,standby_role) db_unique_name=ORA11GR21'
-
*.log_archive_format='%t_%s_%r.dbf'
-
*.log_file_name_convert='ORA11GR2','ORA11GR2'
-
*.memory_target=833617920
-
*.open_cursors=300
-
*.processes=150
-
*.remote_login_passwordfile='EXCLUSIVE'
-
*.standby_file_management='auto'
-
*.undo_tablespace='UNDOTBS1'
-- 备库创建目录
-
mkdir -p $ORACLE_BASE/fast_recovery_area/ORA11GR2
-
mkdir -p $ORACLE_BASE/admin/ORA11GR2/adump
-
mkdir -p $ORACLE_BASE/admin/ORA11GR2/dpdump
-
mkdir -p $ORACLE_BASE/admin/ORA11GR2/pfile
-
mkdir -p $ORACLE_BASE/oradata/ORA11GR2
-
mkdir -p $ORACLE_BASE/arch/ORA11GR2
-- 备库配置静态监听
-
[oracle@lzb ~]$ cat /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
-
# listener.ora Network Configuration File: /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
-
# Generated by Oracle configuration tools.
-
-
LISTENER =
-
(DESCRIPTION_LIST =
-
(DESCRIPTION =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = lzb)(PORT = 1521))
-
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
-
)
-
)
-
-
ADR_BASE_LISTENER = /u01/app/oracle
-
-
SID_LIST_listener=
-
(SID_LIST=
-
(SID_DESC=
-
(GLOBAL_DBNAME= ORA11GR22)
-
(SID_NAME= ORA11GR22)
-
(ORACLE_HOME=/u01/app/oracle/oracle/product/11.2.0/dbhome_1)
-
)
-
)
-- 备库配置连接字符串
-
[oracle@lzb ~]$ cat /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
-
# tnsnames.ora Network Configuration File: /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnames.ora
-
# Generated by Oracle configuration tools.
-
-
ORA11GR22 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR22)
-
)
-
)
-
-
ORA11GR2 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR2)
-
)
-
)
-
-
ORA11GR21 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.12)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR21)
-
)
-
)
-- 备库: sqlplus 进入备库, 通过命令创建 spfile 文件, 启动到 nomount 状态
-
[oracle@lzb dbs]$ sqlplus / as sysdba
-
-
SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 11 14:10:21 2016
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
Connected to an idle instance.
-
-
SQL> create spfile from pfile;
-
-
File created.
-
-
SQL> startup nomount
-
ORACLE instance started.
-
-
Total System Global Area 830930944 bytes
-
Fixed Size 2257800 bytes
-
Variable Size 536874104 bytes
-
Database Buffers 289406976 bytes
-
Redo Buffers 2392064 bytes
-- 源库进入 rman 把源库的数据备份到备库
-
[oracle@rac1 dbs]$ rman target sys/oracle@ora11gr2 auxiliary sys/oracle@ora11gr22
-
-
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Aug 11 15:27:27 2016
-
-
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
-
-
connected to target database: ORA11GR2 (DBID=236114441)
-
connected to auxiliary database: ORA11GR2 (not mounted)
-
-
RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;
-
-
Starting Duplicate Db at 11-AUG-16
-
using target database control file instead of recovery catalog
-
allocated channel: ORA_AUX_DISK_1
-
channel ORA_AUX_DISK_1: SID=20 device type=DISK
-
-
contents of Memory Script:
-
{
-
backup as copy reuse
-
targetfile '/u01/app/oracle/oracle/product/11.2.0/dbhome_1/dbs/orapwORA11GR2' auxiliary format
-
'/u01/app/oracle/oracle/product/11.2.0/dbhome_1/dbs/orapwORA11GR22' ;
-
}
-
executing Memory Script
-
-
-
-
-------- 中间省略
-
-
-
contents of Memory Script:
-
{
-
set until scn 1066277;
-
recover
-
standby
-
clone database
-
delete archivelog
-
;
-
}
-
executing Memory Script
-
-
executing command: SET until clause
-
-
Starting recover at 11-AUG-16
-
using channel ORA_AUX_DISK_1
-
-
starting media recovery
-
-
archived log for thread 1 with sequence 13 is already on disk as file /u01/app/oracle/arch/ORA11GR2/1_13_919542923.dbf
-
archived log for thread 1 with sequence 14 is already on disk as file /u01/app/oracle/arch/ORA11GR2/1_14_919542923.dbf
-
archived log file name=/u01/app/oracle/arch/ORA11GR2/1_13_919542923.dbf thread=1 sequence=13
-
archived log file name=/u01/app/oracle/arch/ORA11GR2/1_14_919542923.dbf thread=1 sequence=14
-
media recovery complete, elapsed time: 00:00:01
-
Finished recover at 11-AUG-16
-
Finished Duplicate Db at 11-AUG-16
-
-
RMAN> exit
-- 备库启动到 read only 状态,应用日志
-
SQL> alter database open;
-
-
Database altered.
-
-
SQL> alter database recover managed standby database using current logfile disconnect from session;
-
-
Database altered.
-
-
SQL> select database_role, open_mode from v$database;
-
-
DATABASE_ROLE OPEN_MODE
-
---------------- --------------------
-
PHYSICAL STANDBY READ ONLY WITH APPLY
-
-
SQL> select sequence#, applied from v$archived_log;
-
-
SEQUENCE# APPLIED
-
---------- ---------
-
13 YES
-
14 YES
-
15 YES
-
16 YES
-
17 YES
-
18 YES
-
-
SQL> select protection_mode, protection_level from v$database;
-
-
PROTECTION_MODE PROTECTION_LEVEL
-
-------------------- --------------------
-
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
-- 源库
-- 源库的保护模式和等级配置到最高可用性
-
SQL> select protection_mode, protection_level from v$database;
-
-
PROTECTION_MODE PROTECTION_LEVEL
-
-------------------- --------------------
-
MAXIMUM PERFORMANCE MAXIMUM PERFORMANCE
-
-
SQL> alter database set standby database to maximize availability;
-
-
Database altered.
-
-
SQL> select protection_mode, protection_level from v$database;
-
-
PROTECTION_MODE PROTECTION_LEVEL
-
-------------------- --------------------
-
MAXIMUM AVAILABILITY MAXIMUM AVAILABILITY
-- 备库
-- 备库把参数文件和密码文件拷贝到级联备库
-
[oracle@lzb oracle]$ scp initORA11GR21.ora 192.168.0.12:/u01/app/oracle/oracle/product/11.2.0/dbhome_1/dbs/.
-
oracle@192.168.0.12's password:
-
initORA11GR21.ora 100% 1992 2.0KB/s 00:00
-
-
[oracle@lzb dbs]$ scp orapwORA11GR22 192.168.0.12:/u01/app/oracle/oracle/product/11.2.0/dbhome_1/dbs/orapwORA11GR21
-
oracle@192.168.0.12's password:
-
orapwORA11GR22 100% 1536 1.5KB/s 00:00
-- 级联备库
-- 配置参数文件
-
[oracle@james dbs]$ vim initORA11GR21.ora
-
ORA11GR2.__db_cache_size=285212672
-
ORA11GR22.__db_cache_size=352321536
-
ORA11GR2.__java_pool_size=4194304
-
ORA11GR22.__java_pool_size=4194304
-
ORA11GR2.__large_pool_size=8388608
-
ORA11GR22.__large_pool_size=8388608
-
ORA11GR2.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
-
ORA11GR22.__oracle_base='/u01/app/oracle'#ORACLE_BASE set from environment
-
ORA11GR2.__pga_aggregate_target=335544320
-
ORA11GR22.__pga_aggregate_target=335544320
-
ORA11GR2.__sga_target=499122176
-
ORA11GR22.__sga_target=499122176
-
ORA11GR2.__shared_io_pool_size=0
-
ORA11GR22.__shared_io_pool_size=0
-
ORA11GR2.__shared_pool_size=188743680
-
ORA11GR22.__shared_pool_size=125829120
-
ORA11GR2.__streams_pool_size=4194304
-
ORA11GR22.__streams_pool_size=0
-
*.audit_file_dest='/u01/app/oracle/admin/ORA11GR2/adump'
-
*.audit_trail='db'
-
*.compatible='11.2.0.4.0'
-
*.control_files='/u01/app/oracle/oradata/ORA11GR2/control01.ctl','/u01/app/oracle/fast_recovery_area/ORA11GR2/
-
control02.ctl'
-
*.db_block_size=8192
-
*.db_domain=''
-
*.db_file_name_convert='ORA11GR2','ORA11GR2'
-
*.db_name='ORA11GR2'
-
*.db_recovery_file_dest='/u01/app/oracle/fast_recovery_area'
-
*.db_recovery_file_dest_size=4385144832
-
*.db_unique_name='ORA11GR21'
-
*.diagnostic_dest='/u01/app/oracle'
-
*.dispatchers='(PROTOCOL=TCP) (SERVICE=ORA11GR2XDB)'
-
*.fal_server='ORA11GR22'
-
*.log_archive_config='dg_config=(ORA11GR2,ORA11GR22,ORA11GR21)'
-
*.log_archive_dest_1='location=/u01/app/oracle/arch/ORA11GR2/ valid_for=(all_logfiles,all_roles) db_unique_nam
-
e=ORA11GR21'
-
*.log_archive_dest_2='service=ORA11GR22 sync affirm net_timeout=10 valid_for=(online_logfile,primary_role) db_
-
unique_name=ORA11GR22'
-
*.log_archive_format='%t_%s_%r.dbf'
-
*.log_file_name_convert='ORA11GR2','ORA11GR2'
-
*.memory_target=833617920
-
*.open_cursors=300
-
*.processes=150
-
*.remote_login_passwordfile='EXCLUSIVE'
-
*.standby_file_management='auto'
-
*.undo_tablespace='UNDOTBS1'
-- 配置静态监听
-
[oracle@james admin]$ cat listener.ora
-
# listener.ora Network Configuration File: /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
-
# Generated by Oracle configuration tools.
-
-
LISTENER =
-
(DESCRIPTION_LIST =
-
(DESCRIPTION =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = james)(PORT = 1521))
-
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
-
)
-
)
-
-
ADR_BASE_LISTENER = /u01/app/oracle
-
-
SID_LIST_listener=
-
(SID_LIST=
-
(SID_DESC=
-
(GLOBAL_DBNAME= ORA11GR21)
-
(SID_NAME= ORA11GR21)
-
(ORACLE_HOME=/u01/app/oracle/oracle/product/11.2.0/dbhome_1)
-
)
-
)
-
[oracle@james admin]$ cat listener.ora
-
# listener.ora Network Configuration File: /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora
-
# Generated by Oracle configuration tools.
-
-
LISTENER =
-
(DESCRIPTION_LIST =
-
(DESCRIPTION =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = james)(PORT = 1521))
-
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
-
)
-
)
-
-
ADR_BASE_LISTENER = /u01/app/oracle
-
-
SID_LIST_listener=
-
(SID_LIST=
-
(SID_DESC=
-
(GLOBAL_DBNAME= ORA11GR21)
-
(SID_NAME= ORA11GR21)
-
(ORACLE_HOME=/u01/app/oracle/oracle/product/11.2.0/dbhome_1)
-
)
-
)
-- 配置连接字符串
-
[oracle@james admin]$ vim tnsnames.ora
-
# tnsnames.ora Network Configuration File: /u01/app/oracle/oracle/product/11.2.0/dbhome_1/network/admin/tnsnam
-
es.ora
-
# Generated by Oracle configuration tools.
-
-
ORA11GR21 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.12)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR21)
-
)
-
)
-
-
ORA11GR22 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.11)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR22)
-
)
-
)
-
-
-
ORA11GR2 =
-
(DESCRIPTION =
-
(ADDRESS_LIST =
-
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.10)(PORT = 1521))
-
)
-
(CONNECT_DATA =
-
(SERVICE_NAME = ORA11GR2)
-
)
-
)
-- sqlplus 进入系统, 创建 spfile 文件,启动数据库到 nomount 状态
-
[oracle@james dbs]$ sqlplus / as sysdba
-
-
SQL*Plus: Release 11.2.0.4.0 Production on Thu Aug 11 16:20:39 2016
-
-
Copyright (c) 1982, 2013, Oracle. All rights reserved.
-
-
Connected to an idle instance.
-
-
SQL> create spfile from pfile;
-
-
File created.
-
-
SQL> startup nomount
-
ORACLE instance started.
-
-
Total System Global Area 830930944 bytes
-
Fixed Size 2257800 bytes
-
Variable Size 536874104 bytes
-
Database Buffers 289406976 bytes
-
Redo Buffers 2392064 bytes
-- 备库
-- 使用 rman 工具复制数据库到级联备库
-
[oracle@lzb dbs]$ rman target sys/oracle@ora11gr22 auxiliary sys/oracle@ora11gr21
-
-
Recovery Manager: Release 11.2.0.4.0 - Production on Thu Aug 11 16:23:37 2016
-
-
Copyright (c) 1982, 2011, Oracle and/or its affiliates. All rights reserved.
-
-
connected to target database: ORA11GR2 (DBID=236114441)
-
connected to auxiliary database: ORA11GR2 (not mounted)
-
-
RMAN> duplicate target database for standby from active database dorecover nofilenamecheck;
-- 级联备库
-- 应用日志
-
SQL> select instance_name, status from v$instance;
-
-
INSTANCE_NAME STATUS
-
---------------- ------------
-
ORA11GR21 MOUNTED
-
-
SQL> select database_role, open_mode from v$database;
-
-
DATABASE_ROLE OPEN_MODE
-
---------------- --------------------
-
PHYSICAL STANDBY MOUNTED
-
-
SQL> alter database recover managed standby database using current logfile disconnect;
-
-
Database altered.
-- 查看日志应用情况
-
SQL> select sequence#, applied from v$archived_log;
-
-
SEQUENCE# APPLIED
-
---------- ---------
-
20 IN-MEMORY
-
-
SQL> select sequence#, applied from v$archived_log;
-
-
SEQUENCE# APPLIED
-
---------- ---------
-
20 YES
-- 打完收工
-- 看了别人的博客,看到了service_name 的问题,可以使用以下命令修改 service_name 参数的名称,并且需要修改静态监听,连接字符串
alter system set service_names = 'ORA11GR2';
重启数据库生效
来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/31369239/viewspace-2123354/
,如需转载,请注明出处,否则将追究法律责任。