Oracle数据仓库

2024-09-28

Oracle数据仓库(精选8篇)

Oracle数据仓库 篇1

0 引言

随着计算机技术的快速发展,有效的推动了信息化技术在化工生产领域的应用。目前我国的石油化工企业,从整体上分析,正处于体制转型阶段,为了推进石油化工企业信息化管理,有一些大中型化工企业采用了先进的Oracle数据库管理技术,建立起一整套规模的数据库系统,大大提高了企业的管理水平,为信息化管理起到了带头人的作用。但是从我国石油化工行业发展态势上分析,我国Oracle数据仓库信息化在石油化工生产领域中并没有得到广泛的普及,信息化管理水平仍处于初级阶段,信息化的建设规模与国内相关行业相比,仍处于相对落后的位置。为了提高我国石油化工企业信息化管理的水平,应当加大对Oracle数据仓库技术的研究与探讨。

1 石油化工企业Oracle数据仓库的建立

1.1 Oracle数据仓库的定义

Oracle数据仓库是Oracle公司研制开发的一套数据库开发系统软件。目前,数据库技术发展迅猛,为了进一步开发数据资源,Oracle数据仓库系统主要是面向数据集成化、数据稳定性的数据集合。具有面向主题性、集成性、不可更新性、变化性、大容量等特点。

为石油化工企业建立Oracle数据仓库需要经过三个步骤:

首先,要对最终用户即石油化工企业的生产经营需求建立数据库模型,也就是我们说的需求分析阶段,Oracle数据仓库技术人员需要与石油化工企业的相关生产、经营、管理等业务部门搜集汇总数据仓库所需建立的需求信息资源。技术人员将石油化工企业的信息需求进行总结归纳,转化为数据模型,完成建模的工作。数据库技术人员要以严谨、细致、准确的工作态度,保证数据仓库建模的完整。

其次,Oracle数据库技术人员完成对石油化工企业需求建模工作后,要为元数据建立模型,从而确定数据仓库中数据的具体范围值,并根据数据的具体结构制定相应的规则,对数据源进行正确的描述,对从数据仓库中检索、搜集、刷新和存储的各种传输信息,进行规则的建立[1]。

第三,建立完善Oracle数据仓的库评估、转化制度。Oracle数据库技术人员完成对石油化工企业的需求分析和元数据建立后,需要对数据仓库的建立选择实施工具,使其更好的为石油工作生产经营的需求进行充分的核实比较,并编辑前台应用系统,实现访问后台数据库信息的功能。

1.2 Oracle数据仓库的设计原理

1.2.1 总体设计思路

石油化工企业的Oracle数据仓库总体设计思路,是由数据源、数据存取、数据检索、数据转换以及数据资源存储几个模块组成。数据源的内容应当根据石油化工企业的管理模式、指标分析以及油田分布状况的要求,将企业规模下的各采油分点的具体数据资料集中至Oracle数据仓库服务器中,组成数据源的基础内容[2]。针对各采油分点数据源的结构主要有:油井基本信息内容,各油井的历史信息,具体规模,产量大小,注水状况分析,油田分布结构等关于油田生产运营的数据库表格。在进行Oracle数据库数据存储、检索与筛选等功能设计中,通过对Oracle数据库建模来实现对油田生产基本数据的检索、筛选、存储等操作,在设计中,根据油田数据库中的存储管理结构建立关系型Oracle数据仓库,实现数据可管理系统数据管理和应用,保证数据源的准确性和完整程度,可以避免检索数据时出现的逻辑性错误,有效的将数据存储、转换或检索到Oracle数据仓库中。

1.2.2 逻辑设计思路

石油化工企业Oracle数据库的数据内容的核心是油和油井的各种指标生产等相关信息,对Oracle数据仓库逻辑设计是对实际表和逻辑表结构的分析。首先根据终端用户(石油化工企业)的需求进行模式分析,制定出具体的维表和事实表,从而建立多维表与事实表之间的逻辑性关系。在Oracle数据仓库逻辑设计中,对数据源与数据仓库建立逻辑关系,实现数据之间的筛选、检索和转换等功能。

1.3 Oracle数据仓库的实现与研究

1.3.1 Oracle数据仓库建模

本次石油化工企业数据库建模的工具采用Oracle 10G数据库系统,它将集中了大量数据仓库建模的工具,为数据舱库的建模提供了一个良好的公共环境,为数据库的建立、使用、管理变得更加简单化[3]。石油化工企业在建立Oracle数据仓库中,可以利用Oracle 10G数据库系统,完成建模与数据结构的设计工作,并借助Oracle 10G数据库系统做好后台与前台的链接关系,实现数据的抽取与加载。

1.3.2 Oracle数据仓库软、硬件环境要求

本次石油化工企业数据仓库的硬件基础为:

Oracle数据仓库的服务器采用:戴尔(DELL)Power Edge T410塔式服务器(至强X5506 2G内存,300GSAS硬盘,DVD光驱RAID1键鼠);操作系统主要为:WINDOWS2003/Solaris9;数据库管理系统软件使用:Oracle 10G。软件系统为:Oracle Warehouse Builder 11g和Oracle Discoverer4.1。

2 Oracle数据仓库的优化

数据库的逻辑结构对数据库的整体性能起到了决定性的作用,Oracle 10G数据库系统对多维表和事实表提供了一种优化结构功能Optimal flexible Architecture,即,自由结构模式。这种数据结构模式最大程度的简化了数据仓库的管理任务,使数据仓库逻辑分布变得更加高效。数据仓库的系统全局区域犹如Oracle数据仓库的核心,石油化工企业的终端通过前台发送需求条件,经过系统全局区域来读取条件数据,并映射到对于的数据单元,完成数据库的操作,起到加速优化的作用[4]。系统全局区域主要由数据块缓冲区、字典缓冲区、重做日志缓冲区、SQL共享池四部分组成,其中数据块缓冲区是系统全局区域的高速缓存模块,可以将数据库中重复的指令建立相应的表格、索引和针,当数据库出现反复性指令后,数据块缓冲区可以快速的找到指令相对应的映射空间,迅速完成数据的检索和调取任务。系统全局区域要保证完整性对Oracle数据仓库的性能起到至关重要的作用,这些缓冲区通过合理的配置,极大的提高了Oracle数据仓库的查询速度,实现优化数据仓库的功能。

参考文献

[1]周渝斌.基于ORACLE10G的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2009.

[2]瓮正科,王新英.Oracle10G.X For Windows NT实用教程[M].北京:清华大学出版社,2010.

[3]周渝斌.基于ORACLE8i的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2010(4):5-9.

[4][美]Joe Greene,Advanced Information Systems,Inc.et al.Oracle10G服务器技术精粹[M].北京:清华大学出版社,2009.

Oracle数据仓库 篇2

相信为数不少的系统管理员每天都在做着同一样的工作――对数据进行备份。一旦哪一天疏忽了,而这一天系统又恰恰发生了故障,需要进行数据恢复,那么此时就无能为力了。假如每天设定一个固定的时间,系统自动进行备份,那该多好啊!下面笔者结合实践经验,谈一谈UNIX环境下Oracle数据库的自动备份,以起到抛砖引玉的作用。

我们计划让数据库在晚上23点做export导出备份,在凌晨2点将备份文件拷贝到磁带上,在凌晨4点将备份文件拷贝到另一台UNIX机器上,为此我们可进行如下操作:

一、导出数据库

export命令将数据库中的数据备份成一个二进制文件,它通常有三种模式:用户模式、表模式和整个数据库模式。本文拟采用用户模式,备份之前,应先建立一个备份目录,以容纳备份文件,比如可建一个/backup目录。接着我们可在UNIX的Oracle目录下(也可以是其它目录)分别建立两个文件ora―backup,tar―backup。需要说明的是,前一个文件需要对Oracle的参数进行初始化,为了方便起见,我们不妨将初始化命令放到一个文件中(文件名姑且定为ora―env),再由第一个文件调用它。

1. ora―env文件对Oracle的参数进行初始化,其内容如下:

ORACLE―HOME=$ORACLE―HOME;export ORACLE―HOMEORACLE―SID=ora73;export ORACLE―SIDORACLE―TERM=sun;export ORACLE―TERMLD―LIBRARY―PATH=$ORACLE―HOME/lib;export LD―LIBRARY―PATHORA―NLS32=$ORACLE―HOME/ocommon/nls/admin/data;export ORA―NLSPATH=.:/usr/clearcase/“ target=”_blank“ >ccs/bin:/usr/ucb:$ORACLE―HOME/bin:$PATH;export PATHDISPLAY=host1:0;export DISPLAYNLS―LANG=american―america.zhs16cgb231280;export NLS―LANG

2. ora―backup文件对数据库做export导出,导出的文件名可以任意定,本文定为字母“xx”加当天日期,即假如当天日期是12月10号,则导出的文件名为“xx1210.dmp ”,以区别于其它日期的备份文件。

 

ora―backup文件内容:

./oracle/ora―env#初始化Oracle数据库rq=′date +″%m%d″ ′#把当天日期赋予变量rqrm /backup/?# 清空 /backup目录exp test/test file=/backup/xx$rq.dmplog=/backup/xx$rq.log

本命令用于在$提示符下,导出test用户的数据(其口令亦为test),导出文件及日志均放在/backup目录下。

 

二、磁带备份

tar―backup文件将用export命令导出的数据文件拷贝到磁带上。tar―backup文件内容:

tar rvf /dev/rmt/0n/backup/?

本命令可将/backup目录下当天产生的文件备份到磁带上。本文件中,tar命令使用了三个参数,其中r选项表示向磁带上拷入文件而不破坏磁带原来内容,v选项表示在拷贝过程中显示文件信息,f选项后面加上磁带设备名,指定文件向何处拷贝,n选项表示磁带机不倒带,

/dev/rmt/0表示UNIX主机第一个磁带驱动器,同理,/dev/rmt/1则表示 UNIX主机第二个磁带驱动器,依此类推。

ora―env、ora―backup、tar―backup文件编写完成后,分别使用下述命令:

chmod 755 ora―envchmod 755 ora―backupchmod 755 tar―backup

这样,三个文件就都变成了可执行文件。

 

三、异地备份

我们知道,通常可用FTP命令在两台主机间传输数据,但一般是通过交互方式实现的,即需要手工输入目标主机的IP地址、用户名、口令等。显然,这不符合自动备份的要求。所幸的是,我们可以通过编写一个.netrc的文件来达到目标。这一文件必须命名为 .netrc,且必须存放在启动FTP命令的机器上的用户注册目录中,该文件的权限应禁止组内或其它用户进行读访问。这样,当用户使用FTP命令的时候,系统将会在该用户的注册目录中寻找.netrc文件,如果能够寻找到,将会首先执行该文件,否则,会交互式地提示用户输入用户名、口令等。

在使用FTP命令之前,应先在另一台作备份用的UNIX机器上建一目录,以容纳备份文件,本文建的目录是/pub 。需要指出的是,为了加快备份速度,两台主机之间的传输速率应尽可能的高,最好位于同一局域网上。

.netrc文件内容如下:machine host2# host2为作备份用的主机名login oracle#oracle为备份主机上的一个用户password oracle#oracle用户的口令为oraclemacdef init#定义一个名为init的宏,它将在自动注册进程的最后被执行bin#文件的传输方式设为二进制lcd /backup# 进入本地工作目录/backupcd /pub# 进入备份主机目录/pubmput ?# 将/backup目录下的所有文件传输至备份主机bye#退出FTP会话进程.netrc文件编写完成后,使用下述命令:chmod 600 .netrc这样,.netrc文件就只能被该用户所访问。

四、启动备份进程

 

Cron是一个永久进程,它由/etc/rc.local启动执行。Cron检查/var/spool/cron/c rontabs/?目录中的文件,找到所要执行的任务和执行任务的时间。Crontab文件的每一行由六个域(minutes、hours、day of month、month、day of week、command)组成,域之间用空格或Tab分开,其中:

minutes:分钟域,值的范围是0到59 hours:小时域,值的范围是0到23 day of month:日期,值的范围是1到31 month:月份,值的范围是1到12 day of week:星期,值的范围是0到6,星期日值为0 command:所要运行的命令

如果一个域是?,表明命令可以在该域所有可能的取值范围内执行。如果一个域是由连字符隔开的两个数字,表明命令可以在两个数字之间的范围内执行(包括两个数字本身)。如果一个域是由逗号隔开的一系列值组成的,表明命令可以在这些值组成的范围内执行。如果日期域和星期域都有值,则这两个域都有效。

 

现在,我们编写一个文件,用以启动自动备份进程。值得注意的是,该文件只能在 Oracle用户名下用crontab -e 命令来编辑,否则将不会被定时执行,文件名定为Orac le,文件将放在/var/spool/cron/crontabs 目录下。编辑完成后,可以在Oracle的$提示符下,用crontab -l命令来查看。

Oracle文件内容:

0 23 ? ? ? /oracle/ora―backup# 每天23点对数据库执行备份0 2 ? ? ? /oracle/tar―backup# 每天2点将文件备份到磁带上0 4 ? ? ? ftp -i host2# 每天4点将文件备份到另一台主机上

经过以上的操作后,系统每天晚上将自动产生一个备份,并且自动将备份文件分别拷贝到磁带上和另一台主机上。系统管理员需要做的是,隔几天换一盘磁带(更换磁带的周期取决于备份文件的大小和磁带的容量)和清理备份目录。这样,他们就可以从备份数据的繁琐中解脱出来,去做其它更有意义的工作。而数据库既实现了磁带备份,又实现了异地备份,相应的安全性也大大提高了。 (完)

 

Oracle数据仓库 篇3

数据迁移是系统升级中最重要的环节之一,公司在做数据迁移时,一般数据库是不允许停库的,尤其是公司在做电信、银行等行业时,更是不允许数据库停库的,这样在不允许停库的情况下进行数据迁移,尤其是在迁移数据量比较大的时候,就加大了数据迁移的难度。所以在做数据迁移之前,不仅要考虑在迁移过程中会遇到的困难,还要考虑迁移时的效率。就要对数据迁移技术进行研究,包括迁移过程、迁移方案、迁移应该注意的地方和迁移的效率不足。

1 Oracle数据库

Oracle数据库是基于客户端/服务器的技术,是分布式的数据库产品,是一个高度集的互联网运用平台,它支持多用户、分布式数据、大事务量事物处理。

Oracle数据库存储结构分为逻辑存储结构和物理存储结构。(1)逻辑存储结构是由表空间、段、区、数据块组成的。(2)物理存储结构是由数据文件、归档日志文件、控制文件、跟踪文件等组成。

Oracle基本类型的输出。(1)表方式(T方式),将指定表的数据导出。(2)用户方式(U方式),将指定用户的所有对象及数据导出。(3)全库方式(Full方式),数据库中的所有对象导出。

2 迁移的方法及其实现

2.1 Exp/Imp数据迁移

使用Exp实用程序可以导出整个数据库、一个用户的所有对象、一个表空间或特定的表。

2.1.1 Exp命令进行导出

可以用以下两种方式完成:

(1)传统路径方式:Exp采用SQL语句的方式把要导出的表的数据检索出来,然后通过网络,将这些数据传输到客户端,并在客户端上生成转储文件。既然是SQL语句的方式,就需要在Shared_pool中解析生成执行计划以后,将数据缓存到Buffer中,然后传递到客户端,该方式就是默认的导出方式。

(2)直接路径方式:在这种方式下,Exp不采用SQL的方式,而是直接获得数据块,并绕过Shared_pool和Buffer cache。将数据块里的数据直接抽出来以后直接传递到客户端上,这种方式相对于传统路径来说,速度要快得多。在导出时,加上Direct=y则表示进行直接路径导出,该方式有一些限制,比如不能导出含有LOB、BFILE等大对象的表。

2.1.2 Imp命令进行导入

Imp指令用户导入通过Exp指令导出的备份数据,Imp可以导入完整的数据库,一个指定用户的所有数据库对象,一个特定的表空间以及一个特定的表。Imp使用程序将备份的整个数据库导入当前的数据库中,在导入过程中包括一系列地创建数据库对象的过程,如创建表空间、表、表的索引,系列号以及授权用户数等。如果要创建数据库表对象,但某个表已经存在,则创建语句就会失败。此时需要使用Ignore参数,该参数使得Imp程序忽略这些错误。

2.1.3 使用Exp/Imp实现表空间传输

从Oracle10g开始支持跨平台的表空间传输,表空间传输是实现数据迁移的一种方法。在传统方式中,如果一个表空间中的数据需要迁移到另一个平台,往往需要使用Exp/Imp数据库导入导出工具迁移,这样的方式花费较多的恢复时间,而使用传输表空间则可以很快速地表空间。使用传输表空间实现在两个数据库之间制表空间数据集。

(1)使用Exp/Imp实现同平台表空间的迁移:

同平台之间的转换很简单,因为不必考虑EN-DIANESS的问题,如图1所示。

在迁移之前在源主机上使用Exp工具将迁移表空间的元数据集备份下来,然后将该备份集与表空间对应的塑胶文件的二进制文件统一复制到目标主机。在目标主机端使用Imp工具将表空间的元数据集和数据文件导入目标数据库。

(2)使用Exp/Imp实现跨平台表空间的迁移。

在不同平台之间迁移表空间关键是确认两个平台的ENDIANESS是否相同,如果不同则需要进行转换,如图2所示。

同操作系统平台之间与异构操作系统平台之间的表空间迁移主要区别就是数据文件格式转换,将源数据库平台的字节系列转换为目标数据库所在操作系统平台的字节系列。

2.2 Expdp/Impdp数据迁移

数据泵技术(DataPump)是在Oracle10g中最新引入的一种技术。它运行在数据库内部,而不是作为一个独立的客户端应用程序存在。在Oracle10g之前,导出实用程序都作为客户端程序运行。导出的数据由数据库实例读出,通过连接传输到导出客户程序,然后写到磁盘上,所有数据在整个导出进程下通过单线程操作。在数据泵导出和导入技术中,涉及导出实用程序Expdp和导入实用程序Impdp,当启动数据泵导入或导出程序时,在数据库服务器端启动相应的服务器进程,完成数据的导出和导入任务,所以也称数据泵技术是基于Oracle数据库服务器的,导入及导出的数据文件也保存在数据库服务器端。

传统的Exp实用程序是一个普通的本地用户进程,它将备份的数据写入本地磁盘。Exp实用程序是普通会话的一部分,它从服务器进程中获得要备份的数据。数据泵Expdp程序启动数据库服务器端的服务器进程,服务器进程完成数据的备份并将备份文件写入数据库服务器端的计算机磁盘空间,文件格式Filename.dat。导出的备份文件在导入时只能通过数据泵的导入实用程序Impdp完成,将数据导入到运行在其他平台上的数据库中。

2.3 Db_link方法数据迁移

利用Db_link来实现模式复制,在使用Db_link方法时,要保证创建了db_link,检查是否创建了Db_link的方法:

使用db_link时,不需要导出,直接在要把数据迁移的数据库服务器中使用。

3 迁移的过程

在做大数据迁移时,都要根据迁移的步骤来实施,如图4所示。

3.1 模拟迁移

3.1.1 Exp/Imp迁移方式进行模拟迁移

(1)用Exp实用程序以表作为对象进行数据导出:

(2)用Imp实用程序进行数据导入:

导入成功后,可以在目标数据库中查询如图5所示。

3.1.2 数据泵技术进行模拟迁移

(1)用Expdp实用程序以表作为对象进行数据导出:

(2)用Impdp实用程序进行数据导入:

3.1.3 采用DB_LINK的方式进行模拟迁移

使用DB_LINK时,首先要在目标数据库中创建表结构,在目标数据库中创建的表结构必须和源数据库中的表结构相同,另外还要创建好Db_link.

通过以上三种模拟迁移,迁移在新的运行环境中,运行程序都可以正常运行,但是,使用数据泵迁移必须在源数据库有存储资源,源数据库主机上的资源非常少,无法存储用数据泵迁移数导出的文件,这样的话,就不能使用数据泵迁移。使用Exp/Imp数据迁移方法进行数据迁移,在迁移大数据量的时候,在迁移过程中,磁盘的存储,CPU的性能等都会影响数据迁移的速度,使用Exp/Imp迁移,速度非常慢,这种方法不可行。

3.2 正式实施数据迁移

正式实施数据迁移之前,都要做一些实施前的准备,正式实施数据迁移是在Linux环境下,数据库是从低版本到高版本,迁移的数据量是1.3TB。迁移这大数据量,只能选用数据泵技术。选用数据泵技术,需要源数据库主机上有存储,因为使用数据泵技术,备份的文件是存放到源数据库的主机上。使用数据泵技术只能以表为对象做数据迁移,如果以一个用户为对象做迁移,源数据库上没有存储。如果以表为对象做数据迁移,不仅工作量大,还会影响迁移的速度。做数据迁移要求的是效率,迁移时是要一次性完成迁移,还要保证两个数据库中的数据同步。

这样,就要用到一种方法使两个数据库连接起来,两个数据库连接起来的方法就是配一个公钥和一个私钥,配置Linux系统免密码登陆两个数据库服务器:

从源数据库服务器上可以直接登陆目标数据库的服务器,不用密码就可以在源数据库服务器上直接登录到目标数据库的服务器上。

源数据库和目标数据库配通后,就可以写一个程序,用数据泵技术以表为对象做迁移,写的这个程序循环来调源数据库中的表完成迁移。这个循环程序是使用一个Shell脚本来写的。Shell脚本如下:

通过Shell脚本,使用数据泵导出来的数据文件就不需要占用源数据库大量的存储空间,导出来的数据文件直接就可以用数据泵的导入方法将文件导入到要迁移到的目标数据库中,用这种方法不仅可以节省导出和导入的时间(因为源数据库导出,需要迁移到的目标数据库就可以直接导入),另外还解决了源数据库主机存储不够的问题。在脚本运行的过程中,可以在数据库中查到迁移过来的数据如图6所示。

4 结束语

Exp和Imp是Oracle比较早的数据备份和恢复方式。Exp/Imp技术实现的是逻辑备份,使用Exp实现对数据库的逻辑备份,可以指定对全库、某个数据库模式、特定的表空间以及特定的表进行备份,相应地使用Imp对不同的备份进行恢复。

数据泵技术是Oracle对于Exp/Imp备份与恢复工具的改进。数据泵实现了数据库的逻辑备份,使用数据泵可以迁移表空间,极大地提高数据的迁移速度和效率。在使用数据泵技术导出数据备份时,只能将备份的数据写入磁盘文件,无法写入磁带设备。所以使用数据泵技术时要有足够的磁盘存储来存储导出的数据。

在做模拟测试的过程中,选择同一个表作为对象来进行导出和导入,使用数据泵技术导出和导入的速度和效率要比使用Exp/Imp技术和DB_LINK的方式快。使用DB_LINK的方式时首先要保证数据库中创建了DB_LINK,其次要在目标数据库中创建和源数据库中的表结构一样。使用数据泵时源数据库中要有足够的存储来存放导出的数据备份。

数据迁移,可以根据迁移的数据量来选择迁移的方法,在做数据量比较小时,可以用Exp/Imp技术、DB_LIINK技术、数据泵技术,在做数据量比较大时,最好选择数据泵技术,数据泵技术是Exp/Imp技术的加强版,但是在使用数据泵技术时,源数据库主机上必须有足够的存储资源,因为在使用数据泵数据备份时,备份出来的数据只能放到源数据库的主机上。

Exp/Imp技术可以实现全库或表空间的逻辑备份,但是它不支持用户的交互模式,在备份的过程中无法控制或切换备份进程,而Oracle的数据泵就可以很好地实现用户交互,因为数据泵支持网络操作以及重启失败的备份作业。

摘要:随着公司业务的不断扩展及业务需求的增长,原有系统不断被功能更强大的新系统所取代。但在旧系统运行间往往积累了大量珍贵的历史数据,在系统切换中,如何将历史有效数据快速迁移到新系统中,对系统切换以及后续新系统的正常运行都有着至关重要的影响。从数据迁移的实际出发,通过对Oracle数据库数据迁移的多种方法研究,根据数据迁移量和数据迁移方法工具的优缺点,选择数据泵技术来实现高效的数据迁移。

关键词:Oracle数据库,数据迁移,跨版本,跨平台

参考文献

[1]Kathy Rich.Oracle Data Pump,10g Release 2(10.2)[M].Oracle Database Utilities,2005.

[2]何平,杨树强.基于oracle10g的VLDB备份与恢复技术[J].计算机工程,2006,32(19)79-81.

[3]袁胜中.Oracle数据库的性能优化[J].电信技术,2007(6):75-77.

[4]梁昌明,秦占伟,郑盘根.Oracle数据库之间数据传输方法探讨[J].医疗设备信息,2007,22(9):55-57.

[5]王琴,宋顺林.Oracle数据库管理系统的备份策略及应用举例[J].计算机工程,2002,28(12):262-264.

[6]柳丹.Oracle PL/SQL面向对象特性Web应用研究[J].计算机技术与发展,2006(1):234-237.

oracle数据库迁移 篇4

伴随着IT行业的迅速发展,IT系统中数据的安全性,已经是对企业运营产生了重大影响。而数据库的安全迁移也为IT系统的可持续运行和数据安全提供一道保护屏障。而且近年来频繁出现的自然灾害或者突发事件也让越来越多的人们意识到,原有的数据存储方式已经无法满足企业的需要。本文正是从数据库迁移的实际操作中总结整理而成。

1 oracle数据库文件构成

数据库是一种物理的存储结构,它是由多种物理文件组成的,在Oracle数据库系统中分为,核心文件和非核心文件两大类[1]。其中核心文件由数据文件,控制文件,日志文件,参数文件组成,非核心文件由密码文件,告警日志文件,各种跟踪文件组成。

控制文件:控制文件是一个二进制的文件,它描述了数据库当前的物理状态,记录了RMAN备份的元数据。控制文件包含有数据库的名称、数据库的创建信息、表空间的信息、数据文件的状态、日志文件的信息、备份的信息、检查点的信息等。

数据文件:,一个数据库中一定至少有一个数据文件(system01.dbf),如果一个数据库存在多个数据文件,应该分别把它们存放在不同的磁盘上,这样做不仅可以提高数据的存取速度,有利于提高数据库的性能,而且还能防止数据文件同时被损坏,实现高度容灾。

日志文件:数据库日志文件包括归档日志和非归档日志,记录了数据库的所有修改信息,归档日志会在数据库切换日志时,备份历史日志,日志记录的是数据库改变的信息、因此当数据库损坏时可以通过日志文件实现数据库的完全恢复、不完全恢复,而非归档日志不会备份历史日志,只能恢复到数据库最后一次备份时的状态[2]。

临时文件:创建数据库对象的时候指定的是使用表空间,一个表空间至少包含一个数据文件,临时文件是临时表空间对应的数据文件,并不是已用完就被删除的,而是指这个文件存储的对象是临时存在的对象。临时文件主要用于大量的排序的时候,如果不能在数据库的内存中做排序,就会把临时文件作为中转。

参数文件:参数文件是记录数据库系统配置的文件,每次数据库一启动,Oracle就会自动地从参数文件中读取系统参数的设置来配置并启动数据库。如内存的大小分配,此次启动可以打开的进程数和会话数等。

2 Oracle数据库迁移的迁移方案

oracle数据库状态分类:

nomount:此状态可以读取初始化参数文件,启动实例,可以进行数据库的创建。

mount:数据库维护状态,读取控制文件。

open:打开数据文件,日志文件,是数据库可以对全体用户提供服务了。

数据库物理迁移过程大体可分为以下四个步骤:

第一步:加载初始化文件

oracle启动后,数据库默认会读取一个二进制的初始化文件spfile<SID>.ora,可在系统启动时指定初始化文件的路径,如startup pfile="pfilesid.ora"nomount或者startup spfile="spfilesid.ora"nomount。初始化过程可根据系统错误提示内容,用pfile进行编辑处理,然后重新startup就可以了。

第二步:加载控制文件,保证在初始化文件中,控制文件的路径正确

在初始化文件中定义控制文件的位置,在确保控制文件路径正确的情况下,才能对控制文件进行加载,其命令是alter database mount。

第三步:加载数据库,包括重做日志文件

加载控制文件之后,执行命令alter database open对数据库进行开启,整个数据库启动过程完成了。

第四步:启动数据库成功之后,就说明迁移成功,可以观察数据是否丢失,然后启动监听和配置文件等。

3 Oracle数据库迁移具体实践

下面以把数据库从文件系统迁移到ASM磁盘组为例进行演示步骤:

首先,ASM是把多个磁盘组织为一个磁盘组,作为Oracle的逻辑卷管理器,利用ASM技术可以把数据均匀分布在这些磁盘上来解决从文件区到物理磁盘块的映射问题。这种设计除了定位文件区非常快速之外,还在增加或删除磁盘时有所帮助,因为文件区的位置不需要调整[3]。

把数据库从文件系统迁移到ASM磁盘组主要是把数据库的控制文件,数据文件和日志文件分别放在不同的磁盘组上,实现对这些文件的一个冗余放置,还简化了对数据文件的管理。

3.1 迁移数据库

①迁移数据库前先在RMAN下备份数据库,设置系统冗余度,并打开优化器和控制文件的自动备份功能

②创建迁移的控制文件存放的目录

③修改参数文件把控制文件的默认位置修改到ASM磁盘组上,然后用Pfile来生成spfile文件

SQL>create pfile from spfile;

④利用RMAN工具恢复控制文件,将数据库启动到mount状态;加载控制文件,如果出现错误,就说明控制文件所在的路径和参数文件路径不一致,要修改初始化参数,文件中控制文件的参数,然后重新加载。

SQL>shutdown immediate;

数据库已经关闭。

SQL>startup nomount;

ORACLE例程已经启动。

RMAN>restore controlfile from'/backup/ctl';

RMAN>alter database mount;

数据库已装载

⑤利用RMAN工具恢复数据库,执行下面的命令

⑥执行下面的命令重置日志组打开数据库

RMAN>alter database open resetlogs;

数据库已打开

3.2 输入下面的查询命令查看数据文件和控制文件是否已成功迁移到ASM磁盘组上

3.3 迁移临时表空间

①输入下面的命令重置临时表空间,先在ASM磁盘组上建立新的临时表空间,结果显示表空间已更改

表空间已更改。

②输入下面的查询命令查看表空间是否已创建

③输入下面的命令删除文件系统中就得临时表空间

表空间已更改。

④输入下面的命令查看表空间是否已成功删除

3.4 迁移redo日志

①输入下面的查询命令查看日志的状态,由查询结果可知第一组是当前日志

②输入下面的命令先往三组日志中各添加一个asm磁盘组上的成员,结果显示数据库已更改

数据库已更改。

数据库已更改。

数据库已更改

③删除非ASM磁盘组上的日志成员,执行完命令后结果显示数据库已更改,删除成功

SQL>alter database drop logfile group 2;

数据库已更改。

SQL>alter database drop logfile group 3;

数据库已更改。

④由查询结果可知第一组是当前日志所以需要切换一下当前日志才能继续删除,执行完命令后显示系统已更改

SQL>alter system switch logfile;

系统已更改。

⑤输入下面的查询命令查看当前日志是否已切换

⑥输入下面的命令删除非ASM磁盘组上的第一组日志组成员,结果显示系统已更改

数据库已更改。

⑦输入下面的命令查看日志组成员状态

⑧输入下面的查询命令查看日志组的物理位置,查看日志组是否已成功迁移到ASM磁盘组上

4 总结与展望

数据库管理技术是现今社会中信息科学与技术的重要组成部分,数据库迁移技术的研究保证了数据安全以及高效的存储[4][5]。在实际操作过程中,Oracle数据库基于Linux系统的迁移过程中会出现各种各样的情况,如果想要安全完整的迁移数据库,一定要先做好备份,然后反复的实验验证,最终才能保证数据库完整安全的迁移。

摘要:本文介绍了Oracle数据库基于Linux系统迁移的研究问题。在数据库领域一直处于领先地位的Oracle数据库以其良好的可移植性、可靠性和高效性,倍受各级用户的推崇和喜爱。随着Oracle数据库的不断更新和发展,其使用用户的群体也在不断的增加,因此对Oracle数据库的存储迁移技术的研究在国内外如雨后春笋般不断发展。

关键词:oracle,数据迁移,跨平台

参考文献

[1]张敏.数据库安全研究现状与展望[J].中国科学院院刊,2011.03.

[2]赵钦,周丹.政府办公自动化信息系统数据迁移解决方案[J].广西科学院学报,2008.24.

[3]段卫国,李俊春.Oracle数据库数据迁移技术研究[J].信息技术,2015.8.

[4]Kathy Rich.Oracle Data Pump,10g Release 2(10.2)[M].Oracle Database Utilities,2005.

Oracle数据库安全策略 篇5

1 数据库安全管理

数据库的安全性是指保护数据库, 防止非法操作所造成的数据泄露、篡改或损坏。在计算机系统中, 安全性问题普遍存在, 特别是当大量用户共享数据库中的数据时, 安全问题尤其明显。保证数据库安全也成为DBA一项最重要的工作。

1.1 安全性要求

⑴数据库的完整性。预防数据库物理方面的问题, 保护数据结构;⑵元素的完整性。包含在每个元素中的数据是准确的;⑶可审计性。能够追踪到谁访问修改过的数据元素;⑷访问控制。允许用户只访问被批准的数据, 以及限制不同的用户有不同的访问模式;⑸用户认证。确保每个用户被正确地识别, 既便于审计追踪, 也为了限制对特定的数据进行访问;⑹可获性。用户一般可以访问数据库以及所有被批准访问的数据。

1.2 安全分类

数据库安全可以分为系统安全和数据安全。

系统安全包括在系统级别上, 控制数据库的存取和使用的机制。系统安全机制检查用户是否被授权连接到数据库, 数据库审计是否是活动的, 用户可以执行哪些系统操作等。

数据安全包括在方案对象级别上, 控制数据库的存取和使用的机制, 如哪个用户可以存取指定的方案对象, 在方案对象上允许每个用户采取的操作, 每个方案对象的审计操作。

2 Oracle数据库安全策略

Oralce数据库系统至少具有以下一些安全策略:⑴保证数据库的存在安全, 确保数据库系统的安全首先要确保数据库系统的存在安全;⑵保证数据库的可用性, 数据库管理系统的可用性表现在两个方面:一是需要阻止发布某些非保护数据以防止敏感数据的泄露, 二是当两个用户同时请求同一记录是进行仲裁;⑶保障数据库系统的机密性, 主要包括用户身份认证、访问控制和可审计性等;⑷保障数据库的完整性, 数据库的完整性包括物理完整性、逻辑完整性和元素完整性。

2.1 系统安全策略

⑴数据库用户管理。数据库用户是存取数据库中信息的通道, 必须对数据库用户进行严格的安全管理。既可以由安全管理员作为唯一有权限创建、修改和删除数据库用户的用户, 也可以由多个有权限的管理员来管理数据库用户。

⑵用户验证。为了防止数据库用户未经授权访问, Oracle提供主机操作系统、网络服务和数据库验证等方法对数据库用户实施验证。一般情况下, 使用一种方法验证数据库中的所有用户, 但也允许在同一数据库实例中使用多种验证方法。

⑶操作系统安全。为运行Oracle和数据库应用程序的操作系统环境考虑安全:DBA必须有创建和删除文件的操作系统权限;通常的数据库用户不应该有创建和删除文件的操作系统权限;若操作系统识别用户的数据库角色, 则安全管理员必须拥有操作系统权限, 以修改系统账户和安全域。

2.2 数据安全策略

数据安全包括在对象级控制数据库访问和使用的机制, 它决定了哪个用户访问特定方案对象, 在对象上允许每个用户的特定类型操作, 也可以定义审计每个方案对象的操作。

为数据库中数据创建的安全等级决定数据安全策略。若要允许任何用户创建任何方案对象, 或将对象的存取权限授予系统中的其他用户, 数据库将缺乏安全保障。当希望仅有DBA或安全管理员有权限创建对象, 并向角色和用户授权对象的存取权限时, 必须完全控制数据安全。

2.3 用户安全策略

用户安全策略包括一般用户、最终用户、管理员、应用程序开发人员和应用程序管理员的安全策略。

⑴一般用户安全。对于一般用户安全, 主要考虑口令安全和权限管理问题;⑵最终用户安全;⑶管理员安全。由于SYSTEM和SYS用户拥有强大的权限, 在创建数据库后, 应该立即修改SYSTEM和SYS用户的口令;⑷应用程序开发人员安全;⑸应用程序管理员安全。

2.4 数据库管理者安全性策略

⑴保护作为sys和system用户的连接;⑵保护管理者与数据库的连接;⑶使用角色对管理者权限进行管理。

2.5 应用程序开发者的安全性策略

⑴应用程序开发者和他们的权限;⑵应用程序开发者的环境。程序开发者不应与终端用户竞争数据库资源;程序开发者不能损害数据库其他应用产品;⑶应用程序开发者的空间限制。作为数据库安全性管理者, 应该特别地为每个应用程序开发者设置以下的一些限制:开发者可以创建table或index的表空间;在每一个表空间中, 开发者所拥有的空间份额。

3 结束语

Oracle安全策略有着教高的可伸缩性以及安全性, 还有着多样的可扩展性以及可用性。进行数据库系统安全管理工作, 应坚持长期性、持久性。为了组建相对安全及稳定的数据库系统, 数据库管理者要通过技术方式进行严格管理, 做好防御, 更应增加防范意识。

参考文献

[1]巢子杰.数据库优化探究[J].软件导刊, 2010, 2.[1]巢子杰.数据库优化探究[J].软件导刊, 2010, 2.

Oracle数据库优化研究 篇6

Oracle数据库是一个功能极其强大的数据库系统。它起始于七十年代末的关系型数据库技术。Oracle数据库的关键是怎样理解数据间的关系, 然后构造反映这些关系的信息库。1984年Oracle成功地将关系型数据库转移到桌面计算机上, Oracles提供了一个完整的客户/服务器体系结构的商用DBMS。利用SQL.NET软件层, 与多种操作系统支持通信协议配合, 为Oracle数据库提供分布式环境, 可以实现多点查询。Oracle数据库发布了革命式的行锁定模式, 提高了事务的处理速度, 使关系型数据库应用进入了一个全新的天地。

1992年推出的Oracle7数据库采用了自协调的多线索服务器体系结构, 动态调整高速数据库服务器进程的个数。这都为构造产业化的以及企业类的应用提供了技术支持。1997年, Oracle8数据库推出。Oracle8数据库不仅允许用户以处理关系数据的方式来梳理对象数据, 也可同样处理关系数据。因此, Oracle8数据库是一个紧密集成的对象关系数据库管理系统方案, 对象技术和关系型数据库的结合, 使用户现有Oracle7数据库应用软件无需移植, 便可在Oracle8数据库上使用, Oracle数据库发展到现在的Oracle10g, 它是第一款为网格计算而设计的数据库, 集成了Oracle数据库管理技术的各种优势, 又融入了网格计算的各种新的性能特点。

Oracle数据库系统的特点是支持大数据库、多用户的高性能事务处理, Oracle数据库具有良好的硬件环境独立性, 支持各种类型的大型、中型、小型和微机系统。Oracle数据库遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准, 有着更好的安全性和完整控制, 并且Oracle数据库允许将处理分为数据库服务器和客户应用程序处理, 所有共享的数据管理由具有数据库管理系统的计算机处理, 而运行数据应用的工作站侧重于解释和显示数据。

2 数据库最优灵活体系结构OFA

OFA (Optimal Flexible Architecture) 是提高Oracle数据库逻辑配置和性能的一种优化结构, 使用这种结构进行设计会简化物理设计中的数据管理, 可以高效自由地分布逻辑数据对象。数据库逻辑设计要遵循: (1) 同样方式使用的段类型存储在一起; (2) 按照标准使用来设计系统; (3) 存在用于例外的分离区域; (4) 最小化表空间冲突; (5) 将数据字典分离。

3 系统级优化

Oracle数据库从物理结构上看, 是安装在硬件服务器上的由一个个文件组成的软件系统, 要确保其高效运行必须有充足的服务器资源来支撑。影响系统性能的主要问题有以下几个方面: (1) 现有系统自身存在的缺陷或不足; (2) CPU不足; (3) 内存不足; (4) I/O不足; (5) 网络约束; (6) 软件约束。在对数据库进行优化之前, 应该根据实际应用需求来配置服务器硬件, 选取合适的CPU型号及个数、存储容量大小等, 优化网络环境, 完善操作系统软件配置, 为Oracle数据库提供良好的运行环境。

4 数据库级优化

4.1 数据库设计开发阶段

(1) 优化应用程序结构设计:在数据库系统设计阶段对其逻辑结构和物理结构进行优化设计, 系统性能可以达到最佳, 系统开销最小。因为不同的应用程序体系结构所要求的数据库资源是不同的, 要根据软件需求, 确定应用程序采用的体系结构, 是B/S、C/S还是其他体系结构。优化应用程序结构, 设置合理的数据库访问模式, 能极大提高数据库效率。 (2) 编写优质SQL语句:良好的SQL语句可以被数据库重复使用而减少分析时间, 充分利用了SQL语言和Oracle特性的应用程序处理速度较快, 效率较高。在进行数据库操作时, 选取合适的SQL代码, 能使程序更加明了, 运行速度也更快。 (3) 优化磁盘I/O:对于数据库系统来说, 磁盘I/O操作是数据库性能最重要的方面。减少磁盘I/O操作的最根本方法就是利用高速缓存存放频繁使用的数据信息, 恰当使用索引和Oracle分区技术能有效节约服务器查找时间, 减少磁盘操作。 (4) 参数优化:数据块的大小在数据库创建后不能改变, 因此在设计阶段必须确定合适的数据块大小和存储参数。一般来讲, 我们通常根据样例数据来确定数据块大小, 而根据业务量和未来数据库发展趋势确定存储参数。

Oracle数据库参数介绍: (1) LICENSE-MAX-SESSION。该参数指出允许并发用户会话的最大数。若此参数为0, 则不能实施并发。若并发的用户会话数已达到此极限, 则只有具有RESTRICTED SESSION权限的用户才能连接到服务器。 (2) CHECKPOINT-PROCESS。该参数根据是否要求检查点而设置成TRUE或者FALSE。当所有缓冲区的信息写到磁盘时, 检查点进程 (CHPT) 建立一个静态的点。在归档日志文件中做一个记号表示有一个检查点发生。检查点发生在归档日志转换的时候或当达到LOG-CHECKPOINT-INTERVAL定义的块数的时候。当设置此参数为TRUE时, 后台进程CHPT便可工作。在检查点期间内, 若日志写进程的性能减低, 则可用CHPT进程加以改善。 (3) DB-BLOCK-SIZE。该参数表示Oracle数据库块的大小, 以字节为单位, 典型值为2048或4096。该值一旦设定则不能改变。它影响表及索引的FREELISTS参数的最大值。 (4) OPTIMIZRER-MODE。若该参数的值为RULE, 则ORACLE优化器选择基于规则的优化;若设置为COST, 并且在数据字典中存在有统计信息, 则优化器选择基于代价的优化方法进行优化。

4.2 数据库运行阶段

(1) SGA。在不影响应用系统的前提下, SGA应尽可能大, 通过合理设置SHARED-POOL-SIZE和DB-BLOCK-BUFFER的值来掌握好SGA的大小。如果服务器内存为1G, 那能够分配给SGA的内存大约是四五百兆, 通常我们习惯于通过直观的公式化来表达这样的问题:SGA+并发执行进程数* (sort-area-size+hash-ara-size+2M) +OS使用内存<总内存*70%。 (2) 共享池。共享池用于缓存最近被执行的SQL语句和最近被使用的数据定义, 主要包括库高速缓冲区和数据字典缓冲区。配置共享池的关键是看应该更改SHARED-POOL-SIZE还是应该使用保留池、大型池或Java池。通过查询库高速缓冲和数据字典缓冲的命中率, 可以衡量共享池的效率。 (3) 数据库缓冲区。数据库缓冲区是SGA中最大的区, 其大小设置是否合理直接跟应用系统的性能相关。通过测试我们得出结论:数据高速缓冲区的命中率最佳应保持在90%以上, 当该值低于80%时服务器性能就会下降, 而低于50%时则会严重影响服务器性能。 (4) 重做日志缓冲区。重做日志缓冲区的内存需求与数据库事务处理的数量和大小有关。重做日志缓冲池通常小于2M, 过大的重做日志将减少日志文件的I/O操作, 过小的重做日志缓冲区将会使日志写入过程过分繁忙。日志缓冲区的大小由LOG-BUFFER决定, 必须是DB-BLOCK-SIZE的整数倍。如果失败率大于1%, 则必须增大LOG-BUFF-ER的大小。

5 结束语

Oracle提供了丰富的选择环境, 可以从Oracle数据库的体系结构、软件结构、模式对象以及具体的业务和技术实现出发统筹考虑, 提高系统性能需要一种系统的整体方法, 在对数据库进行优化时, 需要对应用程序、系统和I/O子系统进行相应的优化, 有目的地调整一个或多个组件, 使系统满足一个或多个目标的过程。对于ORACLE来说, 优化是进行有目的调整组件级, 即增加吞吐量, 减少响应时间。综合考虑优化方案, Oracle应用按最优的方式来存取数据, 确保数据库的安全、稳定可靠。

参考文献

[1]魏亚楠, 宋义秋.Oracle数据库应用系统的性能优化[J].制造业自动化.2010.

浅析Oracle数据库应用 篇7

在计算机技术中, Oracle数据库是一个功能极其强大的数据库系统。它起始于七十年代末的关系型数据库技术。Oracle数据库的关键是怎样理解数据间的关系, 然后构造反映这些关系的信息库。1984年Oracle成功地将关系型数据库转移到桌面计算机上, Oracles提供了一个完整的客户/服务器体系结构的商用DBMS。利用SQL.NET软件层, 与多种操作系统支持通信协议配合, 为Oracle数据库提供分布式环境, 可以实现多点查询。Oracle数据库发布了革命式的行锁定模式, 提高了事务的处理速度, 使关系型数据库应用进入了一个全新的天地。

1992年推出的Oracle7数据库采用了自协调的多线索服务器体系结构, 动态调整高速数据库服务器进程的个数。这都为构造产业化的以及企业类的应用提供了技术支持。1997年, Oracle8数据库推出。Oracle8数据库不仅允许用户以处理关系数据的方式来梳理对象数据, 也可同样处理关系数据。因此, O-racle8数据库是一个紧密集成的对象关系数据库管理系统方案, 对象技术和关系型数据库的结合, 使用户现有Oracle7数据库应用软件无需移植, 便可在Oracle8数据库上使用, Oracle数据库发展到现在的Oracle 10g, 它是第一款为网格计算而设计的数据库, 集成了Oracle数据库管理技术的各种优势, 又融入了网格计算的各种新的性能特点。

Oracle数据库系统的特点是支持大数据库、多用户的高性能事务处理, Oracle数据库具有良好的硬件环境独立性, 支持各种类型的大型、中型、小型和微机系统。Oracle数据库遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准, 有着更好的安全性和完整控制, 并且Oracle数据库允许将处理分为数据库服务器和客户应用程序处理, 所有共享的数据管理由具有数据库管理系统的计算机处理, 而运行数据应用的工作站侧重于解释和显示数据。

2 数据库最优灵活体系结构OFA

OFA (Optimal Flexible Architecture) 是提高Oracle数据库逻辑配置和性能的一种优化结构, 使用这种结构进行设计会简化物理设计中的数据管理, 可以高效自由地分布逻辑数据对象。数据库逻辑设计要遵循: (1) 同样方式使用的段类型存储在一起; (2) 按照标准使用来设计系统; (3) 存在用于例外的分离区域; (4) 最小化表空间冲突; (5) 将数据字典分离。

3 系统级优化

Oracle数据库从物理结构上看, 是安装在硬件服务器上的由一个个文件组成的软件系统, 要确保其高效运行必须有充足的服务器资源来支撑。影响系统性能的主要问题有以下几个方面: (1) 现有系统自身存在的缺陷或不足; (2) CPU不足; (3) 内存不足; (4) I/O不足; (5) 网络约束; (6) 软件约束。在对数据库进行优化之前, 应该根据实际应用需求来配置服务器硬件, 选取合适的CPU型号及个数、存储容量大小等, 优化网络环境, 完善操作系统软件配置, 为Oracle数据库提供良好的运行环境。

4 数据库级优化

4.1 数据库设计开发阶段。

(1) 优化应用程序结构设计:在数据库系统设计阶段对其逻辑结构和物理结构进行优化设计, 系统性能可以达到最佳, 系统开销最小。因为不同的应用程序体系结构所要求的数据库资源是不同的, 要根据软件需求, 确定应用程序采用的体系结构, 是B/S、C/S还是其他体系结构。优化应用程序结构, 设置合理的数据库访问模式, 能极大提高数据库效率。 (2) 编写优质SQL语句:良好的SQL语句可以被数据库重复使用而减少分析时间, 充分利用了SQL语言和Oracle特性的应用程序处理速度较快, 效率较高。在进行数据库操作时, 选取合适的SQL代码, 能使程序更加明了, 运行速度也更快。 (3) 优化磁盘I/O:对于数据库系统来说, 磁盘I/O操作是数据库性能最重要的方面。减少磁盘I/O操作的最根本方法就是利用高速缓存存放频繁使用的数据信息, 恰当使用索引和Oracle分区技术能有效节约服务器查找时间, 减少磁盘操作。 (4) 参数优化:数据块的大小在数据库创建后不能改变, 因此在设计阶段必须确定合适的数据块大小和存储参数。一般来讲, 我们通常根据样例数据来确定数据块大小, 而根据业务量和未来数据库发展趋势确定存储参数。

Oracle数据库参数介绍: (1) LICENSE-MAX-SESSION。该参数指出允许并发用户会话的最大数。若此参数为0, 则不能实施并发。若并发的用户会话数已达到此极限, 则只有具有RESTRICTED SESSION权限的用户才能连接到服务器。 (2) CHECKPOINT-PRO-CESS。该参数根据是否要求检查点而设置成TRUE或者FALSE。当所有缓冲区的信息写到磁盘时, 检查点进程 (CHPT) 建立一个静态的点。在归档日志文件中做一个记号表示有一个检查点发生。检查点发生在归档日志转换的时候或当达到LOG-CHECKPOINT-IN-TERVAL定义的块数的时候。当设置此参数为TRUE时, 后台进程CHPT便可工作。在检查点期间内, 若日志写进程的性能减低, 则可用CHPT进程加以改善。 (3) DB-BLOCK-SIZE。该参数表示Oracle数据库块的大小, 以字节为单位, 典型值为2048或4096。该值一旦设定则不能改变。它影响表及索引的FREELISTS参数的最大值。 (4) OPTIMIZRER-MODE。若该参数的值为RULE, 则ORACLE优化器选择基于规则的优化;若设置为COST, 并且在数据字典中存在有统计信息, 则优化器选择基于代价的优化方法进行优化。

4.2 数据库运行阶段。

(1) SGA。在不影响应用系统的前提下, SGA应尽可能大, 通过合理设置SHARED-POOL-SIZE和DB-BLOCK-BUFFER的值来掌握好SGA的大小。如果服务器内存为1G, 那能够分配给SGA的内存大约是四五百兆, 通常我们习惯于通过直观的公式化来表达这样的问题:SGA+并发执行进程数* (sort-area-size+hashara-size+2M) +OS使用内存<总内存*70%。 (2) 共享池。共享池用于缓存最近被执行的SQL语句和最近被使用的数据定义, 主要包括库高速缓冲区和数据字典缓冲区。配置共享池的关键是看应该更改SHARED-POOL-SIZE还是应该使用保留池、大型池或Java池。通过查询库高速缓冲和数据字典缓冲的命中率, 可以衡量共享池的效率。 (3) 数据库缓冲区。数据库缓冲区是SGA中最大的区, 其大小设置是否合理直接跟应用系统的性能相关。通过测试我们得出结论:数据高速缓冲区的命中率最佳应保持在90%以上, 当该值低于80%时服务器性能就会下降, 而低于50%时则会严重影响服务器性能。 (4) 重做日志缓冲区。重做日志缓冲区的内存需求与数据库事务处理的数量和大小有关。重做日志缓冲池通常小于2M, 过大的重做日志将减少日志文件的I/O操作, 过小的重做日志缓冲区将会使日志写入过程过分繁忙。日志缓冲区的大小由LOG-BUFFER决定, 必须是DB-BLOCK-SIZE的整数倍。如果失败率大于1%, 则必须增大LOG-BUFF-ER的大小。

5 结束语

Oracle提供了丰富的选择环境, 可以从Oracle数据库的体系结构、软件结构、模式对象以及具体的业务和技术实现出发统筹考虑, 提高系统性能需要一种系统的整体方法, 在对数据库进行优化时, 需要对应用程序、系统和I/O子系统进行相应的优化, 有目的地调整一个或多个组件, 使系统满足一个或多个目标的过程。对于ORACLE来说, 优化是进行有目的调整组件级, 即增加吞吐量, 减少响应时间。综合考虑优化方案, Oracle应用按最优的方式来存取数据, 确保数据库的安全、稳定可靠。

摘要:在计算机技术中, Oracle数据库系统的优化对于整个系统的正常运行起着至关重要的作用, 但是它却是一项非常复杂的工作。Oracle数据库性能调整与优化涉及到多个层面, 并且可以提高Oracle数据库的稳定和可靠程度, 保障系统高效地运行, 解决系统瓶颈, 节约系统开销, 具有良好的应用价值。

关键词:数据库,Oracle,概述,优化,研究

参考文献

[1]魏亚楠, 宋义秋.Oracle数据库应用系统的性能优化[J].制造业自动化.2010.

Oracle数据仓库 篇8

1 快照的具体结构

快照的用途比较广泛,主要可以用于性能优化,数据抽取等方面,是Oracle数据仓库处理中的一个重要技术。限于快照技术的复杂性和本人能力的有限,具体内容请查询相关官方帮助文档。

快照技术提供给我们三种刷新机制,分别是:

1)Complete完全刷新机制,即对表的所有数据进行刷新,如果表的数据量十分庞大的,此法会消耗相当的时间;

2)Fast快速刷新,即只对数据增量进行刷新;

3)Force强制刷新,首先判断是否能用快速刷新机制,如不行则用完全刷新机制。

建立快照的基本语法如下:

Create snapshot<具体快照名字>as

建立刷新机制语句如下:

Alter snapshot<具体快照名字>refresh<刷新方式>start with<第一次刷新时间>next<间隔时间表达式>

下面将对Complete和Fast两种刷新机制分别进行介绍

首先我们假定已创建了一个名testshot的快照,具体语句如下:

Create snapshot testshot as

1.1 完全刷新快照

1)完全刷新快照的建立

上述语句的意思在快照建立的后的第2分钟,将进行第一次刷新,然后每隔12小时,快照自动进行刷新

2)如果想要进行手动刷新,既不受间隔时间的限制,具体语句如下

1.2 快速刷新快照即增量刷新快照

如要创建快速快照,则先要的源端数据表上建立快照日志,具体流程如图1所示。

1)在源端数据表上建立快照日志

2)设定快照刷新时间

Alter snapshot testshot refresh fast start with sysdate next sydate+1/2

从上面的语句中我们可以到其实完全刷新和快速刷新的基本语句是一样,只是刷新机制有所不同,需要的注意的如果你想使用快速刷新方式,则源端主表不能是视图,因为快照日志不能建立在视图上。

如果在应用过程发现快照不能正常工作,我们可以通过查询表user_jobs,来获取相应的信息,其表结构如表1所示。

2 数据快照建立前的准备工作

上面我们基本介绍了快照语句的基本写法和刷新时间的设置,下面我们将介绍应用数据快照我们所要做的准备工作,首先我们需要在本地Oracle数据上建立一个数据库账号,并在其下建立远程数据库链接。

创建账号的语句如下:

Create user binbin identified by binbin default tablespace pan temporary tablespace temp;

Grant connect,resource to binbin;

Grant create synonym to binbin;

Grant create snapshot to binbin;

Grant create database link to binbin;

上述语句的意思是创建账号binbin,密码为binbin,并赋予其相应的权限,具体含义请查询Oracle官方介绍

建立远程数据库链接,具体语句如下

Create database link<链接名>connect to<远程服务器用户名>identified by“密码”using“TNS配置的实例名“

下面我们将用上述基本语句创建一个名为bintobin的数据库链接

Create database linke bintobin connect to sa identifiede by“sa”using“test”

创建好数据库链接,意味着我们可以访问远程数据库上的数据了,并可以具体到其中的一个具体表,下面就是一个访问远程数据库上user表的一个快照

Create snapshot testshot as select*from user@test

3 数据快照技术的具体应用

由于现在学校各个部门都建立有自己的应用系统,各个应用系统数据库的建立时间不一,其中的数据结构、数据类型各不相同,所使用的数据库软件也不尽相同,如何快速准确的实现这些数据之间的交互同步,是我一直在研究的课题。使用快照技术就可以很方便的解决现有的问题。

下面是我院应用快照技术实现各个子系统间数据读取的实例。图2是各个数据库的分布。

关于快照刷新间隔的方面,由于各应用系统数据的更新要求不一。像一卡通消费数据要求隔天就能查到前一天的数据,而有的数据只需要隔两天进行一次更新即可,所以各个快照的具体刷新方式需要根据具体要求进行相应的设置。该方案至实施以来,在网络情况得以保证的前提下,数据的读取工作基本得以正常进行。

4 结束语

Oracle提供的快照技术为我们提供了一个快速读取远程数据的方法。利用快照可以容易的实现不同数据库间的数据同步和复制问题,特别是在实现数据的增量复制问题。一般都采用增量复制的方法来实现数据的同步,特别是在原数据量很大的情况,可以避免因出错而难以实现数据同步的问题。

参考文献

[1]王雄,左杰.基于快照日志的oracle数据表delta抽取算法[D].大连理工大学,2008.

上一篇:宫颈糜烂的诊治体会论文下一篇:小学数学教学有效性