ImageVerifierCode 换一换
格式:DOCX , 页数:27 ,大小:36.68KB ,
资源ID:17526853      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17526853.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(Oracle数据库技术文档Word格式文档下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

Oracle数据库技术文档Word格式文档下载.docx

1、表的分区是通过“分区键”来实现的,分区键指的是一些列,这些列决定了某一行所在的分区。Oracle 数据库 10g 提供了六项技术用于对表进行分区:范围分区 5每个分区都由一个分区键值范围指定(对于一个以日期列作为分区键的表,“2005 年 1 月”分区包含分区键值为从“2005 年 1 月 1 日”到“2005 年 1 月 31 日”的行)。列表分区 5每个分区都由一个分区键值列表指定(对于一个地区列作为分区键的表,“北美”分区可能包含值“加拿大”“美国”和“墨西哥”)。散列分区 5将散列算法用于分区键来确定指定行所在的分区。组合范围散列分区 5范围和散列分区技术的组合,通过该组合,首先对表进

2、行范围分区,然后针对每个单独的范围分区再使用散列分区技术进一步细分。索引组织表只能进行范围分区。组合范围列表分区 5范围和列表分区技术的组合,通过该组合,首先对表进行范围分区,然后针对每个单独的范围分区再使用列表分区技术进一步细分。索引组织表可以按范围、列表或散列进行分区。Oracle 数据库 10g 还提供了三种类型的分区索引:本地索引 5本地索引是其分区方式与其所在基础表的分区方式一模一样的索引。本地索引的每个分区仅对应于其所在基础表的一个分区。 6全局分区索引 6全局分区索引是使用不同于其所在表的分区键进行分区的索引,其所在表可以是分区表或非分区表。全局分区的索引可以使用范围或散列分区进

3、行分区。例如,某个表可以按月份进行范围分区,因此具有十二个分区,而该表上的索引则可以使用不同的分区键进行范围分区,从而具有不同的分区数量。全局非分区索引 6全局非分区索引基本上和非分区表的索引一样。索引结构是不分区的。Oracle 提供了一系列丰富的技术,可用于对表、索引和索引组织表进行分区,因此可以针对任何业务环境中的任何应用程序进行最佳的分区 Oracle 还提供一套完整的 SQL 命令,用于管理分区表。其中包括添加新分区、删除分区、分拆分区以及合并分区的命令。用分区功能提高可管理性 6通过 Oracle 分区功能,可将表和索引分成更多、更小的可管理单元,从而使数据库管理员能以“化整为零,

4、个个击破”的方式管理数据。使用分区功能,维护操作可集中于表的特定部分。例如,数据库管理员可以只对表的一部分做备份,而不必对整个表做备份。对整个数据库对象的维护操作,可以在每个分区的基础上进行,从而将维护工作分解成更容易管理的小块。利用分区功能提高可管理性的一个典型用法是支持数据仓库中的滚动视窗加载进程。假设数据库管理员每周向表中加载新数据。可以对该表进行范围分区,使每个分区包含一周的数据。这样加载进程只是简单地添加新的分区。添加一个分区的操作比修改整个表效率高很多,因为 DBA 不需要修改任何其他分区。用分区功能提高性能 6由于限制了所检查或操作的数据数量,同时支持并行任务执行,Oracle

5、分区功能实现了性能上增益。这些特性包括:分区修整 6分区修整是用分区功能提高性能的最简单最有价值的手段。分区修整常常能够将查询性能提高几个数量级。例如,假设某个应用程序包含一个存储订单历史记录的 Orders 表,并且此表已按周分区。查询一周的订单只需访问该订单表的一个分区。如果该订单表包含两年的历史记录,这个查询只需要访问一个分区而不是一百零四个。该查询的执行速度因为分区修整而有可能快一百倍。分区修整能与所有其他 Oracle 性能特性协作。Oracle 能将分区修整功能与任何索引技术、联接技术或并行访问方法结合使用。分区智能联接 7分区功能可以通过称为分区智能联接的技术提高多表联接的性能。

6、当两个表要联接在一起,而且每个表都用联接键来分区时,就可以使用分区智能联接。分区智能联接将大型联接分解成较小的发生在各个分区间的联接,从而用较少的时间完成全部联接。这就给串行和并行的执行都能带来显著的性能改善。 7用分区功能提高可用性 7分区的数据库对象具有分区独立性。该分区独立性特点可能是高可用性战略的一个重要部分,例如,如果分区表的一个分区不能用,但该表的所有其他分区仍然保持在线并可用。那么这个应用可以继续针对该分区表执行查询和事务处理,只要不是访问不可用的分区,数据库操作仍然能够成功运行。数据库管理员可以指定各分区存放在不同的表空间里,从而让管理员隔离其它表分区针对单个分区进行备份与恢复

7、操作。还有,分区功能可以减少计划停机时间。由于分区功能改善了性能,使数据库管理员能用相对较少的时间完成大型数据库对象的维护工作。未来发展方向 7自从引入分区技术以来,Oracle 公司在每次推出重要版本时都会增加新的分区方法。Oracle8 引入了范围分区功能,Oracle8i 引入了散列和组合范围散列分区功能,Oracle9i 引入了列表分区功能。在最新版本 Oracle 数据库 10g 中,则增强了用于索引组织表和全局分区索引的分区策略,并且扩展了其用于所有分区维护操作的并发索引维护功能。Oracle 公司致力于不断完善分区技术,确保满足所有的业务需求。结论 7具有 Oracle 分区功能

8、的 Oracle 数据库 10g 可以显著增强几乎任何数据库应用程序的可管理性、性能和可用性。分区功能可用于前沿应用程序,分区功能确实能够成为保障这些应用程序成功的关键技术成分。同时,分区功能也可用于较为普通的数据库应用,来简化这些应用的管理工作,降低管理成本。数据恢复 7数据恢复是数据库本身一个极其重要的功能,通常重要的数据可以通过其系统的数据备份功能来实现,所以在实际的开发中,重要的数据往往容易恢复,反而是一些平常的数据因为误操作而引起一些麻烦。 对于有经验的开发人员来说,往往会对那些开发需要的基表(基表就是提供数据源的数据表)做一些备份。这样,即使以后出现一些数据误操作也不会导致重大的事

9、故。 更为实用而又很少为开发人员所使用的方法就是采用倒叙查询,鉴于前面已经有了一定的技术铺垫,现在就可以使用DBMS_FLASHBACK包来对数据进行恢复了。为方便讲述,假定一个基表emp_table,其表记录如下:Emp_no 8Emp_name 8Emp_salary 8001 8Jacky 85000 8002 8Rose 86000 8003 8John 87000 8即此表仅有3条记录,那么由于对数据库的误操作,导致第一条记录被删除,那么执行下面的SQL语句: 8select * from emp_table;其执行结果为:Emp_no Emp_name Emp_salary 002

10、 Rose 6000 003 John 7000 8由于已经执行了提交操作(COMMIT),所以无法进行回滚(ROLLBACK),这样原来的数据就无法用正常方法进行恢复。不过,由于误操作的时候在不久以前(假设是5分钟之前),在这种情况下,可以使用DBMS_FLASHBACK包来恢复数据,可以在SQL*PLUS里键入如下代码: execute dbms_flashback.enable_at_time(sysdate-5/1440); 此时,将数据库调整到5分钟之前的状态,如果再执行查询表的命令就会为如下结果:Emp_no Emp_name Emp_salary 001Jacky 5000 00

11、2Rose6000 003John7000 8那么就可以在此时将其数据备份到emp_table_bk,即:create table emp_table_bk as select * from emp_table;这样,就把以前误操作的数据给恢复回来了。 从上面的结果看的出,调用DBMS_FLASHBACK包的ENABLE_AT_TIME函数,可以将数据库的当前查询时间调整到以前,这样给数据恢复提供了帮助。 在使用DBMS_FLASHBACK包的时候还应该注意以下几点: 倒叙查询是有前提的,即该数据库必须具有撤消管理功能。具体做法是,DBA应该建立一个撤消表空间,并启动自动撤消管理,并建立一个撤

12、消保留时间窗。这样,Oracle将在撤消表空间中维护足够的撤消信息以便在保留时间内支持倒叙查询。由于撤消表空间的大小直接决定了倒叙查询执行的成败。即撤消表空间越大,那么可以查询的时间可以越早,那么对于一般的撤消表空间的大小,为了保证倒叙查询的成功,尽量查询5天以内的数据,这样成功的可能性更高一些。 任务调度 在UNIX系统中,任务与进程的概念是等同的,即当系统执行一段程序代码时会自动给其分配一个进程号和任务号,这样使用进程号和任务号就可以对该任务进行操作(如挂起,停止,启动等)。而Oracle数据库内部也存在任务调度,比如,需要对某一操作进行周期性的执行,或者是在某事件发生的时候才执行。一般性

13、的做法是使用触发器,即将所有操作封装在触发器里,然后通过指定触发事件即可将该操作等待执行。另外,还可以直接利用操作系统来实现,比如在Windows平台就可以编写Windows脚本并结合任务计划来实施;如果在Unix平台,就可以写Shell来实现任务的周期性的执行操作。 而这里主要是采用ORACLE数据库的DBMS_JOB包来实现的。 例如,由于每个月都需要对员工进行考评以进行薪水的调整,那么就需要对emp_table表进行更新处理。更新处理代码如下: 9create or replace procedure salary_upt(v_emp_no varchar2,v_salary numbe

14、r) as begin update emp_table set emp_salary=v_salary where emp_no=v_emp_no; commit; end ; / 9为了定期每个月都运行上面的程序,可以执行如下代码:Variable v_jobNum number; Begin Dbms_job.submit(:v_jobNum,salary_upt,sysdate,sysdate+30); Commit; End; / 10submit执行后将使得salary_upt过程马上执行。在上面的代码中,v_jobNum是该作业返回的作业号(任务号),后面两个时间分别为开始时间和

15、结束时间,所以salary_upt过程将每隔30天执行一次salary_upt程序,以此达到了定期更新的目的。 如果要禁止该作业的继续执行,可以执行下面的命令: 10dbms_job.remove(:v_jobNum);使用DBMS_JOB包来实现任务的调度便于跟应用程序集成,有时候这样处理更为的便捷。Oracle表空间 10控制Oracle用户表空间配额 11Oracle数据库中表空间的处理方式 11另外要注意,不同的表空间有不同的权限控制。用户对于表空间A具有完全控制权限,可能对于表空间B就只有查询权限,甚至连连接的权限的都没有。所以,合理为用户配置表空间的访问权限,也是提高数据库安全性的

16、一个方法。 12ORACLE数据库分区技术分区功能的优势 分区功能的基本知识 范围分区 列表分区 散列分区 组合范围散列分区 组合范围列表分区 本地索引 全局分区索引 全局非分区索引 用分区功能提高可管理性 用分区功能提高性能 分区修整 分区智能联接 用分区功能提高可用性 未来发展方向 结论 数据恢复数据恢复是数据库本身一个极其重要的功能,通常重要的数据可以通过其系统的数据备份功能来实现,所以在实际的开发中,重要的数据往往容易恢复,反而是一些平常的数据因为误操作而引起一些麻烦。对于有经验的开发人员来说,往往会对那些开发需要的基表(基表就是提供数据源的数据表)做一些备份。更为实用而又很少为开发人

17、员所使用的方法就是采用倒叙查询,鉴于前面已经有了一定的技术铺垫,现在就可以使用DBMS_FLASHBACK包来对数据进行恢复了。Emp_noEmp_nameEmp_salary001 Jacky 5000002 Rose 6000003 John 7000即此表仅有3条记录,那么由于对数据库的误操作,导致第一条记录被删除,那么执行下面的SQL语句:其执行结果为:Emp_no Emp_name Emp_salary002 Rose 6000003 John 7000由于已经执行了提交操作(COMMIT),所以无法进行回滚(ROLLBACK),这样原来的数据就无法用正常方法进行恢复。execute

18、 dbms_flashback.enable_at_time(sysdate-5/1440);此时,将数据库调整到5分钟之前的状态,如果再执行查询表的命令就会为如下结果:001Jacky 5000002Rose6000003John7000那么就可以在此时将其数据备份到emp_table_bk,即:create table emp_table_bkas这样,就把以前误操作的数据给恢复回来了。从上面的结果看的出,调用DBMS_FLASHBACK包的ENABLE_AT_TIME函数,可以将数据库的当前查询时间调整到以前,这样给数据恢复提供了帮助。在使用DBMS_FLASHBACK包的时候还应该注意以下几点:任务调度在UNIX系统中,任务与进程的概念是等同的,即当系统执行一段程序代码时会自动给其分配一个进程号和任务号,这样使用进程号和任务号就可以对该任务进行操作(如挂起,停止,启动等)。而这里主要是采用ORACLE数据库的DBMS_JOB包来实现的。例如,由于每个月都需要对员工进行考评以进行薪水的调整,那么就需要对emp_table表进行更新处理。create or replace procedure salary_upt(v_emp_no varchar2,v_salary number)

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1