Visit Our UNIX and Linux User Community


Emergency Block Size Very Important!!!


 
Thread Tools Search this Thread
Top Forums UNIX for Advanced & Expert Users Emergency Block Size Very Important!!!
# 1  
Old 01-10-2002
Emergency Block Size Very Important!!!

I have a problem with Oracle Database due to block size it said : "Oracle's SGA to big to fit contiguosly into one segment" Reconfigure the UNIX kernel to have bigger segments.

How can I reconfigure Kernel in order to get bigger "segments". Does it works on pure UNIX system with no Solstice install?Smilie
# 2  
Old 01-10-2002
I'm not an Oracle expert, but I would guess that we're talking about shared memory segments. There is usually a kernel parameter called shmmax that is the max size of a shared memory segment. Oracle should have some docs about how big they want this to be.
# 3  
Old 01-12-2002
Perderabo is correct - increase shmmax.

And you can control the size of your SGA by changing certain settings in the init<SID>.ora file. A big one is db_block_buffers. If this is set to 10000, and you have 16K block size, this will contribute about 160MB toward the total size of the SGA. Another big one (as regards SGA size) is shared_pool_size.
Jimbo
# 4  
Old 01-14-2002
Some info

Oracle uses shared memory and semaphores to communicate between processes and
the SGA (System Global Area). There are certain requirements for shared
memory and the semaphores. When the Oracle instance comes up, it allocates a
certain portion of the main memory to create the SGA. If the shared memory or
the semaphores are not set properly, then it gives an error related to shared
memory or semaphores.

The following are the recommended values for shared memory and semaphores for
running a SMALL size Oracle database. These values are set at the Unix kernel
level.


SCOPE & APPLICATION
This entry lists shared memory requirements for Unix systems.


Shared Memory Requirements on Unix:
===================================

The shared memory feature of the UNIX operating system is required by Oracle.
The System Global Area (SGA) resides in shared memory; therefore, shared
memory must be available to each Oracle process to address the entire SGA.


Definitions of Shared Memory and Semaphore Parameters

SHMMAX = The maximum size(in bytes) of a single shared memory segment.
SHMMIN = The minimum size(in bytes) of a single shared memory segment.
SHMMNI = The number of shared memory identifiers.
SHMSEG = The maximum number of shared memory segments that can be attached by
a process.
SEMMNS = The number of semaphores in the system.
SEMMNI = The number of semaphore set identifiers in the system; determines the
number of semaphore sets that can be created at any one time.
SEMMSL = The maximum number of sempahores that can be in one semaphore set.
It should be same size as maximum number of Oracle processes
(The PROCESSES parameter in the init.ora file).


Recommended Semaphore and Shared Memory Parameters

Operating System Shared Memory Parameters Semaphore
---------------- ------------------------ ---------
Sun OS SHMSIZE = 32768 SEMMNS = 200
SHMMNI = 50 SEMMNI = 50


Solaris SHMMAX = 8388608(or larger than max SGA) SEMMNS = 200
SHMSEG = 20 SEMMSL = 50
SHMMNI = 100 SEMMNI = 70


HP/UX SHMMAX = 0x4000000 (64 Mb) SEMMNS = 128
SHMSEG = 12 SEMMNI = 10


Digital Unix SHMMAX = 4194304 SEMMNS = 60
(DEC Alpha OSF/1) SHMSEG = 32 SEMMSL = 25


Ultrix Use system default SEMMNS = 60
SEMMSL = 5

AT&T Unix SHMMAX = RAM-Dependant SEMMNS = 200
8 or 16 Mb RAM SHMMAX = 5 Mb for all RAM
32 Mb RAM SHMMAX = 8 Mb values
64 Mb RAM SHMMAX = 16 Mb
128 Mb RAM SHMMAX = 32 Mb
256 Mb RAM SHMMAX = 64 Mb
512 Mb RAM SHMMAX = 128 Mb
1024 Mb RAM SHMMAX = 256 Mb
2048 Mb RAM SHMMAX = 512 Mb
SHMSEG = 6 for all RAM values
SHMMIN = 1 for all RAM values


Dynix/PTX SHMMAX = 11010048 SEMMNS = 200
SHMSEG = 20 SEMMSL = 85
Other parameter: NOFILES = 128


DG/UX SHMMAX = 4194304 SEMMNS = 200
SHMSEG = 15



Setting the Shared Memory and Semaphore Parameters

The values of the shared memory and semaphore parameters must be set in the
kernel configuration file of your operating system (OS). The location of that
file is port-specific. See [NOTE:1010913.6] for its name and location on your
system.

To check your current shared memory and semaphore configuration you can use
the command:

% sysdef | more

Example on HP-UX (relevant sections only):
------------------------------------------
Semaphore Related Parameters
maximum value for semaphores(semaem)= 16384
Semaphore map(semmap)= 4098
number of semaphore identifiers(semmni) = 4096
total number of semaphores in the system(semmns) = 8192
number of semaphore undo structures(semmnu) = 1536
semaphore undo entries per process(semume) = 512
semaphore maximum value(semvmx) = 32767

Shared Memory Related Parameters
maximum shared memory segment size in bytes(shmmax) = 536870912
minimum shared memory segment size in bytes(shmmin) = 1
maximum shared memory segments in system (shmmni) = 512
maximum shared memory segments per process(shmseg) = 512

NOTE: The SHMMAX is quite large on this system as there are 8 instances
running on this system.


To make changes in shared memory or semaphore parameters:

1. Shut down any running Oracle instances
2. Locate the kernel configuration file for your OS
3. Make the necessary changes using the system utilities or your
favorite editor. System utilities include:

OS Utility
--- -------
HP-UX SAMS
SCO SYSADMSH
AIX SMIT
Solaris ADMINTOOL

4. Reconfigure the kernel.
5. Reboot your machine.
6. Restart your Oracle instances


Example, using Solaris 2.3/2.4 parameters and commands:
--------------------------------------------------------
1. Log into SQLDBA and type:
SQLDBA> shutdown
SQLDBA> exit

2. Log in as the superuser (root) and:
# cd /etc/system

3. Add the following lines to the /etc/system file:

set shmsys:shminfo_shmmax=8388608
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=20
set semsys:seminfo_semmns=200
set semsys:seminfo_semmni=70

4. Reconfigure the kernel:
# touch /reconfigure

5. Reboot the machine:
#init 6

6. Log into SQLDBA and type:
SQLDBA> startup
SQLDBA> exit



Oracle, Shared Memory, and SGA Size

There are Oracle init<SID>.ora parameters which can be modified to influence
the size of the SGA. These settings of these parameters, in conjunction with
OS shared memory and semaphore parameters, can influence both system and
Oracle performance.

Previous Thread | Next Thread
Test Your Knowledge in Computers #867
Difficulty: Medium
John McDonald developed Lisp in 1958 while he was at the Massachusetts Institute of Technology (MIT).
True or False?

10 More Discussions You Might Find Interesting

1. HP-UX

About Block Size and Fragment Size

Accordingly a lot of manuals - if you have block size 8KB and trying to write a 1KB file to the block, as result you waste 7KB of the block space. But recently I noticed about Fragments of File Block. In same case if you have File Block 8KB and Fragment size 1KB - you can save your block space,... (6 Replies)
Discussion started by: jess_t03
6 Replies

2. Red Hat

O/s block size

Hi Guys, I am running Linux 2.6.18-164.el x86_64 how do i check the block size? Thanks in advance... (1 Reply)
Discussion started by: Phuti
1 Replies

3. UNIX for Advanced & Expert Users

Physical disk IO size smaller than fragment block filesystem size ?

Hello, in one default UFS filesystem we have 8K block size (bsize) and 1K fragmentsize (fsize). At this scenary I thought all "FileSytem IO" will be 8K (or greater) but never smaller than the fragment size (1K). If a UFS fragment/blocksize is allwasy several ADJACENTS sectors on disk (in a ... (4 Replies)
Discussion started by: rarino2
4 Replies

4. HP-UX

Optimal block size in dd

I cannot tar an ORACLE backup file with the size of > 8GB. So I am using "dd" to copy file to tape. What is the optimum block size for this process? (2 Replies)
Discussion started by: vslewis
2 Replies

5. AIX

Block Size

Hi, I try to change the block size from 512 to 0, but it send this message: 0514-068 Cause not know Can someone help me whith this? (3 Replies)
Discussion started by: Ruben78
3 Replies

6. UNIX for Dummies Questions & Answers

block size

Hi All, drwxr-xr-x 2 root root 4096 May 31 14:47 test Please let me know here 4096 indicating what? Thanks & Regards, Bache (1 Reply)
Discussion started by: bache_gowda
1 Replies

7. UNIX for Dummies Questions & Answers

How to know the OS Block size

Hello Unix guru's I want to check my OS Block size for the Solaris 8 Following is one of the line from df -g command. Can anybody help to interpret the same. /u03 (/dev/vx/dsk/oradg/vol03): 8192 block size 8192 frag size 205463552 total blocks 50433792... (1 Reply)
Discussion started by: Dilippatel
1 Replies

8. Solaris

block size

how do you determine block size for a file system? In solaris 5.8 (3 Replies)
Discussion started by: csaunders
3 Replies

9. Filesystems, Disks and Memory

os block size

AIX 4.3.3 How can I find the os block size? How can I change the OS Block Size? When and where does the os block size get set? I am running oracle 8.1.7 and am under the impression I need to set my os block size = oracle block size which is 8k. Any insight on this would be... (1 Reply)
Discussion started by: kburrows
1 Replies

10. Filesystems, Disks and Memory

block size

Hi, Somehow i have forgotten a comand that displays me the block size of the unix filesystem. Can someone letme know this command regards penguin (5 Replies)
Discussion started by: linuxpenguin
5 Replies

Featured Tech Videos