Bonjour,

Je souhaiterais votre avis sur ce qui suit, voici tout d'abord un extrait de la doc officielle Oracle :

Resynchronizing After Physical Database Changes
Resynchronize the recovery catalog after making any change to the physical
structure of the target database. As with redo log archive operations, the recovery
catalog is not updated automatically when a physical schema change is made.
A physical schema change occurs after:
an Adding or dropping a tablespace
an Adding a new datafile to an existing tablespace
an Adding or dropping a rollback segment

Utilisant RMAN (9i) j'ai voulu en avoir le coeur net et vérifier si je pouvais facilement restaurer un tablespace ayant eu sa structure modifié.

voici le résultat de cette manip (9i sous windows, base test perso):

Ajout d'un datafile sur un TS existant (TESTBMC)
Création d'une table sur le datafile créé (le premier datafile étant full)
ALTER TABLESPACE TESTBMC
ADD
DATAFILE 'D:\DATA00\TEST\TESTBMC_02.dbf' SIZE 5M REUSE
AUTOEXTEND ON NEXT 1M MAXSIZE 10M
/
connect alain@TEST
create table t4 (nom varchar2(20), prenom varchar2(20))
/
insert into t4 values ('capitaine','haddock')
/
commit
/
synchro du catalog
fermeture de la base et suppression des datafiles associés au TS (pas comme sous unix ou tu peux faire un rm base ouverte)

start de la base en mount puis lancement de la commande restore
RMAN> restore tablespace TESTBMC;

Démarrage de restore dans 17/10/06

la configuration pour le canal DISK 2 n'est pas prise en compte
canal affecté : ORA_DISK_1
canal ORA_DISK_1 : sid=12 typedev=DISK
RMAN-00571: ===========================================================
RMAN-00569: =============== ERROR MESSAGE STACK FOLLOWS ===============
RMAN-00571: ===========================================================
RMAN-03002: failure of restore command at 10/17/2006 12:45:24
RMAN-06026: some targets not found - aborting restore
RMAN-06023: no backup or copy of datafile 7 found to restore

Bien évidemment le datafile 7 étant le dernier fichier créé sur le TS TESTBMC

Pour restaurer la base il faut passer par la manip suivante :

Start de la base en mount
Restauration depuis RMAN du premier datafile (il fait parti du backup RMAN)
Création sous SQL du deuxième datafile :
alter database create datafile 'D:\DATA00\TEST\TESTBMC_02.DBF';
Puis recover du tablespace sous RMAN ou SQL au choix
Ouverture de la base vérification :
SQL> select * from alain.t4;

NOM PRENOM
-------------------- ---------------
capitaine haddock

Pas de précision sur le create datafile, toutes les infos sont déjà dans le fichier de contrôle, il faut juste lui forcer un peu la main

Ma question est donc la suivante, avez vous déjà expérimenté ce cas.

Merci de vos réponses
Alain