Bienvenue sur mon blog ! Ce blog me sert principalement d'aide mémoire sur des commandes, des tâches journalières, des problèmes rencontrées, des trucs, des astuces, etc. De jours en jours, je l'alimente avec des sujets que je traite. En créant des articles, je m'offre la chance de pouvoir retrouver facilement ces informations et par le fait même, ça me permet de les partager avec vous.
mercredi 21 mars 2018
Vous prévoyez migrer vers Oracle 12c Release 2 ?
mardi 11 août 2009
Vérification interminable du contenu d'un fichier log
Pour me simplifier la tâche, j'effectue cette simple commande sous Unix :
cat mig10204.log grep ORA-
La commande affiche toutes les lignes qui comportent la chaîne "ORA-".
Dire que je cherchais une façon beaucoup plus compliqué et, j'avais la solution en plein devant les yeux...
mercredi 6 mai 2009
ORA-00600 suite à une migration à 10.2.0.4.0
ORA-00600: internal error code, arguments: [psdmsc.c: spawned type invalid],
[], [], [], [], [], [], []
Pour résoudre ce problème, il suffit de procéder comme suit :
cd $ORACLE_HOME/rdbms/admin
sqlplus / as sysdba
shutdown immediate
startup upgrade
@utlirp
Declare
MASK constant varchar2(80) := 'SYS_PLSQL_[0-9]+_([0-9]+DUMMY)_[12]';
dep_count number;
Begin
select count(*) into dep_count from dba_dependencies
where (referenced_owner, referenced_name, referenced_type) in
(select owner, object_name, object_type from dba_objects
where object_type = 'TYPE'
and regexp_like(object_name, MASK))
and not (type = 'TYPE' and regexp_like(name, MASK));
if (dep_count > 0) then
raise_application_error(-20001,
'Unknown dependent objects on system-generated types');
end if;
for r in (select owner, object_name from dba_objects
where object_type = 'TYPE'
and regexp_like(object_name, MASK))
loop
execute immediate 'drop type "'r.owner'"."'r.object_name
'" force';
end loop;
End;
/
Shutdown immediate
startup
@utlrp.sql
Réf. : Oracle Metalink, Note 726623.1
samedi 28 février 2009
Migrer une base de données vers un autre ORACLE_HOME
La façon préconisée a été d'installer un nouveau "ORACLE_HOME" et tant qu'à faire, j'en ai profité pour déployer le CPU d'Oracle (Critical Patch Update Jan2009).
Installation
1. Installer le logiciel "Oracle Database 10.2.0.1"
2. Installer le patchset "Oracle Database 10.2.0.4"
3. Installer le "CPU January 2009"
Migration
1. Arrêt de la base de données
$ sqlplus / as sysdba
SQL> shutdown immediate
2. Création d'un fichier de paramètres PFILE à partir du SPFILE
$ sqlplus / as sysdba
SQL> create pfile='ORACLE_HOME
$ cd ORACLE_HOME
$ cp initORCL.ora NOUV_ORACLE_HOME
3. Editer le PFILE et modifier les paramètres dont ceux qui pointent dans l'ancien ORACLE_HOME ( compatible, optimizer_features_enable, etc...)
$ cd NOUV_ORACLE_HOME
$ vi initORCL.ora
4. Modifier le fichier ORATAB
Changer l'ORACLE_HOME correspondant à la base de données
$vi oratab
ORCL:NOUV_ORACLE_HOME
5. Modifier le fichier de configuration du listener
(SID_DESC =
(GLOBAL_DBNAME = ORCL.world)
(ORACLE_HOME = NOUV_ORACLE_HOME
(ENVS = 'LD_LIBRARY_PATH=NOUV_ORACLE_HOME
(SID_NAME = ORCL)
6. Redémarrer le listener
$ lsnrctl reload lsnr1020
7. Création des liens pour des fichiers (optionel)
Si vous n'utilisez pas les emplacements par défaut de certains fichiers (c'est mon cas!) alors vous devez créer des liens symboliques sous Unix.
Il suffit de se positionner dans le répertoire par défaut puis d'exécuter la commande:
- Pour l' ALERTSID.LOG
cd NOUV_ORACLE_HOME
ln -s REPERTOIRE_DE_DESTN/alert_ORCL.log alert_ORCL.log
- Pour les fichiers de configuration (PFILE, SPFILE)
cd NOUV_ORACLE_HOME
ln –s REPERTOIRE_DE_DESTN/initORCL.ora initORCL.ora
ln –s REPERTOIRE_DE_DESTN/spfileORCL.ora spfileORCL.ora
8. Créer le fichier de mot de passe
$ orapwd file=NOUV_ORACLE_HOME
9. Démarrer la base de données sous le nouveau ORACLE_HOME
$ sqlplus / as sysdba
SQL> create spfile from pfile='NOUV_ORACLE_HOME
10. Démarrer la migration de la base de données
SQL> startup upgrade
SQL> SPOOL upgrade_info.log
SQL> @?/rdbms/admin/utlu102i.sql
SQL> SPOOL OFF
-- Vérifier le log précédent pour tout problème
SQL> SPOOL patch.log
SQL> @?/rdbms/admin/catupgrd.sql
SQL> SPOOL OFF
-- Vérifier le log précédent pour tout problème
11. Redémarrer la base de données en mode normal
SQL> SHUTDOWN IMMEDIATE
SQL> STARTUP
12. Recompiler les objets invalides
SQL> @?/rdbms/admin/utlrp.sql
13. Vérifier le statut des composantes de la base de données
SQL> SELECT COMP_NAME, VERSION, STATUS FROM SYS.DBA_REGISTRY;
Cette façon permet de réinstaller proprement le logiciel de la base de données. Aussi, l'avantage de celle-ci est que si votre ORACLE_HOME actuel est partagé par plusieurs bases de données, vous pourrez migrer une base de données sans impacter les autres. Cette méthode peut aussi être utilisé pour déplacer une base de données vers un autre ORACLE_HOME.