大数据量数据库解决方案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1 解决32G数据文件上限问题
Oracle的默认数据块大小为8k,导致oracle单个数据文件的上线是32G。我们可以通过增加新数据文件到表空间来扩充表空间容量。方法如下:
1 新建表空间:
CREATE TABLESPACE TBS_KK DATAFILE ‘D:\DEMO\TBS_HIKVISION.DBF’ SIZE 30G;
注意:TBS_KK为新建表空间名;DATAFILE为对应数据文件的绝对路径,要求出最后的数据文件名之外的路径必须在操作系统中存在,即oracle不会新建不存在的目录;由于表空间是oracle存储数据的逻辑单位,相当于windows的盘符概念,所以要求在创建表空间时必须制定DATAFILE参数,即必须指定数据文件;数据文件大小原则上不许超过32G。
2 指定系统默认表空间
ALTER DATABASE DEFAULT TABLESPACE TBS_HIKVISION;
注意:执行该命令的用户必须具有dba角色,并且表空间必须是已建表空间。
执行了这条语句之后,用户新建的表如无特殊指定,都会新建在制定TBS_HIKVISION表空间中。
3 扩展表空间
有三种方法可以扩展表空间
1) 增加数据文件
ALTER TABLESPACE TBS_HIKVISION ADD DATAFILE ‘D:\DEMO\USER02.DBF’ SIZE
30G;
2) 手工改变数据文件大小
ALTER DATABASE DATAFILE ‘D:\DEMO\USER01.DBF’ RESIZE 20G;
3) 设置数据文件自动扩展
ALTER DATABASE DATAFILE ‘D:\DEMO\USER01.DBF’ AUTOEXTEND ON NEXT 10M
MAXSIZE 30G;
其中NEXT为每次扩展的步长,MAXSIZE为最大扩展容量。不建议采用此方法,
因为如果数据量很大,也就是说正常运行oracle的压力也是很大的,自动扩展
不利于oracle的磁盘碎片整理,而且扩展时会降低其他oracle操作的速度。
综上,数据库表空间容量问题可以解决。另外还有一种快速解决方法。
Oracle推出大容量表空间专门解决大数据量表的存储问题,方法如下:
CREATE BIGFILE TABLESPACE TBS_BIG_HIK DATAFILE ‘D:\DEMO\BIG.DBF’ SIZE 32T;
优点:显著提高存储能力,oracle对于一个大数据文件的使用效率要远高于多个小数据文件的效率。
缺点:只能包含一个数据文件(即要求操作系统一个盘符就要满足数据文件容量,这会导致一些磁盘阵列上无法直接使用或导致一些盘符闲置)
2 用分区表来优化table1和table2存储:
Table1和Table2表存储大量数据,并且这两个几乎不会出现delete和update,而insert量特别大。针对这个特点,可以采用以下几个方法优化。
分区表空间是Oracle专门针对大数据量数据库应用的解决方案,可分为范围分区、散列分区、列表分区、组合分区四种。其中范围分区比较适合我们的应用,范围分区会把表的数据按照不同范围进行划分来存储,这样不同范围的数据会比较均衡,并且利于检索。