lundi 5 mai 2014

Nouveauté Oracle 12c : Augmentation de la taille des types de données VARCHAR2, NVARCHAR2 et RAW

Avec Oracle 12c, La taille maximale des types de données VARCHAR2, NVARCHAR2 et RAW a été augmentée de 4000 à 32767 octets. Cette augmentation pour ces types de données permet aux développeur de stocker plus d'informations avec ces types de données avant de passer aux objets volumineux tels que les LOB. C'est particulièrement utile pour les types de données textuelles, et on peut construire des index sur ces types de colonnes.

mercredi 30 avril 2014

Génération de valeur par défaut de colonne à partir d'une séquence

Avec 12c, la valeur par défaut d’une colonne de table peut directement référer une séquence Oracle. Les valeurs possibles sont [sequence.CURVAL] et [sequence.NEXTVAL]. Cette nouvelle possibilité simplifie le développement de code. 

samedi 12 avril 2014

Utilitaires de migration/conversion de jeu de caractères

Avec Oracle Database 12c Release 1 (12.1), un assistant de migration de base de données pour Unicode (DMU) est inclut et ce dernier fournit une solution complète qui simplifie la migration des bases de données d'un jeu de caractères existants vers un jeu de caractères de type Unicode. Cet assistant devient la méthode officiellement prise en charge pour la migration vers le jeu de caractères Unicode. Les utilitaires de base de données CSSCA et CSALTER ne font plus parti de la distribution et ils ne sont plus supportés. De plus, l'assistant DMU prend également en charge la migration des bases de données des versions antérieures (10.2, 11.1, et 11.2).

mardi 12 novembre 2013

Instance Caging

Nous avons tendance à croire que le paramètre « cpu_count » de la base de données permet de restreindre le nombre de processeurs que la base de données peut utiliser, et ce n’est évidemment par le cas. On doit s’en remettre à d’autres fonctionnalités telles qu l’ « Instance caging » disponible avec Oracle Database Entreprise Edition 11g Release 2.

Instance Caging est un outil permettant de gérer et de limiter l’utilisation de processeurs par base de données. L’ « Instance caging » est particulièrement intéressant car il protège les bases de données qui se partagent des ressources d’être impacter par une base de données dont des processus exigeant et gourmand s’approprient l’ensemble des ressources et, qui a pour effet d’ébranler tous les systèmes desservis par celles-ci.

Une stratégie pour déterminer le nombre de processeurs par instance est d’activer  l’ « instance caging » puis de surveiller l’utilisation des processeurs par l’instance. Ceci peut être fait via cette requête :
select to_char(begin_time, 'HH24:MI') time,
       max(running_sessions_limit) cpu_count,
       sum(avg_running_sessions)
       avg_running_sessions,
       sum(avg_waiting_sessions)
       avg_waiting_sessions
  from v$rsrcmgrmetric_history
 group by begin_time
 order by begin_time;
Grâce aux résultats obtenus lors de l’exécution de la requête, on peut se baser sur ceci :
·        Si la valeur de la colonne « avg_running_sessions » est fréquemment inférieure à la valeur du « CPU_COUNT », cela nous indique que nous pouvons diminuer la valeur de « CPU_COUNT » sans impacter la performance.
·        Si la valeur de la colonne « avg_waiting_sessions » est constamment supérieure à la valeur du « CPU_COUNT » et que le temps réponse est en deçà des attentes, ceci indique que le CPU_COUNT est possiblement insuffisant et que la performance peut être accrue en augmentant sa valeur, en autant qu’il en a de disponible.
Après quelques jours, vous aurez des statistiques sur lesquelles vous pourrez vous baser pour restreindre le nombre de processeurs utilisés par une instance.
Pour la mise en place de l’ « instance caging », il suffit de faire ceci :
SQL> ALTER SYSTEM SET CPU_COUNT = 8 SCOPE=SPFILE;
SQL> ALTER SYSTEM SET RESOURCE_MANAGER_PLAN = 'DEFAULT_PLAN' SID=’*’ SCOPE=’BOTH’;
En utilisant le plan par défaut d’Oracle Resource Manager, il n’y aura pas d’impact car il n’y a aucune limitation.
Prendre note qu’il est mention de processeurs dans ce texte mais si vous avez des processeurs de type « Hyper-Threading », la valeur de « cpu_count » correspond plutôt à un nombre de « threads ».

La vue V$RSRCMGRMETRIC_HISTORY affiche l'historique des statistiques d'Oracle Resource Manager qui proviennet de la vue V$RSRCMGRMETRIC. Seulement la dernière heure est conservée. Cette vue fournit des informations sur l'utilisation des ressources et les temps d'attente par groupe de consommateur.

Vous pouvez consulter le lien ci-dessous. Il traite aussi de l'instance caging :
http://www.oracle-base.com/articles/11g/instance-caging-to-manage-cpu-usage-in-oracle-database-11gr2.php

mercredi 9 octobre 2013

Création d'un dossier partagé entre l'hôte et l'invité sous Oracle VM VirtualBox

Dans le gestionnaire des machines d'Oracle VM VirtualBox :

  • Cliquer sur le nom de la machine virtuelle
  • Dans la section de droite, cliquer sur "Dossiers partagés"
  • Ajouter un dossier partagé en cliquant sur le bouton. Il vous suffit de spécifier un emplacement existant sur l'hôte puis de lui attribuer un nom.

Ensuite, démarrer la machine virtuelle (s'il y a lieu) puis :

  • Ouvrir une fenêtre de terminal
  • connectez-vous avec "root"
su root
  • Positionnez-vous à la racine
cd /
  • Créer un répertoire. Vous pouvez spécifier le nom qui vous convient
mkdir download
  • Créer un lien entre le répertoire partagé et le répertoire créé précédemment. Ceci aura pour effet de rendre accessible le contenu du répertoire 
mount -t vboxsf /download download
  • Vérifier la configuration en faisant affiché le contenu du répertoire partagé 
ls -al /download

Si vous voulez que le répertoire partagé soit automatiquement accessible après un redémarrage de la machine virtuelle, ajouter une ligne semblable au fichier  "/etc/fstab" sous la forme suivante :

sharename   mountpoint   vboxsf   defaults  0   0

Exemple: 
download   /download     vboxsf   defaults  0   0

Je crois que les additions invité (vbox additions) doivent être installées sur la machine virtuelle pour que cette procédure fonctionne.

mardi 8 octobre 2013

Déplacement d'un disque .vdi d'une machine virtuelle sous Oracle VM VirtualBox

Si vous voulez déplacer un disque assigné à une machine virtuelle vers un autre disque sur la machine hôte, vous pouvez procéder de cette façon :
  • Démarrer le gestionnaire de machines virtuelles d'Oracle VM VirtualBox
  • Arrêter la machine virtuelle où le disque est attaché
  • Ouvrir le gestionnaire des médias dans le menu "Fichier"
  • Sélectionner le disque à déplacer puis cliquer sur le bouton "Libérer"
  • Fermer le gestionnaire des médias
  • Déplacer le fichier .vdi vers le nouvel emplacement
  • Dans virtualbox, cliquer sur la machine virtuelle
  • Cliquer sur "Stockage" dans la section de droite
  • Cliquer pour ajouter un disque dur et appuyer sur le bouton "Choisir un disque existant"
  • Ouvrir le gestionnaire des médias dans le menu "Fichier"
  • Supprimer la référence au disque qui est invalide car le fichier a été déplacer
  • Démarrer la machine virtuelle pour vérifier qu'elle est correcte


mardi 1 octobre 2013

Librairie "libclntsh.so.11.1" manquante lors du démarrage d'ADRCI

En voulant démarrer l'utilitaire ADRCI sur un environnement Oracle Middleware, j'ai rencontré l'erreur suivante:

adrci: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory

Pour résoudre cette erreur, il suffit d'assigner l'emplacement de la librairie à l'aide de la variable d'environnement LD_LIBRARY_PATH. Voici la démarche complète :

[oracle@LABVMSL64-WLSEE]$ adrci
adrci: error while loading shared libraries: libclntsh.so.11.1: cannot open shared object file: No such file or directory
[oracle@LABVMSL64-WLSEE]$ which adrci
/u01/oracle/Middleware/wlserver_10.3/server/adr/adrci
[oracle@LABVMSL64-WLSEE]$ ldd /u01/oracle/Middleware/wlserver_10.3/server/adr/adrci
        linux-gate.so.1 =>  (0xffffe000)
        libclntsh.so.11.1 => not found
        libnnz11.so => not found
        libdl.so.2 => /lib/libdl.so.2 (0x00b87000)
        libm.so.6 => /lib/libm.so.6 (0x00ba7000)
        libpthread.so.0 => /lib/libpthread.so.0 (0x00b8d000)
        libnsl.so.1 => /lib/libnsl.so.1 (0x00d0a000)
        libc.so.6 => /lib/libc.so.6 (0x00a3f000)
        /lib/ld-linux.so.2 (0x00a21000)
[oracle@LABVMSL64-WLSEE]$ echo $LD_LIBRARY_PATH
/u01/oracle/Middleware/patch_wls1036/profiles/default/native:/u01/oracle/Middleware/wlserver_10.3/server/native/linux/i686:/u01/oracle/Middleware/wlserver_10.3/server/native/linux/i686/oci920_8
[oracle@LABVMSL64-WLSEE]$ export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/u01/oracle/Middleware/wlserver_10.3/server/adr
[oracle@LABVMSL64-WLSEE]$ adrci

ADRCI: Release 11.2.0.2.0 - Production on Tue Oct 1 14:57:48 2013

Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.

No ADR base is set
adrci>