mercredi 30 mars 2011

Désinstallation d'Oracle XE 10g sous Linux Redhat

Pour supprimer entièrement une installation de la base de données Oracle Express (XE) 10g sous un système d’exploitation Linux, veuillez suivre les étapes suivantes :

· Démarrer un client telnet/ssh tel que « putty » ou procéder directement sur le serveur

· Se connecter avec l’utilisateur « root »

· Vérifier le ou les packages Oracle qui sont installés

rpm -qa | grep oracle

· Supprimer tous les packages d’Oracle

rpm -e oracle-xe-univ

· Supprimer les répertoires et fichiers

rm -rf /usr/lib/oracle

rm -rf /etc/oratab

jeudi 17 mars 2011

Recouvrement suite à la perte des journaux courants (redolog)

Si vous devez relever une base de données dont le journaux courants (current redolog file) ont été perdus à cause d'une suppression de fichiers, d'une défaillance matériel, etc. et que vous n'avez pas de sauvegarde (backup) et bien, voici les étapes qu'il faut réaliser pour ramener la base de données en mode "open" :

Vue que les redo log courants ne sont plus disponibles alors, indiquer à la base de données que vous autoriser l'ouverture même s'il y a de la corruption

Alter system set "_allow_resetlogs_corruption" = TRUE scope=spfile;

Redémarrer la base de données en mode "mount"

shutdown immediate
Startup mount;


Lancer le recouvrement de la base de données, appliquer tout ce que vous pouvez et s'il le faut terminer avec "CANCEL"

recover database using backup controlfile until cancel;

Ouvrir la base de données en réinitialisant les journaux

alter database open resetlogs;

Regarder le statut des journaux et effectuer autant de "switch" pour que le redolog courant devienne l'un de ceux qui existe. S'il le faut, veuillez en créer avant de procéder.

ALTER SYSTEM SWITCH LOGFILE;

Réinitialiser le paramètre permettant l'ouverture de la base de données même s'il y a de la corruption

Alter system set "_allow_resetlogs_corruption" = FALSE scope=spfile;

Redémarrer la base de données en mode "normal"

shutdown immediate;
startup;

Et pour terminer, très important, effectuer un export complet de vos données puis créer une nouvelle base de données et importer ces données.

Datapump et le code PL/SQL "wrapped" ne font pas bon ménage

Si vous utilisez l'utilitaire "Datapump" pour exporter/importer des objets PL/SQL qui sont "wrapped", vous rencontrerez des erreurs de compilation de ses objets au moment de l'import.

La solution est forte simple par contre, si vous avez plusieurs objets PL/SQL, elle pourrait s'avérer longue et pénible. La façon de régler le problème est de tout simplement ajouter un retour chariot (ENTER) à la fin du bloc de code "wrapped" et de recompiler l'objet.

Par exemple, après l'import, vous aurez quelque chose de semblable :

9KT8wA45xNIx8UkKA2HePAukkjxautEZA46ttoRHaQKjPJh43giqUg==
/

Alors, il suffit d'ajouter un retour chariot avant la barre oblique :

9KT8wA45xNIx8UkKA2HePAukkjxautEZA46ttoRHaQKjPJh43giqUg==

/

J'ai rencontré ce problème sur une base de données Express Edition (XE).

Ce bug est connu chez Oracle et il a été observé sur une base de données 10gR2 :

Oracle Support : Impdp Returns ORA-39082 When Importing Wrapped Procedures [ID 460267.1]

mercredi 16 mars 2011

Logiciel-Service : Identification des objectifs... Ce n'est pas une simple tâche!

Pour mener à succès un projet d'implantation d'un logiciel-service et aussi pour être en mesure d’offrir une solution complète, il faut déterminer les objectifs que l’entreprise désire atteindre.

Pour nous aider à identifier les objectifs que l’on désire atteindre, voici une liste, non complète, de questions pertinentes que l’on doit se poser. Ces questions soulèveront assurément d'autres interrogations :

Quel type de client allons-nous desservir ?
  • Domaine d’affaire
  • Origine et localisation (langue, devise, fuseau horaire)
Quel niveau de services sommes-nous prêts à offrir ?
  • Temps de non disponibilité (downtime) toléré
  • Temps réponses
  • Niveau de redondance, environnement de relève (hors site?)
  • Multi fuseau horaire = Assistance 24/7
  • Embauche, Documentation, disponibilité du personnel qualifié
Quel niveau de sécurité et de confidentialité pouvons-nous garantir ?
  • Qui a accès aux données ?
  • Les données sont-elles chiffrées ?
Que retrouverons-nous dans l’entente (contrat) avec un client ?
  • Quel est notre stratégie tarifaire ?
  • Sur quoi allons-nous se baser pour facturer les clients ?
  • Quel est le modèle d’abonnement (mensuel, annuel, long terme) ?
  • Comment allons-nous justifier et démontrer l’utilisation du service ?
  • Offrirons-nous un contrat de support ?
Quelle équipe de support répondra à la première ligne ?
  • Sera-t-elle gérée par nous ou un fournisseur ?
  • Peut-elle répondre à la demande ?
Quels sont les ouvertures (API) que nous offrons aux clients ?
  • Y-a-t-il de la documentation à ce sujet ?
  • Permettrons-nous d’avoir plus d'une version simultanée ? (mode transitoire)
L’aspect technologique tient-elle la route ?

La logiciel est-il suffisament mature ?
  • Stabilité de la version actuelle
  • Multi-langue
  • Multidevise
  • Sécurisation des données stockées (masquage, chiffrement)
  • Traçabilité (audit)
  • Autres fonctionnalités
Définissons-nous un processus de contrôle qualité ?
  • Suivi sur les appels et les services rendus
  • Commentaires provenant des clients
Confirmer et valider la liste des composantes logicielles formant la solution complète
  • Base de données
  • Architecture multi-tenant
  • Serveur d’application
  • Outil de développement et plateforme d’exécution
  • Droits d’utilisation
  • Logiciels de sgestion (sauvegarde, surveillance, etc...)

lundi 14 mars 2011

Remplacement d'image sous APEX

Lors de la suppression d'images dans APEX 3.2, il arrive parfois que l'opération ne s'effectue pas correctement et que par la suite, nous ne sommes pas en mesure de changer cette image.

Pour remédier à cela, nous devons supprimer l'enregistrement correspondant à ce fichier dans une table appartenant au schéma "FLOWS_FILES". Voici une exemple :

SQL> select name from FLOWS_FILES.WWV_FLOW_FILE_OBJECTS$ where name like '%logo%';

NAME
---------------------------------------
F3641218465287865/logo_facture.png
F3643311521287903/logo_imprimante.gif
F924300781/logo.png

SQL> delete from FLOWS_FILES.WWV_FLOW_FILE_OBJECTS$ where name = 'F924300781/logo.png';

1 row deleted.

SQL> commit;

vendredi 11 mars 2011

Outil interactif de référence sur la base de données Oracle 11g

Un de mes collègues m'a fait découvrir un bel outil que je crois bien que tout DBA aimera consulter. L'outil s'appelle "Oracle Database 11g: Interactive Quick Reference".

En plus d'être pratique, il est très bien fait.

http://landingpad.oracle.com/webapps/dialogue/ns/dlgwelcome.jsp?p_ext=Y&p_dlg_id=9575302&src=7027600&Act=54

jeudi 10 mars 2011

SaaS - Évaluer la participation d'un fournisseur de services

Afin de réaliser avec succès une implantation d’un modèle SaaS pour l'une de ses applications, on se doit de réfléchir à tous les aspects. La meilleure façon de procéder est de se poser une multitude de questions qui nous permettra de préciser l’orientation que nous désirons suivre.

L’implication d’un ou plusieurs fournisseurs de service est une question qui doit être posée au début d'un projet d’évaluation. L’apport d’un fournisseur a sa part d’avantage mais aussi d’inconvénient et plusieurs particularités doivent être évaluées.Il est conseillé d’utiliser un ou plusieurs fournisseurs de services pour la mise en place d’un modèle SaaS d'un de vos logiciels. Pour appuyer ses dires, voici les principaux avantages à employer les services de fournisseurs :

  • Disponibilité de l’infrastructure à court terme
  • Bénéficier de l’expertise déjà présente
  • Investissement minimum (aucune acquisition de matériel ni de logiciel)
  • Rentabilisation rapide
  • Accès à une infrastructure rapidement extensible
  • Aucune entretien et maintenance (matériel et logiciel)
  • Tirer avantage de l’expertise en gestion de multiservice (sécurité, télécommunication, électricité, etc…)
  • Permet à votre entreprise de focaliser dans son champ d’expertise
  • Frais récurrent, sur une base régulière, coûts connus et prévisibles
  • Diminution et protection envers les risques technologiques
  • Solution d’affaire à coût compétitif
  • Qualité de service vérifiable et garantie
  • Développement durable
En employant les services d’un ou plusieurs fournisseurs, votre entreprise acquerra une expérience non négligeable et, plus tard, rien ne l’empêchera de délaisser les services de ces fournisseurs pour offrir vos propres services. De plus, il est recommandé de ne pas rédiger et signer des ententes à long terme avec les fournisseurs afin d’être en mesure de résilier à tout moment.