Ingres
Ingres jppDans ce chapitre je vais essayer de présenter la base de données Ingres (prononcer INGRESS ! pour faire américain) avec son inévitable installation dans la version 10 OpenSource.
L'installation sera réalisée sur une machine virtuelle (Centos-5.4 64bits sous KVM) dont l'installation est détaillée dans un autre article.
Afin de rester dans des "normes" raisonnable une configuration analogue à celle utilisée pour Oracle 10g et Sybase 15 est utilisée, pour mémoire elle est constituée de :
- 1 CPU
- 1536 Mo de RAM
- 3 disques de 16 Go
- un pour le système
- un pour les données
- un pour les log et les espaces temporaires
Les disques sont de "simples" partitions LVM sur un ensemble de disques montés en miroir (deux miroirs différents pour données et log).
Cette configuration permettra de faire quelques comparaisons avec le mini-test défini dans cet article.
La machine physique est différente mais sur un seul processeur c'est en gros équivalent (2,4Ghz contre 2,6).
Ingres : installer (1)
Ingres : installer (1) jppPré-requis : Après l'installation du système il est nécessaire (sauf si vous avez chosi KDE) d'installer KDEbase afin de disposer de "konsole", l'explication est toute simple : seul le terminal "konsole" de KDE permet, à ma connaissance, d'avoir le rendu "semi-graphique" utilisé par les outils Ingres, et surtout d'avoir accès aux "bonnes" touches de fonction exploitées par tous les outils de configuration de Ingres.
J'installe aussi mon éditeur préféré "yum install vim-X11".
Le logiciel a été téléchargé et installé dans /var/tmp/INSTALL :
- ingres-10.0.0-122-NTPL-gpl-linux-ingbuild-x86_64.tgz (#60 Mo)
Le "détarage" du fichier crée un répertoire du même nom comprenant :
-rwxr-xr-x 1 ingres 50000 17847 avr 21 19:10 ingres_express_install.sh
-rw-rw-r-- 1 ingres 50000 78571520 avr 21 19:50 ingres.tar
-rwxr-xr-x 1 ingres 50000 13299 avr 21 19:10 install.sh
-rw-r--r-- 1 ingres 50000 15238 avr 21 19:02 LICENSE
-rw-r--r-- 1 ingres 50000 10636 avr 21 19:29 readme_a64_lnx_nptl.html
-rw-rw-r-- 1 ingres 50000 28075 avr 21 19:29 readme.html
L'installation étant parfois en mode texte, parfois en mode semi-graphique je vais essayer de "rendre" au mieux l'aspect des écrans, donc ici pas de belles images, que du texte !
Je me connecte dans une session X avec le user "root" (c'est comme cela depuis la version 2006r3) pour lancer l'installation dans une "konsole".
Ne pas lancer le tentant "ingres_express_install.sh" car il ne réalise qu'une installation minimale avec les données dans le répertoire /opt/Ingres ce qui n'est pas le but visé.
Il suffit de lancer "./install.sh".
- Première question : "Please choose a location to install Ingres ", il faut indiquer le nom du répertoire d'installation du logiciel, ici "/opt/Ingres", ce répertoire sera ensuite "pointé" par la variable "II_SYSTEM".
- Deuxième question "Please choose a user to install Ingres ", indiquer "ingres" puisque nous avons créé cet utilisateur.
- On défile ensuite la licence GPL ... que l'on accepte ...
Please identify the type of terminal (or terminal emulation software) you are using by entering its Ingres termcap name (e.g. 'vt100f' for a VT100 with a function key pad). If you do not know the termcap name for your terminal, press return to see a list of the available termcap names. Enter termcap name, or press return for a list: |
Répondre ici "konsole", un menu semi-graphique s'affiche alors :
INGBUILD - Ingres Installation Utility ┌────────────────────────────────────────────────────────────────────────┐ │ II_SYSTEM: /opt/Ingres │ │ Distribution: /var/tmp/INSTALL/ingres-10.0.0-122-NPTL-gpl-linux-in │ └────────────────────────────────────────────────────────────────────────┘ Custom - Select this option in order to view the contents of the distribution medium and/or select components for installation on your system. This option will also allow you to upgrade an existing installation of INGRES products. Package - Select predefined packages for installation on your system. Help - See more instructions on using this program. To select a menu item, press ESC and type the name of the menu item. CustomInstall PackageInstall Help Quit : |
Choisir CustomInstall (Cu) l'écran suivant s'affiche :
INGBUILD - Custom Install from Distribution Medium Distribution: /var/tmp/INSTALL/ingres-10.0.0-122-NPTL-gpl-linux-ingbuild-x ┌──────────────────────────────────────────────────────┬─────┬──────────┐ │ Custom Component Options │ Size│ Install? │ ├──────────────────────────────────────────────────────┼─────┼──────────┤ │Embedded SQL Precompilers │ 23M│Yes │ │Ingres 32bit support │ 42M│Yes │ │INGRES 6.x Compatible Message Files │ 4M│Yes │ │Ingres Intelligent DBMS │ 104M│Yes │ │Ingres DTP for Tuxedo │ 56M│Yes │ │Ingres Networking │ 66M│Yes │ │Ingres Object Management │ 879K│Yes │ │Ingres ODBC Driver │ 65M│Yes │ │Ingres Protocol Bridge │ 947K│Yes │ │Ingres C2 Security Auditing │ 25K│Yes │ │Ingres Replicator │ 2M│Yes │ └──────────────────────────────────────────────────────┴─────┴──────────┘ II_SYSTEM : /opt/Ingres To add or remove products from the list of products to be installed, enter 'y' or 'n' in the 'Install?' column. Install ExpressInstall GetInfo Help End |
Ici il faut vérifier que tout est à "Yes", puis choisir "Install" (F5), une "boite" affiche un petit récapitulatif :
INGBUILD - Custom Install from Distribution Medium Distribution: /var/tmp/INSTALL/ingres-10.0.0-122-NPTL-gpl-linux-ingbuild-x +------------------------------------------------------+-----+----------+ | Custom+-----------------------------------------------------+ |=====================|Products selected: 16 Disk space required: 89M | |Ingres ODBC Driver | Support modules : 19 100M | |Ingres Protocol Bridg| -- Temporary storage : 10M | |Ingres C2 Security Au| ---- | |Ingres Replicator | Total: 35 199M | |Ingres Spatial Object| | |Ingres Data Access Se|Do you want to proceed with the installation? | |Ingres Star Distribut+-------------+---------------------------------------+ |Query and Reporting R|Yes |Install all selected products | |Query and Reporting T|No |Cancel requested installation | |Terminal Monitors +-------------+---------------------------------------+ |VisionPro | 66M|Yes | +------------------------------------------------------+-----+----------+ II_SYSTEM : /opt/Ingres To add or remove products from the list of products to be installed, enter 'y' or 'n' in the 'Install?' column. |
Il suffit de frapper "Entrée" sur le "Yes" présélectionné.
L'écran s'anime pendant la vérification puis propose dans une nouvelle "boîte" : "Do you want to set up these products now", frapper "Entrée" sur le "Yes" présélectionné.
Premier setup : "Setting up Application-By-Forms..."
Se contenter d'appuyer sur entrée, un petit message de confirmation s'affiche :
ING_ABFDIR configured as /opt/Ingres/ingres/abf
Application-By-Forms setup complete.
Press RETURN to continue:
Il faut encore faire "Entrée" puis un écran "Setting up the Ingres Intelligent DBMS..." récapitule les paramètres de Ingres DBMS, frapper "y" et "Entrée" puis le message suivant s'affiche :
Ingres has the capability to guarantee integrity of all committed database transactions in the event of a system software failure or single storage device failure. IMPORTANT NOTE: if a second storage device fails before recovery from an initial failure has taken place, committed transactions may be lost. If you intend to take advantage of this capability, you need to have at least two independent storage devices available (one in addition to the one Ingres is being installed on). If you do not have two independent storage devices available, but would like to take advantage of this capability, you should not complete this setup procedure at this time. Do you want to continue this setup procedure? (y/n) [y] |
Il s'agit d'un écran d'information au sujet du système de logging, ce type d'écran appairatra par la suite pour les phases importants. Ingres permet d'utiliser un "dual log" sur un disque différent pour augmenter la sécurité des données en cas d'incident sur un disque. Nous ne nous servirons pas de cette fonctionnalité.
On frappe donc "y" et "Entrée" sans autre forme de procès et l'installeur génère la configuration par défaut. Celle-ci nous conviendra souvent.
Please enter a valid installation code [II]
Frapper "Entrée"
Do you want instructions on configuring your storage locations? (y/n) [y]
Les "locations" sont les répertoires où Ingres place les différentes catégories d'éléments (log, journal,bases de données, espace de travail ....) , la plupart de ces "locations" sont ensuite pointées par des variables de la forme "II_nom_variable",je préciserais ces éléments au passage, vous pouvez répondre "Y" et voir l'ensemble des conseils, ici je réponds "N".
II_DATABASE
Ici je désire que les données des bases soient placées dans le répertoire "/DATA/ingres", je réponds donc /DATA/ingres.
Please enter the default location for the Ingres Checkpoint Files:
[/opt/Ingres]
Les fichiers de "checkpoint" ne sont pas volumineux, ils peuvent très bien être stockés à l'endroit proposé, un jeu de sous-répertoires sera créé, il convient donc de faire "Entrée".
---------------------------------------------------------------------- | *** WARNING *** | | Do not store checkpoint, journal or dump files for a database on | | the same physical device as its data, or you will not be able to | | recover the data stored on that device if it fails. Please verify | | that the default location you have entered for your | | Ingres Checkpoint Files: | | /opt/Ingres | | is on a different physical device from the default location you | | have entered for your database files: | | /DATA/ingres | ---------------------------------------------------------------------- Is the value you have entered for II_CHECKPOINT correct? (y/n) |
Ce type de "warning" est affiché régulièrement afin de nous inciter à réfléchir à la sécurité de notre installation. Si nous sommes "bons" répondre "y" sans crainte.
Please enter the default location for the Ingres Journal Files:
[/opt/Ingres]
Ici aussi nous pouvons prendre cette valeur par défaut.
Please enter the default location for the Ingres Dump Files:
[/opt/Ingres]
Ici aussi nous pouvons prendre cette valeur par défaut.
Please enter the default location for the Ingres Work Files:
[/opt/Ingres]
Ici nous voulons utiliser le même disque que le log, nous mettons donc le nom de notre répertoire réservé : "/LOG/ingtemp".
Do you want to disable the backup transaction log? (y/n) [n]
Il s'agit ici du fameux "Dual_log" dont nous n'avons pas besoin pour une machine de test, il n'en serait pas de même en production où il faudrait le positionner sur un autre disque physique que le log standard, nous répondons donc "Y".
The default size for the Ingres transaction log is:
262144K bytes ( 256M bytes)
Do you want to change the default transaction log size? (y/n) [n]
Ici la taille proposée est de 256Mo, le log étant un buffer circulaire il est nécessaire de la positionner à une taille suffisante pour supporter la charge transactionnelle. Ici pour certains tests "lourds" il sera positionné à 4Go, répondons "n" pour pouvoir proposer une valeur différente.
Please enter the desired transaction log size (in Megabytes): 4096
Suivi de "Entrée"
Please enter a location for the Ingres transaction log:
[/opt/Ingres]
Mettre ici le répertoire que nous avons prévu pour ceci : "/LOG/ingres".
You must now specify the number of CPUs (processors) in this machine so that Ingres may be set up for this server. If you do not know the exact number of CPUs, but know that this is a multi-cpu machine, enter a value of 2. The value you specify will be used to set the Ingres variable II_NUM_OF_PROCESSORS and possibly other configuration variables. Please enter the number of CPUs in this machine [1] Y |
Ici, un seul CPU est prévu, il faut ensuite choisir le fuseau horaire (en deux étapes), première liste :
AFRICA
ASIA
AUSTRALIA
MIDDLE-EAST
NORTH-AMERICA
NORTH-ATLANTIC
SOUTH-AMERICA
SOUTH-PACIFIC
SOUTHEAST-ASIA
GMT-OFFSET
Please enter one of the named regions:
Saisir "NORTH-ATLANTIC" qui envoie sur l'écran suivant où nous choisirons "EUROPE-WESTERN", il faut ensuite valider cette configuration.
The time zone you have selected is:
EUROPE-WESTERN (Western European Time Zone)
If this is not the correct time zone, you will be given the opportunity to
select another region.
Is this time zone correct? (y/n) [y]
La réponse est "y", sauf si l'on a fait n'importe quoi. Il faut ensuite choisir le jeu de caractères à utiliser pour les données :
This setting must be assigned one of the following values:
UTF8 ALT KOI8
PC857 ARABIC CW
DOSASMO ELOT437 GREEK
HEBREW HPROMAN8 IBMPC437
IBMPC850 IBMPC866 IS885915
ISO88591 ISO88592 ISO88595
ISO88597 ISO88599 CSGB2312
CSGBK CHINESET CHINESES
CHTHP CHTBIG5 CHTEUC
KANJIEUC KOREAN SHIFTJIS
PCHEBREW SLAV852 THAI
WARABIC WHEBREW WIN1250
WIN1252 WIN1253 WTHAI
Please enter a valid character set [ISO88591]
J'aime bien le "ISO885915" que je spécifie.
The character set you have selected is:
IS885915 (ISO-8859-15 (Latin 9))
Is this the character set you want to use? (y/n) [y]
Répondre "y" évidemment.
Cette "page" étant déjà très longue l'installation se poursuit sur une autre page.
Ingres : installer (2)
Ingres : installer (2) jppInstallation Ingres suite.
How many concurrent users do you want to support? [32]
Répondre "Entrée", 32 pour des tests c'est déjà pas mal. L'initialisation proprement dite de la BDD commence alors par le LOG
The primary transaction log will now be created as an ordinary (buffered) system file. For information on how to create a "raw", or unbuffered, transaction log, please refer to the Ingres Installation Guide, after completing this setup procedure. Creating a 1048576K byte transaction log file... 0% 25% 50% 75% 100% |||||||||||||||||||||||||||||||||||| |
Cela dure quelques instants, le temps de formater 1Go sur le disque.
Do you wish to associate date data type to refer to ingresdate ? (y/n) [y]
Valider le "y".
Do you need strict compliance to the ANSI/ISO standard? (y/n) [n]
Valider le "n" cela déclenche l'installation proprement dite, les informations présentées ont été "raccourcies" :
Ingres/ingstart Checking host "com-ingres" for system resources required to run Ingres... Your system has sufficient resources to run Ingres. Starting your Ingres installation... Starting the Name Server... Allocating shared memory for Logging and Locking Systems... Starting the Recovery Server... ..... Creating DBMS System Catalogs . . . Modifying DBMS System Catalogs . . . Creating Database Database System Catalogs . . . Modifying Database Database System Catalogs . . . Creating Standard Catalog Interface . . . Creating Front-end System Catalogs . . . ...... This setup process can create and populate a demonstration database (demodb) which will be used by the Ingres demonstration applications. Do you want demodb to be created? (y/n) [y] |
Répondre "y" et valider, nous disposerons ainsi d'une petite base de départ.
.....
la base "demo" s'installe
...
... executing checkpoint to disk ending checkpoint to disk /opt/Ingres/ingres/ckp/default/demodb of 1 locations Shutting down the Ingres server... Ingres Intelligent DBMS setup complete. Refer to the Ingres Installation Guide for information about starting and using Ingres. Press RETURN to continue: |
L'initialisation de la base est terminée on passe à la suite :
Setting up Ingres Networking... ..... If you do not need access to this Ingres server from other hosts, then you do not need to set up Ingres Networking. Do you want to continue this setup procedure? (y/n) [y] |
Répondre "y" et valider
Installation passwords offer the following advantages over user passwords: + Remote users do not need login accounts on the server host. + Installation passwords are independent of host login passwords. + Installation passwords are not transmitted over the network in any form, thus providing greater security than user passwords. + User identity is always preserved. If you need more information about Ingres Networking authorization, please refer to the Ingres Connectivity Guide. Press RETURN to continue: |
Comme d'habitude les conseils pour la suite, nous utiliserons un "Installation password".
Do you want to create an installation password for this server? (y/n)
Répondre "y" et valider.
.....
Enter installation password:
On entre un beau mot de passe ... et on confirme, on le note pour ne pas l'oublier ! .
Installation password created. The name server has been shut down. Ingres Networking has been successfully set up in this installation. You can now use the "ingstart" command to start your Ingres server. Refer to the Ingres Installation Guide for more information about starting and using Ingres. Press RETURN to continue: |
En pressant "Return" on arrive sur la configuration "ODBC" :
Enter the default ODBC configuration path [ /usr/local/etc ]:
Valider sans remords
The default ODBC configuration path is /usr/local/etc
Is the path information correct? (y/n) [y]
Répondre "y" et confirmer la réponse.
The default ODBC configuration path is /usr/local/etc
Is the path information correct? (y/n) [y] y
Répondre "y" sans hésiter
Is this always a read-only driver? (y/n) [n]
Sur une machine de production répondre "y" sans hésiter, ici on laisse "n" et on confirme ce manquement à la sécurité, la réponse ne se fait pas attendre :
Could not open from path /usr/local/etc.
E_CL1904_SI_CANT_OPEN SIfopen: Can't open file
Cannot write to specified ODBC configuration path /usr/local/etc
Writing instead to /opt/Ingres/ingres/files/odbcinst.ini.
Successfully wrote ODBC configuration files
An odbcinst.ini file has been created in the directory "/opt/Ingres/ingres/files".
You may use the utility iiodbcadmn to create and manage
ODBC data sources.
See the Ingres Installation Guide for more information.
Press RETURN to continue:
C'était bien la peine ! On copiera ce fichier plus tard.
Le setup de "Ingres Protocol Bridge..." se passe sans question --> Return.
Le setup de "C2 Security Auditing" se passe sans encombres, il faut valider puis "Setting up Replicator" s'affiche, il faut là aussi valider et on enchaine sur :
Setting up the Ingres Data Access Server... This procedure will set up the following version of Ingres Data Access Server: II 10.0.0 (a64.lnx/122)NPTL to run on local host: com-ingres Do you want to continue this setup procedure? (y/n) [y] |
Répondre "y" et valider et on arrive sur la configuration data access server et de JDBC qui se passe sans autre question.
Executing Ingres JDBC driver properties generator utility... The JDBC driver properties file 'iijdbc.properties' was created in $II_SYSTEM/ingres/files directory Ingres Data Access Server has been successfully set up in this installation. Please adjust the startup count and check the listen address with the cbf utility. Press RETURN to continue: |
On presse, encore, "Entrée" pour passer à la configuration (automatique) de "Ingres Star" à suivre de l'appui sur "Entrée".
INGBUILD - Custom Install from Distribution Medium Distribution: /var/tmp/INSTALL/ingres-10.0.0-122-NPTL-gpl-linux-ingbuild-x +------------------------------------------------------+-----+----------+ | Custom Component Options | Size| Install? | |======================================================+=====+==========| |Embedded SQL Precompilers | 23M|Ready | |Ingres 32bit support | 42M|Ready | |INGRES 6.x Compatible Message Files | 4M|Ready | |Ingres Intelligent DBMS | 104M|Ready | |Ingres DTP for Tuxedo | 56M|Ready | |Ingres Networking | 66M|Ready | |Ingres Object Management | 879K|Ready | |Ingres ODBC Driver | 65M|Ready | |Ingres Protocol Bridge | 947K|Ready | |Ingres C2 Security Auditing | 25K|Ready | |Ingres Replicator | 2M|Ready | +------------------------------------------------------+-----+----------+ II_SYSTEM : /opt/Ingres +----------------------------------------------------------------------------+ | All installed products are now available for use. | | [PRESS RETURN] | +----------------------------------------------------------------------------+ |
Le dernier appui sur "Entrée" avant l'appui sur "F3" pour sortir de l'installeur.
Ensuite le démarrage normal du serveur Ingres est déclenché et se termine par :
Starting the Visual DBA Remote Command Server...
Ingres installation successfully started.
Building the password validation program 'ingvalidpw'.
Executable successfully installed.
L'installation est terminée le répertoire /opt/Ingres/ingres contient :
drwxrwxrwx 2 ingres ingres 4096 mai 3 16:57 abf
drwxr-xr-x 2 ingres ingres 4096 mai 3 17:12 bin
drwx------ 3 ingres ingres 4096 mai 3 16:58 ckp
drwxr-xr-x 5 ingres ingres 4096 avr 21 19:49 demo
drwx------ 3 ingres ingres 4096 mai 3 16:59 dmp
drwxr-xr-x 16 ingres ingres 4096 mai 3 17:12 files
drwxrwxrwx 3 ingres ingres 4096 avr 21 19:49 install
drwx------ 3 ingres ingres 4096 mai 3 16:59 jnl
drwxr-xr-x 3 ingres ingres 4096 mai 3 16:57 lib
drwxrwxrwx 3 ingres ingres 4096 mai 3 17:10 rep
drwxr-xr-x 10 ingres ingres 4096 avr 21 19:49 sig
drwxrwxr-x 3 ingres ingres 4096 avr 21 19:48 utility
drwxr-xr-x 2 ingres ingres 4096 mai 3 17:04 vdba
-rw-r--r-- 1 ingres ingres 28 avr 21 19:28 version.rel
Après cette installation épuisante un peu de repos avant de passer aux ajustements nécessaires à une utilisation "normale" de Ingres.
Ingres : ajustements
Ingres : ajustements jppAvant les quelques ajustements nécessaires à une utilisation agréable une petite explication sur les "locations".
Les "locations" sont pour Ingres des espaces disques où peuvent être installées des bases de données ou des parties de bases de données, pour Oracle on utilise le mot "tablespace". Dans ces locations, pour chaque base, Ingres crée un répertoire portant le nom de la base. Un fichier (au sens OS) est ensuite créé pour la plupart des objets de base de données (tables, index ...).
Toute base a, au moins, une location ou créer les bases "iidbdb" et "imadb".
- iidbdb = "base des bases", c'est le catalogue général de Ingres.
- imadb = base contenant essentiellement des éléments liés à la performance.
Variables "système" à mettre en place impérativement :
II_SYSTEM mettre à '/opt/Ingres'
II_INSTALLATION mettre à II
PATH y ajouter $II_SYSTEM'/ingres/bin' et $II_SYSTEM'/ingres/lib'
LD_LIBRARY_PATH y ajouter $II_SYSTEM'/ingres/lib'
INGRES_TERM à mettre à "vt220"
TERM à mettre à "vt220", on dispose alors d'un aspect et de fonctionnalités correctes dans une "konsole" pour les utilitaires "semi-graphiques" qui font le délice des amateurs.
Un petit script à placer par exemple dans le fichier /etc/default/ingres et lancé par "source /etc/default/ingres" dans son ".bashrc" favori, un tel script est fourni en fichier attaché.
Ne pas oublier d'utiliser le "bon" type de terminal (pour moi "konsole") et forcer "TERM" et "INGRES_TERM" à "vt220". Mettre cela dans votre profil.
Les utilitaires :
- ingstart sert a démarrer la base
- ingstop sert à stopper la base, possède quelque switchs d'usage courant "-force, -immediate, -kill" et d'autres à découvrir en tapant "ingstop -h".
- ingstatus permet de voir les process "Ingres" et leur état
- cbf très important, sert à gérer les paramètres de la base.
- accessdb qui permet de gérer bases, locations et utilisateurs
Ceci dit penchons nous sur quelques scripts qui facilitent la vie :
- Script de connexion
Le script proposé "ingres" est en à installer dans /etc/default et est "sourcé" dans les scripts de connexion des utilisateurs (ou exécuté par . /etc/default/ingres )
Ce script est par ailleurs utilisé dans les scripts de démarrage proposés.
Afficher ce script. - Script de démarrage (automatique)
Le script proposé est en deux parties :
Un script coté "ingres" : start_stop à installer dans $II_SYSTEM/ingres
Afficher ce script.
Un script coté "système" : ingres_cmd à installer dans /etc/init.d avec les bons liens qui se contente d'appeler le script "ingres"
Afficher ce script. - NB : les fichiers attachés doivent être renommés en supprimant de suffixe ".txt"
Compléments de configuration :
La partie essentielle est la configuration des caches. Ingres permet de créer des bases avec différentes tailles de page (une taille est à choisir pour la valeur par défaut), on peut même avoir des tables avec des tailles différentes dans la même base.
Ici nous prendrons des pages de 8K pour se comparer aux autres bases déjà testées "à armes égales".
Petit tour dans "cbf" qui a la "gueule" habituelle.
CBF - Configuration-By-Forms Host: com-ingres II_SYSTEM: /opt/Ingres II_INSTALLATION: II ┌────────────────────────┬────────────────────────┬───────────────┐ │System Component │Configuration Name │Startup Count │ ├────────────────────────┼────────────────────────┼───────────────┤ │Name Server │(default) │1 │ │DBMS Server │(default) │1 │ │Star Server │(default) │0 │ │Locking System │(default) │1 │ │Logging System │(default) │1 │ │Transaction Log │II_LOG_FILE │1 │ │Transaction Log │II_DUAL_LOG │0 │ │Recovery Server │(default) │1 │ │Archiver Process │(not configurable) │1 │ │Remote Command │(not configurable) │1 │ │Security │(default) │1 │ └────────────────────────┴────────────────────────┴───────────────┘ Configure(1) EditCount(2) Duplicate(3) ChangeLog(8) > |
On commence par mettre à zero de "Startup count" de "Star Server" en :
- se positionnant sur la bonne ligne
- appuyant sur "F1" pour aller dans la zone de commandes
- Frappant "Ed" pour EditCount
On obtient alors une zone de saisie pour la variable concernée : ┌────────────────────────────────────────────────────────────────────────────┐
│ Please enter the number of copies of the selected component you want to │
│ execute at startup: │
│ └────────────────────────────────────────────────────────────────────────────┘
On peut alors entrer la valeur souhaitée (ici 0) suivie de "Entrée".
Toutes les actions s'exécutent, après affichage de la liste, selon le même principe :
- se positionnr sur l'élément à modifier
- appuyer sur "F1"
- frapper le début de la fonction à exécuter
- réaliser son rêve, frapper "Entrée".
Pour configurer le "DBMS Server" :
- se positionner sur la ligne "DBMS Server"
- Frapper sur "F1"
- Frapper "co" pour "configure"
- accéder à la liste des valeurs de configuration
La liste peut être parcourue, un appui sur "F2" donne accès à une aide dont on sort par "F3".
Dans cette liste on remarque la variable "connect_limit" positionnée à 32 si vous avez bien suivi la configuration
de départ. Ce qui nous intéresse dans un premirr temps est le "default_pagesize" magnifiquement déjà positionné
à 8K.
On va vérifier la taille des caches, "F1" puis saisir "cache" on voit alors que les caches de 2k et 8K sont "on", on
se positionne sur le cache "8K", un petit coup de "F1" puis configure nous amène :
┌──────────────────────────────────────────────────────────────┐ │ DBMS Cache Parameters for 8k Buffers │ ├────────────────────┬────────────────────┬────────────────────┤ │Name │Value │Units │ ├────────────────────┼────────────────────┼────────────────────┤ │cache_guideline │medium │ │ │dmf_group_size │8 │data pages │ │dmf_separate │OFF │boolean │ │dmf_write_behind │ON │boolean │ │ │ │ │ └────────────────────┴────────────────────┴────────────────────┘ Edit(2) Derived(5) Restore(6) ChangeLog(8) Help(PF2) > |
Un petit coup de "Derived" sur "cache_guideline" nous affiche le détail de la mémoire affectée :
┌────────────────────────────────────────────────────────────────────────┐ │ Derived DBMS Cache Parameters for 8k │ ├────────────────────┬────────────────────┬────────────────────┬─────────┤ │Name │Value │Units │Protected│ ├────────────────────┼────────────────────┼────────────────────┼─────────┤ │dmf_cache_size │24000 │data pages │no │ │dmf_free_limit │750 │data pages │no │ │dmf_group_count │750 │group buffers │no │ │dmf_memory │245760000 │bytes │no │ │dmf_modify_limit │18000 │data pages │no │ │dmf_wb_end │7200 │data pages │no │ └────────────────────┴────────────────────┴────────────────────┴─────────┘ |
J'ai "forcé" le "dmf_cache_size à 24000 et je force dmf_free_limit et dmf_group_count à 2400 pour affecter un peu plus de mémoire aux buffers. Je ne touche pas aux autres valeurs.
Les autres valeurs fixées par défaut ne doivent pas être modifiées sans un besoin précis (machines de production) et des avis "autorisés" sous peine de manque de performance, l'utilisation de la touche "F2" permet de se documenter sur les variables.
Après notre petit "bricolage" on sort de ces modifications par "F3" et cbf nous propose de sauvegarder nos mises à jour, nous restons positionnés sur "Yes" et l'appui sur "Entrée" sauvegarde le tout. Un appui sur "F4" nous permet de sortir définitevement de cbf. Il ne nous reste plus qu'à appliquer nos modifications :
"ingstop -immediate" cela rappelle le "shutdown immediate;" de Oracle ?
Puis :
"ingstart"
Et c'est Parti ...
Ingres : minitest
Ingres : minitest jppLa table "habituelle" a été reconstituée à grans coups de "insert/select". Toutefois la syntaxe permettant de "décaler" vers le passé les dates "historiques" conservées en format "texte" AAAAMMJJ n'est pas évidente et forte consommatrice de CPU.
Calcul des statistiques (optimizedb) (doc disponible) :
optimizedb -utest -zu4096 -zv test -rxen_stat_v2
ven mai 7 11:41:25 CEST 2010
*** statistics for database test version: 01000
*** table imp_xen rows:793466 pages:15561 overflow pages:15558
*** column nbsecw of type decimal (length:10, scale:2, nullable)
date:07-may-2010 10:41:28 unique values:801.000
repetition factor:990.5942383 unique flag:N complete flag:0
domain:0 histogram cells:1602 null count:0.0000000 value length:8
*** statistics for database test version: 01000
*** table imp_xen rows:793466 pages:15561 overflow pages:15558
*** column nbsecr of type decimal (length:10, scale:2, nullable)
........
*** statistics for database test version: 01000
*** table xen_stat_v2 rows:13195433 pages:206183 overflow pages:206177
*** column deltacpu of type decimal (length:10, scale:2, nullable)
date:07-may-2010 10:43:00 unique values:61.000
repetition factor:216318.5781250 unique flag:N complete flag:0
domain:0 histogram cells:122 null count:0.0000000 value length:8
ven mai 7 11:43:00 CEST 2010
Soit un temps de 1 minute et 25 secondes.
Création du premier index :
sql -utest test <statv2_cre_idx.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:42:31 2010
continue
* * * * * * * * * /* SQL Startup File */
create index xen_stat_v2_i1 on xen_stat_v2 (DOMNOM, DATEC, HEUREC) ;
Executing . . .
(13147446 rows)
continue
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:44:30 2010
Soit environ 1 minute 59 secondes.
Création du second index :
sql -utest test <statv2_cre_idx.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:47:34 2010
continue
* * * * * * * * * /* SQL Startup File */
create index xen_stat_v2_i2 on xen_stat_v2 (DATEC, DOMNOM, HEUREC) ;
Executing . . .
(13147446 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:49:50 2010
Soit environ 2 minutes et 16 secondes.
Comptages :
1) comptage "brut"
sql -utest test <CNT_1.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:53:09 2010
* * * * * * /* SQL Startup File */
select count(*) from xen_stat_v2
Executing . . .
┌─────────────┐
│col1 │
├─────────────┤
│ 13147446│
└─────────────┘
(1 row)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:53:25 2010
Soit environ 16 secondes.
2) Comptage group by
sql -utest test <CNT_GRP_1.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:55:09 2010
* * * * * * * * /* SQL Startup File */
select domnom,count(*)
from xen_stat_v2
group by domnom
order by domnom
Executing . . .
┌────────────────┬─────────────┐
│domnom │col2 │
├────────────────┼─────────────┤
│Domain-0 │ 2512057│
│amdx2-2000 │ 254925│
│amdx2-bi2003 │ 255541│
......
│k2000-ora64 │ 2333479│
│k2000-ora65 │ 898205│
│k2000-ora66 │ 862580│
└────────────────┴─────────────┘
(19 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:55:29 2010
Soit environ 20 secondes.
3) Comptage "group by"
sql -utest test <CNT_GRP_2.sql
INGRES TERMINAL MONITOR Copyright 2010 Ingres Corporation
Ingres Linux Version II 10.0.0 (a64.lnx/122)NPTL login
Wed May 5 14:57:04 2010
continue
* * * * * * * * /* SQL Startup File */
select domnom,serveur,count(*)
from xen_stat_v2
group by domnom,serveur
order by domnom,serveur
Executing . . .
┌────────────────┬────────────────┬─────────────┐
│domnom │serveur │col3 │
├────────────────┼────────────────┼─────────────┤
│Domain-0 │k2000 │ 2305773│
......
│k2000-ora66 │k2000 │ 862580│
└────────────────┴────────────────┴─────────────┘
(24 rows)
continue
*
Your SQL statement(s) have been committed.
Ingres Version II 10.0.0 (a64.lnx/122)NPTL logout
Wed May 5 14:57:38 2010
Soit environ 34 secondes.
En bref la base de données est assez rapide et n'a pas à rougir devant les performances des autres bases existantes. La gestion des bases Ingres est très simple, beaucoup de bases utilisées dans l'industrie tournent sans aucun DBA qualifié. Si la base est bien installée (répartition et place disque) et paramétrée correctement (taille mémoire, log, espace temporaire, système de "lock") elle peut fonctionner des années quasiment sans intervention, cela n'empêche pas de sauvegarder les données !
Petit rappel sur l'outil "sql".
L'outil "sql" utilisé pour les tests est l'outil "batch" de Ingres (il peut aussi être utilisé "à la main" bien sûr).
La syntaxe SQL est assez standard, seuls quelques "trucs" peuvent gêner :
- exécuter l'ordre SQL courant : il faut frapper "\g" pour lancer l'exécution ou "\p\g" pour lister l'ordre et l'exécuter.
- quitter : il faut frapper "\q"
Le prompt est marqué par un "*" exemple :
* help\g
Executing . . .
Name Owner Type
xen_stat_v2 test table
xen_stat_v2_i1 test index
xen_stat_v2_i2 test index
(3 rows)
continue
*\q
Il faut le savoir ... pour la doc c'est ici.
Rappel sur les "switchs" :
Attention dans Ingres, les switchs de commande comme le "-u" dans "sql -utest" ne doivent pas être suivis d'un espace contrairement à beaucoup d'autres logiciels.