![]() |
|||||||||||||||||||||||||||||||||||||||||||||
|
Algorithme de copie d'une base Copier une base de données Nous n’avons pas connu, à part des situations de restauration en catastrophe, des situations plus stressantes que la copie rapide des bases de données. Cette activité, bien menée, donnera plein satisfaction à tous les niveaux : direction, DBAs, utilisateurs. Plusieurs solutions existent : le DBA devra choisir parmi ces possibilités la solution la plus performante, mais qui sera pratiquement toujours dépendante de la situation réelle sur site. Une bonne connaissance de la réalité environnante vous aidera à résoudre ce problème.
Cette procédure est destinée à la création par copie d'une base ORACLE dans un environnement similaire à celui d'origine (machine, OS, version d'Oracle). Typiquement, l'opération consiste en la copie des fichiers. L'algorithme prévu prend en compte un backup à froid de la base originale ou un backup a chaud comme alternative. Comme affirmé précédemment, c’est votre environnement qui vous dictera le choix du type de backup.
Backup de la basePour copier une base dans un autre environnement, nous devons faire un backup des fichiers concernés: FULL ou ONLINE. Le backup online nécessite que L'ARCHIVAGE soit utilisé.
Nous devons copier également les fichiers INIT.ORA ainsi que le fichier issu de la commande encadrée. Les fichiers de contrôle ne sont pas nécessaires, ils seront recrées. Les fichiers redo ne sont non plus nécessaires, la base sera créée avec l'option RESETLOGS. La commande qui crée le script de création du fichier de contrôle est la suivante:
SVRMGR> connect internal SVRMGR> alter database backup controlfile to trace; SVRMGR> exit Ceci créera un fichier texte (avec suffixe.trc) dans le répertoire USERDUMP. Ce fichier devra être édité pour convenir à l'action envisagée.
Création de l'environnement cible. Tous les répertoires source seront crées dans l'environnement cible à votre convenance. $ORACLE_HOME devrait correspondre à celui de l'environnement d'origine. Vous pouvez également utiliser les spécifications OFA.
Copie des fichiers dans l'environnement cibleCopiez les fichiers.
Modification du scriptEn fonction du choix de déploiement des fichiers dans l'environnement cible, modifier en conséquence le fichier ASCII obtenu précédemment.
A ce point, soit nous utiliserons l'ancien init.ora, soit nous en recréons un. Dans les deux cas, vérifier ou bien modifier les noms de répertoires, le paramètre "db_name", les paramètres mts.
(NT) créer le service !set ORACLE_SID=PROD ORADIM -new -SID PROD -startmode auto -intpwd manager -pfile f:\oracle81\database\PFile\InitPROD.ora pauseRenommer la base cible Création du nouveau fichier de contrôle et renommer la base, vérifier $PATH, $ORACLE_HOME et $ORACLE_SID.
cd $ORACLE_HOME/dbs svrmgrl SVRMGR> connect internal SVRMGR> @new_control.sqlOuvrir la base Si full Backup à l’étape initiale: SVRMGR> ALTER DATABASE OPEN RESETLOGS;Si Online Backup:
SVRMGR> RECOVER DATABASE USING BACKUP CONTROLFILE UNTIL CANCEL;
SVRMGR> recover database using backup controlfile until cancel;
ORA-00279: Change 7239 generated at 05/21/99 10:26:19 needed for thread 1
ORA-00289: Suggestion : /oracle/admin/copy7/arch/arch_9
ORA-00280: Change 7239 for thread 1 is in sequence #9
Specify log: {
A ce point, la base est fonctionnelle. Veillez à modifier le nom global de la base
ALTER DATABASE RENAME GLOBAL_NAME TO NOM.DOMAIN_NAME Vérifiez les database links.
Effectuez un backup.Divers Mettre à jour oratab.
Mettre à jour les fichiers SQL*Net: sur le serveur listener.ora et tnsnames.ora, sur le client tnsnames.ora
ScriptsExemple de r.sql
STARTUP NOMOUNT pfile=f:\oracle81\database\initPROD.ora
CREATE CONTROLFILE SET DATABASE "PROD" RESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 254
MAXINSTANCES 1
MAXLOGHISTORY 907
LOGFILE
GROUP 1 'F:\ORACLE81\ORADATA\PROD\REDO01.LOG' SIZE 1M,
GROUP 2 'F:\ORACLE81\ORADATA\PROD\REDO02.LOG' SIZE 1M,
GROUP 3 'F:\ORACLE81\ORADATA\PROD\REDO03.LOG' SIZE 1M
DATAFILE
'g:\ORACLE81\ORADATA\PROD\SYSTEM01.DBF',
'g:\ORACLE81\ORADATA\PROD\RBS01.DBF',
'g:\ORACLE81\ORADATA\PROD\USERS01.DBF',
'g:\ORACLE81\ORADATA\PROD\TEMP01.DBF',
'g:\ORACLE81\ORADATA\PROD\TOOLS01.DBF',
'g:\ORACLE81\ORADATA\PROD\INDX01.DBF',
'g:\ORACLE81\ORADATA\PROD\OEM_REPOSITORY.ORA'
CHARACTER SET WE8ISO8859P1 ;
Voici l’original
STARTUP NOMOUNT
CREATE CONTROLFILE REUSE DATABASE "IRIS" NORESETLOGS NOARCHIVELOG
MAXLOGFILES 32
MAXLOGMEMBERS 3
MAXDATAFILES 254
MAXINSTANCES 1
MAXLOGHISTORY 907
LOGFILE
GROUP 1 'F:\ORACLE81\ORADATA\IRIS\REDO01.LOG' SIZE 1M,
GROUP 2 'F:\ORACLE81\ORADATA\IRIS\REDO02.LOG' SIZE 1M,
GROUP 3 'F:\ORACLE81\ORADATA\IRIS\REDO03.LOG' SIZE 1M
DATAFILE
'F:\ORACLE81\ORADATA\IRIS\SYSTEM01.DBF',
'F:\ORACLE81\ORADATA\IRIS\RBS01.DBF',
'F:\ORACLE81\ORADATA\IRIS\USERS01.DBF',
'F:\ORACLE81\ORADATA\IRIS\TEMP01.DBF',
'F:\ORACLE81\ORADATA\IRIS\TOOLS01.DBF',
'F:\ORACLE81\ORADATA\IRIS\INDX01.DBF',
'F:\ORACLE81\ORADATA\IRIS\OEM_REPOSITORY.ORA'
CHARACTER SET WE8ISO8859P1
;
RECOVER DATABASE
ALTER DATABASE OPEN;
Résultat
F:\oracle81\ADMIN\PROD\udump>set ORACLE_SID=PROD
F:\oracle81\ADMIN\PROD\udump>svrmgrl
Oracle Server Manager Release 3.1.6.0.0 - Production
Copyright (c) 1997, 1999, Oracle Corporation. All Rights Reserved.
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
With the Partitioning option
JServer Release 8.1.6.0.0 - Production
SVRMGR> @r.sql
ORACLE instance started.
Total System Global Area 79475980 bytes
Fixed Size 70924 bytes
Variable Size 38367232 bytes
Database Buffers 40960000 bytes
Redo Buffers 77824 bytes
Statement processed.
SVRMGR> alter database open resetlogs;
Statement processed.
SVRMGR> select * from v$version;
BANNER
----------------------------------------------------------------
Oracle8i Enterprise Edition Release 8.1.6.0.0 - Production
PL/SQL Release 8.1.6.0.0 - Production
CORE 8.1.6.0.0 Production
TNS for 32-bit Windows: Version 8.1.6.0.0 - Production
NLSRTL Version 3.4.1.0.0 - Production
5 rows selected.
SVRMGR> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
|
||||||||||||||||||||||||||||||||||||||||||||
|
|||||||||||||||||||||||||||||||||||||||||||||