大型数据库T管理
谈谈自己的想法:
在分析这个问题的时候,需要看这个数据库是OLTP,OLAP还是DSS,不同的类型管理的侧重应该是不一样的。
数据库的规划:
对于大多数数据库来说,之所以这个数据库能够上T,是因为一个或者多个表的数据量比较大,而数据量比较大的表的数量一般不是很多,这是因为在数据库开始规划的时候就应该考虑到这些问题。一般来说会根据功能,IO,或者表的大小等将数据库split。
在数据库的规划阶段还需要注意的问题是有可能成为大表的两个或者几个大表之间的连接问题,一般来说系统出现性能问题很大程度上是两个大表之间的jion产生的,所以表尤其是大表,在OLTP的环境下应该尽量的简单,不能将这个表的业务层面上设计的过于复杂,这个一方面建立的索引会比较多,影响DML操作。另一方面过于复杂在jion的时候会影响性能的提高。
大表的分区:
将大表进行分区应该是一个不错的选择,但是分区表是一个双刃剑,需要注意分区键的选择,因为表的分区是需要一定的技巧,选择不适当的分区键会对性能产生不好的影响,更甚的是有可能不能实现Oracle所说的分区表的好处:易于管理,高可用性,高性能,因此分区表使用的技巧是能否使用好分区表这个功能的关键。
IO的分配:
T级的数据库一般来说是使用SAN来实现,这里面牵涉到RAID类型的选择,一般来说使用RAID01比RAID5有更好的性能,但是开销也随之增大,同时SAN的配置问题也是一个比较重要的问题,例如cache上读和写之间比例的问题在不同的OLTP和DSS数据库上是不一样的。还有就是条带化,条带的宽度大小的选择需要数据库上的块的大小,exent大小相关。
还有数据文件,日志文件和临时,回滚文件的物理磁盘分配的问题,尽量做到物理IO的均衡。
数据库的备份与恢复
T级的数据库一般来说由于数据量比较大,全数据库的备份的频率比较低,一般采用增量备份,需要一个合理,安全,完整,易行的备份策略来保证备份的完成,这里面需要重要注意的问题有两个:1、备份文件的可用性,需要检查备份集是否可用。2、增量备份的速度,合理利用Oracle的新特性来提高备份速度。
备份数据库的建立和数据库的容灾也应该是大型数据库需要考虑的问题之一。
日常操作:
T级数据库的日常操作和平常的数据库的操作实现上,需要注意的问题就是,由于数据量很大,一个操作可能小数据量的数据库上几分钟就能够完成的事情,但是在T级的数据库上可能要几十甚至几个小时,几天的时间,由于时间过长会引起过长共享资源的占用和锁的产生,这样会影响其他事务的运行,所以在进行日常操作的时候,需要事先预见一下这个操作可能产生的影响,如果会对其他会话产生较大影响的话,可以考虑分阶段运行这个命令,尽量不要对系统的允许产生较大的影响。
数据的迁移:
可以将大表上不使用的数据删除,或者迁移到其他的备用数据库上,但是这一点还是需要根据业务的需要来实际操作,如果分区表使用的恰当的话,这些应该就不是问题。
SQL优化
这一部分应该是比较重要的,尤其是牵涉到大表,做一些统计之类的SQL优化,将是你数据库性能重要表现之一,有几个原则,1、尽量减少对大表的访问次数,尤其是全表扫描。2、可以使用Oracle的一些特性,例如分析函数的使用。3、一些不常使用,但是运行时间较长的SQL可以考虑不使用绑定变量。4、业务上的考虑。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/222350/viewspace-981518/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/222350/viewspace-981518/
1029

被折叠的 条评论
为什么被折叠?



