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)
Je dois manuellemnt appliquer :
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
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 :
script hotbackup.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 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 .......................... ............................ ....................... ALTER TABLESPACE SYSTEM BEGIN BACKUP; host ocopy C:\ORACLE\ORADATA\ORCL\SYSTEM01.DBF C:\oracle\oradata\TEST ALTER TABLESPACE SYSTEM END BACKUP; ............................... ...................... ........................
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;
Partager