教你设计大型Oracle数据库
作者:男人好好疼h爱你的女人吧 | 来源:互联网 | 2022-02-23 06:37
表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。
一、概论
超大型系统的特点为:
1、处理的用户数一般都超过百万,有的还超过千万,数据库的数据量一般超过1TB;
2、系统必须提供实时响应功能,系统需不停机运行,要求系统有很高的可用性及可扩展性。
为了能达到以上要求,除了需要性能优越的计算机和海量存储设备外,还需要先进的数据库结构设计和优化的应用系统。
一般的超大型系统采用双机或多机集群系统。下面以数据库采用Oracle 8.0.6并行服务器为例来谈谈超大型数据库设计方法:
确定系统的ORACLE并行服务器应用划分策略
数据库物理结构的设计
系统硬盘的划分及分配
备份及恢复策略的考虑
二、Oracle并行服务器应用划分策略
Oracle并行服务器允许不同节点上的多个INSTANCE实例同时访问一个数据库,以提高系统的可用性、可扩展性及性能。Oracle并行服务器中的每个INSTANCE实例都可将共享数据库中的表或索引的数据块读入本地的缓冲区中,这就意味着一个数据块可存在于多个INSTANCE实例的SGA区中。那么保持这些缓冲区的数据的一致性就很重要。Oracle使用 PCM( Parallel Cache Management)锁维护缓冲区的一致性,Oracle同时通过I DLM(集成的分布式锁管理器)实现PCM 锁,并通过专门的LCK进程实现INSTANCE实例间的数据一致。
考虑这种情况:INSTANCE1对BLOCK X块修改,这时INSTANCE2对BLOCK X块也需要修改。Oracle并行服务器利用PCM锁机制,使BLOCK X从INSTANCE 1的SGA区写入数据库数据文件中,又从数据文件中把BLOCK X块读入INSTANCE2的SGA区中。发生这种情况即为一个PING。PING使原来1个MEMORY IO可以完成的工作变成2个DISK IO和1个 MEMORY IO才能够完成,如果系统中有过多的PING,将大大降低系统的性能。
Oracle并行服务器中的每个PCM锁可管理多个数据块。PCM锁管理的数据块的个数与分配给一个数据文件的PCM锁的个数及该数据文件的大小有关。当INSTANCE 1和INSTANCE 2要操作不同的BLOCK,如果这些BLOCK 是由同一个PCM锁管理的,仍然会发生PING。这些PING称为FALSE PING。当多个INSTANCE访问相同的BLOCK而产生的PING是TRUE PING。
合理的应用划分使不同的应用访问不同的数据,可避免或减少TRUE PING;通过给FALSE PING较多的数据文件分配更多的PCM锁可减少 FALSE PING的次数,增加PCM锁不能减少TRUE PING。
所以,Oracle并行服务器设计的目的是使系统交易处理合理的分布在INSTANCE实例间,以最小化PING,同时合理的分配PCM锁,减少FALSE PING。设计的关键是找出可能产生的冲突,从而决定应用划分的策略。应用划分有如下四种方法:
1、根据功能模块划分,不同的节点运行不同的应用
2、根据用户划分,不同类型的用户运行在不同的节点上
3、根据数据划分,不同的节点访问不同的数据或索引
4、根据时间划分,不同的应用在不同的时间段运行
应用划分的两个重要原则是使PING最小化及使各节点的负载大致均衡。
三、数据库物理结构的设计
数据库物理结构设计包括确定表及索引的物理存储参数,确定及分配数据库表空间,确定初始的回滚段,临时表空间,redo log files等,并确定主要的初始化参数。物理设计的目的是提高系统的性能。整个物理设计的参数可以根据实际运行情况作调整。
表及索引数据量估算及物理存储参数的设置
表及索引的存储容量估算是根据其记录长度及估算的最大记录数确定的。在容量计算中考虑了数据块的头开销及记录和字段的头开销等等。表及索引的initial和next存储参数一般设为相等,pctincrease设为0。
推荐阅读
-
云计算是一种新的计算方式,它依托于互联网,以网络技术、分布式计算为基础,实现按需自服务、快速弹性构建、服务可测量等特点的新一代计算方式。然而,任何以互联网为基础的应用都存在着一定危 ...
[详细]
蜡笔小新 2024-09-28 19:38:11
-
1.Overview1.1并发读写秒杀要解决的主要问题是:并发读与并发写。并发读的优化理念是尽量减少用户到服务端来读数据,或者让他 ...
[详细]
蜡笔小新 2024-09-27 11:20:00
-
-
为什么80%的码农都做不了架构师?#0系列目录#聊聊远程通信Java远程通讯技术及原理分析聊聊Socket、TCPIP、HTTP、FTP及网 ...
[详细]
蜡笔小新 2024-09-26 18:02:26
-
本文很长,谨慎阅读现在在我们的面前摆着太多的分布式数据库可以让我们选择,那么如果我想先让 ...
[详细]
蜡笔小新 2024-09-26 15:36:10
-
前言:今天一觉起来,发现我们开工的日期又延迟了,虽然已经在家办公一个多礼拜了,但是由于家里的环境还是不能有很高的效率。于是干脆就对SpringCloud的一些知识点做了一些整理。 ...
[详细]
蜡笔小新 2024-09-26 11:16:30
-
蜡笔小新 2024-09-26 03:20:11
-
建议使用之前把官方的文档全部通读一遍这里提供一个我的网盘地址oneproxy百度网盘0.先对oneproxy有个大概的了解,知道他所处的位置1.MySQL服务器创建t ...
[详细]
蜡笔小新 2024-09-28 20:59:09
-
1DDDDomainDrivenDesign(领域驱动设计,DDD),不是一种架构,而是一种架构方法论,是一种拆解业务、划分业务、确定业 ...
[详细]
蜡笔小新 2024-09-27 12:58:00
-
前几天线上一个项目监控信息突然报告异常,上到机器上后查看相关资源的使用情况,发现CPU利用率将近100%。通过Java自带的线程Dump工具 ...
[详细]
蜡笔小新 2024-09-27 10:18:16
-
4月,InfoQ发布了软件架构与设计的趋势报告。在报告中可以看出,微服务、领域驱动设计等已经非常流行,并成为目前软件开发行业的主流趋势。大 ...
[详细]
蜡笔小新 2024-09-26 22:03:32
-
大三上结束之际,从网上找来一些关于计算机网络的知识作为总结,本文四篇笔记全部转自猪头任(博客地址:http:www.cnbl ...
[详细]
蜡笔小新 2024-09-26 20:26:13
-
一、概述ceph为k8s提供存储服务主要有两种方式,cephfs和cephrdb;cephfs方式支持k8s的pv的3种访问模式ReadWriteOnce,ReadOnlyMany ...
[详细]
蜡笔小新 2024-09-26 19:05:00
-
如何提升自己的实力?Step1:梳理自己的知识对照下面这份学习大纲,梳理出自己的知识盲区,这份大纲里面的技术点完全对标P ...
[详细]
蜡笔小新 2024-09-26 17:23:26
-
写操作MongoDB比传统数据库快的根本原因是Mongo使用的内存映射技术,写入数据时候只要在内存里完成就可以返回给应用程序,这 ...
[详细]
蜡笔小新 2024-09-26 12:32:38
-
MapReduce的主要应用场景 可以转化为MR任务的条件:问题必须可以拆分子问题必须独立数据结构能够满足key-value的这样的模式 常见场景: ...
[详细]
蜡笔小新 2024-09-26 11:53:33
-
男人好好疼h爱你的女人吧
这个家伙很懒,什么也没留下!