mardi 21 juin 2011

ORACLE - Algorithme de Copie

Algorithme de copie d'une base

Génération du script de création des controlfile

alter database backup controlfile to trace;

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.

Copie des fichiers dans l'environnement cible
Copiez les fichiers datafile

Modification du script
     
      Renommer les fichiers redo et les répertoires.
    *
      Remplacer l'option REUSE_DATABASE avec SET DATABASE , ou est le nom de la base source et est le nouveau nom.
    *
      Remplacer NORESETLOGS avec RESETLOGS, nécessaire lors de l’option SET DATABASE.
    *
      Vérifier l'option ARCHIVELOG ou NOARCHIVELOG.
    *
      Note: ARCHIVELOG est nécessaire avec un backup online.
    *
      Enlever les autres commentaires et commandes. Ceci inclut RECOVER DATABASE ainsi que ALTER DATABASE OPEN.
    *
      Sauvegardez ce script sous le nom r.sql

Modifier init.ora
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
pause

Renommer 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.sql

Ouvrir 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: {=suggested | filename | AUTO | CANCEL}
Log applied.
ORA-00279: Change 7244 generated at 05/21/99 10:39:07 needed for thread 1
ORA-00289: Suggestion : /oracle/admin/copy7/arch/arch_10
ORA-00280: Change 7244 for thread 1 is in sequence #10
Specify log: {=suggested | filename | AUTO | CANCEL}
cancel
Media recovery cancelled.
SVRMGR>
SVRMGR> ALTER DATABASE OPEN RESETLOGS;

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
Scripts

Exemple 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.

Aucun commentaire:

Enregistrer un commentaire