Précédent   Forum des professionnels en informatique > Bases de données > Oracle > Administration
Administration Forum d'entraide sur l'administration du serveur Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/04/2008, 15h16   #1
Membre régulier
 
Inscription : novembre 2004
Messages : 657
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 657
Points : 81
Points : 81
Par défaut Création de fichier controle

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 :
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 :
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 :
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 :
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;
big1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 15h24   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
pourquoi recrées tu les controlfiles ?
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 15h38   #3
Membre régulier
 
Inscription : novembre 2004
Messages : 657
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 657
Points : 81
Points : 81
Merci pour ta réponse. J'ai toujours fais comme cela (créer de nouveaux fichiers controles pour la base cible) quand il s'agit de raffraîchir une base de test à partir d'une base de prod. En générale j'utilsais le backup à froid avec just RECOVER DATABASE. Backup froide actuellement est impossible, on ne peut pas arrêter la base de prod.
Mais que propose-tu ?
big1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 15h38   #4
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Dans ce cas, et si tu renommes la base ou déplace les fichiers, en effet, tu ne peux pas réutiliser les redologs et tu dois faire un cancel.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 15h40   #5
Membre régulier
 
Inscription : novembre 2004
Messages : 657
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 657
Points : 81
Points : 81
donc ça se termine toujours manuellement ? CANCEL et ALTER DATABASE OPEN RESETLOGS ?
Cdt.
big1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 15h46   #6
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
faudrait voir l'alert.log parce qu'en principe t'as pas besoin de le lancer 2 fois
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 16h22   #7
Membre régulier
 
Inscription : novembre 2004
Messages : 657
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 657
Points : 81
Points : 81
Mon but était d'automatiser ce processus. Si en tout cas après :
Code :
1
2
 
RECOVER DATABASE USING backup controlfile until cancel;
il faut agir manuellement je m'arrête là. Sinon je peux t'envoyer l'alertolog dont voici une partie :
Code :
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
 
'C:\ORACLE\ORADATA\TEST\DR01.DBF'
CHARACTER SET WE8ISO8859P1
 
 
Wed Apr 30 06:05:16 2008
Successful mount of redo thread 1, WITH mount id 1180725363.
Wed Apr 30 06:05:16 2008
Completed: CREATE CONTROLFILE SET DATABASE "TEST" RESETLOGS A
Wed Apr 30 06:05:16 2008
ALTER DATABASE RECOVER  DATABASE USING backup controlfile until cancel  
Media Recovery Start
Media Recovery Log 
ORA-279 signalled during: ALTER DATABASE RECOVER  DATABASE USING backup cont...
Wed Apr 30 06:05:16 2008
ALTER DATABASE RECOVER    CONTINUE DEFAULT  
Media Recovery Log C:\ORACLE\ORADATA\TEST\ARCHIVE\TEST_ARCH1350.ARCH
ORA-279 signalled during: ALTER DATABASE RECOVER    CONTINUE DEFAULT  ...
Wed Apr 30 06:05:16 2008
ALTER DATABASE RECOVER    LOGFILE 'ALTER'  
Media Recovery Log ALTER
ORA-308 signalled during: ALTER DATABASE RECOVER    LOGFILE 'ALTER'  ...
Wed Apr 30 06:05:16 2008
ALTER DATABASE RECOVER CANCEL 
Media Recovery Cancelled
Completed: ALTER DATABASE RECOVER CANCEL 
Wed Apr 30 07:15:16 2008
ALTER DATABASE RECOVER  DATABASE USING backup controlfile until cancel  
Wed Apr 30 07:15:16 2008
Media Recovery Start
Media Recovery Log 
ORA-279 signalled during: ALTER DATABASE RECOVER  DATABASE USING backup cont...
Wed Apr 30 07:15:20 2008
ALTER DATABASE RECOVER    CONTINUE DEFAULT  
Media Recovery Log C:\ORACLE\ORADATA\TEST\ARCHIVE\TEST_ARCH1351.ARCH
ORA-308 signalled during: ALTER DATABASE RECOVER    CONTINUE DEFAULT  ...
Wed Apr 30 07:15:20 2008
ALTER DATABASE RECOVER CANCEL 
Media Recovery Cancelled
Completed: ALTER DATABASE RECOVER CANCEL 
Wed Apr 30 07:15:25 2008
ALTER DATABASE RECOVER  DATABASE USING backup controlfile until cancel  
Media Recovery Start
Media Recovery Log 
ORA-279 signalled during: ALTER DATABASE RECOVER  DATABASE USING backup cont...
Wed Apr 30 07:15:30 2008
ALTER DATABASE RECOVER    CANCEL  
Media Recovery Cancelled
Completed: ALTER DATABASE RECOVER    CANCEL  
Wed Apr 30 07:16:01 2008
ALTER DATABASE OPEN RESETLOGS
 
Wed Apr 30 07:16:01 2008
RESETLOGS after incomplete recovery UNTIL CHANGE 241541
Wed Apr 30 07:16:02 2008
Thread 1 opened at log sequence 1
  Current log# 3 seq# 1 mem# 0: C:\ORACLE\ORADATA\TEST\REDO01.LOG
Successful open of redo thread 1.
Wed Apr 30 07:16:02 2008
SMON: enabling cache recovery
Wed Apr 30 07:16:02 2008
Dictionary CHECK beginning
Tablespace 'TEMP' #3 found in data dictionary,
but NOT IN the controlfile. Adding TO controlfile.
File #4 found in data dictionary but not in controlfile.
Creating OFFLINE file 'MISSING00004' IN the controlfile.
This file can no longer be recovered so it must be dropped.
Dictionary CHECK complete
Wed Apr 30 07:16:02 2008
SMON: enabling tx recovery
Wed Apr 30 07:16:41 2008
Completed: ALTER DATABASE OPEN RESETLOGS
D'avance merci.
big1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 16h33   #8
Membre actif
 
Étudiant
Inscription : février 2008
Messages : 224
Détails du profil
Informations personnelles :
Âge : 27
Localisation : France, Nord (Nord Pas de Calais)

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : février 2008
Messages : 224
Points : 185
Points : 185
Bonjour,

Un RECOVER UNTIL CANCEL doit être lancé à la main du fait qu'il faille que tu lui spécifies CANCEL.

Je ne pense pas que tu puisses automatiser ce type de récupération.
Milo59000 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/04/2008, 16h39   #9
Membre régulier
 
Inscription : novembre 2004
Messages : 657
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 657
Points : 81
Points : 81
merci , j'attends voir si c'est l'avis définitif de tous.
big1 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 00h04.


 
 
 
 
Partenaires

Hébergement Web