Bonjour,
en 8.1.7 (OS Win 2003) je réalise les action qui suivent pour rafraîchir une base :
1-utilisation du fichier gen.sql pour générer le fichier hotbackup.sql.
2-exécution de hotbackup.sql.
3-exécution de script de création de fichiers de contrôle.
Au troisième étape sur la commande :
RECOVER DATABASE using backup controlfile until cancel;
L'action échoue. Le script s'arrête. La base n'est pas ouverte mais montée (MOUNTED)

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
 
SQL> select * from v$instance;
 
INSTANCE_NUMBER INSTANCE_NAME
--------------- ----------------
HOST_NAME
----------------------------------------------------------------
VERSION           STARTUP_T STATUS  PAR    THREAD# ARCHIVE LOG_SWITCH_
----------------- --------- ------- --- ---------- ------- -----------
LOGINS     SHU DATABASE_STATUS   INSTANCE_ROLE
---------- --- ----------------- ------------------
              1 test
W2K3DATAMIN
8.1.7.0.0         30-APR-08 MOUNTED NO           1 STARTED
ALLOWED    NO  ACTIVE            PRIMARY_INSTANCE
Je dois manuellemnt appliquer :
RECOVER DATABASE using backup controlfile until cancel;

faire la touche Entrée.
Réappliquer :
RECOVER DATABASE using backup controlfile until cancel;
taper :
CANCEL

ALTER DATABASE OPEN RESETLOGS;

Et là la base de données s'ouvre.

Merci de bien vouloir m'aider à résoudre ce problème. Que dois-je utiliser au lieu de RECOVER DATABASE using backup controlfile until cancel ?
D'avance merci.
PS :
Mes scripts :

gen.sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
 
gen.sql :
...........................
................................
tabcur tbspc%rowtype;
datcur datfil%rowtype; 
sql_string Varchar2(500);
tsname1 varchar2(30);
tsname2 varchar2(30);
v_dt varchar2(10);
v_archive_dest varchar2(500);
v_dbname varchar2(500);
begin
open tbspc; 
loop
fetch tbspc into tabcur;
exit when tbspc%notfound;
sql_string := 'ALTER TABLESPACE ' || tabcur.tablespace_name || ' BEGIN BACKUP;';
dbms_output.put_line(sql_string);
for datcur in datfil(tabcur.tablespace_name)
loop
sql_string := 'host ocopy ' || datcur.file_name || ' &HOT_BACK_DIR';
dbms_output.put_line(sql_String);
end loop;
.......................................................
.......................................................
script hotbackup.sql :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
..........................
............................
.......................
ALTER TABLESPACE SYSTEM BEGIN BACKUP; 
host ocopy C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF C:\oracle\oradata\TEST 
ALTER TABLESPACE SYSTEM END BACKUP; 
...............................
......................
........................
Script création de control file :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
 
STARTUP NOMOUNT PFILE='C:\oracle\admin\TEST\pfile\initTEST.ora';
CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS ARCHIVELOG   
   MAXLOGFILES 32
    MAXLOGMEMBERS 2
    MAXDATAFILES 32
    MAXINSTANCES 16
    MAXLOGHISTORY 1815
LOGFILE
  GROUP 1 'C:\ORACLE\ORADATA\TEST\REDO03.LOG'  SIZE 1M,
  GROUP 2 'C:\ORACLE\ORADATA\TEST\REDO02.LOG'  SIZE 1M,
  GROUP 3 'C:\ORACLE\ORADATA\TEST\REDO01.LOG'  SIZE 1M
DATAFILE
  'C:\ORACLE\ORADATA\TEST\SYSTEM01.DBF',
  'C:\ORACLE\ORADATA\TEST\RBS01.DBF',
  'C:\ORACLE\ORADATA\TEST\USERS01.DBF',
  'C:\ORACLE\ORADATA\TEST\TOOLS01.DBF',
  'C:\ORACLE\ORADATA\TEST\INDX01.DBF',
  'C:\ORACLE\ORADATA\TEST\DR01.DBF'
CHARACTER SET WE8ISO8859P1
;
 
RECOVER DATABASE using backup controlfile until cancel;
ALTER DATABASE OPEN RESETLOGS;