Archive for the ‘Solaris’ Category
Out of memory on oracle startup
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)
Installare CVS on Solaris 10
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