Une précédente documentation datant de juillet 2005 présentait l'installation et la normalisation de Sybase IQ version 12.4.2 sous Solaris ( Installation et normalisation de Sybase IQ 12.4.2 sous Solaris ). Avec les versions supérieures de Sybase IQ, l'installation est nettement simplifiée, mais des modifications importantes ont été apportées dans les gestions des variables d'environnement $SYBASE, $SYBASE_OCS, $ASDIR etc.... ainsi que dans l'organisation des binaires et librairies (disparition du répertoire ociq-12_0 par exemple).
L'installation de Sybase IQ 12.7 sur les plateformes Sun SPARC Solaris 10 est présentée dans cet article. Un rappel sur la norme adoptée est également proposé, norme quelque peu modifiée pour prendre en charge les nouvelles spécificités de l'installation des versions IQ 12.5/12.6 & 12.7.
Les binaires d'installation de la distribution Sybase IQ 12.7 (contrairement à la version 12.4.2) sont livrés dans une archive compressée sybiq127sparc.tgz.
Dans la suite de la documentation, ${INSTALL_DIR} est le répertoire dans lequel est localisée la distribution d’installation de Sybase IQ 12.7 (/Software/sybase/installations/install_asiq127 dans notre cas pratique) :
sybase@CALYPSO> cd /Software/sybase/installations/install_asiq127
sybase@CALYPSO> gunzip sybiq127.sparc.tgz
sybase@CALYPSO> tar xvf sybiq127.sparc.tar
Le shell sybinstall dans le répertoire ${INSTALL_DIR} permet de démarrer l’installation de Sybase IQ 12.7.
La syntaxe de sybinstall propose les options ci-dessous :
Usage: sybinstall [-src <source|CD-directory>]
[-dst <destination|\$SYBASE-directory>]
[-products '<prod1 prod2 ... prodN>']
[-I_accept_sybase_license]
[-add_license]
[-add_agent]
[-debug]
[-version|-info]
[-y]
L'option -dst du shell sybinstall est très importante car elle permet de spécifier le répertoire d'installation de Sybase IQ 12.7. Si le répertoire d'installation de Sybase IQ 12.7 n'est pas spécifié avec l'opton -dst de sybinstall ou avec la variable $SYBASE, l'installation est en échec :
sybase@CALYPSO > sybinstall
Setting up install ..
Install failed for the following reasons
----------------------------------------
Destination directory ($SYBASE|-dst) does not exist
This information has been saved to: /tmp/sybinstall.log
Le répertoire d'installation doit exister au préalable.
Dans la normalisation adoptée, les installations IQ sont réalisées dans les répertoires ayant la nomenclature /Software/sybase/asiq-<version>
Il s'agit dans le cas présent de la version 12.7 : le répertoire d'installation créé au préalable est par conséquent /Software/sybase/asiq-12.7, répertoire ayant pour propriétaire le compte sybase qui exécutera les serveurs IQ puis la commande sybinstall est lancée avec l'option -dst spécifiant ce répertoire.
sybase@CALYPSO > mkdir /Software/sybase/asiq-12.7
sybase@CALYPSO > sybinstall -dst /Software/sybase/asiq-12.7
L'installation s'effectue en plusieurs étapes avec des écrans interactifs :
L'installation démarre avec l'écran interactif ci-dessous :
Sybase IQ 12.7 Enterprise Edition
Install Sybase IQ 12.7
Welcome to Sybase IQ 12.7.
This script will install Sybase IQ and other supporting
products on your system.
You may quit at any time by pressing '^c'.
Press <Return> to continue:
La suite de l'installation permet de choisir la langue pour la lecture du contrat de licence, le choix de la langue n'ayant aucune influence sur l'installation :
Sybase IQ 12.7 Enterprise Edition
Select the location where you are installing the software
1) Argentina 20) Mexico
2) Australia 21) Netherlands
3) Belgium (French) 22) New Zealand
4) Belgium (English) 23) Norway
5) Brazil 24) Philippines
6) Canada 25) Peoples Republic of China (PRC)
7) Denmark 26) Singapore
8) France (French) 27) Spain (Spanish)
9) France (English) 28) Spain (English)
10) Germany (German) 29) Sweden
11) Germany (English) 30) Switzerland (German)
12) Hong Kong 31) Switzerland (English)
13) India 32) Taiwan
14) Ireland 33) Thailand
15) Italy (Italian) 34) United Kingdom
16) Italy (English) 35) United States of America
17) Japan 36) Americas (Mid/So.), Asia Pacific - General
18) Korea 37) Europe, Middle East, Africa - General
19) Malaysia 38) Other Locations
Please enter the number for the location you are installing (1..38, Q): 8
A l'issue du choix de la langue, la licence s'affiche, licence que l'on fait défiler avec la touche "Enter". A l'issue de la lecture du contrat de licence, taper Y pour accepter la licence.
" Version Majeure " - Désigne la sortie d'une Mise à jour majeure des Programmes contenant de nouvelles
caractéristiques et fonctions ainsi que des correctifs d'erreurs.
" W " dans la colonne intitulée " Plate-forme/Système d'application " d'une Annexe A -
Correspond à " Lieu de travail " et désigne une version du Programme dont l'installation est autorisée
sur des Machines opérant dans un environnement UNIX, ayant une capacité de traitement informatique maximale
(calculée en multipliant le nombre maximal de CPU par la vitesse maximale de chaque CPU pouvant être rattaché
au serveur par le fabricant, quel que soit le nombre réel de CPU ou la vitesse réelle des CPU installés)
est inférieure ou égale à 2 000 et des Machines fonctionnant dans un environnement Windows, Macintosh ou Linux.
1
Contrat de licence 030424
(EOF)Press <Return> to continue:
I agree with the terms of the license, for the location specified ? Y
L'installation d'une distribution IQ 12.7 est toujours accompagnée de l'installation d'un Open Client 15.0. il est possible de ne pas installer la version de l'Open Client 15.0 qui accompagne IQ 12.7 afin d'utiliser un Open Client 15.0 éventuellement déjà installé dans un autre répertoire. La philosophie d'installation de Sybase IQ 12.7 au sujet de l'Open Client est la même que celle pour Sybase Replication Server qui a besoin d'un Open Client également. Ce choix est proposé à l'étape de sélection des produits, étape pendant laquelle il est également possible de désélectionner les composants JConnect, Sybase Central etc...
Sybase IQ 12.7 Enterprise Edition
Select Products
Destination Directory ($SYBASE/$SYBROOT) Free Space(k)
---------------------------------------------------------- -------------
/Software/sybase/asiq-12.7 26496033
# Product Size(k) Install Directory
-- -------------------------------- ------- --------------------------
1) Sybase IQ 304412 $SYBASE/ASIQ-12_7
2) SDK (Open Client) 15.0 411880 $SYBASE/
3) Sybase Central Java Edition 4.3 2496 $SYBASE/shared/sybcentral43
4) jConnect 5.5 17132 $SYBASE/shared
5) jConnect 6.0 16108 $SYBASE/shared
6) Java Runtime Environment 1.4.2 74488 $SYBASE/shared/jre-1_42
Options
--------------------------------------------
1..6) De/Select Product for Installation
C) Change Sybase Target Directory
S) Selection Completed
Q) Quit the Install
Please enter (1..6, C, S or Q )
La base de données utilitaire 'utility db' est une base factice qui permet de se connecter à un serveur IQ sans spécificier de bases de données afin de lancer des commandes IQ CREATE DATABASE, DROP DATABASE et RESTORE DATABASE. Par défaut le compte pour se connecter à cette base de données factice est DBA (mot de passe SQL). L'étape "Setup Utility Database" permet de changer ces paramètres par défaut (login et mot de passe), paramètres qui sont stockés dans le fichier $ASDIR/bin/util_db.ini.
$ASDIR est une variable d'environnement qui sera décrite un peu plus tard dans cet article : dans le contexte de cette installation $ASDIR pointe vers le répertoire /Software/sybase/asiq-12.7/ASIQ-12_7.
Sybase IQ 12.7 Enterprise Edition
Setup Utility Database
The utility database is a phantom database that allows users
to connect to an IQ server without specifying a database.
The "utility_db" allows the user only a narrow range of
specialized file manipulation statements which include:
CREATE DATABASE, DROP DATABASE, RESTORE DATABASE.
The ascii file contains the DBA's login and password
is "$ASDIR/bin/util_db.ini". By default the login is
"DBA" with a password of "SQL"
Do you want to change the current user and password ? Y
Please enter new login for utility_db: sa
Enter the new password (not echoed):
For verification, please re-enter the password (not echoed):
L'utilisation de la base utility_db sera décrite ultérieurement.
La sélection des produits et la configuration utility_db réalisées, l'installation des binaires et librairies dans le répertoire de destination (/Sotware/sybase/asiq-12.7) démarre :
Updating shared directories ...
x java, 0 bytes, 0 tape blocks
x java/HelpManager11.jar, 56339 bytes, 111 tape blocks
x java/JComponents142.jar, 828882 bytes, 1619 tape blocks
x java/SCEditor142.jar, 345060 bytes, 674 tape blocks
x java/jsyblib142.jar, 266937 bytes, 522 tape blocks
x sun, 0 bytes, 0 tape blocks
x sun/javahelp-1_1, 0 bytes, 0 tape blocks
x sun/javahelp-1_1/jh.jar, 347246 bytes, 679 tape blocks
Shared directories updated.
Product install completed.
Press <Return> to continue:
Pour IQ 12.7, il existe deux options sous licence spécifique (comme l'option RTDS avec Sybase ASE etc...) : ces options concernent la gestion des objets LOB (LOB) et l'encryption des colonnes (ENC). Ces 2 options ne sont pas installées faute de licence lors de l'écran d'installation des composants optionnels :
Sybase IQ 12.7 Enterprise Edition
Enter Optional Components
If you have purchased any optional components, such as Large
Object (LOB) or Column Encryption (ENC), you may enter them
at this time. Please enter each Component and Key purchased
Enter Component :
Do you want to enter another component/key ? N
Dans la dernière étape, les fichiers de configuration shell et Cshell sont mis à jour pour sourcer l'environnement IQ 12.7 et l'Open Client 15.0. Ces fichiers sont très importants dans le contexte de la normalisation évoquée plus bas :
Sybase IQ 12.7 Enterprise Edition
Environment Setup
The following environment files have been created
-------------------------------------------------
/Software/sybase/asiq-12.7/ASIQ-12_7/ASIQ-12_7.csh (Sybase IQ)
/Software/sybase/asiq-12.7/ASIQ-12_7/ASIQ-12_7.sh (Sybase IQ)
/Software/sybase/asiq-12.7/SYBASE.csh (SDK (Open Client) 15.0)
/Software/sybase/asiq-12.7/SYBASE.env (SDK (Open Client) 15.0)
/Software/sybase/asiq-12.7/SYBASE.sh (SDK (Open Client) 15.0)
Installation completed.
Les répertoires principaux installés sont listés dans le tableau ci-dessous :
| /Software/sybase/asiq-12.7 | Répertoire racine de l’installation de Sybase 12.7 |
| /Software/sybase/asiq-12.7/ASIQ-12_7 | Répertoire des binaires et des librairies d’Adaptive Server
IQ |
| /Software/sybase/asiq-12.7/OCS-15_0 | Répertoire de l’open Client 15.0. |
Pour un serveur Sybase IQ, la variable SYBASE est toujours au préalable définie sur le répertoire racine de la distribution IQ (IQ + Open Client), c’est-à-dire dans le contexte de notre architecture :
export SYBASE=/Software/sybase/asiq-12.7
Le script SYBASE.sh dans le répertoire /Software/sybase/asiq-12.7 prend en charge de manière générique la définition des variables d’environnement SYBASE, SYBROOT, SYBASE_OCS, PATH, LD_LIBRARY_PATH, INCLUDE et LIB.
#!/bin/sh
SYBASE=/Software/sybase/asiq-12.7
export SYBASE
SYBASE_OCS=OCS-15_0
export SYBASE_OCS
SYBROOT=/Software/sybase/asiq-12.7
export SYBROOT
PATH=${SYBASE}/${SYBASE_OCS}/bin:${PATH}
export PATH
LD_LIBRARY_PATH=${SYBASE}/${SYBASE_OCS}/lib:${SYBASE}/${SYBASE_OCS}/lib3p64:${SYBASE}/${SYBASE_OCS}/lib3p:
${LD_LIBRARY_PATH}
export LD_LIBRARY_PATH
INCLUDE=${SYBASE}/${SYBASE_OCS}/include:$INCLUDE
export INCLUDE
LIB=${SYBASE}/${SYBASE_OCS}/lib:$LIB
export LIB
unset LD_LIBRARY_PATH_64
Contrairement à la version 12.4.2, la variable ASDIR n'est plus définie dans le script SYBASE.sh mais dans le script ASIQ-12_7.sh créé dans le répertoire $SYBASE/ASIQ-12_7 au cours de l'installation.
ASDIR est une variable définie par l’éditeur SYBASE et elle caractérise la localisation complète de la distribution Adaptive Server IQ proprement dite (binaires et librairies d'IQ, sans open client) :
ASDIR=${SYBASE}/ASIQ-12_7
N.B. : Contrairement à la version 12.4.2, la variable SYBASE_OCIQ pointant sur le répertoire $ASDIR/ociq-12_0 est devenue obsolète, le répertoire ociq-12_0 n'existant plus.
Outre la définition de la variable $ASDIR, le script ASIQ-12_7.sh ajoute respectivement les répertoires $ASDIR/bin et $ASDIR/lib dans les variables d'environnement $PATH et $LD_LIBRARY_PATH :
#!/bin/sh
...
# ... Setup ASIQ environment .........................
ASDIR="${SYBASE}/ASIQ-12_7"
# ... Prepend to Path ................................
PATH="${ASDIR}/bin:${SYBASE}/${SYBASE_OCS}/bin:${PATH}"
# ... Setup O/S specific environment .................
IQLIB="${ASDIR}/lib:${SYBASE}/${SYBASE_OCS}/lib"
case SunOS in
AIX) LDR_CNTRL=USERREGS # Add for JRE 1.4.2 (SR3)
export LDR_CNTRL
LIBPATH="${IQLIB}:$LIBPATH"
export LIBPATH
;;
*AMD) IQLIB="${IQLIB}:${ASDIR}/lib64"
;;
esac
LD_LIBRARY_PATH="${IQLIB}:$LD_LIBRARY_PATH"
export LD_LIBRARY_PATH
unset IQLIB
export ASDIR SYBROOT SYBASE SYBASE_OCS PATH
Dans tous les paragraphes qui suivent, la variable d’environnement $DBA identifie le répertoire /Software/sybase/dba.
<servernameIQ> identifie un serveur Sybase IQ.
Les serveurs Sybase IQ ont la nomenclature :
<APP>_<D|T|U|P>xx_ASQ
À titre d’exemple : le premier serveur Sybase IQ sur une machine dédiée à du system test pour l’application ayant le trigramme DBA a pour nomenclature DBA_T1_ASQ.
Les ports des serveurs Sybase IQ sont compris entre 30070 et 30079.
Exceptions pour le serveur IQ de la base factice utilitaire utility_db :
Pour plus d'informations sur la base factice utility_db : IQ 12.7 : La base factice utilitaire IQ (utility_db)
Chaque serveur Sybase IQ doit disposer d’un répertoire dans le répertoire $DBA (/Software/sybase/dba) : par exemple $DBA/DBA_T1_ASQ.
L’arborescence du répertoire $DBA/<servernameIQ> est la suivante :
| $DBA/DBA_T1_ASQ | /cfg | Répertoire où est localisé le fichier de configuration <servernameIQ>.cfg du serveur Sybase IQ DBA_T1_ASQ. |
| /log | Répertoire des fichiers de logs du serveur Sybase IQ |
Le shell USE avec l’option –Q dans le répertoire $DBA/bin permet de sourcer l’environnement d’un serveur Sybase IQ. :
USE –Q < ? | ServerName >
Lorsque ? est donné en paramètre au shell USE, le liste des serveurs Sybase IQ installée sur la machine est donnée :
sybase@CALYPSO>USE -Q ?
DBA_T1_ASQ
Pour sourcer les variables d’environnement d’un serveur Sybase IQ, le shell USE s’appuie sur le fichier <servernameIQ>.asq dans le répertoire $DBA/etc. Par défaut, si le fichier <servernameIQ>.asq existe, le shell USE source la variable IQSERVERNAME laquelle est positionnée à <servernameIQ> :
export IQSERVERNAME=<servernameIQ>
Le shell USE dans le répertoire $DBA/bin permet de sourcer l’environnement d’un serveur Sybase IQ.
A titre d’exemple : pour sourcer l’environnement du serveur Sybase IQ DBA_T1_ASQ, le shell USE s’appuie sur le fichier DBA_T1_ASQ.asq dans le répertoire $DBA/etc.
sybase@CALYPSO>USE -Q DBA_T1_ASQ
DBA_T1_ASQ >
Les variables d’environnement alors sourcées pour le serveur Sybase IQ DBA_T1_ASQ sont les suivantes :
| Description | Variable d'environnement | Valeur |
|---|---|---|
| Nom du serveur Sybase IQ | IQSERVERNAME | DBA_T1_ASQ |
| Répertoire de la distribution racine Sybase IQ (IQ + Open Client) | SYBASE | /Software/sybase/asiq-12.7 |
| Localisation complète du répertoire de la distribution Sybase propre à IQ (répertoire ASIQ-<version>) | ASDIR | /Software/sybase/asiq-12.7/ASIQ-12_7 |
| Nom de l’application | APPNAME | dba |
| Environnement du serveur Sybase IQ | DBENV | DEV, UAT ou PROD |
| Répertoire de configuration | CFG | /Software/sybase/dba/DBA_T1_ASQ/cfg |
| Répertoire des scripts | SCRIPT | /Software/sybase/dba/DBA_T1_ASQ/cfg/script |
| Répertoire des dumps | DMP | /Software/sybase/dba/DBA_T1_ASQ/dmp |
| Répertoire des logs | LOG | /Software/sybase/dba/DBA_T1_ASQ/log |
| PATH | PATH | /Software/sybase/asiq-12.7/ASIQ-12_7/bin:/Software/sybase/asiq-12.7/OCS-15_0/bin: $PATH |
| LD_LIBRARY_PATH | LD_LIBRARY_PATH | /Software/sybase/asiq-12.7/ASIQ-12_7/lib:/Software/sybase/asiq-12.7/OCS-15_0/lib: /Software/sybase/asiq-12.7/OCS-15_0/lib:/Software/sybase/asiq-12.7/OCS-15_0/lib3p64: /Software/sybase/asiq-12.7/OCS-15_0/lib3p:$LD_LIBRARY_PATH |
Le fichier <servernameIQ>.asq se contente de sourcer les variables propres au serveur Sybase IQ en question : $DSQUERY, $SYBASE, $APPNAME et $DBENV.
Les autres variables génériques ($CFG etc…) sont sourcées par le shell $DBA/etc/defaults_asq.ksh, lequel doit être appelé à la fin de chaque fichier <servernameIQ>.asq.
Cas pratique : $DBA/etc/DBA_T1_ASQ.asq
#!/bin/ksh
export DSQUERY=DBA_T1_ASQ
export SYBASE=/Software/sybase/asiq-12.7
export APPNAME=dba
export DBENV=DEV
. ~sybase/dba/etc/defaults_asq.ksh
Le shell defaults_asq.ksh source les variables génériques à tous les serveurs Sybase IQ et est appelé à la fin de chaque fichier $DBA/etc/<servernameIQ>.asq, il prend notamment automatiquement en charge l’appel des scripts shell SYBASE.sh et ASIQ-12_7.sh localisés respectivement dans les répertoires $SYBASE et $SYBASE/ASIQ-12_7.
L'appel du shell $ASDIR/ASIQ-12_7.sh est automatiquement réalisé dans le shell defaults_asq.ksh en détectant son existence avec la commande find. Cette normalisation permet d'avoir plusieurs distributions IQ 12.7 avec des niveaux d'ESD différents (ex. : $SYBASE=/Software/sybase/asiq-12.7 et $SYBASE=/Software/sybase/asiq-12.7-ESD4) et quelque soit la distribution, ce sera bien le fichier $SYBASE/ASIQ-12_7/ASIQ-12_7.sh qui sera sourcé.
Le shell defaults_asq.ksh source également la variable d'environnement SQLCONNECT, variable très précieuse pour éviter d'appeler les binaires dbisql et dbisqlc avec l'option -c "uid=<username>;pwd=<password>;eng=<engine-name>" dans le cas d'un serveur IQ physique et l'option -c "uid=<username>;pwd=<password>;eng=<engine-name>;dbn=utility_db" dans le cas du serveur IQ de la base factice utility_db.
#!/bin/ksh
###################################################################################
# @(#) Fichier : defaults_asq.ksh
# @(#) Auteur : DBA team
# @(#) Objet : Set default environment
###################################################################################
export IQSERVERNAME=$DSQUERY
export DBA=~sybase/dba
export PS1="$IQSERVERNAME > "
export CFG=$DBA/$IQSERVERNAME/cfg
export SCRIPT=$DBA/$IQSERVERNAME/cfg/script
export DMP=$DBA/$IQSERVERNAME/dmp
export LOG=$DBA/$IQSERVERNAME/log
. $SYBASE/SYBASE.sh
SHASIQ=`find $SYBASE -name 'ASIQ-*.sh'`
if [ ! -z $SHASIQ ] ; then
. $SHASIQ
else
echo "Unable to find shell script ASIQ"
fi
# Preparation de la variable SQLCONNECT
if [ $(echo ${IQSERVERNAME} | egrep `hostname`| wc -l) -eq 1 ]
then
DBUSER=DBA
DBPWD=`cat ${ASDIR}/bin/util_db.ini | grep 'PWD' | nawk -F"=" '{print $2}`
export SQLCONNECT="uid=${DBUSER};eng=${DSQUERY};pwd=${DBPWD};dbn=utility_db"
else
DBUSER=sa
DBPWD=`cat ${CFG}/script/mdp/mdp_sa`
export SQLCONNECT="uid=${DBUSER};eng=${DSQUERY};pwd=${DBPWD}"
fi
export ENV=~sybase/.kshrc
L’environnement appliqué pour le serveur Sybase IQ DBA_T1_ASQ est alors le suivant :
DBA_T1_ASQ > env
_=/usr/xpg4/bin/env
APPNAME=dba
HZ=100
PATH=/Software/sybase/asiq-12.7/ASIQ-12_7/bin:/Software/sybase/asiq-12.7/OCS-15_0/bin:
/Software/sybase/asiq-12.7/OCS-15_0/bin:/usr/xpg4/bin:/usr/bin:/usr/ucb:/etc:/usr/ccs/bin:/usr/sbin:.:
/Software/sybase/dba/bin
SCRIPT=/Software/sybase/dba/DBA_T1_ASQ/cfg/script
CFG=/Software/sybase/dba/DBA_T1_ASQ/cfg
ASDIR=/Software/sybase/asiq-12.7/ASIQ-12_7
LOG=/Software/sybase/dba/DBA_T1_ASQ/log
EDITOR=vi
LOGNAME=sybase
DMP=/Software/sybase/dba/DBA_T1_ASQ/dmp
TLG=/Software/sybase/dba/DBA_T1_ASQ/tlg
PS1=DBA_T1_ASQ >
SYBASE=/Software/sybase/asiq-12.7
IQSERVERNAME=DBA_T1_ASQ
DBENV=DEV
DBA=/Software/sybase/dba
DCD=/Software/sybase/dba/etc
DCA=/Software/sybase/dba/etc/DBA_T1_ASQ.asq
SHELL=/bin/ksh
HOME=/Software/sybase
IQSERVERNAME=DBA_T1_ASQ
TERM=xterm
LD_LIBRARY_PATH=/Software/sybase/asiq-12.7/ASIQ-12_7/lib:/Software/sybase/asiq-12.7/OCS-15_0/lib:
/Software/sybase/asiq-12.7/OCS-15_0/lib:/Software/sybase/asiq-12.7/OCS-15_0/lib3p64:
/Software/sybase/asiq-12.7/OCS-15_0/lib3p:
PWD=/Software/sybase/asiq-12.7
TZ=MET
SYBASE_OCS=OCS-15_0
SQLCONNECT=uid=sa;pwd=******;eng=DBA_T1_ASQ
ENV=/Software/sybase/.kshrc
À ce stade, la normalisation des fichiers de bases de données de Sybase IQ n’est pas encore définie puisque l’étude démarre. Ce paragraphe sera renforcé dans les versions ultérieures. En revanche, les fichiers des bases de données de Sybase IQ seront installés systématiquement dans des filesystems ayant la nomenclature ci-dessous :
<Trigrame_application>/asiq/<servernameIQ>
Dans notre cas pratique : /dba/asiq/DBA_T1_ASQ.
Les sauvegardes pour un serveur Sybase IQ sont quant à elles implémentées dans le filesystem ayant la nomenclature ci-dessous :
<Trigrame_application>/asiq/<servernameIQ>/export
Le lien dmp dans le répertoire $DBA/<servernameIQ> pointe sur ce filesystem dédié aux sauvegardes :
dmp -> /dba/asiq/DBA_T1_ASQ/export
Une base de données Sybase IQ de démonstration est par défaut installée dans le répertoire $ASDIR/demo (/Software/sybase/asiq-12.7/ASIQ-12_7/demo).
Pour tester l’environnement normé DBA_T1_ASQ, les fichiers de données *.iqtmp, *.iqmsg, *.iq et *.db de cette base de données de démo asiqdemo sont transvasés dans le répertoire normalisé /dba/asiq/DBA_T1_ASQ :
DBA_T1_ASQ > cp $ASDIR/demo/*.iq* /dba/asiq/DBA_T1_ASQ
DBA_T1_ASQ > cp $ASDIR/demo/*.db /dba/asiq/DBA_T1_ASQ
DBA_T1_ASQ > ls –ll /dba/asiq/DBA_T1_ASQ
-rwxr-xr-x 1 sybase dba 5242880 Jul 15 15:22 asiqdemo.iqtmp
-rwxr-xr-x 1 sybase dba 113144 Jul 15 15:22 asiqdemo.iqmsg
-rwxr-xr-x 1 sybase dba 10485760 Jul 15 15:22 asiqdemo.iq
-rw------- 1 sybase dba 2179072 Jul 15 15:22 asiqdemo.db
Le fichier de configuration DBA_T1_ASQ.cfg du serveur IQ DBA_T1_ASQ pour démarrer la base IQ de démo asiqdemo est créé et installé dans le répertoire $CFG (/Software/sybase/dba/DBA_T1_ASQ/cfg). L’objectif de cet article ne consiste pas à détailler les paramètres de configuration d’un serveur Sybase IQ, toutefois voici les paramètres appliqués au serveur IQ DBA_T1_ASQ avec quelques remarques sur ces paramètres :
-n DBA_T1_ASQ
-c 16m
-gd all
-gn 25
-gm 10
-gp 4096
-ti 4400
-tl 300
-x tcpip{port=30073}
-o /Software/sybase/dba/DBA_T1_ASQ/log/DBA_T1_ASQ.log
/dba/asiq/DBA_T1_ASQ/asiqdemo.db
| Paramètre | Valeur | Description |
|---|---|---|
| -n | DBA_T1_ASQ | Nom du serveur Sybase IQ |
| -c | 16Mb | Taille en Mb du cache pour le catalogue |
| -gc | 6000 | Nombre de minutes pour la période de timeout du checkpoint |
| -gd | all | Permissions accordées au utilisateurs Unix/NT pour le démarrage de la base de données (par ex : root est autorisé à démarrer la base IQ avec la valeur all) |
| -gm | 10 | Nombre de connexions autorisées |
| -gp | 4096 | Taille maximale en bytes pour le stockage des pages du catalogue |
| -gr | 6000 | Temps maximal en minutes pour le recovery |
| -ti | 4400 | Timeout du client en minutes |
| -tl | 300 | Timeout en secondes pour les clients qui sont en mode running |
| -x | tcpip(port=xxxx) | Paramètre TCP/IP port du serveur Sybase IQ |
| -o | $LOG/DBA_T1_ASQ.log | Localisation et nomenclature du fichier de log du serveur IQ |
En dernier paramètre, la localisation du fichier de données de la base de données IQ asiqdemo est donné :
/dba/asiq/DBA_T1_ASQ/asiqdemo.db
Le shell start_asiq dans le répertoire $ASDIR/bin (/Software/sybase/asiq-12.7/ASIQ-12_7/bin) permet de démarrer le serveur Sybase IQ DBA_T1_ASQ. Il suffit de donner en paramètre au shell start_asiq le fichier de configuration du serveur Sybase IQ à démarrer ($CFG/DBA_T1_ASQ.cfg dans notre exemple)
Syntaxe > start_asiq @$CFG/$IQSERVERNAME.cfg
DBA_T1_ASQ > start_asiq @$CFG/DBA_T1_ASQ.cfg
Le fichier de log DBA_T1_ASQ.log du serveur DBA_T1_ASQ (fichier localisé dans le répertoire $LOG : /Software/sybase/dba/DBA_T1_ASQ) indique le bon démarrage de ce serveur avec le message ‘Server started successfully’ :
I. 10/24 16:23:12. Adaptive Server IQ
I. 10/24 16:23:12. Version 12.7
I. 10/24 16:23:12. (64bit mode)
I. 10/24 16:23:12. Copyright 1992-2006 by Sybase, Inc. All rights reserved
I. 10/24 16:23:12.
I. 10/24 16:23:12. 2 physical processor(s) detected.
I. 10/24 16:23:12. Running on SunOS 5.10 Generic_137111-03
I. 10/24 16:23:12. 49152K of memory used for caching
I. 10/24 16:23:12. Minimum cache size: 49152K, maximum cache size: 262008K
I. 10/24 16:23:12. Using a maximum page size of 4096 bytes
I. 10/24 16:23:12. Starting database "asiqdemo" (/dba/asiq/DBA_T1_ASQ/asiqdemo.db) at Fri Oct 24 2008 16:23
=============================================================
IQ server starting with:
10 connections ( -gm )
14 cmd resources ( -iqgovern )
145 threads ( -iqmt )
512 Kb thread stack size ( -iqtss )
74240 Kb thread memory size ( -iqmt * -iqtss )
2 IQ number of cpus ( -iqnumbercpus )
=============================================================
I. 10/24 16:23:13. Transaction log: asiqdemo.log
I. 10/24 16:23:13. Starting checkpoint of "asiqdemo" (asiqdemo.db) at Fri Oct 24 2008 16:23
I. 10/24 16:23:13. Finished checkpoint of "asiqdemo" (asiqdemo.db) at Fri Oct 24 2008 16:23
I. 10/24 16:23:14. Database "asiqdemo" (asiqdemo.db) started at Fri Oct 24 2008 16:23
I. 10/24 16:23:14. IQ Server DBA_T1_ASQ.
I. 10/24 16:23:14. Database server started at Fri Oct 24 2008 16:23
I. 10/24 16:23:14. Trying to start SharedMemory link ...
I. 10/24 16:23:14. SharedMemory link started successfully
I. 10/24 16:23:14. Trying to start TCPIP link ...
I. 10/24 16:23:14. Starting on port 30073
I. 10/24 16:23:19. TCPIP link started successfully
I. 10/24 16:23:19. Now accepting requests
New process id is 25425
Server started successfully
La commande ps du package /usr/ucb (University of Berkeley) permet d’identifier le binaire asiqsrv12 qui correspond au serveur Sybase IQ DBA_T1_ASQ qui vient d’être démarré (NB : le binaire asiqsrv12 est localisé dans le répertoire $ASDIR : /Software/sybase/asiq-12.7/ASIQ-12_7/bin) :
sybase@CALYPSO>/usr/ucb/ps -auxwwwwww | grep 'iq' | grep –v 'grep' | grep 'DBA_T1_ASQ'
sybase 16936 0.0 3.28339264160 pts/4 S 16:23:12 0:02 asiqsrv12
@/Software/sybase/dba/DBA_T1_ASQ/cfg/DBA_T1_ASQ.cfg -gn 25 -hn 8
Le binaire dbisql (localisé dans le répertoire $ASDIR/bin) permet de tester la connexion au serveur DBA_T1_ASQ. Pour la base de données asiqdemo, les paramètres de connexion sont DBA / SQL. L'option -nogui est donnée au binaire dbisql pour éviter le lancement de l'interface graphique.
DBA_T1_ASQ >dbisql -c "uid=DBA;pwd=SQL;eng=DBA_T1_ASQ" -nogui
(DBA) >
Le shell stop_asiq dans le répertoire $ASDIR/bin (/Software/sybase/asiq-12.7/ASIQ-12_7/bin) permet d’arrêter un serveur Sybase IQ. Ce shell liste les serveurs Sybase IQ démarrés sur la machine et demande à l’utilisateur le numéro du serveur Sybase IQ à arrêter.
Ce shell fera l’objet d’une revue pour éviter l’invite à l’utilisateur et ainsi arrêter un serveur Sybase IQ automatiquement.
Lorsqu'un environnement IQ est sourcé, à la fin du script $DBA/etc/defaults_asq.ksh la variable d'environnement ENV est appliquée :
export ENV=~sybase/.kshrc
Dès que la variable d'environnement ENV est initialisée, le shell associé est exécuté. Dans la version 1.1 du shell .kshrc sont créés quelques raccourcis très pratiques pour les serveurs IQ.
dbisql > grant connect to sa identified by *******;
dbisql > grant DBA to sa;
2 raccourcis dbi et dci sont créés respectivement pour les binaires dbisql et dbisqlc afin d'éviter de saisir à chaque fois dbisql -nogui et dbisqlc -q à chaque appel. La variable SQLCONNECT étant déjà préparée par le fichier defaults_asq.ksh, l'option -c donnant les paramètres de connexion (uid, pwd etc...) est inutile.
if [ $(echo ${DSQUERY} | egrep "_ASQ" | wc -l) -eq 1 ]
then
alias dbi="dbisql -nogui "
alias dci="dbisqlc -q "
...
fi
L'alias dbi permet de lancer dbisql avec l'option -nogui (No Graphical User Interface <=> mode console).
L'alias dci permet de lancer dbisqlc avec l'option -q (mode console).
Lorsque certaines opérations sont réalisées comme les chargements de table avec la commande LOAD TABLE, il est souvent pratique de suivre en direct ces opérations qui sont tracées dans le fichier de message du serveur IQ (par défaut <databasename>.iqmsg) avec une commande tail -f. C'est pourquoi l'alias fmsg réalisant une commande tail -f sur le fichier de message du serveur IQ est créé :
Exemple :
IDB_T1_ASQ> fmsg
I. 12/03 11:43:30. 0000000183 [20819]:
In table 'QUOTE', the full width insert of 12 columns will begin at record 1.
I. 12/03 11:43:30. 0000000183 Insert Started:
I. 12/03 11:43:30. 0000000183 QUOTE
I. 12/03 11:43:31. 0000000183 [20897]: 100000 Rows, 1 Seconds
I. 12/03 11:43:32. 0000000183 [20897]: 200000 Rows, 1 Seconds
Pour mettre en œuvre ce raccourci, les fichiers du catalogue et de message doivent avoir respectivement des nomenclatures analogues : <databasename>.db pour le fichier de catalogue et <databasename>.iqmsg pour le fichier de message. Ces deux fichiers doivent également se situer dans le même répertoire.
Pour retrouver le fichier de messages du serveur IQ, la localisation du catalogue est analysée à partir du fichier de configuration du serveur IQ. La création de l'alias fmsg n'est réalisée que si il s'agit d'un serveur IQ physique et non d'une base factice utility_db, pour cela le nom de la machine est recherchée dans la nomenclature du serveur IQ :
if [ $(echo ${DSQUERY} | egrep "_ASQ" | wc -l) -eq 1 ]
then
if [ $(echo ${DSQUERY} | egrep `hostname`| wc -l) -ne 1 ]
then
IQMSGFILE=`cat ${CFG}/${DSQUERY}.cfg | grep "\.db" | sed -e "s/\.db/\.iqmsg/g"`
alias fmsg="tail -f $IQMSGFILE"
fi
....
fi
Un serveur IQ peut être interrogé par isql avec la librairie OpenClient 15.0. Pour rendre cette fonctionnalité opérationnelle le fichier interfaces ou le fichier sql.ini (pour Windows) doit référencer le serveur IQ.
| Fichier interfaces (Unix) | Fichier sql.ini (Windows) |
|---|---|
DBA_T1_ASQ %> isql -Usa -SDBA_T1_ASQ |
[DBA_T1_ASQ] > isql -Usa -SDBA_T1_ASQ |
isql étant disponible pour interroger un serveur IQ, par conséquent sqsh est également utilisable.
Avec la version 15.0 de Sybase, beaucoup de librairies dans le répertoire $SYBASE/$SYBASE_OCS/lib ont été renommées de lib% en syblib%. Aussi, si il s'agit d'une version de sqsh anciennement compilée et que l'erreur ci-dessous est rencontrée :
ld.so.1: sqsh8: fatal: libcs.so: open failed: No such file or directory
Killed
La création des liens ci-dessous dans $SYBASE/$SYBASE_OCS/lib (distribution OCS 15 de la distribution IQ 12.7) suffit amplement pour faire fonctionner à nouveau sqsh :
%> cd $SYBASE/$SYBASE_OCS/lib
%> ln -fs libsybtcl.so libtcl.so
%> ln -fs libsybcomm.so libcomm.so
%> ln -fs libsybcomn.so libcomn.so
%> ln -fs libsybcs.so libcs.so
%> ln -fs libsybct.so libct.so
%> ln -fs libsybintl.so libintl.so
L'alias i renvoie vers sqsh.
alias i="~sybase/dba/bin/sqsh -r ~sybase/dba/bin/.sqshrc -b -w 1000"
L'utilisation de l'alias i est impossible pour la base IQ factice utility_db. La base de données IQ utility_db ne peut en effet être utilisée qu'avec le compte DBA, la création du compte sa y est impossible.
alias i="~sybase/dba/bin/sqsh -r ~sybase/dba/bin/.sqshrc -b -w 1000"
alias tlog="tail -50 ${LOG}/${DSQUERY}.log"
alias flog="tail -f ${LOG}/${DSQUERY}.log"
alias vlog="view ${LOG}/${DSQUERY}.log"
if [ $(echo ${DSQUERY} | egrep "_ASQ" | wc -l) -eq 1 ]
then
if [ $(echo ${DSQUERY} | egrep `hostname`| wc -l) -ne 1 ]
then
IQMSGFILE=`cat ${CFG}/${DSQUERY}.cfg | grep "\.db" | sed -e "s/\.db/\.iqmsg/g"`
alias fmsg="tail -f $IQMSGFILE"
fi
alias dbi="dbisql -nogui "
alias dci="dbisqlc -q "
fi
if [ $(echo ${DSQUERY} | egrep "_ASE" | wc -l) -eq 1 ]
then
alias bflog="tail -f ${DBA}/${BCKSERVERNAME}/log/${BCKSERVERNAME}.log"
alias bvlog="view ${DBA}/${BCKSERVERNAME}/log/${BCKSERVERNAME}.log"
fi
alias ll="ls -l"
| Version | Date | Commentaires |
|---|---|---|
| 1.0 | 06/2008 | Version initiale |
| 1.1 |
12/2008 |
Automatisation de la variable
d'environnement SQLCONNECT. Prise en charge de la base factice utility_db. Ajout des raccourcis d'environnement dbi, dci, fmsg. Utilisation de isql/sqsh et de l'alias i avec IQ. |
| 1.2 |
12/2008 |
Suppression de la variable LD_LIBRARY_PATH_64 dans le script SYBASE.sh |