Giuseppe’s Weblog

Just another WordPress.com weblog

Archive for the ‘Solaris’ Category

Out of memory on oracle startup

nessun commento

Sintomo: allo startup del database errore out of memory

SQL> startup
ORA-27102: out of memory
SVR4 Error: 22: Invalid argument
SQL> Disconnected

una volta verificato che oracle_home, oracle_sid etc … siano settati in modo corretto verificare che non si siano raggiunti i limiti di memoria massima concessi all’utente oracle.

Con la procedura seguente e’ possibile modificare provvisoriamente i parametri di sistema:

$ id -p
uid=60003(oracle) gid=203(oinstall) projid=100(user.oracle)
$ prctl -n project.max-shm-memory -i project user.oracle
project: 100: user.oracle
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
privileged      4.00GB      -   deny                                 -
system          16.0EB    max   deny                                 -

$ su -

# prctl -n project.max-shm-memory -v 6gb -r -i project user.oracle

# exit

$ prctl -n project.max-shm-memory -i project user.oracle      project: 100: user.oracle
NAME    PRIVILEGE       VALUE    FLAG   ACTION                       RECIPIENT
project.max-shm-memory
privileged      6.00GB      -   deny                                 -
system          16.0EB    max   deny                                 -

$ sqlplus / as sysdba

SQL*Plus: Release 10.2.0.2.0 – Production on Mon Sep 15 08:43:06 2008

Copyright (c) 1982, 2005, Oracle.  All Rights Reserved.

Connected to an idle instance.

SQL> startup
ORACLE instance started.

Total System Global Area 1073741824 bytes
Fixed Size                  2132680 bytes
Variable Size             266171704 bytes
Database Buffers          801112064 bytes
Redo Buffers                4325376 bytes
Database mounted.
Database opened.
SQL>

Per modificare permanentemente tali parametri occorre aggiungere un nuovo progetto nel project file:

# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::

Per aggiungere un progetto usare il comando projadd, per modificarlo usare projmod:

# projadd -U oracle -K "project.max-shm-memory=(priv,6144MB,deny)" user.oracle
# projmod -s -K "project.max-sem-ids=(priv,256,deny)" user.oracle

Il project file dovrebbe apparire cosi’:

# cat /etc/project
system:0::::
user.root:1::::
noproject:2::::
default:3::::
group.staff:10::::
user.oracle:100::oracle::project.max-sem-ids=(priv,256,deny);project.max-shm-memory=(priv,6442450944,deny)

Written by gfiorito

Settembre 15, 2008 alle 9:45 am

Pubblicato in HowTo, Oracle, Solaris

Installare CVS on Solaris 10

con 2 commenti

Configurare pserver su un istallazione cvs di Sun Solaris 10 in /opt/csw/bin/cvs cvs:

Creare un file temporaneo con la sintassi inetd.conf per abilitare pserver:

cat <<EOF >/tmp/inetd.conf
cvspserver stream tcp nowait root /opt/csw/bin/cvs cvs -f --allow-root=/cvs/repositories pserver
EOF

convertire il file nel formato Solaris SMF (Service Management Facility)

inetconv -i /tmp/inetd.conf

Se il servizio e’ stato aggiunto il seguente comando:

inetadm |grep cvs

dovrebbe avere un output del tipo:

enabled online svc:/network/cvspserver/tcp:default

per visualizzare che il servizio e’ in ascolto:

netstat -a |grep cvs

che da il seguente output:

*.cvspserver *.* 0 0 49152 0 LISTEN

per modificare il servizio appena creato utilizzare i seguenti comandi per listare il servizio e modifcarlo:

inetadm -l /network/cvspserver/tcp
inetadm -m /network/cvspserver/tcp exec="/opt/csw/bin/cvs -f --allow-root=/cvs/repositories/dev pserver"

il primo dei precedenti comandi dovrebbe dare un output del genere di cui col secondo comando modifichiamo il campo exec:

SCOPE NAME=VALUE
name="cvspserver"
endpoint_type="stream"
proto="tcp"
isrpc=FALSE
wait=FALSE
exec="/opt/csw/bin/cvs -f --allow-root=/cvs/repositories pserver"
user="root"
default bind_addr=""
default bind_fail_max=-1
default bind_fail_interval=-1
default max_con_rate=-1
default max_copies=-1
default con_rate_offline=-1
default failrate_cnt=40
default failrate_interval=60
default inherit_env=TRUE
default tcp_trace=FALSE
default tcp_wrappers=FALSE

Per cancellare il servizio appena creato disabilitarlo e cancellarlo come segue:

svcadm disable /network/cvspserver/tcp
svccfg delete /network/cvspserver/tcp

Written by gfiorito

Agosto 1, 2008 alle 4:08 pm

Pubblicato in Cvs, HowTo, Solaris