当前位置:  数据库>oracle
本页文章导读:
    ▪[转] Oracle数据库System Global Area(SGA)的理解      1 概述  Oracle SGA区的监控和管理,是数据库日常维护的重要内容。本文详细介绍SGA的基本概念,SGA运行情况检查,以及SGA的参数设置原则,希望对大家的有所帮助。  2 SGA的基本概念  .........
    ▪Linux下安装Oracle 10g客户端(无图形界面)      操作系统版本:redhat-release-5Server-5.4.0.3oracle客户端版本:10201_client_linux_x86_64.cpio.gz 1、安装以下系统包(安装包在系统光盘的server目录下,root用户安装,安装时注意顺序)当时忽略了这一.........
    ▪错误备忘_Oracle 监听无法启动“……某些服务在未由其他服务或程序使用时将自动停止”      本文内容 Oracle 监听无法启动“……某些服务在未由其他服务或程序使用时将自动停止” 软件环境 错误分析 解决方案 Oracle 监听无法启动“……某些服务在未由其他服务或程序使.........

[1][转] Oracle数据库System Global Area(SGA)的理解
    来源:    发布时间: 2013-10-29

1 概述

  Oracle SGA区的监控和管理,是数据库日常维护的重要内容。本文详细介绍SGA的基本概念,SGA运行情况检查,以及SGA的参数设置原则,希望对大家的有所帮助。

  2 SGA的基本概念

  当启动Oracle数据库时,系统会先在内存内规划一个固定区域,用来储存用户需要的数据,以及Oracle运行时必备的系统信息。我们称此区域为系统全局区(System Global Area),简称SGA。

  SGA 包含数个重要区域,分别是:

  ■ Database Buffer Cache (数据库缓冲区)

  ■ Redo Log Buffer (重做日志缓冲区)

  ■ Shared Pool (共享区)

  ■ 其它,如Java pool, Large pool

  2.1 Database Buffer Cache (数据库缓冲区)

  数据库缓冲区的作用主要是在内存中缓存从数据库中读取的数据块。数据库缓冲区越大,为用户已经在内存里的共享数据提供的内存就越大,这样可以减少所需要的磁盘物理读。

  在9i以前数据库缓冲区的大小是由db_block_buffers*db_block_size 来决定大小的。db_block_size参数是在创建数据库时设置的,OLTP系统的db_block_size一般设置为8k。

  在9i中,数据库缓冲区的大小由db_cache_size决定,8i中的db_block_buffers被取消。db_cache_size的单位是字节,它直接决定了数据库缓冲区的大小,而不再是块的数量。

  2.2 Shared Pool (共享区)

  共享区由三部分组成,分别是Dictionary cache(包括数据字典的定义,如表结构、权限等),Library cache(包括共享的sql游标,sql原代码以及执行计划、存储过程和会话信息)和Control structure。它的大小由初始化参数shared_pool_size控制,它的作用是缓存已经被解析过的SQL,使其能被重用,不用再解析。SQL的解析非常消耗CPU的资源,如果一条SQL在Shared pool中已经存在,则进行的仅是软解析(在Shared pool中寻找相同SQL),这将大大提高数据库的运行效率。当然,这部分内存也并非越大越好,太大的Shared pool,oracle为了维护共享结构,将付出更大的管理开销。建议在150M-500M之间。如果系统内存为1G,该值可设为150M-200M;如果为2G,该值设为250M-300M;每增加1G内存,该值增加100M;但该值最大不应超过500M。

  2.3 Redo Log Buffer (重做日志缓冲区)

  Log_buffer是重做日志缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR 进程将它写入磁盘。LGWR的写入条件是:用户提交、有1/3 重做日志缓冲区未被写入磁盘、有大于1M 重做日志缓冲区未被写入磁盘、超时、DBWR需要写入的数据的SCN 号大于LGWR 记录的SCN 号,DBWR 触发LGWR写入。

  从中可以看出,大于1M的log buffer值意义并不大。重做日志缓冲区的大小由初始化参数log_buffer设定。

2.4 Large pool和Java pool

  Large pool:用于MTS、并行查询和RMAN。如果使用了MTS或RMAN,large_pool特别有用,它可以降低用户对share pool的争用。

  如果应用系统不使用MTS,也不使用RMAN,large_pool_size的大小可设为1M。

  Java pool:Oracle8I以后,oracle数据库内置了对java的支持,如果数据库安装时选择了JServer组件,则这个值可以设置为20M-30M之间。可以查询v$option动态视图,如果java那一项值为true,则表示安装了JServer,为false,表示未安装。

  如果应用系统不使用PORTAL,APPS,也不使用RMAN,Java pool值的大小可设为1M。如果系统需要安装补丁,建议先把Java pool值的大小临时增加到50-150M。

  3 SGA运行情况检查

  3.1 SGA整体检查

  对于SGA部分,我们通过sqlplus查询:

SQL> show sga
  Total System Global Area 316899848 bytes

  Fixed Size 741896 bytes

  Variable Size 150994944 bytes

  Database Buffers 163840000 bytes

  Redo Buffers 1323008 bytes

或者

SQL> select * from v$sga;
  NAME VALUE

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

  Fixed Size 741896

  Variable Size 150994944

  Database Buffers 163840000

  Redo Buffers 1323008

Show sga的结果和SGA的初始化参数配置并不是完全一一对应的,下面是每一个部分的具体解释:

  Fixed Size

  oracle 的不同平台和不同版本下可能不一样,但对于确定环境是一个固定的值,里面存储了SGA各部分组件的信息,可以看作引导建立SGA的区域。

  Variable Size

  包含了shared_pool_size、java_pool_size、large_pool_size等内存设置和用于管理数据缓冲区等内存结构的hash table、块头信息等。

     Database Buffers

  指数据缓冲区,在8i中包含default pool、buffer_pool_keep、buffer_pool_recycle三部分内存。在9i中包含db_cache_size、db_keep_cache_size、db_recycle_cache_size、db_nk_cache_size。这里要注意在8i中三部分内存总和为db_block_buffers*db_block_size。

  Redo Buffers

  指重做日志缓冲区的实际大小,和log_buffer的值可能稍有不同。

  3.2 Data buffer 命中率检查

检查语句:

SQL>select 1 - (phy.value / (cur.value + con.value)) "HIT RATIO"
  from v$sysstat cur, v$sysstat con, v$sysstat phy where cur.name = 'db block gets'

  and con.name = 'consistent gets'

  and phy.name = 'physical reads';

调整原则:

  命中率不应该低于90%.

  如果该值过低,应该调高初始化参数。8i调整db_block_buffer,9i调整db_cache_size。

  3.3 Dictionary cache命中率检查

  检查语句:

SQL>SELECT 1 - (SU
    
[2]Linux下安装Oracle 10g客户端(无图形界面)
    来源:    发布时间: 2013-10-29

操作系统版本:redhat-release-5Server-5.4.0.3

oracle客户端版本:10201_client_linux_x86_64.cpio.gz

 

1、安装以下系统包(安装包在系统光盘的server目录下,root用户安装,安装时注意顺序)

当时忽略了这一步,虽然安装过程没有报错,但是安装以后所有的应用程序的大小都为0,比如sqlplus、sqlldr等。

rpm -ivh libXp-1.0.0-8.1.el5.i386.rpm

rpm -ivh libgomp-4.4.0-6.el5.x86_64.rpm

rpm -ivh kernel-headers-2.6.18-164.el5.x86_64.rpm

rpm -ivh glibc-headers-2.5-42.x86_64.rpm

rpm -ivh glibc-devel-2.5-42.x86_64.rpm

rpm -ivh gcc-4.1.2-46.el5.x86_64.rpm

 

2、创建用户及用户组(root用户下创建)

#groupadd oinstall
#groupadd dba
#useradd -m -g oinstall -G dba oracle
#passwd oracle

这一步会提示输入用户密码

 

3、创建oracle基本目录(root用户下创建)

#mkdir -p /opt/app/oracle
#chown -R oracle:oinstall /opt/app/oracle
#chmod -R 775 /opt/app/oracle

 

4、上传安装文件到服务器

为了避免权限问题,建议使用oracle用户进行操作

将安装文件10201_client_linux_x86_64.cpio.gz上传到/opt/app/目录下

解压文件:

#gunzip 10201_client_linux_x86_64.cpio.gz
#cpio -idmv <10201_client_linux_x86_64.cpio

这样安装文件就会就压到/opt/app/client中

 

5、开始安装(oracle用户)

修改自定义安装响应文件clientcustom.rsp

$vi /opt/app/client/response/clientcustom.rsp

找到以下几个参数,并修改参数值:

# oracle home目录

ORACLE_HOME="/opt/app/oracle/product/10.2.0/client_1"

# oracle home 名称,用于建立目录和服务

ORACLE_HOME_NAME="oracleclienthome1"

# 安装的语言

COMPONENT_LANGUAGES={"en","zh_CN"}

 

进入/opt/app/client目录,执行以下命令开始安装:

$./runInstaller -silent -responseFile /opt/app/client/response/clientcustom.rsp

 

等待安装结束,按照提示切换到root用户执行以下脚本:

$/opt/app/oracle/product/10.2.0/client_1/root.sh

 

6、配置环境变量(oracle用户)

要在oracle根目录下执行

$vi .bash_profile

在末尾增加如下内容:

export ORACLE_BASE=/opt/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/client_1
export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

 

改好后保存退出,执行如下命令使环境变量生效

$source .bash_profile

 

7、 配置tnsname.ora和sqlnet.ora

进入$ORACLE_HOME/network/admin

$vi tnsname.ora

配置服务名:

orcl =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.10.11)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

 

$vi sqlnet.ora

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)

 

8、测试连接

$sqlplus system/admin@orcl

 

本文链接


    
[3]错误备忘_Oracle 监听无法启动“……某些服务在未由其他服务或程序使用时将自动停止”
    来源:    发布时间: 2013-10-29

本文内容

  • Oracle 监听无法启动“……某些服务在未由其他服务或程序使用时将自动停止”
  • 软件环境
  • 错误分析
  • 解决方案

Oracle 监听无法启动“……某些服务在未由其他服务或程序使用时将自动停止”

打开操作系统服务,如图 1 所示:

图 1

启动 OracleOraDb11g_home1TNSListener 时,无法启动,但是其他服务都可以正常启动,如图 2 所示:

软件环境

  • Windows 7 64位 旗舰版
  • Oracle 11g Release 1 (11.1)

错误分析

其实,这个问题不难解决,Oracle 监听要想正常启动,Oracle 服务的相关信息必须掌握,比如 ORACLE_HOME 环境变量。如果这个环境变量出了问题,Oracle 监听就无法启动。

解决方案

查看你操作系统的 ORACLE_HOME 环境变量,确保正确。别指向 Oracle 客户端的目录。

另外,再检索下注册表的相关信息。这都属于配置问题。

本文链接


    
最新技术文章:
▪current online redo log缺失后的恢复
▪ORA-600 2662错误解决实例
▪ORA-00600 2662错误解决方法
▪Oracle Hidden Parameter:_allow_resetlogs_corruption
▪Oracle诊断事件列表
▪Oracle 隐含参数 _disable_logging 详解
▪ORA-00600 [2662]错误解决过程
▪Oracle里常见的执行计划
▪Oracle里另外一些典型的执行计划
▪Oracle服务器自动备份
▪Oracle固定SQL的执行计划(一)---SQL Profile
▪Oracle固定SQL的执行计划(二)---SPM
▪同一环境下新建Standby RAC库
▪Oracle快速克隆安装
▪Oracle单实例启动多个实例
▪Oracle的PLSQL别名中文出现乱码解决方法
▪ORA-00379: no free buffers available in buffer pool DEFAULT ...
▪RMAN-06023: no backup or copy of datafile 16 found to restor...
▪RMAN还原数据库报错问题解决案例
▪OEL6.8_X86平台部署Oracle 10gR2检测失败问题
▪Oracle 性能优化建议
▪Oracle SQL语句优化心得
▪Oracle慢SQL监控脚本实现
▪Oracle dblink 查询 tns:无法解析指定的连接标识...
▪Red Hat Enterprise Linux 6使用udev配置Oracle ASM总结...
▪Linux6.6及以上版本配置Oracle ASM共享储存-UDEV
▪Oracle 12C 开启数据库归档模式
▪Solairs系统中配置Oracle 12c 开机启动
▪重建DBMS_STATS解决ORA-31626 ORA-21633以及ORA-04063 ORA...
▪Oracle ASMM 与AMM之间相互切换
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,