数据库性能与安全检查-高效进行Oracle日常巡检 (数据库性能与什么有关)

教程大全 2025-07-17 06:59:30 浏览

前言

​对于线上的业务,oracle的数据库运行的稳定性和安全性是用户关心的一个至关重要的问题,除了通过监控平台对数据库进行监控以外,还需要定期对数据库进行“体检”,是保障数据库稳定运行的必不可的辅助手段。本文简要介绍在系列一的基础上需要巡检的内容,主要包括资源使用、性能、安全性等。

一、检查oracle相关资源的使用情况

主要检查Oracle相关资源的使用情况,包含:

总共七个部分。

1. 检查oracle初始化文件中相关参数

若LIMITVALU-MAXUTILIZATION<=5,则表明与RESOURCENAME相关的Oracle初始化参数需要调整。可以通过修改Oracle初始化参数文件$ORACLEBASE/admin/ORCL/pfile/initORCL.ora来修改。

2. 检查数据库连接情况

查看当前会话连接数,是否属于正常范围。

其中:

3. 检查系统磁盘空间

如果文件系统的剩余空间过小或增长较快,需对其进行确认并删除不用的文件以释放空间。

4. 检查表空间的使用情况

如果空闲率%Free小于10%以上(包含10%),则注意要增加数据文件来扩展表空间而不要是用数据文件的自动扩展功能

5. 检查一些扩展异常的对象

如果有记录返回,则这些对象的扩展已经快达到它定义时的最大扩展值。对于这些对象要修改它的存储结构参数。

6. 检查system表空间内的内容

如果记录返回,则表明system表空间内存在一些非system和sys用户的对象。应该进一步检查这些对象是否与我们应用相关。如果相关请把这些对象移到非System表空间,同时应该检查这些对象属主的缺省表空间值。

7. 检查对象的下一扩展与表空间的最大扩展值

如果有记录返回,则表明这些对象的下一个扩展大于该对象所属表空间的最大扩展值,需调整相应表空间的存储参数。

二、检查数据库的性能

检查Oracle数据库性能情况,包含:

总共十个部分。

1. 检查数据库的等待事件

如果数据库长时间持续出现大量像latch free,enqueue,buffer busy waits,db file sequential read,db file scattered read等等待事件时,需要对其进行分析,可能存在问题的语句。

2. Disk Read最高的SQL语句的获取

3. 查找前十条性能差的SQL

4. 等待时间最多的5个系统等待事件的获取

5. 检查运行很久的SQL

6. 检查消耗CPU最高的进程

7. 检查碎片程序高的表

8. 检查表空间的 I/O 比例

高效进行Oracle日常巡检

9. 检查文件系统的 I/O 比例

10. 检查死锁及处理

查询目前锁对象信息:

oracle级kill掉该session:

操作系统级kill掉session:

11.查看是否有僵死进程

有些僵尸进程有阻塞其他业务的正常运行,定期杀掉僵尸进程。

12. 检查缓冲区命令中率

13. 检查共享池命令中率

如低于95%,则需要调整应用程序使用绑定变量,或者调整数据库参数shared pool的大小。

14.检查排序

如果disk/(memoty+row)的比例过高,则需要调整sortareasize(workareasizepolicy=false)或pgaaggregatetarget(workareasizepolicy=true)。

15. 检查日志缓中区

如果redo buffer allocation retries/redo entries 超过1% ,则需要增大log_buffer。

三、检查数据库cpu、I/O、内存性能

1. CPU使用情况

2. 内存使用情况

3. 系统io情况

四、检查Oracle数据库的安全性

主要检查Oracle数据库的安全性,包含:检查系统安全信息,定期修改密码,总共两个部分。

1. 检查系统安全日志信息

系统安全日志文件的目录在/var/log 下,主要检查登录成功或失败的用户日志信息。

检查登录成功的日志:

检查登录失败的日志:

在出现的日志信息中没有错误(Invalid、refused)提示,如果没有(Invalid、refused)视为系统正常,出现错误提示,应作出系统告警通知。

2. 检查用户修改密码

数据库系统上往往存在很多的用户,如:第三方数据库监控系统,初始安装数据库时的演示用户,管理员用户等等,这些用户的密码往往是写定的,被很多人知道,会被别有用心的人利用来攻击系统甚至进行修改数据。需要修改密码的用户包括: 数据库管理员用户SYS,SYSTEM;其他用户。

修改密码方法:


oracle 启动必须开启什么进程

2、startup mount dbname安装启动,这种方式启动下可执行:数据库日志归档、数据库介质恢复、使数据文件联机或脱机,重新定位数据文件、重做日志文件。 执行“nomount”,然后打开控制文件,确认数据文件和联机日志文件的位置,但此时不对数据文件和日志文件进行校验检查。 3、startup open dbname先执行“nomount”,然后执行“mount”,再打开包括Redo log文件在内的所有数据库文件,这种方式下可访问数据库中的数据。 4、startup,等于以下三个命令startup nomountalter database mountalter database open5、startup restrict约束方式启动这种方式能够启动数据库,但只允许具有一定特权的用户访问非特权用户访问时,会出现以下提示:ERROR:ORA-: ORACLE 只允许具有 RESTRICTED SESSION 权限的用户使用6、startup force强制启动方式,当不能关闭数据库时,可以用startup force来完成数据库的关闭,先关闭数据库,再执行正常启动数据库命令7、startup pfile=参数文件名带初始化参数文件的启动方式先读取参数文件,再按参数文件中的设置启动数据库

如何做SQL Server性能测试

对于DBA来讲,我们都会做新服务器的性能测试。 我会从TPC的基准测试入手,使用HammerDB做整体性能评估(前身是HammerOra),跟厂商数据对比。 再使用DiskSpd针对性的测试磁盘IO性能指标(前身是SQLIO),再到SQLIOSIM测试存储的完整性,再到ostress并发压力测试,对于数据库服务器迁移,我们还会收集和回放Profiler Trace,并收集期间关键性能计数器做对比。 下面我着重谈谈使用HammerDB的TPC-C来做SQL Server基准测试。 自己写负载测试代码很困难为了模拟数据库的负载,你想要有多个应用程序用户和混合数据读写的语句。 你不想总是对单一行更新相同的值,或者只是重复插入假的值。 自己动手使用Powershell、C#等语言写负载测试脚本也不是不可能,只是太消耗时间,你需要创建或者恢复数据库,并做对应的测试。 免费而简单的压测SQL Server:使用HammerDB模拟OLTP数据库负载HammerDB是一个免费、开源的工具,允许你针对SQL Server、Oracle、MySQL和PostgreSQL等运行TPC-C和TPC-H基准测试。 你可以使用HammerDB来针对一个数据库生成脚本并导入测试。 HammerDB也允许你配置一个测试运行的长度,定义暖机阶段,对于每个运行的虚拟用户的数量。 首先,HammerDB有一个自动化队列,让你将多个运行在不同级别的虚拟用户整合到一个队列--你可以以此获得在什么级别下虚拟用户性能平稳的结果曲线。 你也可以用它来模拟用于示范或研究目的的不同负载。 用于SQL Server上的HammerDB的优缺点HammerDB是一个免费工具,它也极易访问和快速的启动基准测试和模拟负载的方法。 它的自动程序特性也是的运行工作负载相当自动。 主要缺点是它有一个学习曲线。 用户界面不是很直观,需要花费时间去习惯。 再你使用这个工具一段时间之后,将会更加容易。 HammerDB也不是运行每一个基准测试。 它不运行TPC-E基准,例如,SQL Server更热衷于当前更具发展的OLTP基准TPC-E。 如果你用HammerDB运行一个TPC-C基准,你应该理解它不能直接与供应商提供的TPC-C基准结果相比较。 但是,它是免费的、快速的、易用的。 基准测试使用案例基准测试负载不能精确模拟你的应用程序的特点。 每个负载是唯一的,在不同的系统有不同的瓶颈。 对于很多使用案例,使用预定义的基准测试仍然是非常有效的,包括以下性能的比较:多个环境(例如:旧的物理服务器,新的虚拟环境)使用各种因素的不同及时点(例如:使用共享存储和共享主机资源的虚拟机的性能)在配置改变前后的点当然,对一个数据库服务器运行基准测试可以影响其他SQL Server数据库或者相同主机上其他虚拟机的性能,在生产环境你确保有完善的测试计划。 对于自学和研究来说,有预配置的负载非常棒。 开始使用基准测试你可以从阅读HammerDB官方文档的“SQL Server OLTP Load Testing Guide”开始。

Oracle数据库安全性设计?大家给点建议

Oracle数据库安全性设计建议一、 什么是安全的系统安全性建设是一个长期并且卓绝的工作。 作为一个符合标准的企业级系统,我们认为税务系统应该具备以下的安全性特点: 高可用性 对敏感数据的访问控制能力。 监测用户行为的审计能力。 用户帐号管理的有效性和扩充性二、 从哪些方面作安全性检查一个企业级系统的安全性建设并不仅仅局限于软件技术方面的设置和控制,甚至我们可以说,技术仅仅位于一个补充和提高现有安全性的地位上。 通常,应该按照重要性依次进行如下的安全性检查。 物理层面的控制控制物理接触是系统安全性建设的第一步,也是最会有成效,最应该优先执行的一步。 权威安全研究显示,70% 的信息系统数据损失和攻击都是由“内部人”(即具备某种系统及其数据访问权限的用户)造成和发起的。 比如,授权人员才可以进入机房,管理人员的密码不要记录在显眼的地方,离开个人终端锁定屏幕,等等,这些建议看上去似乎比较琐碎。 但是如果缺少了这些意识,即使我们运用了再好的安全性技术,再复杂的数据分离技术,当一个人可以接近需要保护的服务器,当一个人可以通过窃取的密码接近需要保护的数据,那么一切的安全性建设都将是一个摆设。 千里之堤,毁于蚁穴。 一个牢固的堤坝不会因为外界洪水的冲击而倒塌,却会崩坏于隐藏在自身内部的蛀虫。 所以,最佳的方法是不要让蚂蚁靠近堤坝。 安全性流程建设实施安全性建设之后,必须要有一个详细周密而且行之有效的流程控制(process Control)。 其中行之有效是我们应该注意的。 有时候会听到抱怨,在增强了安全性建设的系统中,维护人员由于分工过细,导致整个系统的应变能力下降,维护成本提高,管理效率降低。 以前一个人可以在10分钟内作好的修改,现在却要途经3,4个人之手,耗时1-2天还不一定能够做完。 过犹不及,建立一个符合企业自身需求的安全性流程是我们应该优先考虑的。 普遍性的安全性措施不仅仅是Oracle数据库系统,作为一个具有领先性的IT系统,都应该包括以下的安全性措施。 1. 只安装需要的软件每个软件都有缺陷,对于Oracle数据库软件来说,自定义安装,只选取需要的组件,少作少错,这一点在安全性方面显得尤为重要,一个具有潜在安全性漏洞的组件,如果它没有被安装。 那它就不会影响整个系统。 2. 锁定或者失效默认用户对于Oracle数据库系统来说,安装的时候会有一系列的默认用户生成,应该在数据库安装完毕之后,经过功能筛选,锁定或者失效这些用户。 3. 修改可用用户的默认密码不能锁定或者失效的用户,必须修改默认密码。 比如具有SYSDBA权限的SYS用户和具有DBA权限的SYSTEM用户,都应该修改默认密码。 至于密码长度和复杂性的有效控制在后面将会谈到。 4. 限制操作系统存取权限Oracle数据库系统是依存在操作系统之上的,如果操作系统被人侵入,那么通过修改配置文件等一系列方法,Oracle数据库的安全性也将荡然无存。 5. 定期更新厂家推出的安全性补丁随着时间的推移,厂家通常会推出一系列的安全性补丁来弥补现有系统的安全隐患。 对于Oracle数据库而言,应该定期查看以下网址来获取Oracle公司最新的安全性警告和解决方案。

本文版权声明本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,请联系本站客服,一经查实,本站将立刻删除。

发表评论

热门推荐