`

Oracle 11g sga_target 参数设置

 
阅读更多

今天在一台linux 测试机上装了Oracle 11g,安装好以后按照惯例调整sga_target 1G,pga_aggregate_target 200M
(对了,这2个参数在11g里面默认是0),然后重启数据库

结果报错

ORA-00844: Parameter not taking MEMORY_TARGET into account, see alert log for more information

MEMORY_TARGET?新参数?虽然在安装过程中瞟过一眼,但是也没太多注意,后来理解MEMORY_TARGET就是原来10g的
sga_target + pga_aggregate_target的总和,越来越智能了。

再看导致错误原因:
由于设置了Oracle的MEMORY_TARGET参数的值小于了SGA_TARGET和PGA_TARGET的总和,因此报错。


但是此时数据库已经启不来了,在数据库不能更改spfile的情况下,我们可以更改pfile,再用pfile启动

SQL> create pfile ='/home/oracle/initora11g.ora' from spfile;
SQL> !echo '*.memory_target=1024m' >>'/home/oracle/initora11g.ora';

将pfile里面的memory_target设置成1G

报错,再次验证memory_target>= sga_target + pga_aggregate_target
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 1224M
ORA-01078: failure in processing system parameters

再改
SQL> !echo '*.memory_target=1224m' >>'/home/oracle/initora11g.ora';
SQL> !echo '*.sga_target=0' >>'/home/oracle/initora11g.ora';

报新错误了又
ORA-00845: MEMORY_TARGET not supported on this system

这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小

最终启动成功

启动后再改回从spfile启动
SQL>create spfile from pfile = '/home/oracle/initora11g.ora';

然后再启动一次

SQL> startup
ORACLE instance started.

Total System Global Area 1068937216 bytes
Fixed Size                  2151248 bytes
Variable Size             511708336 bytes
Database Buffers          549453824 bytes
Redo Buffers                5623808 bytes
Database mounted.
Database opened.

最后
SQL> show parameter target;

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target                   integer     0
db_flashback_retention_target        integer     1440
fast_start_io_target                 integer     0
fast_start_mttr_target               integer     0
memory_max_target                    big integer 1300M
memory_target                        big integer 1224M
pga_aggregate_target                 big integer 0
sga_target                           big integer 0

 

Oracle 11g的Linux版本在修改了MEMORY_TARGET或者SGA_TARGET后启动可能会报错:

SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00845: MEMORY_TARGET not supported on this system


这个问题是由于设置SGA的大小超过了操作系统/dev/shm的大小:

[root@enterprice64 ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 4089416 0 4089416 0% /dev/shm

Oracle在metalink的文档:Doc ID: Note:460506.1中进行了说明。解决这个问题只有两个方法,一种是修改初始化参数,使得初始化参数中SGA的设置小于/dev/shm的大小,另一种方法就是调整/dev/shm的大小。

修改/dev/shm的大小可以通过修改/etc/fstab来实现:

[root@enterprice64 ~]# vi /etc/fstab

LABEL=/ / ext3 defaults 1 1
LABEL=/boot /boot ext3 defaults 1 2
LABEL=/data /data ext3 defaults 1 2
devpts /dev/pts devpts gid=5,mode=620 0 0
#tmpfs /dev/shm tmpfs defaults 0 0
tmpfs /dev/shm tmpfs defaults,size=10240M 0 0
LABEL=/home /home ext3 defaults 1 2
LABEL=/opt /opt ext3 defaults 1 2
proc /proc proc defaults 0 0
sysfs /sys sysfs defaults 0 0
LABEL=/usr /usr ext3 defaults 1 2
LABEL=/var /var ext3 defaults 1 2
LABEL=SWAP-sda8 swap swap defaults 0 0
~
~
"/etc/fstab" 13L, 965C written
[root@enterprice64 ~]# umount /dev/shm
[root@enterprice64 ~]# mount /dev/shm
[root@enterprice64 ~]# df -k /dev/shm
Filesystem 1K-blocks Used Available Use% Mounted on
tmpfs 10485760 0 10485760 0% /dev/shm
[root@enterprice64 ~]# su - oracle
[oracle@enterprice64 ~]$ sqlplus "/ as sysdba"

SQL*Plus: Release 11.1.0.6.0 - Production on Tue Oct 23 15:42:42 2007

Copyright (c) 1982, 2007, Oracle. All rights reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 4743446528 bytes
Fixed Size 2143824 bytes
Variable Size 3892316592 bytes
Database Buffers 805306368 bytes
Redo Buffers 43679744 bytes
Database mounted.
Database opened.

修改/etc/fstab,重新mount /dev/shm,然后就可以启动数据库了。

分享到:
评论

相关推荐

    数据库参数设置技术手册

    1 前言 3 2 目的 3 3 ORACLE内存结构概述 3 4 常用参数说明 3 4.1 BUFFER_POOL_KEEP 4 4.2 CPU_COUNT 4 4.3 DB_BLOCK_BUFFERS 4 4.4 DB_BLOCK_SIZE 5 4.5 DB_FILE_MULTIBLOCK_READ_COUNT 5 ...6 参数设置实例 11

    ORACLE DBA 手册

    避免动态空间管理Oracle数据库增长空间是就以区的单位扩展的,区由块组成,区的增长方式有两种,一种是allocation_type是UNIFORM,每次分配区的大小是一致的,另一种Allocation_type是SYSTEM自动分配。区的大是...

    Oracle安装内核参数设置

     · 64位的linux操作系统,设置应该大于SGA_MAX_TARGET或MEMORY_MAX_TARGET的值/或者1/2的物理内存大小。如果设置太小,SGA会分配多个内存段,影响性能,好将SGA放在一个共享内存段中  · 32位的linux操作系统,...

    oracle10g课堂练习II(1)

    手动调整动态 SGA 参数的大小 8-26 程序全局区 (PGA) 8-27 自动 PGA 内存管理 8-29 PGA 管理资源 8-30 使用内存指导调整 SGA 的大小 8-31 使用内存指导调整 PGA 的大小 8-32 有效使用内存:准则 8-33 库高速...

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    oracle实验报告

    orcl.__sga_target=536870912 mydb.__shared_io_pool_size=0 orcl.__shared_pool_size=163577856 orcl.__streams_pool_size=0 *.audit_file_dest='E:\\app\\oracle\\admin\\mydb\\adump' *.audit_trail='db' ...

    浅谈安装ORACLE时在Linux上设置内核参数的含义

    安装Oracle之前,除了检查操作系统的硬件和软件是否满足安装需要之外,一个重点就是修改内核参数,其中最主要的是和内存相关的参数设置。 SHMMAX参数:Linux进程可以分配的单独共享内存段的最大值。一般设置为内存总...

    ORACLE数据库 安装配置规范 (V2.0.1)

    6.2 10g数据库参数设置 32 6.2.1 必须修改的初始化参数 32 6.2.1.1 DB_CACHE_SIZE 32 6.2.1.2 SHARED_POOL_SIZE 33 6.2.1.3 LARGE_POOL_SIZE 34 6.2.1.4 SGA_MAX_SIZE 34 6.2.1.5 DB_BLOCK_SIZE 34 6.2.1.6 SP_FILE ...

    深入解析Oracle.DBA入门进阶与诊断案例

    针对数据库的启动和关闭、控制文件与数据库初始化、参数及参数文件、数据字典、内存管理、Buffer Cache与Shared Pool原理、重做、回滚与撤销、等待事件、性能诊断与SQL优化等几大Oracle热点主题,本书从基础知识入手...

    数据库项目组日常运维及应急故障处理手册.docx

    可以设置成物理CPU(不是逻辑CPU)数的两倍数目,然后调整 对于Data Pump Export,PARALLEL参数必须要小于等于dump files数 对于Data Pump Import,PARALLEL不要比dump文件数大很多,可以大一些。这个参数也指定了...

    工程硕士学位论文 基于Android+HTML5的移动Web项目高效开发探究

    Viewport不局限于浏览器可视区域的大小,可能比浏览器的可视区域要大,也可能比浏览器的可视区域要小。 媒体查询 CSS媒体查询允许开发者基于浏览网站的设备的特性来应用不同的样式申明,最常用的特性是视口宽度。 ...

Global site tag (gtag.js) - Google Analytics