您的位置:首页 > 数据库 > Oracle

Oracle 11g OCM考试考点分析 使用SQL和RMAN命令来创建一个物理备库

2017-10-15 00:00 706 查看

Oracle 11g OCM考试考点分析 使用SQL和RMAN命令来创建一个物理备库

2015年12月20日 郭, 兆伟 ocm, Oracle认证

本文永久链接地址:http://t.dbdao.com/archives/oracle-11g-ocm-create-dg.html




点击链接加入群【dbDao Oracle 11g OCM培训群】

11 使用SQL和RMAN命令来创建一个物理备库

11.1 目标

在完成这个课程之后,你应该能完成下列事情:

配置物理备库,和来支持创建物理于角色转换的ORACLE 网络服务。

使用RMAN命令DUPLICATE TARGET DATABASE FOR STANDBY FROM

ACTIVE DATABASE来创建一个物理备库

11.2 创建一个物理备库的步骤

概述:

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;
FORCE LOGGING模式决定数据库会将所有的变化写进日志(除了临时表空间和临时段的改变)

除非你已经配置了oracle 高级安全和公钥基础证书,否则每个在Data gurad 配置的数据库必须使用一个密码文件,并且每个系统中的sys用户的密码必须相同使得redo数据传输成功(dbdao.com 11g ocm 培训)。

standby redo log用来存储从其他oracle数据库接收的redo

在主库上,你定义初始化参数来控制redo传输服务。当主库被切换到备份角色时,这里有另外的参数你需要增加来控制redo数据的接收和应用日志服务。

注:Data Guard broker 需要使用参数文件

如果归档没开启,使用ALTER DATABASE ARCHIVELOG 命令来将主库置为ARCHIVELOG模式,开启自动归档。

FORCE LOGGING 模式:

FORCE LOGGIN
3ff0
G模式用来确保数据一致性

FORCE LOGGING会强制生成redo,即使执行中使用了NOLOGGING选项

临时表空间和临时段不会记录日志

建议在物理和逻辑备库上都开启FORCE LOGGING

在主库上使用下列命令:

alter database force logging;
FORCE LOGGING会忽略所有对象上个性化的NOLOGGING配置。所有未完成,不记录日志的操作必须完成之后,force logging才能开始。所以尽管可以在数据库打开的时候启用 FORCE LOGGING,建议在数据库MOUNT 模式启用。

数据库默认在NOFORCE LOGGING模式。如果数据库在FORCE LOGGING模式的话,V$DATABASE中的FORCE_LOGGING字段的值应该是YES(dbdao.com 11g ocm 培训)。

注:你应该在执行创建备库需要的备份之前启用FORCE LOGGING,并且在Data Gurad配置存在期间,保持FORCE LOGGING 模式。

11.3 配置 standby redo logs



一个standby redo log 被处于备库角色的数据库用来接收主库的redo 数据。standby redo log是一个单独的日志组。

建议在Data Guard 配置中的所有数据库中都设置 standby redo log,来避免角色切换。

下列实现需要standby redo log:

实时应用

级联redo 日志路径

注:通过在主库上设置standby redo log,当你执行RMAN命令DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE时,standby redo log会自动的在备库上被创建。

11.4 创建standby redo logs



在主库上,你必须创建至少和在线日志组数目相同的standby redo log文件。在主库上建议创建比在线日志组多一个的standby redo log。除此之外,文件的大小必须和主库在线日志大小一致。如果你的在线日志大小不一样,远程RFS进程会自动的使用和在线日志组大小一样的standby redo log(dbdao.com 11g ocm 培训)。

如果下列条件发生,RFS 进程会写入一个归档日志文件:

没有standby redo log

没有发现一个和在线redo 文件大小一样的standby redo日志

所有正确大小的standby redo log没有被归档

使用SQL 来创建 Standby Redo logs

在主库创建standby redo log:

ALTER DATABASE ADD STANDBY LOGFILE’/u01/app/oracle/oradata/orcl/srl01.log’SIZE 50M;ALTER DATABASE ADD STANDBY LOGFILE
‘/u01/app/oracle/oradata/orcl/srl02.log’
SIZE 50M;
可以使用ALTER DATABASE ADD STANDBY LOGFILE语句老创建standby redo文件。虽然standby redo logs 只在备份角色的操作被使用,你也应该在主库上创建standby redo logs,这样在进行却换的时候,就不需要DBA介入。

你可以在主库上创建standby redo log,这样通过RMAN DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE命令会自动在备库创建standby redo log。

查看 standby redo 日志 信息:

验证日志组的创建,可以查询 v$STANDBY_LOG和v$LOG_FILE

SELECT group#, type, member FROM v$logfileWHERE type = ‘STANDBY';SELECT group#, dbid, thread#, sequence#, statusFROM v$standby_log;

11.5 在主库上设置控制redo传输的初始化参数



参数名称描述
LOG_ARCHIVE_CONFIG为配置中的每个数据库制定唯一的数据库名称
LOG_ARCHIVE_DEST_n控制redo传输服务
LOG_ARCHIVE_DEST_STATE_n指定路径的状态
ARCHIVE_LAG_TARGET在指定多少秒后强制进行日志切换
LOG_ARCHIVE_TARCE控制归档进程生成的输出
设置 LOG_ARCHIVE_COFIG

指定DG_CONFIG的属性来列出,在Data Gurad配置中,主库上和每个备库上的DB_UNIQUE_NAME

LOG_ARCHIVE_CONFIG=’DG_CONFIG=(pc00prmy,pc00sby1)’
指定 LOG_ARCHIVE_CONFIG参数的DG_CONFIG属性。默认情况下,LOG_ARCHIVE_CONFIG 参数允许数据库发生和接收redo。使用V$DATAGURAD_CONFIG视图来查 DB_UNIQUE_NAME和LOG_ARCHIVE_CONFIG初始化参数定义的唯一数据库名,你可以在Data Guarf环境中的所有数据库上查看。视图的第一样列出了当前数据库被DB_UNIQUE_NAME初始化参数指定的唯一数据库名,除此之外的行,反映了其他数据库被LOG_ARCHIVE_CONFIG中DG_config关键字指定的唯一数据库名(dbdao.com 11g ocm 培训)。

下面是查询v$dataguard_config的例子:

show parameter log_archive_config

SELECT * FROM v$dataguard_config;

设置 LOG_ARCHIVE_DEST_n

下列情况指定 LOG_ARCHIVE_DEST_n参数:

-本地归档(日过没使用闪回恢复区)

-备库数据库路径

包含下列选项(最少一个):

-LOCATION:指定一个有效的路径名称

-SEREVICE:指定一个有效的ORACLE网络服务名来连接到一个备库

为每个定义的路径包含一个LOG_ARCHIVE_DEST_STATE_n参数

LOG_ARCHIVE_DEST_1=’SERVICE=pc00sby1VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)DB_UNIQUE_NAME=pc00sby1’LOG_ARCHIVE_DEST_STATE_1=ENABLE
通过使用多个LOG_ARCHIVE_DEST_n属性,你定义了Data Gurad配置的大多数设置。redo 传输服务直接被这些配置控制。你应该为本地归档路径和备份路径设置一个LOG_ARCHIVE_DEST_n参数(n是一个1到10的整数)。如果你为本地的归档路径使用了闪回恢复区,LOG_ARCHIVE_DEST_10被自动设置为USE_DB_RECOVERY_FILE_DEST.查询V$ARCHIVE_DEST视图来查看当前LOG_ARCHIVE_DEST_n初始化参数的配置。

所有定义的LOG_ARCHIVE_DEST_n参数必须最少包含,一个LOCATION属性或者一个SERVICE属性(dbdao.com 11g ocm 培训)。

除此之外,你必须为每个定义的路径有一个LOG_ARCHIVE_DEST_STATE_n参数。LOG_ARCHIVE_DEST_STATE_n默认是ENABLE

指定角色基础路径

例如:

log_archive_dest_1 =’service=pc00sby1 asyncvalid_for=(online_logfile,primary_role)
db_unique_name=pc00sby1′

log_archive_dest_1 =
‘service=pc00prmy async
valid_for=
(online_logfile,
primary_role)
db_unique_name=pc00prmy’

LOG_ARCHIVE_DEST_n初始化参数的VALID_FOR属性可以让你精确的指定使用的归档路径,和日志文件使用的类型。这个属性使用一个关键字对来定义reod日志类型和数据库角色。使用这个属性可以让你设置预计的切换和故障转移。

在上面图示的例子,在备份数据库上有一个目的地,是主库VALID_FOR参数定义的。这个目的地是仅给发生一个切换后的备库使用的,当备份变成一个主库。这个在旧的主库上的目的地当其成为备库的时候被忽略(dbdao.com 11g ocm 培训)。

VALID_FOR属性支持了二个值:redo_log_type 和 database_role。

redo_log_type关键字是:

ONLINE_LOGFILE:这个目的地仅被用来给在线redo log 文件归档。

STANDBY_LOGFILE:这个目的地仅用来归档standby redo日志文件或者从其他数据接收的归档日志。

ALL_LOGFILES:这个目的地被用来归档在线或者standby日志文件。

database_role关键字如下:

PRIMARY_ROLE:这个目的地仅用来当数据库是主库角色时。

STANDBY_ROLE: 这个目的地仅用来当数据库是备库角色时。

ALL_ROLES:任何角色都可以。

注意:因为关键字是唯一的,这个archival_soutce和database_role值可以被任何顺序指定。

例如VALID_FOR=(PRIMARY_ROLE,ONLINE_LOGFILE) 等价于VALID_FOR=(ONLINE_LOGFILE,PRIMARY_ROLE).

VALID_FOR的组合:

组合物理逻辑
ONLINE_LOGFILE,PRIMARY_ROLE有效忽略忽略
ONLINE_LOGFILE,PRIMARY_ROLE忽略忽略有效
ONLINE_LOGFILE,ALL_ROLES有效忽略有效
STANDBY_LOGFILES,STANDBY_ROLE忽略有效有效
STANDBY_LOGFILE,ALL_ROLES忽略有效有效
ALL_LOGFILES,PRIMARY_ROLE有效忽略忽略
ALL_LOGFILES,STANDBY_ROLE忽略有效有效
ALL_LOGFILES,ALL_ROLES有效有效有效
在上表中所示,有效表示归档日志路径可以被这个字段定义的角色数据库使用。忽略表示这个归档日志路径不使用,这个类型的目的地被忽略。一个忽略的目的地不会产生错误。

这里有一个无效的组合:STANDBY_LOGFILE,PRIMARY_ROLE。指定这个组合会导致一个错误。如果这样配置了,在启动的时候你会收到如下错误:

ORA-16026: The parameter LOG_ARCHIVE_DEST_n contains an invalid

attribute value

注意:单一和复数的关键字都是有效的。例如你既可以指定PRIMARY_ROLE或者PRIMARY_ROLES,以及 ONLINE_LOGFILES或者ONLINE_LOGFILES(dbdao.com 11g ocm 培训)

定义redo传输模式:

LOG_ARCHIVE_DEST_n初始化参数定义了redo传输模式,被主数据库用来发送redo到备份数据库,其属性如下:

SYNC:指定在事务可以提交之前,生成的redo数据必须被目的地接收;否则,这个目的地是失败的。在多个配置SYNC目的地中,redo必须被每个描述为SYNC的目的地处理。

ASYNC(默认):指定一个事务在可以提交之前,生成的redo数据不需要被目的地接收。

AFFIRM:指定一个redo传输目的地在其写入到standby redo log之后,承认接收到redo数据

NOAFFIRM: 指定一个redo传输目的地在其写入到standby redo log之前就承认接收到redo数据

如果既不指定AFFIRM也不指定NOAFFIRM属性,当使用SYNC属性时,默认是AFFIRM,当使用ASYNC属性时,默认是NOAFFRIM。

11.6 在主库上设置初始化参数

当备份数据库有磁盘或者目录结构于主库不一样的时候指定参数

当主库被转换成一个备库的时候使用的参数

参数名称描述
DB_FILE_NAME_CONVERT转换主库文件名称
LOG_FILE_NAME_CONVERT转换主库日志名称
STANDBY_FILE_MANAGEMENT控制自动地备份文件管理
在上面列出的参数是需要的,如果主库和备库的磁盘配置不一样。当主库被转换为一个备库时,上面的参数也是适用的。

指定DB_FILE_NAME_CONVERT的值:

DB_FILE_NAME_CONVERT如果主库和备库上磁盘或目录结构不同的话,这个值必须指定。

多个文件名称对可以被DB_FILE_NAME_CONVERT参数列出

DB_FILE_NAME_CONVERT只适用于物理备库

DB_FILE_NAME_CONVERT 可以在DUPLICATE RMAN脚本中指定

DB_FILE_NAME_CONVERT =(‘/oracle1/dba/’,’/ora1/stby_dba/’,’/oracle2/dba/’,’/ora2/stby_dba/’)
当文件被增加到备库的时候,DB_FILE_NAME_CONVERT参数被用来转换主库上的数据文件名到一个在备库上的数据文件名。这个文件必须存在并且在物理备库上是可写的;如果不可写,恢复进程会出现错误而停止。

你可以设置这个参数2个字符串,主库的数据文件路径名和文件名在备库之后。第一个字符串是在主库上找到的数据文件名模式。第二个字符串是在物理备库上找到的数据文件名模式。必要时,你可以使用多个主库和备库替换字符串对。你可以使用单引号或者双引号。括号是可选的(dbdao.com 11g ocm 培训)。

在上面的例子中,’/oracle1/dba/’和’/ora1/stby_dba/’被用来匹配来自主库的文件名。’/oracle2/dba/’和’/ora2/stby_dba/’为物理备库相应的字符串。一个在主库的文件/oracle1/dba/system01.dbf在备库上被转换为/ora1/stby_dba/system01.dbf。

注意:如果备库使用OMF,就不需要设置DB_FILE_NAME_CONVERT参数。

指定LOG_FILE_NAME_CONVERT

LOG_FILE_NAME_CONVERT和DB_FILE_NAME_CONVERT类似

LOG_FILE_NAME_CONVER如果主库和备库上磁盘或目录结构不同的话,这个值必须指定

LOG_FILE_NAME_CONVERT仅适用于物理备库

LOG_FILE_NAME_CONVERT可以在DUPLICATE RMAN脚本中设置

LOG_FILE_NAME_CONVERT = (‘/oracle1/logs/’,’/ora1/stby_logs/’)
LOG_FILE_NAME_CONVERT参数被用来转换在主库上的redo日志文件名称到备库上的redo日志文件名。在主库上增加一个redo日志文件,需要在备库上对应的增加一个文件。当备库被更新时,这个参数被用来转换主库的日志文件名称到备库上的日志文件名称。如果备库和主库在一个系统上,或者其他分离的系统中使用的不同路径名称,这个参数是必须的。

注意:如果备库使用OMF,不用设置LOG_FILE_NAME_CONVERT参数。

指定STANDBY_FILE_MANAGEMENT

STANDBY_FILE_MANAGEMENT 被用来维护一致性,当你在主库增加或删除一个数据文件。

–MANUAL(默认)
–AUTO

-自动地增加数据文件到备库

-明确ALTER语句不在允许在备库上执行

STANDBY_FILE_MANAGEMENT适用于主库和物理备库

STANDBY_FILE_MANAGEMENT = auto
当这个参数设置为AUTO时,你不能在备库执行下列命令:

ALTER DATABASE RENAME

ALTER DATABASE ADD/DROP LOGFILE[MEMBER]

ALTER DATABASE ADD/DROP STANDBY LOGFILE MEMBER

ALTER DATABASE CREATE DATAFILES AS….

当你想在主库增加一个redo日志文件,并且也想同时在物理备库中增加(或者是删除的场景),你必须做下列事情:

1.在物理备库上设置STANDBY_FILE_MANAGEMENT为MANUAL.

2.在主库增加redo日志文件(或删除)

3.在备库增加它们(或删除)

4.重新在备库上置回AUTO(dbdao.com 11g ocm 培训)

一个设置例子:

DB_NAME=pc00prmyDB_UNIQUE_NAME=pc00prmyLOG_ARCHIVE_CONFIG=’DG_CONFIG=(pc00prmy,pc00sby1)’CONTROL_FILES=’/u01/app/oracle/oradata/pc00prmy/control1.ctl’,’/u01/app/oracle/oradata/pc00prmy/control2.ctl’
LOG_ARCHIVE_DEST_1=
‘SERVICE=pc00sby1
VALID_FOR=(ONLINE_LOGFILES,PRIMARY_ROLE)
DB_UNIQUE_NAME=pc00sby1′
LOG_ARCHIVE_DEST_STATE_1=ENABLE
REMOTE_LOGIN_PASSWORDFILE=EXCLUSIVE
LOG_ARCHIVE_FORMAT=%t_%s_%r.arc
在这个例子中,假设主库的名称为dbdao,备库的名称为dbdaostdby。对此,这里的网络服务名被定义。

当主库被转换为备库角色时,你需要额外的参数来控制redo数据的接收和日志应用服务:

DB_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/pc00sby1/’,’/u01/app/oracle/oradata/pc00prmy/’LOG_FILE_NAME_CONVERT=’/u01/app/oracle/oradata/pc00sby1/’,’/u01/app/oracle/oradata/pc00prmy/’STANDBY_FILE_MANAGEMENT=AUTO
在主库定义这些初始化参数来解决gaps,转换新数据文件和日志文件名称到一个新的主库,并且当这个数据库在备份角色时,归档这些传入的redo数据(dbdao.com 11g ocm 培训)。

11.7 为你的物理备库创建网络服务名

更新tnsnames.ora文件如下:

dbdaostdby =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = edt3r17p1.us.oracle.com)
(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = pc00sby1.us.oracle.com)
)
)
使用ONM来为你的物理备库定义一个服务名。在上面的例子中显示了通过ONM生成的入口tnsname.ora文件。

注:这个入口在调用RMAN执行DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIOVE DATABASE命令时用来连接到备库。

为你的备库创建监听入口:

使用ONM来在listener.ora文件中配置伟哥备库入口:

SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(GLOBAL_DBNAME = pc00sby1.us.oracle.com)(ORACLE_HOME =
/u01/app/oracle/product/11.1.0/db_1)
(SID_NAME = pc00sby1)
)
使用Oracle NET Manager来配置一个新的监听(如果必要的话)或者在你的物理备库上更新listener.ora文件。上面的例子显示了由ONM生产的listener.ora文件入口(dbdao.com 11g ocm 培训)。

注意:这个静态监听是需要的,因为将实例启动到了nomount模式。

11.8 拷贝主库的密码文件到备库主机上

1.将主库的密码文件拷贝到备库的$ORACLE_HOME/dbs目录下。

2.在备库上重名名密码文件:orapw<SID>.

你必须通过拷贝主库密码文件到备库主机上并重命名它,来为你的物理备库创建一个密码文件。

11.9 为物理备库创建一个参数文件

创建一个初始化参数文件包含一个参数:

DB_NAME=dbdaostdby

创建一个文本的初始化参数文件只需要包含一个DB_NAME参数。这个初始化参数文件被物理备库用来,在执行DUPLICATE TARGATE DATABASE FRO STANDBY FROM ACTIVE DATABASE启动实例到NOMOUNT模式。当你执行这个命令时,RMAN为备库创建了一个参数文件。

11.10 为物理备库创建目录

1.创建审计目录:

在备库中的$ORACLE_BASE/admin下创建审计目录。一般名称是adump

2.创建数据文件目录:

在$ORACLE_BASE/oradata目录下为物理备库数据文件创建一个目录

11.11 启动物理备库

设置好环境变量,然后使用之前的初始化参数文件,启动物理备库到nomount模式:

startup nomount pfile=$ORACLE_HOME/dbs/dbdaostdby.ora

注意在参数文件中要配置FLA_CLIENT和FAL_SERVER参数(dbdao.com 11g ocm 培训)。

Fetch archive log (FAL):

-提供了客户端/服务端机制来解决,主库产生的归档日志范围内于备库接收日志出现的gap

-仅仅适用于物理备库

-进程在需要的时候启动,然后会尽快的完成,其过程非常快,可能看不到进程运行。

FAL_CLIENT:指定了被FAL 服务端使用的FLA客户端名称

FAL_SERVER:指定了备库使用的FAL服务端

上述指定的名称均为 ONS配置的服务名。

11.12 使用RMAN脚本来创建物理备库

RMAN创建物理的脚本包含 DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE 命令。下面是一个例子:

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 ‘pc00prmy’,’pc00sby1′
set db_unique_name=’pc00sby1′
set db_file_name_convert=’/pc00prmy/’,’/pc00sby1/’
set log_file_name_convert=’/pc00prmy/’,’/pc00sby1/’
set control_files=
‘/u01/app/oracle/oradata/pc00sby1.ctl’
set log_archive_max_processes=’5′
set fal_client=’pc00sby1′
set fal_server=’pc00prmy’
set standby_file_management=’AUTO’
set log_archive_config=’dg_config=(pc00prmy,pc00sby1)’
set log_archive_dest_1=’service=pc00prmy ASYNC
valid_for=(ONLINE_LOGFILE,PRIMARY_ROLE)
db_unique_name=pc00prmy';
}
在这个RMAN脚本正,指定了备库的初始化参数(dbdao.com 11g ocm 培训)

然后调用RMAN连接到主库和物理备库,也就是连接到目标和辅助实例,再来运行之前创建的脚本:

RMAN> connect target sys/oracleRMAN> connect auxiliary sys/oracle@pc00sby1RMAN> @cr_phys_standby

11.13 开启实时应用



当你开启了实时应用特性,日志应用服务会实时的应用standby redo日志文件中的redo数据(在日志文件被写入的同时)。于其对的是当日志切换时,从归档日志文件中恢复redo。如果某些情况导致应用进程不能工作(例如,在一段时间内物理备库是只读模式),那么应用进程会自动地按照需要进行归档日志。应用进程也尝试去捕获和尽可能的快的读取standby redo日志文件。

实时应用日志提供了一些好处,包括更快的切换和故障转移操作,在将一个物理备库变更到只读之后可以得到最新结果,从一个物理备库得到最新的报表,和更大利用日志的能力。实时应用日志希望有更大的日志文件,因为应用服务停留在一个日志的时间越长,切换的时候实时应用日志的影响就越小(dbdao.com 11g ocm 培训)。

当应用服务运行在实时应用模式时,V$ARCHIVE_DEST_STATUS视图中的RECOVERY_MODE字段包含了MANAGED REAL TIME APPLY的值。

如果在你使用了实时应用日志,然后指定了目标路径延时属性(DELAY),这个延时属性被忽略。

对于物理备库,管理恢复进程(MRP)在 RFS 完成写之后 从standby redo 文件中应用redo。用下列命令来为物理备库开启实时应用日志:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE;

注意:standby redo log 文件被实时应用需要,建议创建和主库一样大小的redo 日志组,并且多一组。在broker中,实时应用时自动被开启的。

可以使用下列命令在备库上开始应用redo:

ALTER DATABASE RECOVER MANAGED STANDBY DATABASE USING CURRENT LOGFILE DISCONNECT FROM SESSION;
这个命令会自动的挂载数据库,另外,DISCONNECT FROM SESSION选项是让redo应用在后台执行

特别要注意的是,如果备库在相同的系统上时:

1.备库数据文件必须在不同的位置

这就意味着必须配置DB_FILE_NAME_CONVERT 和 LOG_FILE_NAME_CONVERT参数

2.每个数据库实例必须使用不用的归档路径,否则备库会覆盖主库的归档。

3.服务名必须唯一,考虑到DB_NAME和DB_DOMAIN参数会影响所有的库

4.备库没有起到容灾的作用(dbdao.com 11g ocm 培训)

11.14 预防主库数据损坏影响备库

oracle 数据库进程在redo数据应用到备库之前会进行验证

损坏检查发生在主库传输redo和备库应用redo之间

在主库和备库哈桑设置DB_LOST_WRITE_PROTECT为TYPICAL来实现丢失写检查

损坏检查发生在下列关键接口:

在主库上被LGWR,LNS ARCN进程 传输redo的时候

在备库上呗RFS,ARCn,MRP,和DBWn进程应用redo的时候

如果在备库上,redo 应用进程检查到了redo损坏,DG会重新获取到有效日志,这个作为处理归档日志gap的一部分。

一个写丢失发生在,当一个I/O子系统确认完成了写,但是这个写操作没有在持久存储上发生时。在随后的读取中,I/O子系统返回这个数据块的陈旧版本,这个用来更新数据块中其他的块,从而就损坏了数据库。

设置DB_LOST_WRITE_PROTECT参数可以让数据库服务记录buffer cache中从redo log中读的块,这样写可以被检查。

DB_LOST_WRITE_PROTECT可以被设置为下列值:

在主库上TYPICAL:实例的log buffer cache 读取到读写表空间的日志。

主库上的FULL:实例日志会读取只读和读写表空间的日志

NONE:默认值,不开启对丢失写检查功能(dbdao.com 11g ocm 培训)。

当备库在管理恢复期间应用体制时,其会读取相关的块,并且将其SCN和之前的redo log的SCN比较:

如果在主库上块的SCN比在备库上的低,其会在主库上进行丢失写检查,并且返回一个外部错误(ORA-752)

如果SCN高,会在备库上进行写检查,并且返回一个错误(ORA-600 3020)

在上面情况中,备库会在其alter 日志和跟踪文件中记录相关的原因。建议的操作来恢复一个丢失写是在主库上,是进行一次故障转移到备库,并重建主库。修复在备库上的丢失写,你必须重建备库或那些被影响的文件。

11.15 总结

在这个课程中,你应该学会如何:

开启 FORCE LOGGING

创建standby redo logs

设置主库上的初始化参数来支持创建物理备库和角色切换

配置oracle 网络服务 ONS

使用RMAN命令 DUPLICATE TARGET DATABASE FOR STANDBY FROM ACTIVE DATABASE创建一个物理备库

启动redo传输和应用

dbDao.com 引导式IT在线教育

dbDao 百度贴吧:http://tieba.baidu.com/dbdao
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐