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 02/04/2008, 17h31   #1
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Par défaut Liste des objets à recompiler suite à import

Bonjour,
Existe t'il une requête pouvant fournir la liste des objets qui doivent être recompiler après un import car j'ai constaté que d'autres objets que ceux en erreur dans la log étaient en erreur après l'import.
Merci par avance.
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 17h38   #2
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 975
Points : 3 975
J'utilise ça :
Code :
1
2
3
  SELECT object_name NOM_OBJ , object_type TYP_OBJ
  FROM user_objects 
  WHERE STATUS = 'INVALID' ;
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 17h54   #3
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
sinon, lance tout simplement utlrp.sql dans ORACLE_HOME\rdbms\admin
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 19h04   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 975
Points : 3 975
Citation:
Envoyé par orafrance Voir le message
sinon, lance tout simplement utlrp.sql dans ORACLE_HOME\rdbms\admin
J'avais lu une documentation mettant en garde sur l'utilisation de ce script. (en gros, il était demandé de faire une sauvegarde avant de le lancer et que ça pouvait causer des problèmes dans SYS) C'est assez ancien alors je pense que je devais être en 8i. Est-ce que c'est toujours le cas ou pas, est-ce que mon cerveau malade a déformé une information ? Ou une légende urbaine oracléenne qui traine ?
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 19h37   #5
Membre confirmé
 
Inscription : octobre 2006
Messages : 440
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 440
Points : 222
Points : 222
Merci pour vos réponses.
Je vais utiliser cette requête qui répond à ma demande :
Code :
1
2
3
SELECT object_name NOM_OBJ , object_type TYP_OBJ
  FROM dba_objects 
  WHERE STATUS = 'INVALID' ;
Pouvez vous m'indiquer ce que fait :Merci
tibal est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 19h50   #6
Expert Confirmé
 
Inscription : février 2006
Messages : 3 433
Détails du profil
Informations forums :
Inscription : février 2006
Messages : 3 433
Points : 3 462
Points : 3 462
Le script utlrp va recompiler tous les objets invalides dans tous les schémas de la base (avec une connexion SYSDBA). Je ne sais pas s'il y a des problèmes particuliers avec Oracle 8i. En tout cas pour toute version Oracle, il faut quand même savoir que s'il y a des transactions en cours qui utilisent des packages PL/SQL avec des variables de session, et qui référencent d'autres packages qui ont été recompilés, alors des transactions auront les erreurs suivantes:

Citation:
ORA-04061: existing state of string has been invalidated
Cause: Attempt to resume the execution of a stored procedure using the existing state which has become invalid or inconsistent with the stored procedure because the procedure has been altered or dropped.
Action: Try again; this error should have caused the existing state of all packages to be re-initialized.

ORA-04065: not executed, altered or dropped string
Cause: Attempt to execute a stored procedure that has been altered or dropped thus making it not callable from the calling procedure.
Action: Recompile its dependents.
C'est uniquement un problème si l'application ne sait pas récupérer correctement des erreurs inattendues, ce qui arrive encore
__________________
P. Forstmann

AskTom Forums OTN doc 8, 9, 10 et 11
pifor est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 20h10   #7
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 975
Points : 3 975
Citation:
Envoyé par tibal Voir le message
Pouvez vous m'indiquer ce que fait : utlrp.sql
Tout est dit dans le fichier :
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
Rem    NAME
Rem      utlrp.sql - Recompile invalid objects
Rem
Rem    DESCRIPTION
Rem     This script recompiles invalid objects IN the DATABASE.
Rem
Rem     When run AS one of the last steps during upgrade OR downgrade,
Rem     this script will validate ALL remaining invalid objects. It will
Rem     also run a component validation procedure FOR each component IN
Rem     the DATABASE. See the README notes FOR your current release AND
Rem     the Oracle DATABASE Upgrade book FOR more information about
Rem     USING utlrp.sql   
Rem
Rem     Although invalid objects are automatically re-validated when used,
Rem     it IS useful TO run this script after an upgrade OR downgrade AND
Rem     after applying a patch. This minimizes latencies caused BY
Rem     on-demand recompilation. Oracle strongly recommends running this
Rem     script after upgrades, downgrades AND patches.
Rem
Rem   NOTES
Rem      * This script must be run USING SQL*PLUS.
Rem      * You must be connected AS SYSDBA TO run this script.
Rem      * There should be no other DDL ON the DATABASE while running the
Rem        script.  NOT following this recommendation may lead TO deadlocks.
Merci pifor pour les infos, désormais j'utiliserais le script oracle sans soucis !
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/04/2008, 20h48   #8
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
Citation:
Envoyé par Jerome_Mtl Voir le message
J'avais lu une documentation mettant en garde sur l'utilisation de ce script. (en gros, il était demandé de faire une sauvegarde avant de le lancer et que ça pouvait causer des problèmes dans SYS) C'est assez ancien alors je pense que je devais être en 8i. Est-ce que c'est toujours le cas ou pas, est-ce que mon cerveau malade a déformé une information ? Ou une légende urbaine oracléenne qui traine ?
Bah faut juste éviter de le lancer quand la base est trop chargé mais comme la compile classique... d'ailleurs il ne fait rien de plus que compiler les objets dans l'ordre des dépendances
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h22.


 
 
 
 
Partenaires

Hébergement Web