设为首页 收藏本站
查看: 876|回复: 0

[经验分享] 超大型Oracle数据库应用系统的设计方法

[复制链接]
YunVN网友  发表于 2016-8-13 06:23:14 |阅读模式
  
超大型Oracle数据库应用系统的设计方法
  这篇文章主要介绍了几种超大型Oracle数据库应用系统的设计方法,详细内容请参考下文。
  一、概论
  超大型系统的特点为:
  1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;
  2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。
  为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。
  一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle并行服务器为例来谈谈超大型数据库设计方法:
    n 确定系统的ORACLE并行服务器应用划分策略
    n 数据库物理结构的设计
    n 系统硬盘的划分及分配
    n 备份及恢复策略的考虑
  二、Oracle并行服务器应用划分策略
  Oracle并行服务器允许不同节点上的多个INSTANCEPLSQL)实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过IDLM(集成的分布式锁管理器)实现PCM ,并通过专门的LCK进程实现INSTANCE实例间的数据一致。
  考虑这种情况:INSTANCE1BLOCK X块修改,这时INSTANCE2BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK XINSTANCE 1SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2SGA区中。发生这种情况即为一个PINGPING使原来1MEMORYIO可以完成的工作变成2DISKIO1MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。
  Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE1INSTANCE2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PINGTRUE PING
  合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUEPING;通过给FALSEPING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING
  所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法:
  1、  根据功能模块划分,不同的节点运行不同的应用
  2、  根据用户划分,不同类型的用户运行在不同的节点上
  3、  根据数据划分,不同的节点访问不同的数据或索引
  4、  根据时间划分,不同的应用在不同的时间段运行
  应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。
  三、数据库物理结构的设计
  数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。
  表及索引数据量估算及物理存储参数的设置
  表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。表及索引的initialnext存储参数一般设为相等,pctincrease设为0
  表空间的设计
  Oracle数据库的表和索引是通过表空间tablespace存储在数据库中的。在tablespace设计时一般作以下考虑:
  1、 一般较大的表或索引单独分配一个tablespace
  2、 Read only对象或Readmostly对象分成一组,存在对应的tablespace中。
  3、 tablespace中的对象皆是read only对象,可将tablespace设置成read only模式,在备份时,read only tablespace只需备份一次。
  4、高频率insert的对象分成一组,存在对应的tablespace中。
  5、增、删、改的对象分成一组,存在对应的tablespace中。
  6、表和索引分别存于不同的tablespace
  7、存于同一个 tablespace中的表(或索引)的extent 大小最好成倍数关系,有利于空间的重利用和减少碎片。
  DB BLOCK SIZE
  超大型数据库DB BLOCK SIZE一般在4KB 64KB,而最常用的是8KB 16KB32KB。选用较大的DBBLOCK SIZE可使INDEX的高度降低,也会提高IO效率。
  Redo Log Files
  Oracle进程redo log writer LGWR)将日志写入日志文件。一般日志文件最好建在专用的镜像盘上。日志文件组的个数及文件的大小的设定与系统交易量的大小有关。ORACLE并行服务器中每个INSTANCE使用各自的一组rego log files。一般的每组日志文件的个数为3-7个,每个的大小为200MB-500MB
  数据文件大小
  建议用标准的文件大小,如200M1GB2GB4GB8GB等,可简化空间的维护工作。
  回滚段
  回滚段一般建在专用的表空间中。每一个INSTANCE实例拥有各自的回滚段。设置回滚段的一般原则是: initial next 存储参数的值是相等的,同时还是DB BLOCK SIZE的倍数。每个回滚段的minextents设为20optimal参数的值保证回滚段缩小时不低于20extents
  临时表空间
  临时表空间一般建在专用的表空间中。每一个INSTANCE实例拥有各自的临时表空间。这样使用临时表空间时不会有PING。设置临时表空间的initial=next
  四、系统硬盘的划分及分配
  在多机集群环境下,Oracle并行服务器通过操作系统提供的DRD服务来共享同一个数据库。每一个INSTANCE对数据库的数据文件的访问都是通过该数据文件所在的DRD服务进行的。
  考虑以下情况:主机1上有DRD服务1,该服务对应的数据文件有12133567等,这时如果主机2上的INSTANCE2需要读取数据文件13,通过DRD服务调度,主机1通过DRD服务访问磁盘阵列上的数据文件13,把INSTANCE2需要的数据读到内存,然后通过MEMORY IO把数据传到主机2INSTANCE2。写操作是读操作的逆过程。
  通过以上分析可知,系统硬盘的划分及分配的原则是尽量减少MEMORYIO
  五、备份及恢复策略的考虑
  数据库的备份与恢复在系统设计中占很重要的地位。好的备份及恢复策略可以降低系统的运行风险,减少因硬件故障而造成的损失。
  Oracle备份方法:
  1、物理备份
  将数据库的物理文件通过操作系统的命令或工具备份到备份介质上。物理备份往往用于存储介质故障时恢复数据库系统的数据。
  根据数据库运行方式的不同,可进行不同的物理备份:
  a)物理冷备份(offline backup
  物理冷备份要求数据库在关闭(所有INSTANCEs停止)的情况下进行。这种备份必须是完全备份,即需备份所有的数据文件、控制文件(control file)、日志文件(redo log file)、初始参数文件等等。
  物理冷备份的步骤简单,但要求系统能够停止。
  b)物理热备份(online backup
  物理热备份是在数据库系统正常运行的情况下进行的数据库备份。这种备份可以是数据库的部分备份,既备份数据库的某个表空间(tablespace)或某个数据文件(datafile),也可备份控制文件(control file)。
  物理热备份要求数据库在ARCHIVELOG模式下运行。这种备份一般用于应用系统不能停机的情况。
  c)归档日志文件备份(archived log file backup
  要使数据库系统能够恢复到故障点前一时刻状态,或恢复到某指定时刻状态,数据库必须采用ARCHIVELOG模式。在ARCHIVELOG模式下,数据库系统会产生归档日志文件(archive log files)。归档日志文件也需备份到备份介质上。在恢复时,这些文件可使数据库恢复到最近状态。
  归档日志文件产生在指定目录下,这些文件一生成就可以备份到备份介质上,DBA可根据磁盘空间情况,定时将它们备份出去。
  2、逻辑备份
  逻辑备份是通过Oracle提供的Export工具,将数据库的结构定义及其数据卸出到特定格式的文件中,并备份该文件。
  在实际应用中,逻辑备份与物理备份并用。一般来说,物理备份用于磁盘介质损坏或数据文件损坏;逻辑备份用于数据库中的某些对象被破坏或用户误操作。
  备份策略的考虑主要在以下三个方面:
 
l        存储空间
l        对现行运行的系统的性能影响
l        恢复时间的影响
  如果需要节省空间和恢复时间就需要增加备份的频率,但是备份操作会明显增加现行运行的系统的负载。
  Oracle的恢复方法
n        根据不同的备份方法采用不同的恢复方法。
n        使用物理备份恢复
  Oracle提供了三种恢复手段:
l        数据库级的恢复
l        表空间(Tablespace)的恢复
l        数据文件的恢复
  数据库级的恢复要求数据库在关闭但Mount的状态下进行。表空间及数据文件的恢复可在数据库运行的状态下进行。
  使用逻辑备份恢复

    当数据库中的某一对象被损坏,或用户的误操作使数据破坏(如误删表) 时可用逻辑备份恢复。用逻辑备份只能恢复到备份时刻

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-256889-1-1.html 上篇帖子: ORACLE SEQUENCE的简单介绍(自增长字段) 下篇帖子: 关于Oracle数据库的启动和停止
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表