Oracle Data Guard Physical Standby 相关说明(一)

2014-11-24 18:25:57 · 作者: · 浏览: 2


Oracle Data Gurad 理论知识




一. 启用Force Logging


Primary数据库置为Force Logging模式。通过下列语句:



查看状态:


SQL> SELECT DATABASE_ROLE,FORCE_LOGGING FROM V$DATABASE;


DATABASE_ROLE FORCE_LOGGING


---------------- ---------------


PRIMARY NO



修改模式


SQL> alter database force logging;


Database altered.



取消Force logging 模式:


SQL> alter database no force logging;


Database altered.



说明:为什么要改成Force Logging


有一些DDL语句可以通过指定NOLOGGING子句的方式避免写REDO(目的是提高速度,某些时候确实有效)。指定数据库Force Logging模式后,数据库将会记录除临时表空间或临时回滚段外所有的操作,而忽略类似NOLOGGING之类的指定参数。如果在执行Force Logging时有NOLOGGING之类的语句在执行,那么Force Logging会等待,直到这类语句全部执行。


Force Logging是作为固定参数保存在控制文件中,因此其不受重启之类操作的影响(只执行一次即可),如果想取消,可以通过ALTER DATABASE NO FORCE LOGGING语句关闭强制记录。




二. 创建密钥文件(如果不存在的话)


同一个Data Guard配置中所有数据库必须都拥有独立的密钥文件,并且必须保证同一个Data Guard配置中,所有数据库服务器的SYS用户拥有相同密码,以保证REDO数据的顺利传输,因为REDO传输服务是通过认证的网络会话来传输REDO数据,而会话使用包含在密钥文件中的SYS用户密码来认证。


如果使用DBCA建库则Oracle会自动创建密钥文件,该文件默认路径在%ORACLE_HOME%/database目录下,如果在该目录没能找到对应的密钥文件也没关系,Oracle提供了一个创建密钥文件的命令:orapwd,位于%ORACLE_HOME%/bin目录下,该命令有两种调用方式:带参调用和不带参调用。


不带参调用时,会返回该命令的调用方式和参数形式,例如:


[oracle@localhost ~]$ orapwd


Usage: orapwd file= password= entries= force=


where


file - name of password file (mand),


password - password for SYS (mand),


entries - maximum number of distinct DBA and force - whether to overwrite existing file (opt),


OPERs (opt),


There are no spaces around the equal-to (=) character.


其中:


file:指定密钥文件名称和路径。


passwordSYS用户密码。


entries:指定该数据库能够拥有SYSDBA权限的用户最大数。


force:如果文件存在是否覆盖。


orapwd命令使用非常简单,filepassword为必填参数。



需要注意Windows平台和Linux/UNIX平台密钥文件的命名规则并不相同:


Windows平台命名规则:PWD[sid].ora


Linux/UNIX平台命令规则:orapw[sid] -- 注意:没有文件名,(大小写敏感)



示例如下:


[oracle@localhost dbs]$ orapwd file=/u01/app/oracle/product/10.2.0/db_1/dbs/orapworcl password=admin entries=30



Oracle OS认证 口令文件 密码丢失处理




三. 配置Standby Redologs


对于最大保护和最高可用性模式,建议为Standby数据库配置Standby Redologs(不配置也可以,Oracle将在Standby数据库端自动创建归档文件,并虚拟为一组Standby Redologs),并使用LGWR SYNC模式传输REDO数据。



1.关于Standby Redologs


Oracle建议DBA在创建Standby数据库时,就考虑Standby Redologs配置的问题。Standby RedologsOnline Redologs非常类似,应该说两者只是服务对象不同,其他参数属性,甚至操作的命令格式几乎都一样,DBA在设计Standby Redologs的时候完全可以借鉴创建Online Redologs的思路,如创建几个文件组,每组多个文件冗余之类的。除些之外呢,Oracle提供了一些标准的建议,如下所示:


1)确保Standby Redologs的文件大小与Primary数据库Online Redologs文件大小相同。这个很好理解,就是为了接收和应用方便嘛。


2)创建适当数目的日志组。一般而言,Standby Redologs日志组要比Primary数据库的Online Redologs日志文件组数至少多一个。建议Standby Redologs日志组数量基于Primary数据库的线程数来确定(这里的线程数可以理解为RAC环境中的节点数)。


有一个推荐的公式可供参考:(每线程的日志组数+1×最大线程数。


例如Primary数据库有两个线程,每个线程分配两组日志,则Standby日志组数建议为6组,使用这个公式可以降低Primary数据库实例LGWR进程锁住的可能性。



提 示 逻辑Standby数据库有可能需要视工作量,增加更多的Standby Redologs组(或增加归档进程),因为逻辑Standby数据库有可能需要同时写Online Redologs文件。



2.管理Standby Redologs


Standby Redologs的操作方式与Online Redologs几乎一模一样,只不过在创建或删除时需要多指定一个Standby关键字



查看redo log


SQL> SELECT GROUP#,TYPE,MEMBER FROM V$LOGFILE;



GROUP# TYPE MEMBER


---------- ------- --------------------------------------------------


3 ONLINE /u01/app/oracle/oradata/orcl/redo03.log


2 ONLINE /u01/app/oracle/oradata/orcl/redo02.log


1 ONLINE /u01/app/oracle/oradata/orcl/redo01.log




添加一个新的Standb