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.

mardi 8 mars 2011

Logiciel-Service : Éléments de risque à considérer

Le déploiement d’un modèle SaaS comporte plusieurs éléments de risque. Ceux-ci doivent être prisent en compte sérieusement lors de l’évaluation d'un tel projet. En voici quelques un :

Sécurité

Il y a une crainte présente et justifiée dans le marché et cela concerne la sécurité. Les entreprises sont quelque peu timides à emboîter le pas vers un modèle SaaS car l’externalisation des données est une source d’inquiétude. En amour, on dit : « Loin des yeux, loin du cœur », c’est un peu ce qui se passe. Plus les données sont loin, moins que la confiance est présente et les risques sont réels. Cette inquiétude doit être écartée de la pensé du client. Nous devons trouver des arguments tel que démontré, avec des statistiques à l’appuie, qu’une grande majorité des failles de sécurités et des violations proviennent de l’interne, par le personnel de l’entreprise. Il suffit de penser à « Wikileaks ».

Tendance

Préférablement, il faut éviter les tendances. Plus souvent qu’autrement, elles sont éphémères et immatures. De plus, elles peuvent mener à des problèmes et causer des instabilités.

Emplacement géographique

Lorsqu'une application sera offerte mondialement, nous devons être en mesure d’offrir la possibilité d’héberger les données selon l’emplacement désiré et même exigé par le client. Il faut savoir qu’il y a des pays qui interdissent des sociétés de stocker certaines données sur des serveurs hors du territoire.

En plus de l’aspect légal, la localisation des centres de données a un impact direct sur la performance concernant l’accès, l’affichage et les traitements.

On se doit de prévoir un mécanisme simple et flexible permettant la sélection de l’emplacement géographique. Cette particularité doit être prise en compte lors du processus de sélection du fournisseur de service.

Normes et standards

Le « Cloud Computing » est en constante évolution. Une grande flexibilité est de mise car des normes et des recommandations sont en cours de définition, notamment via l’organisme CSA (Cloud Security Alliance), et on peut envisager qu’il y aura davantage d'intérêt porté aux certifications des fournisseurs au cours des années à venir. Le logiciel-service doit être en mesure de répondre et de s’ajuster aux nouveaux standards qui seront inévitablement établis.

Communication & Responsabilités

En faisant affaire avec un fournisseur de services, les responsabilités doivent être identifiées et minutieusement détaillées et réparties. Une structure et une collaboration inter-organisationnelle doit être mise en place pour favoriser la communication entre chacun des intervenants. Celle-ci doit être optimale pour que toute situation soit prise en main et mener à terme.

vendredi 4 mars 2011

Ligne de conduite pour un premier projet SaaS

Tout au long du processus d’évaluation et d’implantation d'un logiciel-service (SAAS), je vous encourage à suivre ces critères généraux car, selon moi, ils sont fondamentaux et ils permettront de concevoir et d’offrir une solution structurée, performante, sécuritaire et de qualité :

  • Keep It Simple !
  • Évolutivité et extensibilité
  • Technologies connues et fiables
  • Sécurité réelle, rigide et démontrable
  • Flexibilité et Interopérabilité

Un autre point non négligeable lors du démarrage d’un tel projet est qu’il faut être raisonnable. Mieux vaut commencer petit, apprendre, puis prendre de l’expansion graduellement. Ceci améliore nos chances du succès, diminue les risques et, s’il y a échec, les contrecoups seront contrôlables et nous serons en mesure de reprendre sans répéter les mêmes erreurs.

jeudi 3 mars 2011

Nuages à l’horizon

Le « Cloud Computing » n’est pas un concept révolutionnaire. Il est la résultante d’une évolution de concepts et modèles déjà existants dans le monde des TI. À sa base, Le Cloud Computing est juste une nouvelle façon plus efficace de fournir des ressources et des services de l'informatique. Depuis les dernières années, on peut dire qu’il y a de fréquents passages nuageux. L’informatique dans les nuages prend de plus en plus d’ampleur et on constate un réel engouement autant de la part des entreprises en TI que les autres qui en seront les utilisateurs.

Un nuage est un ensemble de ressources et services offerts par des fournisseurs. Celui-ci permet à des entreprises d’utiliser l’expertise et les compétences de ces fournisseurs pour desservir une solution technologique fiable, optimale et sécuritaire et ce, à moindre coût.

Pourquoi à moindre coût ? Pour bien des raisons car, une entreprise spécialisée dans un domaine précis effectue en connaissance de cause toutes les acquisitions nécessaires, autant au niveau des ressources matérielles que humaines. De plus, son personnel a l’expertise pour mettre en place les technologies désirées puis il sait les gérer adéquatement. Par la suite, tout ceci est offert sous forme de service au grand public. Cette offre permet de rentabiliser au maximum l’investissement car toutes les dépenses sont réparties et partagées parmi l’ensemble de la clientèle. Les clients de ces services sont facturés selon l’utilisation qui en est faite.

Tout le monde est gagnant car l’entreprise qui désire s’offrir un tel service n’a pas à effectuer un investissement majeur pour la mise en place d’une infrastructure répondant à ses besoins. Il lui suffit de signer une entente de service avec un fournisseur. Ce dernier rend accessible dans un court délai tout ce qui est nécessaire pour combler le besoin de l’entreprise en lui garantissant une disponibilité de service selon le niveau d’exigence désiré.

Même si tout cela semble très bénéfique à bien des niveaux, les décideurs sont craintifs à emboiter le pas car il y a une crainte omniprésente à propos de la sécurité. Effectivement, il y a matière à se questionner. La confidentialité des données est importante car elles sont stockées et hébergées à l’externe, à un endroit géographique possiblement différentes de celle de l’entreprise et, dépendamment du type de service, l’infrastructure est peut-être partagée et accessible par plusieurs entreprises. Comme vous le voyez, la sécurité ne doit pas être négligée. Afin d’atteindre un niveau de confort tel qu’un nuage peut vous offrir, vous devez aborder chacun des sujets cruciaux en ce qui attrait la confidentialité et avoir une confiance au fournisseur choisi.

Comme vous le savez, le merveilleux monde de l’informatique ne cesse de créer de nouveaux termes et acronymes et, le « Cloud Computing » ne fait pas exception donc, afin de mieux les assimiler, voici les différents concepts et modèles qui constituent le « Cloud Computing ».

Il existe 4 principaux modèles de déploiement dans le marché : Public, Privé, Hybride et Communauté.

Comme leurs noms l’indiquent, chacun des modèles rends disponibles diverses possibilités avec certaines particularités. Le déploiement « public » partage ses composantes parmi plusieurs clients. Par exemple, les ressources matérielles sont utilisées par plusieurs clients tandis que le déploiement « privé » restreint les accès et toutes ses composantes à un seul client. Le modèle « hybride » représente le croisement des autres types. Le dernier modèle qui est nommé « communauté » regroupe les clients qui ont un objectif commun.

Les trois principaux modèles de services qui sont offerts en « Cloud Computing » sont :

  • SaaS (Software as a service ou Logiciel-Service) permet l'accès à des applications sur le web;
  • PaaS (Platform as a service) est une plateforme de développement et facilite le déploiement d'applications;
  • IaaS (Infrastructure as a service) est une plateforme de virtualisation.

Pour bien comprendre la signification de chacun d’eux, le graphique ci-dessous les présentent un à un. Tout ce qui se retrouve sur un palier est sous la responsabilité du fournisseur :

Dépendamment du service choisi, la décision d’héberger une solution permet de réduire les coûts liés aux locaux, l’électricité, la climatisation, lien de télécommunication, l’acquisition de serveurs, de composants réseaux, de logiciels, des contrats supports, l’entretien, l’évolution et toute l’infrastructure de relève permettant d’offrir la haute disponibilité. Toutes ces économies permettent à l’entreprise d’investir et de focaliser sur son domaine d’expertise sans oublier qu’il y a une diminution importante des risques.

En plus des modèles de déploiement et des services, voici les cinq caractéristiques du « cloud computing » définies par l’Institut National des Standards et des Technologies (NIST) aux États-Unis. Ces caractéristiques différencient le « cloud computing » des autres approches d'externalisation :

  • Liberté de contrôle (On-Demand Self-Service)

Réservation ou libération unilatéral des ressources en fonction des besoins sans interaction avec le fournisseur

  • Accessibilité et portabilité (Broad Network Access)

L’ensemble des ressources sont accessibles par l’entremise d’un large réseau à partir d'une variété de plateformes

  • Regroupement des ressources (Resource Pooling)

Les ressources sont regroupées afin de les rendre disponibles à l’ensemble des clients en se basant sur un modèle multi-tenant. Le client n’a aucun contrôle sur la localisation géographique ainsi que sur les ressources que le fournisseur mutualise. Les ressources peuvent se trouver dans plusieurs centres de données répartis à travers le monde

  • Extensibilité des ressources (Rapid Elasticity)

Les ressources peuvent être réservées rapidement pour répondre à des besoins qui évoluent et être libérées tout aussi rapidement lorsque le besoin disparaît

  • Capacité de mesure (Measured Service)

L'utilisation des ressources est contrôlée et mesurée selon le type de service utilisé. Toutes ces mesures permettent au fournisseur de mieux contrôler l’ensemble de ses ressources et procure des informations sur leurs utilisations qui pourront être transmises aux clients.