Script et guide d’installation pour Informix 12.10 sur Ubuntu 14.04 lts en mode silent

Dans mon précédent emploi il m’a fallu dompter Informix le moteur de base de données transactionnel de IBM. Son installation est bien plus ardue que MySql ou MariaDb, voila donc un guide et un script d’installation sur un serveur Ubuntu 14.04 lts flambant neuf.

On va commencer par récupérer l’archive gratuite d’Informix Innovator-C en version 12.10 un fois un compte crée sur le site d’IBM. Dans le cas présent j’utilise une version x86_64.

Voila les différentes étapes que je vais décrire ci dessous :

  • Update / Upgrade de l’OS
  • Vérification de la présence de l’archive Informix
  • Création d’un répertoire d’installation
  • Création du user informix
  • Extraction de l’archive
  • Installation des dépendances
  • Création d’un fichier bundle pour l’installation silent
  • Installation en mode silent
  • Configuration onconfig et sqlhost
  • Création de la structure de répertoires
  • Configuration des variables d’environnement pour le user
  • (manuel) Initialisation du moteur
  • (manuel) Test du backup ontape

Lancez le script en root comme suit :

./informix_install.sh

Update / Upgrade de l’OS

Rien de spécial ici, on fait juste attention à être bien a jour avant de commencer.

Vérification de la présence de l’archive Informix

Par rapport au CLUF d’IBM il est nécessaire de s’enregistrer sur leur site pour récupérer l’archive d’installation. Il y a plusieurs versions disponible, de la gratuite à celle hors de prix, et on va se concentrer sur les éditions gratuites qui sont 2 :

  • IBM Informix Developer Edition — For application development and testing only, this edition packs the full suite of Informix functionality into an attractive price point: free! The Developer Edition includes all the functionality available in the Informix Enterprise Edition with scalability constraints including processing, memory, and storage limitations. It is available on a wide range of operating systems in 32- and 64-bit versions where appropriate. Customers can upgrade from the Developer Edition directly to any other edition simply by installing the new database binaries.
  • IBM Informix Innovator-C Edition— For customers looking for a robust database environment that can support small production workloads, this edition provides the most widely used data processing functionality. Available on all supported platforms, this edition is limited to one core and a total of 2 GB of RAM operating from the same Install.


J’ai choisi l’Innovator-C ;)

Création d’un répertoire d’installation

Il est nécessaire que l’archive Informix soit dans le même répertoire que le script d’installation. Toute la tambouille se fera dans /opt/informix-src

Création du user informix

User nécessaire pour l’installation, cela sera aussi l’administrateur du moteur Informix au sens ‘root’ pour MariaDb/MySql.

Extraction de l’archive

Rien de spécial ici …

Installation des dépendances

Pour avoir connu Informix depuis maintenant 4 ans, la liste des dépendances et des tricks de librairies s’est réduite au fur et a mesure des versions. Il ne reste plus que :

apt-get install -y  bc libaio1 pdksh libncurses5-dev

Création d’un fichier bundle pour l’installation silent

C’est un gros avantage de pouvoir installer Informix via un fichier de configuration en mode silencieux, cela permet de choisir quelles fonctionnalités on va mettre dans le moteur avec la variable CHOSEN_FEATURE_LIST du bundle.

CHOSEN_FEATURE_LIST=IDS,IDS-SVR,IDS-EXT,IDS-EXT-JAVA,IDS-EXT-OPT,IDS-EXT-CNV,IDS-EXT-XML,IDS-DEMO,IDS-ER,IDS-LOAD,IDS-LOAD-ONL,IDS-LOAD-DBL,IDS-LOAD-HPL,IDS-BAR,IDS-BAR-CHK,IDS-BAR-ONBAR,IDS-BAR-TSM,IDS-ADM,IDS-ADM-PERF,IDS-ADM-MON,IDS-ADM-ADT,IDS-ADM-IMPEXP,IDS-JSON,GLS,GLS-WEURAM,GLS-EEUR,GLS-CHN,GLS-JPN,GLS-KOR,GLS-OTH,SDK,SDK-CPP,SDK-CPP-DEMO,SDK-ESQL,SDK-ESQL-DEMO,SDK-ESQL-ACM,SDK-LMI,SDK-ODBC,SDK-ODBC-DEMO,JDBC

J’ai fait le choix de retirer tout ce qui concerne OAT et le serveur web embarqué en conservant par contre tous les SDK. Libre à vous de modifier cette liste.

Installation en mode silent

La partie sympathique se joue ici :

./ids_install -i silent -f /opt/informix-src/bundle.cyklodev -DUSER_INSTALL_DIR=/opt/IBM/Informix

Configuration onconfig

Une des partie ardue d’Informix c’est le fichier de configuration à rallonge.

  • ROOTNAME : c’est le nom de l’espace que le moteur utilise
  • ROOTPATH : le path ou se situe le fichier
  • CONSOLE et MSGPATH : les fichiers de logs
  • DBSERVERNAME : le nom de l’instance
  • DEF_TABLE_LOCKMODE : mode de lock utilisé lors d’écriture concurrentielles
  • TAPEDEV : path où sont stockés les backups ontape
  • LTAPEDEV : path où sont stockés les logicals logs

Il y a bien d’autres choses à découvrir dans ce fichier de configuration. Je reviendrai dessus lors de prochains articles.

Configuration sqlhost

Ce fichier permet de configurer la connectivité des instances informix, soit en socket soit en tcp. Ici pas de grand débat, ça sera tcp sur le port par défaut 9088.

Création de la structure de répertoires

J’ai choisi arbitrairement la structure des répertoires pour les backups, les logs ainsi que les spaces.
Libre à vous de modifier. Par contre attention, le chmod 777 n’est pas la pour le plaisir…

Configuration des variables d’environnement pour le user

Une autre complexité d’Informix est la configuration des variables d’environnement pour le user informix. Sans certains de ces paramètres, il est impossible de démarrer le moteur rien que ça ! Veuillez donc à ce que ces paramètres soient corrects :

  • INFORMIXDIR
  • INFORMIXSERVER, ONCONFIG, INFORMIXSQLHOSTS

Le tout est embarqué dans le bashrc du user pour une application dès la connexion.

su - informix

(manuel) Initialisation du moteur

Pour commencer il faut initialiser le moteur, et attention cela ne se fait qu’une seule fois !

oninit -ivy

Une fois la pile de log passée le shell doit vous rendre la main et la chose la plus simple pour voir si tout c’est bien passé c’est cette commande :

onstat -m

Qui devrait vous afficher un beau Online

IBM Informix Dynamic Server Version 12.10.FC2IE -- On-Line -- Up 00:00:18 -- 156264 Kbytes

Message Log File: /dev/tty

(manuel) Test du backup ontape

Pour tester un backup il faut bien évidement être en mode Online et il vous suffit de :

ontape -s -L 0

Ce qui devrait vous afficher :

10 percent done.
100 percent done.
File created: /home/informix/backup/datas/u1404_0_L0

Please label this tape as number 1 in the arc tape sequence. 
This tape contains the following logical logs:

 3

Program over.

Conclusion

Vous avez désormais un moteur correctement configurer, il nous vous reste plus qu’à plonger dans l’univers Informix et sa  » »documentation » » plutôt indigeste.
Pour y voir un peu plus clair voilà quelques sites qui vont vous permettre d’avancer :

Syntaxe informix du dbexport et du dbimport

Pour faire un backup facilement passable d’un informix a un autre avec des versions ou des

architectures differentes, on peut passer par un dbexport/dbimport.

    Dbexport :
dbexport –c –X db_name

L’export crée un repertoire du type db_name.exp.

    Dbimport :
dbimport -c db_name -i /path/where/export/is -d dbs_restore

Attention si vous specifiez une option -l que se soit en buffered ou unbuffered vous vous exposez à des LONG TRANSACTIONS.