RAC真应用集群

系列文章目录

第一章 RAC真应用集群

前言

RAC的部署已经在中小型企业十分流行,究其原因一是由于RAC对企业数据库提供了高可用环境,平衡数据库管理系统的访问负载,二是由于RAC的部署成本较低,部署RAC只需要下载免费的Clusterware集群软件,即可方便地在开源系统(如Linux)上安装。本章我们从提高系统可靠性和平衡负载入手分析RAC的好处,接着介绍RAC的架构、组件及其功能和完成多节点环境下处理并发的机制,然后用了较多的篇幅介绍如何安装和部署RAC,无论是集群环境还是单实例数据库都需要“存储”,我们采用Oracle推荐的ASM机制来存储和管理集群数据文件,读者在学习安装RAC的过程中要十分仔细,因为一个忽视就可能造成安装错误频频。

1.1 单实例数据库并发控制原理

一个数据库系统与其他类型的数据存储方法的最重要区别是允许并发访问,而实现并发访问最大的问题就是数据一致性问题,所以并发控制和数据一致性就成为数据库技术最基本的核心技术,下面我们分析在数据库原理中,并发访问会出现的几个问题。

1.1.1 并发访问的数据不一致问题

	在并发访问时,数据不一致是经常遇到的问题,下面是几个并发访问(并发读取+并发修改)常见的数据不一致问题。

1、脏读(Dirty Read)
用户看到了被别的用户修改但是还没有提交的数据,如下图所示:
1) 、Mary的原工资为1000,财务人员将Mary的工资修改8000(但未提交事务)
2)、Marry读取自己的工资,发现自己的工资变为了8000,欢天喜地
3)、财务发现操作有误,回滚了事务,Marry的工资又变为了1000,像这样,Marry记取的工资数8000是一个脏数据。
2、更新丢失
1)、 会话A修改数据B,并未提交。
2)、会话B修改了数据A,进行了提交
3)、会话A提交的时候更新一集丢失了
3、不可重复性(Non Repeatable Read)
不可重复性针对的是UPDATE操作
4、幻影(Phantom read)
主要针对的是新增和删除,两次读的记录数不一样。

1.1.2 事务以及隔离级别

为了避免数据不一致的问题,实际数据的并发访问,我们定义了事务以及隔离级别,通过隔离措施保证数据的一致性。
1、Read Commited(默认)
2、Serializable、 Read Only

设置不同的事务隔离级别:

SET TRANSACTION ISOLATION LEVEL SERIALIZABLE;
SET TRANSACTION READ ONLY
ALTER SESSION SET ISOLATION_LEVEL SERIALIZABLE;
ALTER SESSION SET ISOLATION_LEVEL READ COMMITTED;

1.1.3 支持并发的lock机制

在单实例Oracle中,使用的是用Lock和Latch来支持并发。其中Lock最受人关注。
下面我们将讲解的机构。
先看看资源的概念,因为锁是管理资源的结构。
1、资源(Resource Structure)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值