Følgende er bare et eksempel på hvordan man let, kan flytte clone en database fra et sted til et andet. Det første der vel skal ske, er at man får oprettet dirs svarende til det nye target. I mit tilfælde en Oracle 10.2.0.2.0 på SUN ! og jeg flytter fra u01 og u02 til /oradev/databases.
[maskinnavn::/home1/usr/oracle]sid KARSTEN (sid sætter mit oracle environment som oraenv)
[maskinnavn:KARSTEN:/home1/usr/oracle]cd /oradev/databases
[maskinnavn:KARSTEN:/oradev/databases]mkdir KARSTEN
Så er det bare med at få lavet en kontrol fil udfra oplysningerne, den oprindelige base indeholder
[maskinnavn:KARSTEN:/home1/usr/oracle]sqlplus / AS SYSDBA
SQL> alter database backup controlfile to trace as '/tmp/karsten_gen_controll.sql';
SQL> exit
Ovenstående laver et sql script til at generere kontrol filer og starte basen (typisk i $ORACLE_BASE/admin/$ORACLE_SID/udump). Tilret scriptet mht den nye fil lokation og gem den til senere brug.
Find filerne der hører til databasen (enten ved ls som vist eller vhja dumpet):
[maskinnavn:KARSTEN:/home1/usr/oracle]ls -dl /ora*/ora*/KARSTEN
drwxrwxr-x 2 oracle dba 512 Nov 12 2003 /u01/oradbf/KARSTEN
drwxr-xr-x 2 oracle dba 512 Nov 10 2004 /u02/oradbf/KARSTEN
Flyt/kopier filerne.
[maskinnavn:KARSTEN:/home1/usr/oracle]sqlplus / AS SYSDBA
SQL> shutdown immetiate
SQL> exit
[maskinnavn:KARSTEN:/home1/usr/oracle]mv /u01/oradbf/KARSTEN/* /oradev/databases/KARSTEN/
[maskinnavn:KARSTEN:/home1/usr/oracle]mv /u02/oradbf/KARSTEN/* /oradev/databases/KARSTEN/
Slet eksisterende kontrol filer
[maskinnavn:KARSTEN:/home1/usr/oracle]cd /oradev/databases/KARSTEN/
[maskinnavn:KARSTEN:/oradev/databases/KARSTEN/]rm control0*.ora
Ret init$ORACLE_SID.ora mht. de nye fil placeringer.
[maskinnavn:KARSTEN:/home1/usr/oracle]cd $ORACLE_HOME/dbs
[maskinnavn:KARSTEN:/home1/usr/oracle]vi initKARSTEN.ora
Log ind med sqlplus og kør scripet fra før.
[maskinnavn:KARSTEN:/home1/usr/oracle]sqlplus / AS SYSDBA
SQL>
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "KARSTEN" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 2
MAXDATAFILES 128
MAXINSTANCES 8
MAXLOGHISTORY 1815
LOGFILE
GROUP 1 '/oradev/databases/KARSTEN/redo01.dbf' SIZE 5M,
GROUP 2 '/oradev/databases/KARSTEN/redo02.dbf' SIZE 5M,
GROUP 3 '/oradev/databases/KARSTEN/redo03.dbf' SIZE 5M
DATAFILE '/ oradev/databases/KARSTEN/system_01.dbf',
'/oradev/databases/KARSTEN/rbs01.dbf',
'/oradev/databases/KARSTEN/temp_01.dbf'
CHARACTER SET WE8ISO8859P1
;
RECOVER DATABASE
ALTER DATABASE OPEN
Hverefter lav en
[maskinnavn:KARSTEN:/home1/usr/oracle]sqlplus / AS SYSDBA
SQL> select * from v$tempfile;
Er resultatet ingenting gøres følgende (check navngivningen på din temp file)
ALTER TABLESPACE TEMP ADD TEMPFILE '/oradev/databases/KARSTEN/temp_01.dbf' REUSE AUTOEXTEND OFF
En forespørgsel i v$tempfile skulle nu gerne vise din temp file.