.ora-code.com

Links
Home
Oracle DBA Forum
Frequent Oracle Errors
TNS:could not resolve the connect identifier specified
Backtrace message unwound by exceptions
invalid identifier
PL/SQL compilation error
internal error
missing expression
table or view does not exist
end-of-file on communication channel
TNS:listener unknown in connect descriptor
insufficient privileges
PL/SQL: numeric or value error string
TNS:protocol adapter error
ORACLE not available
target host or object does not exist
invalid number
unable to allocate string bytes of shared memory
resource busy and acquire with NOWAIT specified
error occurred at recursive SQL level string
ORACLE initialization or shutdown in progress
archiver error. Connect internal only, until freed
snapshot too old
unable to extend temp segment by string in tablespace
Credential retrieval failed
missing or invalid option
invalid username/password; logon denied
unable to create INITIAL extent for segment
out of process memory when trying to allocate string bytes
shared memory realm does not exist
cannot insert NULL
TNS:unable to connect to destination
remote database not found'>ora-02019
exception encountered: core dump
inconsistent datatypes
no data found
TNS:operation timed out
PL/SQL: could not find program
existing state of packages has been discarded
maximum number of processes exceeded
error signaled in parallel query server
ORACLE instance terminated. Disconnection forced
TNS:packet writer failure
see ORA-12699
missing right parenthesis
name is already used by an existing object
cannot identify/lock data file
invalid file operation
quoted string not properly terminated
tech

tech

2005-06-28       - By michael.d.taylor@(protected)
Reply:     1     2     3     4     5  

Gabi,

Welcome to the world of 32 bit Linux.  Basically, only 1.7 GB is available
for your total SGA on 32 bit Linux due to the SGA base address of the
executables.  There are some documents on metalink.oracle.com that provide
instructions for increasing SGA for Red Hat Linux, but I have not been able
to  get these to work on SLES9 32 bit.  You can increase your SGA to your
kernel.shmmax just fine on 64 bit SLES9 and 64 bit 9.2.0.4 or higher.  In my
opinion, 32 bit linux is only suitable for demonstration or development
environments.  We have too many processes in our ERP environments that
require grater than 3GB SGA to complete without error.  Not to mention, a
1.7 GB restriction also limits the number of concurrent users you can
support.  Once you migrate to 10g and native compilation, it gets even
worse.  I had to shrink the SGA to 600 MB just to get standard gather
statistics jobs to complete without ORA-04030 (See ORA-04030.ora-code.com) out of process memory
errors...

I am getting the impression Oracle is dropping support for 64 bit Oracle
though.  I logged a tar for the release date of 10.1.0.4, since it was
released in May for Solaris, Windows, HPUX, and Windows 64 bit.  I was told
the Linux 64 bit 10.1.0.4 release date was 15 Dec 2005.

Regards,
-Michael

Here are some notes on things you can try:

http://metalink.oracle.com/metalink/plsql/showdoc?db=Not&id=260152.1

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

Since shmfs is a memory file system, its size can
be as high as the maximum allowable VM size which is 64GB.

SGA MAX Size 62GB theoretic (depending on block size)
Only the buffer cache part of the SGA can take advantage of the additional
memory


For RHEL3 to use the VLM option to create a very large buffercache,
you have two options (details on [4]Note 262004.1):

  - Use shmfs much as you would in RHAS2.1:
   mount a shmfs with a certain size to /dev/shm,
   and set the correct permissions.
   Keep in mind that in RHEL3, shmfs allocate memory is pageable.

  - Use ramfs: ramfs is similar to shmfs,
   except that pages are not pageable/swappable.
         This approach provides the commonly desired effect.
         Ramfs is created by mount -t ramfs ramfs /dev/shm
         (unmount /dev/shm first).
         The only difference here is that the ramfs pages are not
         backed by big pages.
         The parameter use_indirect_data_buffers=true remains the same;
         the settings on the Oracle side should not have to change.


How to use the memory file system shmfs in short,
for details see [1]Note 211424.1:
- Mount the shmfs file system as root using command:
   % mount -t shm shmfs -o nr_blocks=8388608 /dev/shm
- Set the shmmax parameter to half of RAM size
   $ echo 3000000000 >/proc/sys/kernel/shmmax
- Set the init.ora parameter use_indirect_data_buffers=true
- Startup oracle.

How to use the memory file system ramfs in short,
for details see [4]Note 262004.1:
- Mount the shmfs file system as root using command:
   % umount /dev/shm
   % mount -t ramfs ramfs /dev/shm
   % chown oracle:dba /dev/shm
- Increase the "max locked memory" ulimit (ulimit -l)
Add the following to /etc/security/limits.conf:
     oracle           soft    memlock         3145728
     oracle           hard    memlock         3145728
(in case of ssh see details on [4]Note 262004.1)
- Set the init.ora parameter use_indirect_data_buffers=true
- Startup oracle.

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

If we lower the the mapped Base Address from 0x40000000
(decimal 1073741824) to 0x15000000 (decimal 352321536),
we reduce the space for Text/Code and can get another 0.75Gb (768Mb) for the
SGA

 0.3 GB    Text/code
 2.7 GB    available process memory for mmap, malloc /
       address space (e.g. usable by shared Pool)
 0.3 GB    Stack
 1.0 GB    Kernel


How to Lowering mapped_base in short, for details see [1]Note 211424.1:

- Modify shmmax:
   % echo 3000000000 > /proc/sys/kernel/shmmax
- Relocating the SGA (low SGA attach address):
   % cd $ORACLE_HOME/rdbms/lib
   % cp ksms.s ksms.s_orig
   % genksms -s 0x15000000  > ksms.s    
   % make -f ins_rdbms.mk ksms.o
   % make -f ins_rdbms.mk ioracle
   
- lower the mapped base for a single bash terminal session    
 1.  Open a terminal session (Oracle session).
 2.  Open a second terminal session and su to root (root session).
 3.  Find out the process id for the Oracle session.  
     For example: do "echo $$" in the Oracle session.
 4.  Now lower the mapped base for the Oracle session to 0x10000000.
     From the root session, echo 268435456 >/proc/<pid>/mapped_base,
     where <pid> is the process id determined in step 4.
 5.  From the Oracle terminal session, startup the Oracle instance.
     The SGA now begins at a lower address, so more of the address
     space can be used by Oracle.

Now you can increase the init.ora values of db_cache_size or
db_block_buffers
to increase the size of the database buffer cache.
In this case the max SGA size will be 2.7 GB

-- --Original Message-- --
From: Draghici Gabi [mailto:gabi.draghici@(protected)]
Sent: Tuesday, June 28, 2005 9:29 AM
To: suse-oracle@(protected)
Subject: [suse-oracle] tech


Hello all ! I've sucessfully installed Oracle 9i on Sles 9 but when I begun
to grow the SGA(actually the db_cache_size parameter from 1G to 1,5G when
there are 3 G of RAM from which 1 remains free !) I got ORA-27123 (See ORA-27123.ora-code.com):unable to
attach to shared memory segment . Now, I found a few ideeas about the page
size and Oracle but none of them work it ! Can someone explain the hole
mecanism of alocation please ?!

GAbi


--
To unsubscribe, email: suse-oracle-unsubscribe@(protected)
For additional commands, email: suse-oracle-help@(protected)
Please see http://www.suse.com/oracle/ before posting