官方文档
https://docs.oracle.com/database/121/SBYDB/rcmbackp.htm#SBYDB4989
E.3.2 Creating a Standby Database with Backup-Based Duplication
主备库环境规划
主库 |
备库 |
备注 | |
数据库版本 |
12.1.0.2.0 |
12.1.0.2.0 |
数据库版本必须一致 |
IP |
192.0.2.101 |
192.0.2.102 |
|
主机名 |
host01.example.com |
host02.example.com |
|
DB_UNIQUE_NAME |
PROD5 |
SBDB5 |
必须不一致 |
DB_NAME |
PROD5 |
PROD5 |
数据库名必须一致 |
INSTANCE_NAME |
PROD5 |
SBDB5 |
实例名不要求一致 |
SERVICE_NAME |
PROD5.example.com |
SBDB5.example.com |
必须不一致 |
TNSNAMES |
primary |
standby |
必须不一致 |
OS |
OEL6.5 |
OEL6.5 |
主库服务器
1、配置/etc/hosts
[oracle@host01 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.0.2.101 host01.example.com host01
192.0.2.102 host02.example.com host02
2、主库测试网络
[oracle@host01 ~]$ ping host02 -c 2
PING host02.example.com (192.0.2.102) 56(84) bytes of data.
64 bytes from host02.example.com (192.0.2.102): icmp_seq=1 ttl=64 time=1.53 ms
64 bytes from host02.example.com (192.0.2.102): icmp_seq=2 ttl=64 time=0.587 ms
--- host02.example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.587/1.060/1.533/0.473 ms
3、主库开库
[oracle@host01 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Thu Oct 20 16:33:48 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to an idle instance.
SYS@PROD5> startup
ORACLE instance started.
Total System Global Area 1224736768 bytes
Fixed Size 2923824 bytes
Variable Size 838861520 bytes
Database Buffers 369098752 bytes
Redo Buffers 13852672 bytes
Database mounted.
Database opened.
SYS@PROD5> show parameter name
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
cell_offloadgroup_name string
db_file_name_convert string
db_name string PROD5
db_unique_name string PROD5
global_names boolean FALSE
instance_name string PROD5
lock_name_space string
log_file_name_convert string
pdb_file_name_convert string
processor_group_name string
service_names string PROD5.example.com
SYS@PROD5> show parameter db_domain
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
db_domain string example.com
备库服务器
1、配置/etc/hosts
[oracle@host02 ~]$ cat /etc/hosts
127.0.0.1 localhost localhost.localdomain localhost4 localhost4.localdomain4
::1 localhost localhost.localdomain localhost6 localhost6.localdomain6
192.0.2.101 host01.example.com host01
192.0.2.102 host02.example.com host02
2、备库测试网络
[oracle@host02 ~]$ ping host01 -c 2
PING host01.example.com (192.0.2.101) 56(84) bytes of data.
64 bytes from host01.example.com (192.0.2.101): icmp_seq=1 ttl=64 time=0.232 ms
64 bytes from host01.example.com (192.0.2.101): icmp_seq=2 ttl=64 time=0.193 ms
--- host01.example.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1001ms
rtt min/avg/max/mdev = 0.193/0.212/0.232/0.024 ms
3、配置环境变量
[oracle@host02 ~]$ vim .bash_profile
ORACLE_SID=SBDB5
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export PATH=$ORACLE_HOME/bin:$PATH
[oracle@host02 ~]$ source .bash_profile
[oracle@host02 ~]$ env | grep ORA
ORACLE_SID=SBDB5
ORACLE_BASE=/u01/app/oracle
ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
4、备库连接空闲实例
[oracle@host02 ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on Thu Oct 20 16:57:06 2022
Copyright (c) 1982, 2014, Oracle. All rights reserved.
Connected to an idle instance.
SYS@SBDB5>
相关参数
1、官方文档
https://docs.oracle.com/database/121/SBYDB/init_params.htm#SBYDB4901
https://docs.oracle.com/database/121/SBYDB/create_ps.htm#SBYDB4720
2、DB_NAME
数据库名,主备库必须相同
3、DB_UQIQUE_NAME
数据库唯一名字,主备库不能相同,DG使用该名称来识别主备库
4、LOG_ARCHIVE_CONFIG
LOG_ARCHIVE_CONFIG='DG_CONFIG=(PROD5,SBDB5)'
定义DG中所有有效的DB_UNIQUE_NMAE
5、FAL_SERVER和FAL_CLIENT值均为tnsname,主要解决日志GAP
FAL_SERVER表示对方的tns,FAL_CLIENT表示自己的tns
6、DB_FILE_NAME_CONVERT
DB_FILE_NAME_CONVERT=备库数据库数据文件目录,主库数据库数据文件目录,可以使用db_unique_name替换
7、LOG_FILE_NAME_CONVERT
LOG_FILE_NAME_CONVERT=备库数据库日志文件目录,主库数据库日志文件目录,可以使用db_unique_name替换
8、LOG_ARCHIVE_DEST_1
以下是日志文件的合法值
ONLINE_LOGFILES仅在归档ORL(online redo log file)文件时有效
STANDBY_LOGFILES仅在归档SRL(Standby Redo log)文件时有效
ALL_LOGFILES上上面两个类型都有效
以下是角色的合法值
PRIMARY_ROLE仅在主库中有效
STANDBY_ROLE仅在备库中有效
ALL_ROLES主备都有效
主库日志传输
LOCATION表示主库本地归档日志目录
LOG_ARCHIVE_DEST_1='LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=PROD5';
9、LOG_ARCHIVE_DEST_2
备库日志接收
SERVICE表示远程归档日志目录
LOG_ARCHIVE_DEST_2='SERVICE=standby LGWR ASYNC VALID_FOR=(ONLINE_LOGFIL