redo_群集条件下的redo管理
来源:互联网 发布:qq同步mac电脑版 编辑:程序博客网 时间:2024/05/16 17:10
在集群环境中,每个节点上的数据库实例都需要自己的重做日志组。例如,如果集群数据库拥有三个
节点和实例,每个实例至少有两个重做日志组,则整个集群至少需要6个联机重做日志组。一般而言,两个
日志组是最低限量,工程上可以给每个实例更多的组。一则提高效率,二则提高恢复性。但无论多少组,
所有日志文件存放于共享存储介质上,并可以被其他实例访问。
在集群数据库中,实例恢复的过程与单节点是一样的,都是通过存储在联机重做日志中的日志信息自动
进行实例恢复。不同的是,在集群环境中,所有节点的重做日志都必须可被其他所有节点访问。当由于这个节点的突然崩溃事故而进行实例恢复时。,其他仍然完好的节点数据库实例就可以对其联机重做日志进行访问,执行实例恢复。即便崩溃的实例无法再行启动,其重做日志仍可访问,其日志数据仍可被其他实例使用,进行已提交事务的前滚和未提交事务的回滚,从而实现集群角度的崩溃恢复。
由于实例恢复由集群中完好的集群节点完成,所以崩溃的节点重新启动时,无须进行实例恢复。同理,只要集群还有一个存活节点,数据库数据就是完整的。如果所有节点全部崩溃,则第一个再启动节点将完成恢复操作。
由于每个节点都需要有自己的私有日志组,所以在集群数据库节点上,每个实例都会有一个独立的日志线程号,这个线程号由参数THREAD确定,不会改变。在下例中,服务器参数文件中的thread参数定义了节点一(orcl1)实例的线程号为1,而节点而节点二(orcl2)实例的线程号为2:
|||||||||||||||||||||||||
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jan 28 14:00:48 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> show parameters thread
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
parallel_threads_per_cpu integer 2
thread integer 1
|||||||||||||
$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.4.0 - Production on Thu Jan 28 14:01:23 2010
Copyright (c) 1982, 2007, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters, OLAP, Data Mining
and Real Application Testing options
SQL> show parameters thread
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
parallel_threads_per_cpu integer 2
thread integer 2
SQL>
||||||||||||||||||||||||||||||||
因此,当给数据库集群创建重做日志是,管理员需要指定这个新的日志组被分配给哪个线程(服务于
哪个RAC实例)。下面来给线程2的实例添加一个组,组号为5,采用ASM自动存储方式,因此无需指定文件名
和大小:
SQL>alter database add logfile thread 2 group 5;
Database altered.
下面来给线程1的实例添加一个组,组号为6,采用ASM自动存储方式,因此无需指定文件名和大小。
SQL>alter database add logfile thread 1 group 6;
Database altered.
查询新创建的日志组,组5属于实例二,有两个组成员。而组6属于实例一,有两个组成员,都由ASM方式
存储,采用OMF(Oracle 管理的文件)方式命名:
SQL> select group#,member from v$logfile where group# in (3,4);
GROUP#
----------
MEMBER
--------------------------------------------------------------------------------
3
+DG_DATA/cctt/onlinelog/group_3.266.684757609
3
+DG_BACK/cctt/onlinelog/group_3.259.684757609
4
+DG_DATA/cctt/onlinelog/group_4.267.684757611
GROUP#
----------
MEMBER
--------------------------------------------------------------------------------
4
+DG_BACK/cctt/onlinelog/group_4.260.684757611
//////////////////////////////////////////////////////////////////////
- redo_群集条件下的redo管理
- redo log的管理
- REDO管理
- 多线程条件下的计数器
- 多线程条件下的计数器
- 复杂条件下的随机数
- redo日志文件管理
- redo重做日志管理
- redo文件管理
- oracle redo管理
- redo 管理语句
- 管理Redo Log
- Apace实时数据库-群集管理
- Apace实时数据库群集管理
- 市场经济条件下的货币来源
- 限制条件下的算术运算
- linux多线程条件下的计数
- 概率条件下随机数的生成
- RAC 下做Active 和standby 模式
- Schedule zoj 3348
- MySQL中文乱码最简单解决办法
- 朋友,给家里挂个电话,告诉他们,很好很想他们
- 程序员的十层楼--(1~3层)
- redo_群集条件下的redo管理
- 快换工作了,整理一下以前乱写的东西
- Ghost版xp升级到sp3后报错 错误代码ox80070002
- GCC-3.4.6源代码学习笔记 (104)
- Studying note of GCC-3.4.6 source (104)
- zt自己动手用工行U盾加密自己私有文件
- Jode Decompiler插件
- NI LabWindows CVI 中调用 DLL 的几种方法
- C语言迷题