oracle数据库保护_第1页
oracle数据库保护_第2页
oracle数据库保护_第3页
oracle数据库保护_第4页
oracle数据库保护_第5页
已阅读5页,还剩82页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第第 8 8 章章 数据库保护数据库保护内容提要内容提要:1.数据库的安全性数据库的安全性(1)数据库的存取控制和用户的建立)数据库的存取控制和用户的建立(2)特权和角色)特权和角色(3)审计)审计2.数据完整性数据完整性(1)完整性的约束)完整性的约束(2)数据库的触发器)数据库的触发器3.并发控制并发控制(1)数据库不一致的数据类型)数据库不一致的数据类型(2)封锁)封锁(3)Oracle多种一致性模型多种一致性模型(4)封锁机制)封锁机制(5)手工的数据封锁)手工的数据封锁4.数据库后备和恢复数据库后备和恢复(1)数据库恢复所使用的结构)数据库恢复所使用的结构 (2)在线及归档日志()在

2、线及归档日志(LogMiner) (3)数据库后备)数据库后备(Data Guard)和恢复(和恢复(RMAN) (4)Oracle的闪回技术的闪回技术 (5)Oracle RAC技术技术 (6)自动存储管理()自动存储管理(ASM) 目的要求:目的要求:1.了解数据库安全性定义、计算机系统的分级安全措施、了解数据库安全性定义、计算机系统的分级安全措施、数据库系统安全机制要做的工作、数据库安全性分类数据库系统安全机制要做的工作、数据库安全性分类2.了解用户模式和用户安全域的基本概念及如何建立用了解用户模式和用户安全域的基本概念及如何建立用户户3.了解特权和角色的基本概念及建立了解特权和角色的基

3、本概念及建立4.了解审计的概念和使用了解审计的概念和使用5.了解完整性约束的定义、优点(了解完整性约束的定义、优点(3个)个)Oracle表完整性表完整性约束的类型(约束的类型(5个)个)6.了解数据库触发器的定义与过程的异同、作用了解数据库触发器的定义与过程的异同、作用7.了解数据库触发器的组成、类型了解数据库触发器的组成、类型8.能用能用SQL命令建立、更改、删除触发器命令建立、更改、删除触发器9.了解并行操作的(多程序或程序的多进程)基本概念了解并行操作的(多程序或程序的多进程)基本概念和数据不一致的两因素(对数据修改、并行操作)及和数据不一致的两因素(对数据修改、并行操作)及对并行操作

4、的措施(封锁)对并行操作的措施(封锁)10.了解数据库不一致的类型(例如同查询返回不同了解数据库不一致的类型(例如同查询返回不同“脏脏数据等数据等”)11.了解封锁的基本概念、两种封锁(排它、共享表共享了解封锁的基本概念、两种封锁(排它、共享表共享封锁)和防死锁封锁)和防死锁12.了解了解Oracle多种一致性模型(语句级和事务级读一致多种一致性模型(语句级和事务级读一致性)性)13.了解封锁机制及五类封锁(数据封锁了解封锁机制及五类封锁(数据封锁DML、数典封锁、数典封锁DDL、内部封锁、内部封锁SCN、分布式封锁、并行缓冲管理封、分布式封锁、并行缓冲管理封锁)锁)14.了解手工封锁(事务级

5、:了解手工封锁(事务级:LOCK SQL命令,系统级:命令,系统级:调整初始参数调整初始参数ROW-LOCK)15.了解数据库恢复的基本概念与重要性了解数据库恢复的基本概念与重要性16.了解数据为恢复所使用的四种结构(数据后备、日志、了解数据为恢复所使用的四种结构(数据后备、日志、回滚段、控制文件)回滚段、控制文件)17.了解在线日志与日志开头、检查点、镜像在线日志文件了解在线日志与日志开头、检查点、镜像在线日志文件以及日志线索的基本概念以及日志线索的基本概念18.了解归档日志的概念、用途和机制,以及了解归档日志的概念、用途和机制,以及LogMiner 19.了解数据库后备的概念(操作系统后备

6、物理文件)、完了解数据库后备的概念(操作系统后备物理文件)、完全和部分后备(数据文件和控制文件)全和部分后备(数据文件和控制文件) ,以及,以及Data Guard20.了解数据库实例故障恢复、介质故障恢复(完全和不完了解数据库实例故障恢复、介质故障恢复(完全和不完全)全) ,以及,以及RMAN 21.了解数据库高可用性了解数据库高可用性 (Oracle的闪回技术的闪回技术 、RAC 、自、自动存储管理动存储管理 ASM )重点:重点:1. 任意存取控制的概念任意存取控制的概念2. 完整性约束和数据库触发器的基本概念完整性约束和数据库触发器的基本概念3. 封锁的基本概念封锁的基本概念4. 在线

7、及归档日志(在线及归档日志(LogMiner)5. 数据库后备数据库后备(Data Guard)和恢复(和恢复(RMAN) 难点:难点:1. 用用Oracle的的SQL建立或删除用户、授予或回收特权、建立或删除用户、授予或回收特权、角色等。角色等。2. 用用SQL命令建立、更改、删除触发器命令建立、更改、删除触发器3. 死锁和封锁的类型死锁和封锁的类型4. 检查点及其机制检查点及其机制5. Oracle的闪回技术的闪回技术 、RAC 、自动存储管理、自动存储管理 ASM 作业、实验:作业、实验:第第1次作业:次作业: P250,10、12、13、17,20,21,22,23第第 8 8 章章

8、数据库保护数据库保护 本章主要介绍数据库的完全性(用户鉴别、特权、角色、审本章主要介绍数据库的完全性(用户鉴别、特权、角色、审计)、数据完整性(数据库触发器)和并发控制,数据库后备及计)、数据完整性(数据库触发器)和并发控制,数据库后备及恢复,高可用性等,以便对数据库进行必要的保护。恢复,高可用性等,以便对数据库进行必要的保护。8.1 数据库的安全性数据库的安全性(用户鉴别、特权、角色、审用户鉴别、特权、角色、审计计) 8.2 数据完整性(数据库触发器)数据完整性(数据库触发器)8.3 并发控制并发控制 8.4 数据库后备和恢复数据库后备和恢复以及高可用性以及高可用性 (LogMiner 、D

9、ata Guard 、RMAN 、 闪回闪回技术技术 、RAC 、ASM )8.1数据库的安全性8.1数据据的安全性数据据的安全性目的:保护数据以防止不合法的使用所造成的数据泄露、更改或破坏 安全控制模型 (图8-1)在数据库系统这一级中提供两种控制:用户标识和鉴定,数据存取控制。 OSDBMS用 户DB数据库安全性分类 1、数据库安全性分类、数据库安全性分类系统安全性:指在系统级控制数据库的存取和使用的系统安全性:指在系统级控制数据库的存取和使用的机制机制 l有效的用户名口令的组合有效的用户名口令的组合 l一个用户是否授权可连接数据库一个用户是否授权可连接数据库 l用户对象可用的磁盘空间的数

10、量用户对象可用的磁盘空间的数量 l用户的资源限制用户的资源限制 l数据库审计是否是有效的数据库审计是否是有效的 l用户可执行哪些系统操作用户可执行哪些系统操作 数据安全性:指在对象级控制数据库的存取和使用的数据安全性:指在对象级控制数据库的存取和使用的机制。哪些用户可存取一指定的模式对象及在对象上机制。哪些用户可存取一指定的模式对象及在对象上允许作哪些操作类型允许作哪些操作类型 ORACLE管理数据库安全性机制2、ORACLE管理数据库安全机制管理数据库安全机制数据库用户和模式数据库用户和模式 特权特权 角色角色(Role) 存储设置和空间份额存储设置和空间份额 资源限制资源限制 审计审计8.

11、1数据库的安全性8.1.1 数据库的存取控制和用户的建立8.1.2 特权和角色8.1.3 审计返回章8.1.18.1.1数据库的存取控制和用户的建立数据库的存取控制和用户的建立一、数据库的存取控制一、数据库的存取控制任意存取控制来控制全部用户对命名对象的存取。任意存取控制来控制全部用户对命名对象的存取。用户对对象的存取受特权控制用户对对象的存取受特权控制一种特权是存取一命名对象的许可,为一种规定格式。一种特权是存取一命名对象的许可,为一种规定格式。 合法的用户合法的用户 :有一个相应的模式:有一个相应的模式 ,该用户就可存取相,该用户就可存取相应模式中的全部对象应模式中的全部对象 每一个用户有

12、一个安全域,它是一组特性,可决定下每一个用户有一个安全域,它是一组特性,可决定下列内容:列内容: 用户可用的特权和角色;用户可用的表空间用户可用的特权和角色;用户可用的表空间的份额(磁盘空间);用户的系统资源限制(如的份额(磁盘空间);用户的系统资源限制(如CPU处理时间处理时间建立用户的命令 -语法格式 二、建立用户二、建立用户CREATE USER 用户名用户名 IDENTIFIED BY 口令口令DEFAULT TABLESPACE 表空间表空间名名TEMPORARY TABLESPACE 表空间名表空间名QUOTA 整数整数KMUNLIMITED ON 表空间表空间名名,PROFILE

13、 环境文件名环境文件名操作者使用该命令时必须具有操作者使用该命令时必须具有CREATE USER系统特系统特权权 QUOTA:指定该用户在表空间可分配空间的总额:指定该用户在表空间可分配空间的总额 IDENTIFIED:标识:标识ORACLE鉴别用户的方式鉴别用户的方式 建立用户例子(1)建立用户)建立用户SIDNEY(例(例8.1):):CREATE USER SidneyIDENTIFIED BY CartonDEFAULT TABLESPACE Cases_tsTEMPORARY TABLESPACE temp_tsQUOTA 10M ON cases_tsQUOTA 5M ON tem

14、p_tsQUOTA 5M ON SYSTEMPROFILE engineer (2) 说明:说明: 建立的建立的SIDNEY用户有下列特性:用户有下列特性:口令为口令为Carton。缺省表空间为缺省表空间为Cases_ts,具有具有10兆字节定额。兆字节定额。临时表空间为临时表空间为Temp_ts,具有,具有5兆字节的定额。兆字节的定额。可存取可存取SYSTEM表空间,具有表空间,具有5兆字节的定额。兆字节的定额。数据库资源限制由环境文件数据库资源限制由环境文件ENGINEER指定。指定。1.用户鉴别用户鉴别 (1) ORACLE可使用操作系统所维护的信息来鉴定可使用操作系统所维护的信息来鉴定

15、用户。用户。 (2)ORACLE数据库方式的用户确认。数据库方式的用户确认。 用户口令在访问对数据库时使用,以防止对数据库非用户口令在访问对数据库时使用,以防止对数据库非授权的使用。授权的使用。 2. 用户的表空间设置和定额用户的表空间设置和定额 用户的默认表空间;用户的默认表空间; 用户的临时表空间用户的临时表空间 数据库表空间的空间使用定额。数据库表空间的空间使用定额。3. 用户资源限制和环境文件用户资源限制和环境文件 (1)用户资源限制)用户资源限制 在会话级:在会话级: 连接到一数据库,建立一会话连接到一数据库,建立一会话(session)。耗费。耗费CPU时间和对内存量进行限制时间和

16、对内存量进行限制,超过,当前语句被中超过,当前语句被中止(回滚),并返回指明会话限制已达到的信息。止(回滚),并返回指明会话限制已达到的信息。 在调用级:在调用级: I/O数据块读的数目等,超过,语句处理被停止,数据块读的数目等,超过,语句处理被停止,该语句被回滚,并返回一错误。该语句被回滚,并返回一错误。(2)用户环境文件)用户环境文件 资源限制是由环境文件管理。用户环境文件资源限制是由环境文件管理。用户环境文件(profile)是指定资源限制的命名集,可赋给是指定资源限制的命名集,可赋给ORACLE数据库的有效的用户。利用用户环境文件可容易地管数据库的有效的用户。利用用户环境文件可容易地管

17、理资源限制。用户的环境文件的合适资源限制的最好理资源限制。用户的环境文件的合适资源限制的最好方法是收集每种资源使用的历史信息。方法是收集每种资源使用的历史信息。 8.1.2 8.1.2 特权和角色特权和角色1、特权、特权特权特权 :执行一种特殊类型的:执行一种特殊类型的SQL语句或存取另一用户语句或存取另一用户的对象的权力。的对象的权力。ORACLE有两类特权有两类特权:系统特权和对象系统特权和对象特权。特权。 角色:角色:(role)为相关特权的命名组为相关特权的命名组,可授权给用户和角可授权给用户和角色色 (1)系统特权)系统特权系统特权系统特权 :执行一种特殊动作或者在对象类型上执行:执

18、行一种特殊动作或者在对象类型上执行一种特殊动作的权利一种特殊动作的权利可授权给用户或角色可授权给用户或角色 语法格式:语法格式:GRANT 特权名特权名角色名角色名,TO 用户名用户名角色角色名名PUBLIC,WITH ADMIN OPTION PUBLIC:表示将系统特权和角色授权给全部用户。:表示将系统特权和角色授权给全部用户。 WITH ADMIN OPTION:允许被授与者将该系统特权或:允许被授与者将该系统特权或角色授给其他用户和角色角色授给其他用户和角色 系统特权系统特权例子:例子:例例8.2: 将将CREATE SESSION 系统特权授给系统特权授给RICHARD。GRANT

19、CREATE SESSION TO richard 允许允许RICHARD登录登录ORACLE。例例8.3: 将将CREATE TABLE系统特权授给角色系统特权授给角色TRAVEL_AGENT。GRANT CREATE TABLE TO Travel_agent 执行后,执行后,在在Travel_agent的特权域中已包含的特权域中已包含CREATE TABLE系统特权。系统特权。 回收系统特权和角色命令 REVOKE系统特权名系统特权名角色名角色名,FROM用户名用户名角角色名色名PUBLIC,例例8.5:从用户:从用户Bill和和Mary回收回收DROP ANY TABLE系系统特权。统

20、特权。REVOKE DROP ANY TABLE FROM Bill,Mary例例8.6: 从用户从用户HANSON回收回收CONTROLLER角色。角色。REVOKE CONTROLLER FROM HANSON例例8.4:现将:现将Travel_agent角色并带有角色并带有ADMIN OPTION给给THOMAS。 GRANT Travel_agent TO thomas WITH ADMIN OPTION执行之后,执行之后,THOMAS可执行可执行Travel_agent角色的操作角色的操作 (2) 对象特权对象特权在指定的表、视图、序列、函数或包上具有特殊动作在指定的表、视图、序列、

21、函数或包上具有特殊动作的权利的权利对象特权授权命令对象特权授权命令 GRANT 对象特权名对象特权名ALLPRIVILEGES(列(列名,名,), ON 模式名模式名.对象名对象名 TO 用户名用户名角色角色名名PUBLICWITH GRANT OPTION 对象特权名对象特权名 :ALTER、DELETE、EXECUTE、INDEX、INSERT、REFERENCES、SELECT和和UPDATE WITH GRANT OPTION:允许被授与者可将该对象特:允许被授与者可将该对象特权授权给其他用户和角色权授权给其他用户和角色 例子:对象特权授权例子:对象特权授权例例87: 将将BONUS表

22、上全部特权授给用户表上全部特权授给用户JONES。GRANT ALL ON BONUS TO JONES WITH GRANT OPTION例例88: 将模式将模式ELLY中序列中序列ESEQ的的SELECT特权授特权授给给BLAKE。GRANT SELECT ON elly.eseq TO BLAKE例例89: 将将SCOTT模式中模式中EMP表在表在EMPNO列上的列上的REFERENCES特权和在特权和在EMPNO、SAL和和COMM列上列上的的UPDATE特权授给特权授给BLAKE。 GRANT REFERENCES(empon),UPDATE(empno,sal,comm) ON s

23、cott.emp TO BLAKE回收对象特权命令回收对象特权命令 REVOKE对象特权名对象特权名 ALLPRIVILEGES, ON模式名模式名.对象名对象名 FROM用户名用户名角色名角色名PUBLIC,CASCADE CONSTRAINTSCASCADE CONSTRAINTS:删除任何完整性约束,:删除任何完整性约束,被回收者在这些约束中使用了当前回收的被回收者在这些约束中使用了当前回收的REFERENCES特权。特权。 例例811: 从用户从用户PEDRO回收在回收在BONUS表上的表上的DELETE特权。特权。REVOKE DELETE ON BONUS FROM Pedro(2

24、)(2)角色角色 - -优点优点 减少特权管理减少特权管理 动态特权管动态特权管 (3)角色角色 特点特点 在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色在一个数据库中,每一个角色名必须唯一。角色名与用户不同,角色不包含在任何模式中,所以建立一角色的用户被删除时不影响该角色。不包含在任何模式中,所以建立一角色的用户被删除时不影响该角色。 2. 角色角色 (1)角色角色 定义定义 角色角色(role)为相关特权的命名组为相关特权的命名组,可授权给可授权给用户和角色。用户和角色。 (4 4)角色)角色 目的目的为数据库应用管理特权和为用户组管理特权为数据库应用管理特权和为用户组管理特

25、权 应用角色应用角色(application role)和用户角色和用户角色(user role) l应用角色:授予的运行一数据库应用所需的应用角色:授予的运行一数据库应用所需的全部特权全部特权 l用户角色用户角色 :为具有公共特权需求的一组数据:为具有公共特权需求的一组数据库用户而建立的库用户而建立的 (5 5)数据库角色功能)数据库角色功能 一个角色可授予系统特权或对象特权一个角色可授予系统特权或对象特权 一个角色可授权给其它角色,但不能循一个角色可授权给其它角色,但不能循环授权环授权 任何角色可授权给任何数据库用户任何角色可授权给任何数据库用户 授权给一用户的每一角色可以是使能的授权给一

26、用户的每一角色可以是使能的或者使不能的或者使不能的 一个间接授权角色(授权给另一角色)一个间接授权角色(授权给另一角色)对一用户可显式地使其使能或使不能对一用户可显式地使其使能或使不能 (6)ORACLE 中的典型角色中的典型角色预定义 :CONNENT、RESOURCE、DBA、EXP_FULL_DATABASE和IMP_FULL_DATABASE CONNECT、RESOURCE和DBA角色同ORACLE老版本中的概念相兼容 为了数据库安全性,建立自己的角色 (7 7)建立角色命令)建立角色命令 CREATE ROLE角色名 NOT IDENTIFIEDIDENTIFIEDBYEXTERN

27、ALLYNOT IDENTIFIED:指明授予该角色的用户,在使它使能时,不需要检验。IDENTIFIED:指明授予该角色的用户lBY 口令选择 lEXTERNALLY选择 例812:建立角色TELLER。 CREATE ROLE TELLER IDENTIFIED BY Cashflow (8 8)更改角色命令)更改角色命令ALTER ROLE角色名 NOT IDENTIFIEDIDENTIFIEDBY 口令EXTERNALLY例813:将角色TELLER 的口令改为LETTER。ALTER ROLE TELLERIDENTIFIED BY Letter授给TELLER角色的用户,在以后要使

28、角色使能时,必须指定新的口令 (9 9)删除角色命令)删除角色命令DROP ROLE角色名当删除一角色时,ORACLE从所有授权该角色的用户中回收,并将它从数据库中删除 例814:删除FLORIST角色。DROP ROLE FLORIST返回节8.1.3 审计对选定的用户动作的监控和记录对选定的用户动作的监控和记录 l审查可疑的活动审查可疑的活动 l监视和收集关于指定数据库活动的数据监视和收集关于指定数据库活动的数据 ORACLE支持三种审计类型支持三种审计类型 l语句审计语句审计 l特权审计特权审计 l对象审计对象审计 审计记录可存在数据字典表(称为审计审计记录可存在数据字典表(称为审计记录

29、)或操作系统审计记录中。数据库审计记录)或操作系统审计记录中。数据库审计记录是在记录是在SYS模式的模式的AUD$表中。表中。 返回节8.2 数据完整性数据完整性( (数据库触发器数据库触发器 ) ) 8.2.1 数据完整性8.2.2 数据库触发器8.2.1 完整性约束完整性约束数据完整性:指数据的正确性和相容性数据完整性:指数据的正确性和相容性 完整性检查完整性检查 :DBMS必须提供一种功能来保证数据库必须提供一种功能来保证数据库的数据完整性的数据完整性 ORACLE中表的数据完整性(中表的数据完整性(5种)种) l在插入或修改表的行时允许不允许包含有空值的列,在插入或修改表的行时允许不允

30、许包含有空值的列,称为空与非空规则。称为空与非空规则。l唯一列值规则,允许插入或修改的表行在该列(或唯一列值规则,允许插入或修改的表行在该列(或组列)上的值唯一。组列)上的值唯一。l主码值规则,主码的列值唯一地标识表的每一行。主码值规则,主码的列值唯一地标识表的每一行。l 引用完整性规则,同关系模型定义。引用完整性规则,同关系模型定义。l 用户对列定义的规则,为复杂的完整性检查用户对列定义的规则,为复杂的完整性检查完整性约束完整性约束 ORACLE利用完整性约束机制防止无效的数据进利用完整性约束机制防止无效的数据进入数据库的基表入数据库的基表 l由于使用由于使用SQL命令定义完整性约束,以致在

31、定义或命令定义完整性约束,以致在定义或更改表时,不需要程序设计。优于应用代码和数据更改表时,不需要程序设计。优于应用代码和数据库触发器。库触发器。l当由完整性约束所实施的事务规则改变时,管理员当由完整性约束所实施的事务规则改变时,管理员只需改变完整性约束的定义,所有应用自动地遵守只需改变完整性约束的定义,所有应用自动地遵守所修改的约束。所修改的约束。 l由于完整性约束可临时地使不能,以致在装入大量由于完整性约束可临时地使不能,以致在装入大量数据时可避免约束检索的开销。数据时可避免约束检索的开销。 返回节8.2.2 数据库触发器ORACLE允许定义过程允许定义过程,当对相关的表作当对相关的表作I

32、NSERT、UPDATE或或DELETE语句时语句时,这些过程被隐式地执行这些过程被隐式地执行 。这些过程称为。这些过程称为数据库触发器数据库触发器 过程与触发器差别在于调用方法:过程过程与触发器差别在于调用方法:过程由用户或应用显式执行;而触发器是为由用户或应用显式执行;而触发器是为一激发语句一激发语句(INSERT、UPDATE或或DELETE)发出时由发出时由ORACLE隐式地触发隐式地触发 数据库触发器1、数据库触发器的组成、数据库触发器的组成l触发事件或语句触发事件或语句 :引起激发触发器的引起激发触发器的SQL语句语句 l触发限制触发限制 :指定一个布尔表达式指定一个布尔表达式,为

33、真时触为真时触发发 l触发器动作触发器动作 :过程,是:过程,是PL/SQL块块 INSERT、UPDATE或或DELETE语句时语句时触发器的类型2、触发器的类型(、触发器的类型(34)触发器的类型决定于建立触发器命令中对下面的选择表触发器的类型决定于建立触发器命令中对下面的选择表(8-1所示)所示):BEFORE 、AFTER、 FOR EACH ROW 建立触发器命令建立触发器命令3、建立触发器命令、建立触发器命令语法格式:语法格式:CREATEON REPLACE TRIGGER 模式名模式名.触发器触发器名名BEFOREAFTERDELETEINSERT UPDATE OF列列名,名

34、, ON 模式名模式名. 表名表名关键字和参数说明:关键字和参数说明:lON REPLACE:如果触发器已存在,则重建触发器:如果触发器已存在,则重建触发器 lBEFORE:指示:指示ORACLE在执行触发语句之前激发触发器。在执行触发语句之前激发触发器。lAFTER:指示:指示ORACLE在执行触发语句之后激发触发器。在执行触发语句之后激发触发器。lDELETE:指示:指示ORACLE每当一个每当一个DELETE语句从表中删除语句从表中删除一行时激发触发器。一行时激发触发器。lFOR EACH ROW :指明是行触发器:指明是行触发器 。如果忽略该子句,该。如果忽略该子句,该触发器是语句触发

35、器触发器是语句触发器 lWHEN:指定触发器限制:指定触发器限制 例子:建立触发器例子:建立触发器例例8.15:在:在SCOTT的的EMP表上建立语句前触发器表上建立语句前触发器EMP_PERMIT_CHANGES CREATE TRIGGER SCOTT.EMP_PERMIT_CHANGESBEFOREDELETE OR INSERT OR UPDATEON SCOTT.EMPDECLAREdummy INTEGER;BEGIN /* If today is a Saturday or Sunday, Then return an error.*/IF (TO_CHAR(SYSDATE,DY

36、)=SATOR TO_CHAR(SYSDATE,DY)=SUN) THEN RAISE_APPLICATION_ERROR(-20501, May Not change employee table during the weekend);EMD IF;/* Compare todays date with the dates of all company holidays.If today is a Company holiday, then return an error.*/SELECT COUNT(*) INTO dummyFROM Company_holidaysWHERE day=

37、TRUNC(Sysdate);IF dummy0 THEN RAISE_APPLICATION_ERROR(-20501, May not change employee table during a holiday);END IF;/* If the current TIME is Before 8:00 AM or after 6:00 PM,then return an error.*/IF(TO_CHAR(SYSDATE,HH24)=18) THEN RAISE_APPLICATION_ERROR(-20502,May only change employee table during

38、 working hours); END IF;END;返回节并发控制并发控制原因:对数据库的并行操作 ,可能造成数据不一致并发控制 :并行操作进行控制 ,防止数据不一致8.3 并发控制原因:对数据库的并行操作原因:对数据库的并行操作 ,可能造,可能造成数据不一致成数据不一致并发控制并发控制 :并行操作进行控制:并行操作进行控制 ,防止,防止数据不一致数据不一致8.3.1 数据库不一致的类型数据库不一致的类型8.3.2 封锁封锁8.3.3 ORACLE多种一致性模型多种一致性模型8.3.4 封锁机制封锁机制返回章8.3.1 数据库不一致的类型数据库不一致的类型不一致性不一致性 在一事务期间在一

39、事务期间,其它提交的或未提交事务的修改是显其它提交的或未提交事务的修改是显然的然的,以致由查询所返回的数据集不与任何点相一致。以致由查询所返回的数据集不与任何点相一致。 不可重复读不可重复读 读脏数据读脏数据 如果事务如果事务T1将一值将一值(A)修改修改,然后事务然后事务T2读该值读该值,在这在这之后之后T1由于某种原因撤销对该值的修改由于某种原因撤销对该值的修改,这样造成这样造成T2读读取的值是脏的。取的值是脏的。 丢失更改丢失更改 破坏性的破坏性的DDL操作操作 返回节8.3.2 封锁封锁防止存取同一资源的用户之间破坏性的干扰的机制防止存取同一资源的用户之间破坏性的干扰的机制 两种封锁:

40、排它封锁和共享封锁两种封锁:排它封锁和共享封锁 l排它封锁排它封锁:专用,资源不共享。专用,资源不共享。l共享封锁共享封锁:允许相关资源可以共享允许相关资源可以共享 。死锁现象死锁现象 在多用户系统中使用封锁后会出现死锁在多用户系统中使用封锁后会出现死锁(dead lock),引起一些事务不能继续工作。当两个或多个用,引起一些事务不能继续工作。当两个或多个用户彼此等待对方所封锁的数据时可发生死锁。户彼此等待对方所封锁的数据时可发生死锁。 返回节8.3.3 ORACLE多种一致性模型多种一致性模型语句级读一致性:语句级读一致性: 语句级读一致性:保证单个查询所返回的数据与该查询开语句级读一致性:

41、保证单个查询所返回的数据与该查询开始时刻相一致。始时刻相一致。 注视当前注视当前SCN(系统修改号系统修改号system change number)。在。在查询执行时,在注视查询执行时,在注视SCN的时候为止所提交的数据是有效的的时候为止所提交的数据是有效的,而在语句执行开始之后其它事务所提交的任何修改而在语句执行开始之后其它事务所提交的任何修改,查询将是查询将是看不到的。看不到的。 事务级读一致性事务级读一致性 : 保证在同一事务内所有查询的数据与一个时间点相一致保证在同一事务内所有查询的数据与一个时间点相一致 。可。可以重复读。以重复读。l只读事务,该事务只能包含查询。只读事务,该事务只

42、能包含查询。 l对要重复读的表可显式地获取共享封锁或行的排它封锁。对要重复读的表可显式地获取共享封锁或行的排它封锁。 返回节8.3.4 封锁机制封锁机制数据封锁数据封锁(DML封锁)封锁): 表封锁和排它的行封锁。表封锁有表封锁和排它的行封锁。表封锁有5种形式。种形式。字典封锁字典封锁(DDL封锁封锁) 封锁保护模式对象封锁保护模式对象(如表如表)的定义的定义, DDL语句隐式地提交语句隐式地提交一个事务。一个事务。 内部封锁内部封锁 分布式封锁分布式封锁并行缓冲管理封锁并行缓冲管理封锁1、数据封锁、数据封锁 防止相冲突的防止相冲突的DML和和DDL操作的破操作的破坏性干扰坏性干扰. 指定行封

43、锁指定行封锁 :一事务获取行封锁,行封:一事务获取行封锁,行封锁总是排它封锁,该事务还获取对相应锁总是排它封锁,该事务还获取对相应表的表封锁表的表封锁 。表封锁表封锁 :行共享:行共享(RS)、行排它、行排它(RX)、共、共享封锁享封锁(S)、共享行排它、共享行排它(SRX)和排它封和排它封锁锁(X)。 其他封锁其他封锁 2、DDL封锁封锁(字典封锁字典封锁) DDL封锁封锁(字典封锁字典封锁):保护模式对象:保护模式对象(如如表表)的定义的定义 ,DDL操作将影响对象操作将影响对象 ,操,操作期间作期间,被修改或引用的模式对象被封锁被修改或引用的模式对象被封锁 3、内部封锁、内部封锁内部封锁

44、内部封锁 :内部封锁保护内部数据库和:内部封锁保护内部数据库和内存结构,这些结构对用户是不可见的。内存结构,这些结构对用户是不可见的。 返回节8.3.5 手工的数据封锁手工的数据封锁代替默认封锁代替默认封锁 ORACLE自动封锁可在两级被替代自动封锁可在两级被替代 l事务级事务级 :LOCK TABLE命令、命令、SELECT.FOR UPDATE 命令、具有命令、具有READ ONLY 选项的选项的SET TRANS_ACTION 命令命令 l系统级系统级 :通过调整初始化参数:通过调整初始化参数SERIALIZABLE和和ROW_LOCKING,实例可用非默认封锁启动。该两实例可用非默认封

45、锁启动。该两参数的默认值为:参数的默认值为:SERIALIZABLE=FALSEROW_LOCKING=ALWAYS返回节8.4 8.4 数据库后备和恢复以及高可用性数据库后备和恢复以及高可用性 故障:硬件故障、软件故障、网络故障、故障:硬件故障、软件故障、网络故障、进程故障和系统故障。进程故障和系统故障。 故障的危害:影响数据的正确性,甚至故障的危害:影响数据的正确性,甚至破坏数据库。破坏数据库。 数据库恢复:发生故障后,希望能重新数据库恢复:发生故障后,希望能重新建立一个完整的数据库的处理。建立一个完整的数据库的处理。使数据库具有高可用性使数据库具有高可用性 数据库后备和恢复8.4.1 数

46、据库恢复所使用的结构数据库恢复所使用的结构8.4.2 在线及在线及归档日志归档日志(LogMiner) 8.4.3 数据库后备数据库后备(Data Guard)和恢复和恢复 (RMAN) 8.4.4 Oracle的闪回技术的闪回技术8.4.5 Oracle RAC技术技术8.4.6 自动存储管理(自动存储管理(ASM)返回章8.4.1 数据库恢复所使数据库恢复所使用的结构用的结构数据库后备数据库后备 :由构成:由构成ORACLE数据库的物理数据库的物理文件的操作系统后备所组成文件的操作系统后备所组成 。日志日志 :记录数据库中所作的全部修改:记录数据库中所作的全部修改 。l在线日志在线日志 l

47、归档日志归档日志 回滚段回滚段 :用于撤消任何非提交的修改:用于撤消任何非提交的修改 。控制文件:一般用于存储数据库的物理结构的控制文件:一般用于存储数据库的物理结构的状态。状态。 返回节8.4.2 8.4.2 在线日志及归档日志在线日志及归档日志(LogMinerLogMiner) 在线日志:由多个在线在线日志:由多个在线(active)日志文件组成,日志项记录的数据日志文件组成,日志项记录的数据用于重构对数据库所作的全部修改用于重构对数据库所作的全部修改 。日志开关日志开关 :ORACLE结束写入一在线日志文件并开始写入到另一结束写入一在线日志文件并开始写入到另一个在线日志文件的点个在线日

48、志文件的点 。检查点检查点 :进程:进程DBWR(数据库写数据库写)将将SGA中所有被修改的数据库缓冲中所有被修改的数据库缓冲区区(包含提交和未提交的包含提交和未提交的)写入到数据文件的一个事件写入到数据文件的一个事件 。检查点确保。检查点确保将内存中经常改变的数据段块每隔一定时间写入到数据文件将内存中经常改变的数据段块每隔一定时间写入到数据文件 。保。保证自前一个检查点以来的全部修改数据块写入到磁盘证自前一个检查点以来的全部修改数据块写入到磁盘 。LogMiner:此实用程序提供了一种重要的视图来了解数据库中已:此实用程序提供了一种重要的视图来了解数据库中已经发生的改动。经发生的改动。 在线

49、日志在线日志1、在线日志、在线日志执行检查点:执行以下动作执行检查点:执行以下动作l检查点后台进程检查点后台进程(CKPT)记住写入在线日志文件的记住写入在线日志文件的下一日志行的位置下一日志行的位置 。l后台进程后台进程DBWR将修改的数据库缓冲区写入到磁盘将修改的数据库缓冲区写入到磁盘上的数据文件。上的数据文件。l由由CKPT修改全部控制文件和数据文件的标头,反修改全部控制文件和数据文件的标头,反映该最后检查点。映该最后检查点。镜象在线日志文件:为了安全镜象在线日志文件:为了安全 ,LGWR同时将同一日同时将同一日志信息写入到多个同样的在线日志文件。志信息写入到多个同样的在线日志文件。 镜

50、象在线日志的机制镜象在线日志的机制 :每个组中的日志文件全部同时:每个组中的日志文件全部同时活动,由活动,由LGWR赋给相同的日志序列号,对一组的全赋给相同的日志序列号,对一组的全部成员并行地写部成员并行地写 。在线日志线索在线日志线索 :每个数据库实例有自己的在线日志组。:每个数据库实例有自己的在线日志组。在运行在运行ORACLE并行服务器中,两个或多个实例并行并行服务器中,两个或多个实例并行地存取单个数据库,在这种情况下,每个实例有自己地存取单个数据库,在这种情况下,每个实例有自己的线索。的线索。 归档日志归档日志2、归档日志、归档日志要将填满的在线日志文件组归档时,则要建立归档日要将填满

51、的在线日志文件组归档时,则要建立归档日志或称离线日志志或称离线日志 。可保证全部提交的事务可被恢复。可保证全部提交的事务可被恢复。 归档机制归档机制 :决定于归档设置:决定于归档设置 ,自动归档或由用户进程,自动归档或由用户进程发出语句手工地归档发出语句手工地归档 。理想的是将归档日志文件永久。理想的是将归档日志文件永久移到离线存储设备,如磁带。移到离线存储设备,如磁带。 数据库可运行在两种不同方式下:数据库可运行在两种不同方式下:NOARCHIVELOG方式或方式或ARCHIVELOG方式方式 LogMinerLogMiner程序程序 3. LogMiner程序程序(1)使用)使用LogMi

52、ner 当使用当使用LogMiner时,可以看到已经做出的改动时,可以看到已经做出的改动(SQL_redo)和可以用于还原这些改变的)和可以用于还原这些改变的SQL(SQL_undo)。现在,可以使用现在,可以使用LogMiner来仅仅回滚那些有问题的事来仅仅回滚那些有问题的事务处理,而不会随后丢失有效的事务处理。务处理,而不会随后丢失有效的事务处理。(2)LogMiner的工作方式的工作方式 LogMiner需要数据字典来完整地翻译重做日志文件内需要数据字典来完整地翻译重做日志文件内容,并将内部对象标识符和数据类型转换为对象名和容,并将内部对象标识符和数据类型转换为对象名和外部数据格式。外部

53、数据格式。 三种选择获得供三种选择获得供LogMiner使用的数据字典:提取到一使用的数据字典:提取到一平面文件中、重做日志文件中平面文件中、重做日志文件中 ,或从当前的数据库中,或从当前的数据库中使用联机数据字典使用联机数据字典 。可以从可以从LogMiner正在其上运行的数据库或从另一数据正在其上运行的数据库或从另一数据库分析重做日志文件。如果正从当前的数据库使用联库分析重做日志文件。如果正从当前的数据库使用联机目录,只能从当前的数据为分析重做日志文件。机目录,只能从当前的数据为分析重做日志文件。(3)提取数据字典)提取数据字典相比于使用重做日志文件,使用平面文件来存储数据相比于使用重做日

54、志文件,使用平面文件来存储数据字典时需要更少的系统资源,但是前者更为迅速。字典时需要更少的系统资源,但是前者更为迅速。数据字典文件放置在一个目录中,为了定义目录的位数据字典文件放置在一个目录中,为了定义目录的位置,使用初始化参数置,使用初始化参数UTL_FILE_DIR。例如,为了指。例如,为了指定位置定位置D:OracleOra11database作为作为LogMiner的的输出位置,将以下的记录项放在参数文件中:输出位置,将以下的记录项放在参数文件中: UTL_FILE_DIR = D:OracleOra11database 。 可以使用可以使用DBMS_LOGMNR_D.BUILD程序,

55、程序,将数据字典提取到平面文件或重做日志文件将数据字典提取到平面文件或重做日志文件中中 。 例如,为了将数据字典提取到位于例如,为了将数据字典提取到位于G:OracleOra11database目录中的文件名为目录中的文件名为mydb_dictionary的平面文件中,可以发出如的平面文件中,可以发出如下令:下令: execute DBMS_LOGMNR_D.BUILD (mydb_dictionary.ora, G:OracleOra11database, options =DBMS_LOGMNR_D.STORE_IN_FLAT_FILE);(4)分析一个或多个重做日志文件)分析一个或多个重

56、做日志文件 为了使用为了使用LogMiner分析重做日志文件,遵照以下分析重做日志文件,遵照以下步骤:步骤:使用使用VLOGMINR_LOGS获得一个可用的重做日志文获得一个可用的重做日志文件的清单。件的清单。使用使用DBMS_LOGMINR.START_LOGMINR程序启动程序启动LogMiner实用程序。参见本节后面的表实用程序。参见本节后面的表8-3来了解来了解START_LOGMINR参数。参数。查询查询VLOGMINR_CONTENTS来察看结果。来察看结果。一旦已经完成对重做日志的察看,发出如下命令来结一旦已经完成对重做日志的察看,发出如下命令来结束会话:束会话: execute

57、 DBMS_LOGMNR.END_LOGMNR; 为了创建一个可用于分析的重做日志文件的清单,运为了创建一个可用于分析的重做日志文件的清单,运行带有行带有NEW选项的选项的DBMS_LOGMINR.ADD_LOGFILE程序,如下所示:程序,如下所示: execute DBMS_LOGMNR.ADD_LOGFILE( LogFileName = /oracle/ora11/redo01.ora, Options = DBMS_LOGMNR.NEW); execute DBMS_LOGMNR.ADD_LOGFILE( LogFileName = /oracle/ora11/redo02.ora,

58、 Options = DBMS_LOGMNR.NEW);可以如下指定数据字典文件的位置:可以如下指定数据字典文件的位置: execute DBMS_LOGMNR.ADD_LOGFILE( DictFileName = oracle/ora11/dictionary.ora, 使用使用DBMS_LOGMINR.START_LOGMINR程序包开程序包开始分析重做日志文件。例如,可以使用始分析重做日志文件。例如,可以使用SCN值来筛选值来筛选数据,如下所示:数据,如下所示:execute DBMS_LOGMNR.START_LOGMNR( DictFileName = /oracle/dictio

59、nary.ora, StartScn = 125, EndScr =300); (5)可以使用)可以使用OEM启动启动LogMiner Viewer来查看重做来查看重做日志和归档重做日志日志和归档重做日志 过单击图标面板中顶端的图标或从过单击图标面板中顶端的图标或从Object下拉菜单中下拉菜单中选择选择Create Query来创建一个对象查询。来创建一个对象查询。LogMiner Viewer自动查找用来创建查询的可用的归档重做日志自动查找用来创建查询的可用的归档重做日志文件。文件。可以简化筛选日志文件内容的过程。此外,可以使用可以简化筛选日志文件内容的过程。此外,可以使用Grid Con

60、trol屏幕来访问和查看屏幕来访问和查看LogMiner的输出。的输出。 8.4.3 数据库后备数据库后备(Data Guard)和恢复和恢复(RMAN) 一、一、数据库后备与数据库后备与Oracle数据卫士数据卫士(Oracle Data Guard) 1.导出(导出(export) (1) 3种种 导出方式导出方式 export实用程序具有实用程序具有3种功能:种功能:Full方式方式(导出整个导出整个数据库数据库 )、User方式方式(导出一个用户的某些对象及其导出一个用户的某些对象及其本身的数据本身的数据 )和和Table方式方式(导出一个指定的表导出一个指定的表,表的结表的结构、索引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论