La copie consiste à arrêter la base « oratest » et remplacer ses fichiers par ceux de la base « orafrance » et faire en sorte que ceux-ci soient bien pris en compte.
II-A. Création des fichiers de contrôle
Les fichiers de contrôle indique à la base où sont situés les fichiers constituant la base de données.
Nous allons générer le script de création des control files de la base orafrance :
Cette commande génère un fichier trace dans le répertoire des
traces utilisateurs indiqué par le paramètre « user_dump_dest ». Le
fichier ressemble alors à ceci : La partie qui nous intéresse est la
suivante :
Nous allons générer le script de création des control files de la base orafrance :
Sélectionnez
SQL
>
alter
database
backup controlfile to
trace;
Sélectionnez
STARTUP NOMOUNT
CREATE
CONTROLFILE REUSE DATABASE
"
orafrance
"
NORESETLOGS ARCHIVELOG
--
SET
STANDBY
TO
MAXIMIZE
PERFORMANCE
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 908
LOGFILE
GROUP
1
'
G:\ORACLE\ORADATA\orafrance\REDO01.LOG
'
SIZE 10M,
GROUP
1
'
G:\ORACLE\ORADATA\orafrance\REDO02.LOG
'
SIZE 10M,
GROUP
2
'
F:\ORACLE\ORADATA\orafrance\REDO03.LOG
'
SIZE 10M,
GROUP
2
'
F:\ORACLE\ORADATA\orafrance\REDO04.LOG
'
SIZE 10M
--
STANDBY
LOGFILE
DATAFILE
'
F:\ORACLE\ORADATA\orafrance\SYSTEM01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\CWMLITE01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DRSYS01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\EXAMPLE01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\INDX01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\ODM01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\TOOLS01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\USERS01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\XDB01.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\INDEX\INDPRD.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DATA\DATPRD.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DATA\DATDEM.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DATA\DATDIS.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DATA\DATHIS.DBF
'
,
'
F:\ORACLE\ORADATA\orafrance\DATA\DATREF.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDEM.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDHIS.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDREF.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS2.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS3.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS4.DBF
'
,
'
G:\ORACLE\ORADATA\orafrance\INDEX\INDDIS5.DBF
'
CHARACTER
SET
WE8MSWIN1252
;
# Recovery is
required if
any
of
the datafiles are restored backups,
# or
if
the last shutdown was not
normal or
immediate
.
RECOVER DATABASE
# All
logs need archiving and
a log
switch is
needed.
ALTER
SYSTEM ARCHIVE LOG
ALL
;
# Database
can now be opened normally.
ALTER
DATABASE
OPEN
;
# Commands to
add
tempfiles to
temporary tablespaces.
# Online
tempfiles have complete space
information.
# Other tempfiles may require adjustment.
ALTER
TABLESPACE
TEMP ADD
TEMPFILE '
G:\ORACLE\ORADATA\orafrance\TEMP02.DBF
'
SIZE 2000M REUSE AUTOEXTEND OFF
;
ALTER
TABLESPACE
TEMP ADD
TEMPFILE '
G:\ORACLE\ORADATA\orafrance\TEMP01.DBF
'
SIZE 2000M REUSE AUTOEXTEND OFF
;
II-B. Modification du fichier généré
La base à copier doit être arrêtée afin que tous les fichiers soient bien synchronisés.
Une fois que les fichiers de la base « orafrance » sont
copiés sur « oratest », il convient de modifier le script de création
des fichiers de contrôle pour l'adapter aux nouveaux chemins. Par
exemple, nous allons copier les fichiers de F:\ORACLE\ORADATA\orafrance et G:\ORACLE\ORADATA\orafrance sur un autre serveur dans D:\ORACLE\ORADATA\oratest.Il faut donc remplacer les chaînes de caractères F:\ORACLE\ORADATA\orafrance et G:\ORACLE\ORADATA\orafrance par D:\ORACLE\ORADATA\oratest. Le nom de la base change aussi de « orafrance » à « oratest », il faut donc spécifier ce changement en remplaçant l'entête :
Sélectionnez
CREATE
CONTROLFILE REUSE DATABASE
"
orafrance
"
NORESETLOGS ARCHIVELOG
Sélectionnez
CREATE
CONTROLFILE SET
DATABASE
"
oratest
"
RESETLOGS ARCHIVELOG
Après avoir supprimé les lignes inutiles le fichier doit ressemblé à ceci :
Sélectionnez
STARTUP NOMOUNT
CREATE
CONTROLFILE SET
DATABASE
"
oratest
"
RESETLOGS ARCHIVELOG
MAXLOGFILES 5
MAXLOGMEMBERS 3
MAXDATAFILES 100
MAXINSTANCES 1
MAXLOGHISTORY 908
LOGFILE
GROUP
1
'
D:\ORACLE\ORADATA\oratest\REDO01.LOG
'
SIZE 10M,
GROUP
1
'
D:\ORACLE\ORADATA\oratest\REDO02.LOG
'
SIZE 10M,
GROUP
2
'
D:\ORACLE\ORADATA\oratest\REDO03.LOG
'
SIZE 10M,
GROUP
2
'
D:\ORACLE\ORADATA\oratest\REDO04.LOG
'
SIZE 10M
DATAFILE
'
D:\ORACLE\ORADATA\oratest\SYSTEM01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\CWMLITE01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DRSYS01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\EXAMPLE01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDX01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\ODM01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\TOOLS01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\USERS01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\XDB01.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDPRD.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DATA\DATPRD.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DATA\DATDEM.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DATA\DATDIS.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DATA\DATHIS.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\DATA\DATREF.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDEM.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDIS.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDHIS.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDREF.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDIS2.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDIS3.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDIS4.DBF
'
,
'
D:\ORACLE\ORADATA\oratest\INDEX\INDDIS5.DBF
'
CHARACTER
SET
WE8MSWIN1252
;
ALTER
DATABASE
OPEN
RESETLOGS;
ALTER
TABLESPACE
TEMP ADD
TEMPFILE '
D:\ORACLE\ORADATA\oratest\TEMP02.DBF
'
SIZE 2000M REUSE AUTOEXTEND OFF
;
ALTER
TABLESPACE
TEMP ADD
TEMPFILE '
D:\ORACLE\ORADATA\oratest\TEMP01.DBF
'
SIZE 2000M REUSE AUTOEXTEND OFF
;
Il faut le renommer en initORATEST.ora et modifier les paramètres suivant : db_name control_file user_dump_dest, background_dump_dest, core_dump_dest utl_file_dir
Pensez également à réduire la taille de la base et supprimer le mode ARCHIVELOG si nécessaire.
0 Commentaires