vendredi 28 octobre 2011

Renommer une base de données

Renommer une base de données n’est pas si compliqué. Oracle offre un utilitaire qui simplifie grandement les opérations qui sont à réalisées. Voici l’ensemble des étapes à suivre :

Note: Les étapes ci-dessous ont été réalisées sur une base de données Oracle 11gR2 EE sous Linux Red Hat 5.5 64bits. Le DB_NAME d'origine était "orcl" et, il est changé pour "lab11g".
  • Prendre une copie de sécurité de la base de données
  • Démarrer l’outil SQL*Plus en établissant une connexion avec le compte « SYS »

(oracle)$ sqlplus / as sysdba

  • Arrêter la base de données

SQL> SHUTDOWN IMMEDIATE

  • Démarrer la base de données en mode « mount »

SQL> STARTUP MOUNT

  • Extraire les paramètres de la base de données

SQL> create pfile='/tmp/pfile.ora' from spfile;

  • Éditer le fichier de paramètres (pfile)

Le fichier de paramètre contient un paramètre intitulé « DB_NAME » qui doit être réinitialisé à la nouvelle valeur. Veuillez suivre ces étapes :

SQL> create spfile from pfile='/tmp/pfile.ora';

  • Quitter l’outil SQL*Plus

SQL> exit

  • Démarrer l’utilitaire

L’utilitaire doit être démarré avec le compte « SYS » puis vous devez spécifier le nouveau nom de la base de données.

(oracle)$ nid TARGET=SYS DBNAME=[nom BD] SETNAME=YES

L’utilitaire vérifie les entêtes des fichiers de contrôle puis ensuite, il demande une confirmation de l’opération.

  • Créer le fichier de mot de passe

(oracle)$ orapwd FILE=orapw[SID] ENTRIES=30

  • Arrêter le programme d’écoute (listener)

(oracle)$ lsnrctl stop

  • Changer la variable d’environnement ORACLE_SID

Le changement doit s’effectuer dans tous les scripts utilisés ainsi que la variable d’environnement « ORACLE_SID »

(oracle)$ export ORACLE_SID=[SID]

  • Recréer le fichier système de paramètres

(oracle)$ sqlplus / as sysdba

SQL> create spfile from pfile='/tmp/pfile.ora';

SQL> exit

  • Démarrer le programme d’écoute (listener)

(oracle)$ lsnrctl start

  • Démarrer normalement la base de données

(oracle)$ sqlplus / as sysdba

SQL> startup

Suite à cette opération, assurez-vous que le fichier « listener.ora » ne fait pas de référence à l’ancien nom de la base de données. De plus, n’oubliez pas de modifier les chaînes de connexion contenues dans les fichiers de configuration, par exemple « tnsnames.ora », « dads.conf », etc.

jeudi 22 septembre 2011

Mais qu'est-ce que la différence entre "Oracle Audit Vault" et "Oracle Database Vault" ?

Voici une brève description de deux produits d'Oracle comportant le mot "Vault" qui sont fréquemment confondus.

Oracle Database Vault
Oracle Database Vault est une option de base de données qui applique des contrôles rigoureux de sécurité à l'intérieur d'une base de données Oracle afin de créer des environnements hautement sécurisés.
Oracle Database Vault limite et contrôle les accès aux données appartenant aux applications par des utilisateurs privilégiés. Il agit comme un pare-feu à l'intérieur de la base de données empêchant tous les administrateurs (DBA) d'accéder aux données et ce, malgré leurs privilèges largement permissifs.
Les règles définies dans Oracle Database Vault renforcent la sécurité en limitant qui, quand, où et comment les bases de données, les données et les applications peuvent être accédées.
De multiples règles tels que l'adresse IP, l'heure du jour et la méthode d'authentification peut être simplement utilisé pour appliquer des contrôles d'accès indépendamment du fait que la connexion est locale ou distante et ce, sans nécessiter de changement à l'application.
Oracle Database Vault assure la séparation des responsabilités en fournissant par défaut trois responsabilités distinctes : sécurité, gestion de compte, et les activités d'administration de bases de données.

Oracle Audit Vault
Oracle Audit Vault est une solution d'audit qui consolide, détecte, surveille et produit des alertes et des rapports sur les données d'audit pour l'audit de sécurité et de conformité. Oracle Audit Vault offre la possibilité de consolider les données d'audit et les évènements critiques dans un entrepôt centralisé et hautement sécurisé.
Ce produit fournit des informations précieuses sur qui a fait quoi, à quelles données, et quand, y compris les utilisateurs privilégiés qui ont un accès direct à la base de données. Comprendre qui a accédé, modifiés, mis à jour, supprimé, ou simplement vu des données sensibles est essentiel pour protéger les données.
Oracle Audit Vault fournit la capacité de détecter, surveiller, alerter, et signaler les modifications des utilisateurs privilégiés, les modifications de schéma et même les accès au niveau des données.

jeudi 4 août 2011

Méthodes de résolution de noms de bases de données

Est-ce que vous connaissez une autre méthode qu'Oracle Internet Directory (OID) et les fichiers TNSNAMES pour définir les chaînes de connexion dans un endroit partagé afin de desservir autant les postes clients que les serveurs de bases de données et d¿applications ?

Et bien oui, il en existe, voici les autres méthodes supportées par Oracle :

Microsoft Active Directory (AD)
  • Microsoft AD est un service d'annuaire LDAP pour les systèmes d'exploitation Windows. L'objectif principal d'Active Directory est de fournir des services centralisés d'identification et d'authentification à un réseau d'ordinateurs utilisant le système Windows.
Network Information Service (NIS)
  • NIS est un protocole client serveur développé par Sun permettant la centralisation d'informations sur un réseau UNIX. Son but est de distribuer les informations contenues dans des fichiers de configuration contenant par exemple les noms d'hôte (/etc/hosts), les comptes utilisateurs (/etc/passwd), etc. sur un réseau. Un serveur NIS stocke et distribue les informations administratives du réseau, qui se comporte ainsi comme un ensemble cohérent de comptes utilisateurs, groupes, machines, etc.
Distributed Computing Environment (DCE)
  • DCE est un middleware qui fournit un cadre et des outils pour développer une application client-serveur. Le cadre inclus un mécanisme remote procedure call (RPC) connu sous le nom de DCE/RPC, un répertoire, un service d'authentification et un système de fichiers distribué (DCE/DFS).

Pour plus de détails, vous pouvez consulter la documentation d'Oracle suivante : "Oracle Database Net Services Administrator's Guide". Aussi, vous pouvez consulter le blog suivant qui démontre comment migrer vers une solution LDAP de Sun :

http://laurentschneider.com/wordpress/2006/10/migration-of-tnsnamesora-to-ldap-sun-java-system-directory-server.html

Pour ceux qui s'intéresserait à Microsoft AD, sachez qu'il y a des limitations concernant son utilisation :

Limitations of Directory Naming Support with Microsoft Active Directory In addition to Oracle Internet Directory, directory naming support is also provided with Microsoft Active Directory with the following limitations:

  1. Oracle provides support for Microsoft Active Directory only on Microsoft Windows operating systems. Therefore, client computers and the database server must run on Microsoft Windows operating systems to access or create entries in Microsoft Active Directory.
  2. The following features are not supported by Microsoft Active Directory:
  • Multiple Oracle Contexts => Microsoft Active Directory can support only one Oracle Context.
  • Net service aliases => You cannot create net service aliases in Microsoft Active Directory. However, you can create net service names.
  • Automatic client discovery of directory servers for clients => You must statically configure directory server usage on the clients. The Oracle Internet Directory Configuration will not provide directory server usage for Microsoft Active Directory. You must use Oracle Net Configuration Assistant.

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.