oracle调优 性能与安全的权衡

性能与安全的权衡

对于数据库调优而言,没有绝对的性能也没有绝对的安全。正如鱼和熊掌不能兼得一样,是不能完全兼顾的,就像是矛和盾此消彼长。下面就对比较常见的几个因素做一个简要的阐述:

1、多元化控制文件:

多个地方,意味着更安全,一个损坏了可以转储另外一个继续使用。但同样,越多也意味着IO压力越大,一般为2到3个控制文件多元化。比如:假设3个控制文件都损坏的概率已经相当低了,再多的控制文件也就没有意义了。因为一个控制文件损坏,数据库立刻就会崩溃,检查点的发生会产生预警信息,这样就可以根据提示人为的做出干预,尽快对其解决。

2、多元化日志组成员:

多远化日志组成员一样,越多也就意味着IO压力越大,但对于日志组,要根据实际生产环境去制定适宜的日志组个数、日志组成员的个数、日志组的大小。

3、经常产生检查点:

发生检查点以后,如果要做数据恢复的话,说明要从检查点以后数据进行恢复,这就意味着检查点发生的多,恢复的量级就少。即使数据丢失,也能确定发生这个检查点的时候,数据都写入到了数据文件里。但经常发生检查点对于性能上IO量会大。因为发生检查点时脏块会同步到磁盘上,设计脏块的目的就是一个脏块修改了很多次,在将脏块写入到磁盘的时候可以一次完成。有一点要提及的就是修改内存中的数据状态要比修改磁盘中的数据状态快很多,设想一下把多次修改内存中的状态,变成多次直接修改磁盘中的状态,会有怎样的变化。做一个极端化假设,脏块每次细微变化就触发一次检查点,把脏块写入到磁盘中,是保证了数据的安全性,但这就破坏设计缓冲区的目的。记住一点,写入磁盘的数据效率要远低于写入内存数据的效率。

4、数据文件备份:

没有备份,数据丢失是无法恢复的。要明确的知道,在做数据的备份的时候,会产生大量的读和大量的写,这个过程需要很大的IO,做的多对数据库是有影响的。但客户都会有一个最长的恢复时间(到达现场的时间、转储环节、recover环节,经过测试能满足客户要求的最长的停机时间),如恢复一周数据需多长时间,要有备份策略,在做备份之前要跟客户协调好,如果可以的话需要签署某些备份协议以保证双方应承担的义务和责任。

5、开启归档:

一般生产库均会开启归档,排除某些允许数据可以丢失的现场环境,实际工作中很少有不开归档的。一旦存在这种情况的话,往往数据是可以从其它途径恢复的。如把数据从库中导出,这样就可以接受非归档。举个例子可以不开归档,比如一个用于实验或分析的库,其中的数据是由另外的库导入的,这种情况就可以接受不开归档。

同样的,归档的路径越多,安全性越高,性能影响就会越大,这就是一个相互制衡的因素。

6、数据块检查:

举例:

SQL> show parameter check

NAME                       TYPE      VALUE

------------------------------------     -----------    ------------------------------

db_block_checking             string      FALSE

db_block_checksum            string      TRUE

log_checkpoint_interval         integer     0

log_checkpoint_timeout         integer     1800

log_checkpoints_to_alert        boolean    FALSE

由上图的视图可以查询到db_block_checking参数:

FALSE:表示当从数据缓存区把数据往磁盘上写的时候,仅要求system表空间往下写的时候,是需要验证的,其它表空间不做验证;

TRUE:表示所有表空间在写脏块时都做验证。

该数据库检查越多,IO越多,但数据越安全。这就要看事务的重要程度了。

7、并发的用户和事务数量:

这是对于系统资源损耗情况的讨论,不能单从资源消耗多就判断系统性能有问题,因为对于资源的使用上,比如说当使用多时可以接受很多的用户操纵,在单位的时间内可以完成很多的事务。为了做到这点,负荷必然大,性能消耗必然多。这就是一个平衡点,一般需要保证系统在一个平稳的状态下运行后,尽可能多的去承担用户的访问为佳(即事务量越多越好)。

优化的影响因素有很多,这只是对某几点的一个简单阐述,在博客中会逐渐的通过几方面去扩展优化。如果感兴趣的话,可以关注一下。

oracle调优 性能与安全的权衡,布布扣,bubuko.com

时间: 2024-07-30 13:46:49

oracle调优 性能与安全的权衡的相关文章

ORACLE 调优

Oracle数据库应用系统的调优主要包括十个方面:(1).优化数据库内存:(2).在Oracle共享池中固定应用程序代码:(3).优化数据存储:(4).优化数据排序的技术:(5).优化SQL语句:(6).优化回退段:(7).优化索引:(8).优化磁盘I/O:(9).定期生成数据库对象的状态统计信息:(10).优化操作系统环境.其实质就是降低CPU负载.改善I/O性能. 1.化磁盘I/O数据库的作用就是实现对数据的管理和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数

oracle调优 浅析“会话管理开销”

调优之浅析"会话管理开销" [简介] 在调优的过程中,对于会话的管理是比较普遍的问题,因为维护会话的开销相对是比较高的. [过程表现如下] 客户请求(sid)→监听接收到→监听派生出新的进程(systemprocess id)→客户进程 注释: SPID:system process id,表示该serverprocess在OS层面的Process ID(操作系统进程ID); PID:oracle process id,可以理解为Oracle自身使用的进程ID; SID:session

【我的技术我做主】oracle调优笔记(揭开传言的面纱)

一.oracle的不解之缘 别人高考报志愿,都是因为热爱那门专业,所以选择了大学的专业.还有些人报志愿是看到了未来长远的发展比较好,所以选择了大学的专业.而我呢高考志愿是如何选择的呢?家里人没啥文化,父母全是普通的老百姓,自然也没有人帮我参考报啥专业.于是和母亲商量上网查查吧,哪个专业比较好?搜着搜着,看到了一条"某互联网公司招聘数据库专业人员,年薪10W",我毫不犹豫的报了我的大学专业<数据库设计与开发>.现在回想起来,我自己都觉得可笑,就因为那1条招聘信息,我选择了我的

java程序性能调优---------------性能概述

一.程序的性能通过哪几个方面表现 1.执行速度(程序反应反应是否迅速.响应时间是否足够短) 2.分配内存 (分配内存是否合理,是否过多的消耗内存或者内存溢出) 3.启动时间(程序从运行到可以正常处理业务需要花费多长时间) 4.负载承受能力(当系统压力上升时,系统的执行速度.响应时间的上升曲线是否平缓) 二.性能的参考指标 1.执行时间(一段代码从开始运行到运行结束,所使用的时间) 2.CPU时间(函数或者线程占用CPU实际) 3.内存分配(程序在运行时占用的内存空间) 4.磁盘吞吐量(描述I/O

mysql5.6使用sysbench调优性能提高108%

我使用的是saltstack源码编译安装mysql5.6,具体怎么安装直接百度就可以了,一大堆都是.下面我们来讲一下我们的重点,mysql的优化,优化分为硬件和软件,硬件,这个当然就是你机器的配置了,当然是越高越好,我的机器配置8c+16g. 压测工具sysbench. 这个是之前参照一个网友的配置做的优化: [client] #password = your_password port = 3306 socket = /tmp/mysql.sock [mysqld] port = 3306 s

oracle调优 浅析关联设计

浅析关联设计 [范式] 比較理想的情况下,数据库中的不论什么一个表都会相应到现实生活中的一个对象,如球员是一个对象,球队是一个对象,赛程是一个对象,比赛结果又是一个对象等等,则就是范式. [关联设计] 对于关联设计能够理解成表和表之间要有关联关系,在对表查询时常常使用关联查询. 补充:关系数据库的来源:对一个事务操作要从多个表中读. 如2014巴西世界杯这个表空间中要有球员表.赛程表.比赛结果表,比赛结果表要关联比赛的队伍名字.球员的名字最后关联一个比赛的结果,这就是一个简单的关联关系.至于为何

oracle调优 浅析有效的游标管理

浅析有效的游标管理 [思路分析] 能够把游标理解成共享的运行计划,当sql不被共享时.常规的解决思路有两个方向: 1.调整共享池的尺寸(共享池的库缓存区中共享运行计划): 2.sql书写时尽量重用绑定变量,以起到共享sql的作用. [较差的游标管理体现] 1.不重用运行计划(缺少绑定变量) 2.重用的运行计划保留不下来(共享池尺寸过小)

Hadoop性能调优总结(一)

目的 随着企业要处理的数据量越来越大,Hadoop运行在越来越多的集群上,同时MapReduce由于具有高可扩展性和容错性,已经逐步广泛使用开来.因此也产生很多问题,尤其是性能方面的问题.这里从管理员角度和用户角度分别介绍Hadoop性能优化的一些体会. 本文是基于Hadoop 0.20.x(包括1x),cdh 3及以上版本做介绍.(Hadoop的版本比较杂乱,具体可以看参考部分链接介绍). 管理员角度 1.    硬件选择: Master机器配置的选择要高于slave机器配置的选择. 2.  

Oracle SQL调优记录

目录 一.前言 二.注意点 三.Oracle执行计划 四.调优记录 @ 一.前言 本博客只记录工作中的一次oracle sql调优记录,因为数据量过多导致的查询缓慢,一方面是因为业务太过繁杂,关联了太多表.面对复杂的业务场景,确实有些情况是需要关联很多表的.当然有些情况是可以将业务实现放在Java代码里,有些情况可以不要关联很多表. 二.注意点 对于SQL调优,不要马上就说加索引什么的,加索引不一定就能解决问题的,加错索引,反而会导致查询变慢,注意加索引的同时也会影响数据库写数据的速度. 三.O