Archive for the ‘HowTo’ Category
Creare un Ram Disk
su AIX
mkramdisk 40000
mkfs -V jfs /dev/ramdisk0
mkdir /pathToMyRamDrive
mount -V jfs -o nointegrity /dev/ramdisk0 /pathToMyRamDrive
chown myuser:mygroup /pathToMyRamDrive
umount /dev/ramdisk0
rmramdisk /dev/ramdisk0
su Linux
sudo mkdir /media/ramdisk
sudo mount /dev/ram0 /media/ramdisk/
sudo mount -t tmpfs -0 size=1G tmpfs /media/ramdisk/
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)
Spostare datafile, redolog file e controlfile – Oracle Database
Datafile e RedoLog file
Per spostare i datafile e i redolog file eseguire il seguente comando:
SQL>alter database backup controlfile to trace;
che crea un file di trace generalmente nella seguente cartella:
$ORACLE_HOME/admin/[$ORACLE_SID]/udump/
copiare il file ed editare lo statement di creazione del control file modificando i path dei datafile da spostare;
fare lo shutdown;
SQL>shutdown immediate;
fare la copia fisica dei datafile e dei redolog file nella nuova posizione;
eseguire i comandi precedentemente editati ponendo attenzione a evitare le righe commentate che potrebbero creare problemi;
alter database backup controlfile to trace;
vi $ORACLE_HOME/admin/[$ORACLE_SID]/udump/sid_ora_XXXXX.trc
shutdown immediate;
cp -p /oracleDB/oraBase/oradata/SILDEV/redo*.log /spare2/SILDEV/
cp -p /oracleDB/oraBase/oradata/SILDEV/system01.dbf /oraDB_data/dbase/SILDEV/
cp -p /oracleDB/oraBase/oradata/SILDEV/sysaux01.dbf /oraDB_data/dbase/SILDEV/
cp -p /oracleDB/oraBase/oradata/SILDEV/users01.dbf /oraDB_data/dbase/SILDEV/
cp -p /oracleDB/oraBase/oradata/SILDEV/undotbs01.dbf /oraAS/SILDEV/
cp -p /oracleDB/oraBase/oradata/SILDEV/temp01.dbf /oraDB_data/dbase/SILDEV/STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE “SILDEV” NORESETLOGS NOARCHIVELOG
MAXLOGFILES 16
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 8
MAXLOGHISTORY 292
LOGFILE
GROUP 1 ‘/spare2/SILDEV/redo01.log’ SIZE 50M,
GROUP 2 ‘/spare2/SILDEV/redo02.log’ SIZE 50M,
GROUP 3 ‘/spare2/SILDEV/redo03.log’ SIZE 50M
DATAFILE
‘/oraDB_data/dbase/SILDEV/system01.dbf’,
‘/oraAS/SILDEV/undotbs01.dbf’,
‘/oraDB_data/dbase/SILDEV/sysaux01.dbf’,
‘/oraDB_data/dbase/SILDEV/users01.dbf’
CHARACTER SET WE8ISO8859P1
;
ALTER DATABASE OPEN;
ALTER TABLESPACE TEMP ADD TEMPFILE ‘/oraDB_data/dbase/SILDEV/temp01.dbf’
SIZE 20971520 REUSE AUTOEXTEND ON NEXT 655360 MAXSIZE 32767M;
Controlfile
Per spostare i controlfile occorre modificare il file spfile.ora nella cartella:
$ORACLE_HOME/dbs/spfile[$ORACLE_SID].ora
farne una copia di sicurezza;
esso e’ un file binario; per cui occore prima trasformarlo in un file di testo col seguente comando:
SQL>create pfile='[path]/pfile[$ORACLE_SID].ora' from spfile='$ORACLE_HOME/dbs/spfile[$ORACLE_SID].ora';
editare il file “pfile[$ORACLE_SID].ora” e modificare il path dei controlfile che si vogliono spostare e/o eventuali altri parametri di sistema;
fare lo shutdown;
SQL>shutdown immediate;
spostare i controlfile nella nuova posizione;
fare una prova del pfile startando il db col seguente comando:
SQL> startup pfile='[path]/pfile[$ORACLE_SID].ora';
e verificare che l’istanza parta correttamente.
potrebbe generare un errore di tipo “ORA-01991: invalid password file…”
in questo caso va rigenerato il file di password che generalmente ha un path del tipo:
[$ORACLE_HOME]/dbs/orapw[$ORACLE_SID]
rinominare il file (per sicurezza) e ricrearlo, il comando è il seguente:
orapwd file=[$ORACLE_HOME]/dbs/orapw[$ORACLE_SID] password=[password]
a questo punto provare a startare di nuovo l’istanza attraverso il pfile,
se tutto va a buon fine ricreare l’spfile dal pfile appena modificato;
SQL>create spfile='$ORACLE_HOME/dbs/spfile[$ORACLE_SID].ora' from pfile='[path]/pfile[$ORACLE_SID].ora';
fare lo startup del database;
SQL>startup;
Verificare il corretto funzionamento del Database.
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
X11 tcp trouble
abilitare che gli host remoti possano connettersi lanciado il comando:
xhost +
exportare il DISPLAY:
export DISPLAY=<ip_x_host>:0.0
per verificare che ci siano connessioni attive in ascolto:
netstat --tcp --listen | grep x11
se non ve ne sono, verificare il file di configurazione gdm.conf la riga:
DisallowTCP=false (diu default sta a true)
(il file sotto ubuntu e’ in /etc/gdm/gdm.conf eventualmente cercarlo sotto /etc, con il comando find /etc |grep gdm.conf)
Oracle imp exp con file compressi
Export
mkfifo exportFIFO.dmp
nohup exp scott/tiger tables=(EMP, DEPT) file=exportFIFO.dmp&
nohup gzip < exportFIFO.dmp > export.dmp.gz&
Import
mkfifo importFIFO.dmp
nohup gzip -d < export.dmp.gz > importFIFO.dmp&
nohup imp scott/tiger fromuser=scott touser=scott ignore=Y file=importFIFO.dmp&
Bind address in my-sql
Nel seguente file:
/etc/mysql/my.cnf
sostituire:
bind-address = 127.0.0.1
con:
bind-address = 0.0.0.0
Nel primo caso mysql in ascolto solo da localhost nel secondo da ogni indirizzo.
Static routes Ubuntu
Creare un file eseguibile nella cartella:
/etc/network/if-up.d/
con le rotte statiche da aggiungere come nell’esempio:
#!/bin/sh
# Set static routes
#
/sbin/route add -net 10.10.22.0/24 gw 10.10.20.254 dev eth0
/sbin/route add -host 10.10.10.50 gw 10.10.20.254 dev eth0
Analisi access_log apache
awk ‘{print $1}’ access_log|sort|uniq -c|sort -nr
Subversion backup
svnadmin dump /appl/svnrepo/MyRepository > /tmp/myBackup.dump