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...)