Oracle12cR1 DataGuard物理备库详细说明

创建一个DataGuard的物理备库

默认的Oracle Data Guard配置的手动过程。它包括以下主要内容:

    准备主数据库

    创建物理备用数据库

    Post-Creation Steps

    创建物理备库的CDB

    在主库创建PDB


1.1创建主库

Table 3-1 主库的配置和要求如下:

ReferenceTask

Section 3.1.1

Enable Forced Logging

Section 3.1.2

Configure Redo Transport Authentication

Section 3.1.3

Configure the Primary Database to Receive Redo Data

Section 3.1.4

Set Primary Database Initialization Parameters

Section 3.1.5

Enable Archiving

1.1.1 启用强制登录

SQL> alter database force logging;

数据库已更改。

1.1.2 配置redo数据的传输验证

在一个Data guard配置中,用Oracle Net的session来传输redo数据和控制成员之间的信息,安全传输用安全套接字协议(SSL)或者远程验证密码文件。

用SSL传输redo data

    这些库必须是同一个域的成员(OID Oracle Internet Directory),允许使用当前用户数据库链接

    LOG_ARCHIVE_DEST_nFAL_SERVER必须对应到Oracle Net的传输标识来配置SSL。

    有支持安全传输的硬件模块或者Oracle wallet 和证书。

如果不支持SSL就必须配置一个用户远程认真的密码文件

1.1.3 配置主库接受redo数据

给主库创建备库接受redo的redo数据文件(为了以后主库切换到备库时使用)

创建备库redo log数据

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dataguard/Predodata1.rdo') SIZE 1024M;

数据库已更改。

SQL> ALTER DATABASE ADD STANDBY LOGFILE ('/oracle/dataguard/Predodata2.rdo') SIZE 1024M;

数据库已更改。

删除 redo log数据文件(示例)

SQL> alter database drop standby logfile ('/oracle/dataguard/Predodata1.rdo');

数据库已更改。

SQL> alter database drop standby logfile ('/oracle/dataguard/Predodata2.rdo');

数据库已更改。

1.1.4 设置主库的初始化参数

用主库的初始化参数可以控制redo数据的传输服务,还可以用额外参数控制一个应用(应用redo数据)的服务(以备转换成备库时使用)。

参数如下表:

DatabaseDB_UNIQUE_NAMEOracle Net Service Name
Primarychicagochicago
Physical standbybostonboston

Example 3-1 表中的配置例子: 主库 主角色初始化参数

DB_NAME=chicago
DB_UNIQUE_NAME=chicago
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/chicago/control1.ctl', '/arch2/chicago/control2.ctl'
LOG_ARCHIVE_DEST_1= 'LOCATION=USE_DB_RECOVERY_FILE_DEST VALID_FOR=(ALL_LOGFILES,ALL_ROLES) DB_UNIQUE_NAME=chicago'
LOG_ARCHIVE_DEST_2= 'SERVICE=boston ASYNC VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) DB_UNIQUE_NAME=boston'
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
这些参数控制redo数据和传输到备库中,并且在备库中被归档到本地归档日志。

SERVICE=boston ASYNC     //如上内容中指定的是异步传输

Example 3-2 主库 备角色参数配置参数

FAL_SERVER=boston
DB_FILE_NAME_CONVERT='boston','chicago'
LOG_FILE_NAME_CONVERT='/boston/','/chicago/' 
STANDBY_FILE_MANAGEMENT=AUTO
Example 3-2所示


ParameterRecommended Setting
DB_NAME主库指定主库创建数据库时的数据库名,一个物理备库指定主库的DB_NAME
DB_UNIQUE_NAME为每个数据库指定一个唯一的名字,这个名字和数据库不变,即使是发生角色切换,也不会引起这个名字的变更
LOG_ARCHIVE_CONFIGOracleData Guard配置中DG_CONFIG必须在每个库中设置来启用full的Data Guard功能,在每个数据库设置DG_CONFIG项的字符串中包含DB_UNIQUE_NAME,在列表中每个名称用逗号隔开。
CONTROL_FILES指定主数据库的控制文件路径,建议指定两个
LOG_ARCHIVE_DEST_n指定主库和备库要归档的redo数据. In Example 3-1:
  • LOG_ARCHIVE_DEST_1 主库从onlie redo log数据产生的归档日志文件在 /arch1/chicago/.

  • LOG_ARCHIVE_DEST_2 只适用于的主角色。此目标redo数据传输到远程物理备用目的地boston.

注:如果配置了快速恢复区(初始化参数DB_RECOVERY_FILE_DEST的),你有没有明确配置本地归档目的地的位置属性,Oracle Data Guard的会自动使用LOG_ARCHIVE_DEST_1的初始化参数(如果尚未设置)默认本地归档目的地。另外的LOG_ARCHIVE_DEST_n的完整信息,请参见第Chapter 17

REMOTE_LOGIN_PASSWORDFILE此参数必须设置为EXCLUSIVE或SHARED如果远程登录,密码文件是用来管理用户进行身份验证redo传输会话
LOG_ARCHIVE_FORMAT指定一个归档日志文件的格式,线程(%T),序列号(%),和RESETLOGSID(%R)
FAL_SERVER指定Oracle Net服务的的FAL服务器的名称(通常是指主库运行所在角色。当chicago数据库运行在备用角色,它用boston库作为FAL服务器,从中提取(请求)缺少的归档重做日志文件,如果Boston是无法自动发送丢失的日志文件。
DB_FILE_NAME_CONVERT指定备库数据文件的路径名和文件名的位置,随后是主库的数据文件的路径名和文件名的位置。此参数将主库的数据文件路径名和文件名都转换成备库所能使用的路径名和数据文件名。注意,该参数仅用于路径名转换为物理备用数据库。多对路径可以指定此参数。
LOG_FILE_NAME_CONVERT指定备用数据库online redo日志文件,随后是主库的online redo日志文件。此参数将主数据库日志文件转换成备用数据库上的路径名。多对路径可以指定此参数。
STANDBY_FILE_MANAGEMENT当此值设置为AUTO,则主库进行删除或者添加data file时,备库也将随机执行此操作

1.1.5 Enable Archiving

oracle@Sol_ORA:/oracle$ mkdir archive_log
oracle@Sol_ORA:/oracle$ cd archive_log/
oracle@Sol_ORA:/oracle/archive_log$ ls
oracle@Sol_ORA:/oracle/archive_log$ pwd
/oracle/archive_log
oracle@Sol_ORA:/oracle/archive_log$ exit
SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     816
当前日志序列           818
SQL> alter system set log_archive_dest_1='location=/oracle/archive_log' scope=spfile;

系统已更改。

SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
SP2-0642: SQL*Plus 内部错误状态 2133, 上下文 3114:0:0
继续执行将不安全
ORA-03114: 未连接到 ORACLE


SQL> exit
从 Oracle Database 12c Enterprise Edition Release 12.1.0.1.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options 断开
oracle@Sol_ORA:~$ sqlplus / as sysdba

SQL*Plus: Release 12.1.0.1.0 Production on 星期五 10月 25 16:44:34 2013

Copyright (c) 1982, 2013, Oracle.  All rights reserved.

已连接到空闲例程。

SQL> startup mount
ORACLE 例程已经启动。

Total System Global Area 2538741760 bytes
Fixed Size                  2757504 bytes
Variable Size             855641216 bytes
Database Buffers         1660944384 bytes
Redo Buffers               19398656 bytes
数据库装载完毕。
SQL> alter database archivelog;

数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            /oracle/archive_log
最早的联机日志序列     816
下一个存档日志序列   818
当前日志序列           818 

.2 Step-by-Step Instructions for Creating a Physical Standby Database

如下将一步一步进行介绍创建一个物理备库

    数据库管理员认证

    数据库的初始化参数

    管理重做日志,数据文件和控制文件

    管理归档重做日志

    快速恢复区

    Oracle网络配置

3-2 是创建物理备库时,主库和备库所需要做的内容

ReferenceTaskDatabase

Section 3.2.1

创建主数据库数据文件的备份副本

Primary

Section 3.2.2

创建备库的控制文件

Primary

Section 3.2.3

床件备库的参数文件

Primary

Section 3.2.4

从主库拷贝文件到备库

Primary

Section 3.2.5

设置环境以支持备用数据库

Standby

Section 3.2.6

启动物理备库

Standby

Section 3.2.7

验证物理备用数据库是正确运行

Standby

1.2.1 创建主库的副本

Oracle推荐用RMAN来创建

1.2.2 为备库创建一个控制文件

SQL> ALTER DATABASE CREATE STANDBY CONTROLFILE AS '/tmp/boston.ctl';

数据库已更改。

1.2.3 创建备库的参数文件

Step 1   Create a parameter file (PFILE) from 主库

SQL> create pfile='/tmp/TESTM_pfile.ora' from spfile;

文件已创建。

创建完成后,修改此参数文件,给备库用。

Step 1  修改创建的额参数文件的参数

必须对参数文件做相应的修改,参考1.1.4例子

此处,物理备库的初始化参数如下:

.
.
.
DB_NAME=chicago
DB_UNIQUE_NAME=boston
LOG_ARCHIVE_CONFIG='DG_CONFIG=(chicago,boston)'
CONTROL_FILES='/arch1/boston/control1.ctl', '/arch2/boston/control2.ctl'
DB_FILE_NAME_CONVERT='chicago','boston'
LOG_FILE_NAME_CONVERT='/chicago/','/boston/'
LOG_ARCHIVE_FORMAT=log%t_%s_%r.arc
LOG_ARCHIVE_DEST_1=
 'LOCATION=USE_DB_RECOVERY_FILE_DEST
  VALID_FOR=(ALL_LOGFILES,ALL_ROLES) 
  DB_UNIQUE_NAME=boston'
LOG_ARCHIVE_DEST_2=
 'SERVICE=chicago ASYNC
  VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE) 
  DB_UNIQUE_NAME=chicago'
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
STANDBY_FILE_MANAGEMENT=AUTO
FAL_SERVER=chicago
.
.
.
参数设置必须主库和备库的吻合,可以用show parameter 命令来查看这些参数

参数解释如上表Example 3-2所示

1.2.4 拷贝主库文件到备库

将如上产生的文件拷贝的备库:

  • 拷贝1.2.1中创建的数据文件
  • 拷贝1.2.2中创建的备库控制文件
  • 拷贝1.2.4中川件参数文件

1.2.5 设置环境支持备库

Step 1 创建密码文件

orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=admin

Step 2 将密码文件拷贝到备库

Step 3 创建主库和备库的listen

Step 4 创建oracle net service名

Step 5 创建一个主库的参数文件

SQL> CREATE SPFILE FROM PFILE='initboston.ora';
Step 6 Copy the primary database encryption wallet to the standby database system

If the primary database has a database encryption wallet, copy it to the standby database system and configure the standby database to use this wallet.

Note:

The database encryption wallet must be copied from the primary database system to each standby database system whenever the master encryption key is updated.

Encrypted data in a standby database cannot be accessed unless the standby database is configured to point to a database encryption wallet or hardware security module that contains the current master encryption key from the primary database.

1.2.6 启动物理备库

在备库

SQL> STARTUP MOUNT;
还原主库数据到备库

启用redo应用

SQL> ALTER DATABASE RECOVER MANAGED STANDBY DATABASE - 
> DISCONNECT FROM SESSION;

1.2.7 验证物理备库的正常运行

V$MANAGED_STANDBY视图可以查看redo数据的复制和应用状态

SQL> SELECT CLIENT_PROCESS, PROCESS, THREAD#, SEQUENCE#, STATUS FROM 
V$MANAGED_STANDBY WHERE CLIENT_PROCESS='LGWR' OR PROCESS='MRP0';
 
CLIENT_PROCESS PROCESS   THREAD#    SEQUENCE#  STATUS
-------------- --------- ---------- ---------- ------------
N/A            MRP0      1          80         APPLYING_LOG
LGWR           RFS       1          80         IDLE
如上表明redo传输线真工作正常

查询的输出也应显示为MRP一行。如果MRP的状态显示APPLYING_LOG和序列#等于主数据库目前正在发送的序列号,然后在待机已经解决了所有的差距,目前在实时应用模式。

1.3 Post-Creation Steps

物理备库上的数据保护

升级数据保护模式

启用闪回数据库

1.4 创建一个物理备库的CDB

可以创建一个多用户的容器数据库(CDB)

数据库角色定义在CDB级别而不是个别容器级别。

如果执行切换或故障转移操作,整个CDB进行角色转变。

任何的DDL和角色的转换必须在root下做,因为它的作用域是真个的CBD,PDBs没有角色

CBD物理备库SQL语句的语法一般非容器数据库一样,有如下特殊情况是不一样的:

    ALTER DATABASE RECOVER MANAGED STANDBY功能只在ROOT容器它不允许PDB

    角色相关联整个CDB单个PDBs没有自己的角色因此,下面的角色转变的DDL物理备用相关影响整个CDB

        ALTERDATABASE SWITCHOVER TO target_db_name

        ALTER DATABASE ACTIVATE PHYSICAL STANDBY

    ALTER PLUGGABLE DATABASE RECOVER这个语句不支持(待机恢复始终处于的CDB级别

    要管理多用户环境,你必须有CDB_DBA角色。

    Oracle建议备用数据库有其自己的密钥库。

1.5 在主库创建一个PBD


已经在主库和物理备库的环境下,应该注意一下几点:

dataguard必须配置为auto

如果数据文件位于ASM中,然后使用ASMCMD实用程序在备用数据库,将文件复制到以下位置

<db_create_file_dest>/<db_unique_name>/<GUID>/datafile
参数的GUID是全局唯一标识符分配给在PDB,一旦被分配,它不改变。要找到的GUID参数值,从原来的源容器后再拔下PDB查询视图V $CONTAINERS。下面的示例显示了如何找到PDBPDB容器ID源容器GUID参数值3

SELECT guid
  FROM V$CONTAINERS
 WHERE con_id=3;
 
GUID
 
D98C12257A951FC4E043B623F00A7AF5
例子:

+DATAFILE/BOSTON/D98C12257A951FC4E043B623F00A7AF5/datafile


#################################

翻译:john

转载请注明出处

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值