Giuseppe’s Weblog

Just another WordPress.com weblog

Spostare datafile, redolog file e controlfile – Oracle Database

lascia un commento »


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.

Written by gfiorito

Agosto 5, 2008 a 11:28 am

Pubblicato in HowTo, Oracle

Lascia un commento