Créer base de données "à la main" VS "sans assistant"…

Je crois l’avoir déjà dit : « Un de mes posts que je vous recommande de ne pas utiliser est celui qui explique comment créer une base de données manuellement« . Oui : Il fonctionne bien ; oui : c’est intéressant de savoir ce qu’il se passe quand on crée une base de données…

Si je déconseille de l’utiliser pour créer une base de données, c’est juste parce qu’il y a une méthode plus rapide, plus simple, mieux supportée et compatible avec RAC : utiliser DBCA en mode silencieux ! La seule vrai objection qui pourrait être faîte à cette dernière méthode c’est si vous voulez personnalisez à outrance la création de vos bases de données. Si c’est le cas, n’oubliez pas :

  • Vous pouvez créer votre template avec CREATE DATABASE et le déployer de manière standard avec DBCA
  • Vous pouvez ajouter des scripts après l’installation et même les intégrer à vos templates
  • Plus votre environnement est personnalisé et ne ressemble à aucun autre, plus de chance vous avez de tomber sur les bugs d’aucun autre 😉

Assez de blabla, voici un exemple d’utilisation de DBCA en mode silencieux pour créer une base de données en 10g et 11g (test effectué sur linux avec 11.1.0.6 et 10.2.0.1). Pour plus d’information, tapez dbca -h . Si vous trouvez une documentation plus complète, j’aimerais bien la référencer ICI. D’ici là avec quelques tests et un peu d’aide, c’est vraiment rapide et direct :

./dbca -silent -createDatabase                   
-templateName General_Purpose.dbc
-gdbName ORCL
-sysPassword change_on_install
-systemPassword manager
-emConfiguration NONE
-datafileDestination /u01/app/oracle/oradata
-storageType FS
-characterSet WE8ISO8859P15
-memoryPercentage 20

Quelques remarques à ce sujet :

  • Il n’y a pas besoin de positionner la variable ORACLE_HOME ou ORACLE_SID. En revanche, vérifiez que vous utilisez le DBCA situé dans le répertoire « bin » du logiciel Oracle que vous utilisez. Le plus simple, c’est de préfixer votre commande par ./ (ou . sous Windows) après avoir navigué dans le répertoire du logiciel que vous voulez utiliser. Sous Linux/Unix, le fichier « oratab » est mis à jour à la fin de la création de votre base de données. Vous pourrez simplement mettre à jour votre environnement avec « oraenv » une fois votre base créée.
  • Les 2 premières options -silent et -createDatabase indiquent que vous voulez créer une base de données et que vous n’avez pas de « DISPLAY »
  • Les templates par défaut sont situés dans le répertoire « assistants/dbca/templates » de votre logiciel. Référencez le fichier qui vous convient.
  • L’option gdbName vous permet de positionner le « global database Name ». Le SID est déduit de cette option et de votre configuration mais vous pourriez également positionner le SID dans la ligne commande
  • sysPassword et systemPassword permettent de positionner les mots de passe de SYS et SYSTEM. Modifiez-les une fois la base créée.
  • emConfiguration définit le paramétrage de GridControl/Database Control ou, dans ce cas, de rien du tout
  • l’option datafileDestination permet de définir la destination de vos fichiers de base de données dans le cadre d’un déploiement OFA. C’est à dire, ici avec l’option storageType « FS » l’ensemble des fichiers de bases de données seront stockés dans le sous-répertoire du répertoire précisé par cette option
  • l’option characterSet permet de positionner le jeu de caractères de votre base de données.
  • memoryPercentage ; je déteste cette option ! 11g propose une alternative -totalMemory qui permet de positionnez la taille de la SGA et PGA en MB et pas en % de la mémoire du serveur. Enfin, c’est un moyen de positionnez la taille de la SGA et de la PGA. Quitte la la modifier dès que possible !

Encore plus redoutable, vous pouvez supprimer une base de données avec DBCA en mode silencieux comme ceci ; (Tournez votre langue dans votre bouche 7 fois avant de lancer cette commande) :

./dbca -silent -deleteDatabase 
-sourceDB ORCL

Pour conclure… Lorsqu’il est utilisé avec des templates, DBCA utilise RMAN et le résultat est assez efficace. Dans ces tests sur mon desktop et avec la commande « time » avant ./dbca, on obtient les résultats qui suivent :

  • Créer une base de données avec 10.2.0.1 : 2m59.094s
  • Supprimer la même base de données : 0m24.481s
  • Créer une base de données avec 11.1.0.6 : 4m9.451s
  • Supprimer la même base de données : 0m31.526s

Je souhaite que ces derniers résultats finissent par vous persuader : créer une base de données en moins de 10 minutes (le temps de personnalisez la première ligne de commande). Qui peut encore croire que CREATE DATABASE est la meilleure manière de créer une base de données Oracle ?

1 réflexion sur “Créer base de données "à la main" VS "sans assistant"…”

Les commentaires sont fermés.