关于Oracle统计中关于操作系统的统计说明,oracle10个/11g的新特点

《Oracle大型数据库系统在AIXUNIX上的实战详解》集中讨论98, 还是继续大大大前天的话题——对Oracle性能统计中的数据解释

 
从前面得到的统计数据,我们可以看出这样一个问题:当大量数据摆在你面前,很多数据表现出模棱二可的状态,你如何从中找到能反映出问题的数据,并确保其是对的?没有别的分方法,只有再去印证其他数据或统计,交叉检查、互相印证正确性。

 

下面是一些常见误解和易被想当然的若干点:

 

关于命中率的想当然:

很多时候,命中率可以给我们一些提示,并用来表明问题,例如,数据高速缓存命中率、SQL软解析比率等。但他们能够确定问题所在位置吗?不能贸然的下结论说这里就是瓶颈!正确的态度是:这是一个提示,可以用来佐证“某个问题”是瓶颈。

 

带有时间信息的等待事件:

 

当我们将Oracle的TIMED_STATISTICS 参数值设置为true(这就是默认值)时,等待事件的统计值中将包含时间信息。我们知道,统计数据的绝对值是没有意义的,我们比较的是可对比时间段内的不同或者增量。很多时候这个统计没有意义。例如,经过统计我们发现某一个等待事件的值相比其他等待事件是很高的,那么,瓶颈就是它吗?不一定!这个需要分为二种情况。其一,如果这个等待事件的时间统计累积值占据了整个DB time的大多数,则他很有可能就是瓶颈所在。但是,如果该等待事件累积时间很高,但和整体DB time相比,却只占了其中很小部分,则该等待事件可能说明不了任何问题。

 

特别说明:如果初始化参数STATISTICS_LEVEL 设置为TYPICAL(默认值)或者ALL ,则时间统计自动打开。如果STATISTICS_LEVEL 设置为BASIC ,则我们必须手工将TIMED_STATISTICS设置为TRUE ,才能实现包含时间统计数据的收集。

 

另外,如果我们明确设置了DB_CACHE_ADVICE、TIMED_STATISTICS或者TIMED_OS_STATISTICS ,则我们为STATISTICS_LEVEL设置的参数值失效。


Oracle统计数据能否反映事实?

 

当查看统计数据时,我们要考虑统计数据的真实度,也就是说,该数据能否反映这个系统真正的问题。例如,当统计数据说明系统每秒处理10个事务时,我们不说说这个系统载荷很轻。为什么呢?因为统计期间可能发生的半夜,这的时间段根本就没有业务产生。反之,我们看到数据缓存命中率很低,也许我们也不能说应用系统内存使用有问题。原因也很简单:统计期间,可能系统刚开机不久。

 

那什么数据才是真实的?这里有一个同样模糊的回答:经过你综合考虑过的统计数据是真实的!

 

没有时间统计等待事件的可用性

 

如果系统TIMED_STATISTICS 参数设置为false,也就是不进行时间统计(在生产系统上这是普遍存在的设置,因为设置该参数为真则本身就会给系统带来负的性能影响),那么含有时间信息的等待事件的时间统计不可用。这时,我们只能简单地对等待事件发生数量进行排序,掌握那个等待事件发生次数最多、次多、再次多…。发生次数最多的等待事件是主要瓶颈吗?也许是,是因为它发生的次数很多。不是主要瓶颈吗?有可能,因为等待次数最多的等待时间未必最长。所以,在可能的情况下,激活时间统计(设置TIMED_STATISTICS 参数为true)很有帮助。在Oracle中,该参数默认为true。

 

空闲等待事件

 

Oracle使用等待事件来表明一个Oracle服务器进程是否是空闲的。一般而言,这些等待对于性能调整问题没什么用处。

 

汇总过的统计数据

 

在我们使用“率”这个增强型统计的时候,例如,数据缓存命中率的时候,要注意经过汇总的数据可能带来误解。什么是“率”,分子分母间除的操作。我们获取某一个“率”,例如:50%,它说明了什么呢?可能是50/100,也可能是50000/100000。这完全是二个数量级之间的差异。因此,同样的比率,解读确是不同的。一个可能是:我需要查询100个数据块,其中50个可以来源于数据缓存,命中率50%。另一个解释是:我要访问100000个数据块(100000*8K≈800M),其中50000个块在数据缓存中(≈400M)!显然,就第一种解读来说,50%的命中率是不需要调整的,但就第二种解读来说,50%命中率可能不能接受,要么去改SQL语句(甚至连带进行应用业务上的调整),要么去改索引结构,优化SQL执行路径。总之,要有所为了。

 

因此,就统计数据而言,不应该局限在某个或某组统计数据中洋洋自得,并据此认为已经找到问题根源,实际情况是:可能还有距离!

 

未完,待续, 文平

参见Oracle联机文档中的“性能”那本书,以及 http://www.usedb.cn/

转载于:https://www.cnblogs.com/dbserver/articles/1649038.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 1. 安装Oracle 11g 首先,需要下载Oracle 11g的安装包。然后,按照以下步骤进行安装: 1)解压安装包 $ unzip linux.x64_11gR2_database_1of2.zip $ unzip linux.x64_11gR2_database_2of2.zip 2)安装必要的软件包 $ sudo yum install binutils compat-libcap1 compat-libstdc++-33 gcc gcc-c++ glibc glibc-devel ksh libaio libaio-devel libgcc libstdc++ libstdc++-devel make sysstat 3)创建用户和组 $ sudo groupadd oinstall $ sudo groupadd dba $ sudo useradd -g oinstall -G dba oracle 4)修改内核参数 $ sudo vi /etc/sysctl.conf 添加以下内容: fs.file-max = 6815744 kernel.sem = 250 32000 100 128 kernel.shmmni = 4096 kernel.shmall = 1073741824 kernel.shmmax = 4398046511104 net.core.rmem_default = 262144 net.core.rmem_max = 4194304 net.core.wmem_default = 262144 net.core.wmem_max = 1048576 fs.aio-max-nr = 1048576 保存并退出,然后执行以下命令: $ sudo sysctl -p 5)修改用户限制 $ sudo vi /etc/security/limits.conf 添加以下内容: oracle soft nproc 2047 oracle hard nproc 16384 oracle soft nofile 1024 oracle hard nofile 65536 6)设置环境变量 $ sudo vi /etc/profile.d/oracle.sh 添加以下内容: export ORACLE_BASE=/u01/app/oracle export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1 export ORACLE_SID=orcl export PATH=$PATH:$ORACLE_HOME/bin 保存并退出,然后执行以下命令: $ source /etc/profile.d/oracle.sh 7)安装Oracle 11g $ cd database $ ./runInstaller 按照向导进行安装,选择“创建数据库”选项。 2. 建库 安装完成后,可以使用以下命令创建数据库: $ sqlplus / as sysdba SQL> create database orcl 2 user sys identified by oracle 3 user system identified by oracle 4 logfile group 1 ('/u01/app/oracle/oradata/orcl/redo01.log') size 50m, 5 group 2 ('/u01/app/oracle/oradata/orcl/redo02.log') size 50m, 6 group 3 ('/u01/app/oracle/oradata/orcl/redo03.log') size 50m 7 character set utf8 8 national character set utf8 9 extent management local 10 datafile '/u01/app/oracle/oradata/orcl/system01.dbf' size 500m autoextend on next 50m maxsize unlimited 11 sysaux datafile '/u01/app/oracle/oradata/orcl/sysaux01.dbf' size 500m autoextend on next 50m maxsize unlimited 12 default tablespace users 13 datafile '/u01/app/oracle/oradata/orcl/users01.dbf' size 500m autoextend on next 50m maxsize unlimited; 这将创建一个名为“orcl”的数据库,其包含sys和system用户,使用utf8字符集和本地扩展管理。默认表空间为users,数据文件大小为500m,可以自动扩展。 ### 回答2: 在Linux操作系统上安装Oracle 11g需要遵循以下步骤: 1. 首先下载与操作系统相匹配的Oracle 11g安装包 2. 在Linux上安装一些必要的库文件和其他依赖项。这可以通过使用命令yum install gcc glibc –y来实现 3. 设置Oracle用户和组 4. 设置环境变量。需要将Oracle的安装路径添加到path路径以便在终端访问Oracle相关命令 5. 运行安装程序。打开终端并运行./runInstaller命令。在安装向导,选择要安装Oracle的路径,设置管理员密码和其他选项。需要注意安装过程会需要输入root密码和数据库UID和GID(Oracle用户和组的ID)。 6. 安装完成后,Oracle会在安装路径创建一个叫做dbhome_1的目录。需要将Oracle用户和组添加到此目录以便他们可以访问数据库。 7. 在Oracle用户下创建数据库的目录结构。使用命令mkdir /u01/app/oracle/oradata/db_name创建数据库目录。 8. 执行dbca命令以建立数据库。需要在向导设置数据库名称、字符集、Oracle Home目录以及其他一些选项。 9. 数据库建立完成后,可以使用SQL*Plus或者其他工具登录到Oracle数据库。 这些是在Linux操作系统上安装Oracle 11g及建库的基本步骤。需要注意的是,这只是一个基本指南,具体步骤可能因版本和其他因素而有所不同。但是,通过参考官方文档或者其他相关指南,就可以更好地完成Oracle的安装和配置。 ### 回答3: Oracle11g是一款使用广泛的关系型数据库管理系统。在基于Linux操作系统安装Oracle11g并建库需要一定的技术知识和操作经验,以下将介绍详细步骤: 1. 系统要求 在安装前,需要确认操作系统版本、内核版本等要求是否符合Oracle11g的安装要求。建议使用Red Hat Linux Release 5或6的操作系统版本且内核版本不低于2.6.18-128.el5。此外,需要安装一些必要的库文件,如glibc、gcc等。 2. 下载并解压Oracle安装包 在Oracle官网上下载适用于Linux系统的Oracle11g安装包,并将其解压至指定目录。 3. 设置环境变量 在终端输入以下命令设置Oracle11g的环境变量:export ORACLE_HOME=安装目录;export PATH=$ORACLE_HOME/bin:$PATH;export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib。 4. 安装图形界面 为方便安装使用,建议安装图形界面,可以使用VNC远程连接方式或在服务器上安装GUI桌面环境,如KDE等。 5. 准备并运行安装程序 运行本地GUI或VNC客户端,然后在终端运行安装程序“runInstaller”,进行图形界面安装。 6. 配置DBCA 安装完成后,应该配置Database Configuration Assistant,即DBCA,会在安装程序的最后一步提示配置DBCA。安装过程需要选择数据库类型、字符集、配置文件大小等,并设置系统密码和管理员用户密码。 7. 建立数据库 使用DBCA,在图形用户界面建立Oracle数据库实例,设置数据库名称、管理员信息、监听器端口等。 通过以上步骤,就可以在基于Linux操作系统上安装Oracle 11g,并建立数据库了。当然,在使用Oracle时,还需要了解相关的数据库操作和应用知识。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值