Introduction
Une précédente documentation datant d’octobre 2008 présentait l’installation et la normalisation de Sybase IQ version 12.7 sous Solaris (Installation et normalisation de Sybase IQ 12.7 sous Solaris).
L’installation de Sybase IQ 15.1 sur les plateformes x64 Sun Solaris 10 est présentée dans cet article. Un rappel sur la norme adoptée est également proposé.
L’installation est classique, néanmoins, beaucoup de dénormalisation des nomenclatures historiques d’IQ a été introduite avec la version 15.1.
Installation personnalisée des binaires Sybase IQ 15.1
Arborescence de la distribution d’installation de Sybase IQ 15.1 (sybinstall)
Dans la suite de la documentation, ${INSTALL_DIR}
est le répertoire dans
lequel est localisée la distribution d’installation de Sybase IQ 15.1
(/Software/sybase/installations/install_asiq151
dans notre cas pratique) :
SHELL> export INSTALL_DIR=/Software/sybase/installations/install_asiq151
SHELL> cd $INSTALL_DIR
SHELL> gunzip iq1510_product_solx64_64.tgz
SHELL> tar xvf iq1510_product_solx64_64.tar
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 15.1 : le répertoire
d’installation créé au préalable est par conséquent /Software/sybase/asiq-15.1
,
répertoire ayant pour propriétaire le compte sybase qui exécutera les serveurs
IQ
Installation silentieuse : SilentInstall.sh
Pour une installation automatique, Sybase a remplacé l’historique sybinstall
par Silentinstall.sh
dont voici la syntaxe:
SHELL> SilentInstall.sh -?
Please set -dst option or set SYBASE environment variable to desired value Silent Install for IQ A silent install allows the installation to be run with no user interaction. In addition to the parameters below, the installation directory, features to be installed, and other options are available through the SilentInstall.txt file. Usage: SilentInstall.sh -h or -? # Shows help and exits -jvm "JVM_ARGS" # include user specified JVM_ARGS -java <path> # specify the absolute location of the java folder -txt <path> # specify the absolute location of Silent Install text file -cl <path> # specify the absolute location of the silent install console log file -src <path> # specify the absolute path to root directory of installer files -I_accept_sybase_license # agree to the Sybase IQ License -licensed_user # install licensed version of Sybase IQ -eval_user # install demo version of Sybase IQ -dst <path> # specify the desired absolute install location for Sybase IQ
L’option -dst
- indispensable - permet de spécifier le répertoire
d’installation de Sybase IQ 15.1; le répertoire doit exister au préalable.
Le fichier SilentInstall.txt
livré avec la distribution contient toutes les
instructions nécessaires à la mise en œuvre de l’installation. Ce fichier
SilentInstall.txt
va être personnalisé afin de définir en particulier les
produits à installer et le type de license.
SHELL> cp SilentInstall.txt SilentInstall_DBA_T1_ASQ.txt
Après personnalisation (et suppression des commentaires pour la lisibilité) il ressemble à ceci dans le cadre de la présente installation. En surbrillance figurent les options différentes des valeurs par défaut. Dans ce fichier personnalisé :
- les conditions générales d’utilisation sont acceptés
- la licence concerne l’Enterprise Edition en mode CPU
- la gestion des mails est désactivée
- les composants OpenClient, ODBC, Client, SybaseCentral sont installés.
SilentInstall_DBA_T1_ASQ.txt
###############################################################################
########################### SILENT INSTALLER ##################################
###############################################################################
-V AgreeToSybaseLicense="true"
-V IgnorePreviousVersion="false"
-V Variable_IQDemoSelect_LicensedYesRB="true"
-W sysamLicense.proceedWithoutLicense=true
-W sysamProductType.productEdition="EE"
-W sysamProductType.licenseType="CP"
### -V Variable_OverridePrependOrAppendToPath="false"
### -V Variable_IQAppendPath_Prepend_IQBinDir="true"
-V Variable_IQSySAMEmail_AlertsYesRB=false
-V Variable_IQSySAMEmail_AlertsNoRB=true
-P SybaseIQ.active="true"
-P IQServer.active="true"
-P IQOpenClient.active="true"
-P IQClient.active="true"
-P IQODBC.active="true"
-P SybaseCentral.active="true"
-P SCJViewer.active="true"
-P SCJPlugin.active="true"
-P jConnect.active="true"
-P SybaseSySAM.active="true"
-P NetworkLicenseServer.active="false"
-P LicenseUtilities.active="true"
###############################################################################
# Please do not modify the values below.
###############################################################################
-V Variable_Silent="true"
-W InstallType.active="false"
-P copyJRE.active="true"
-P SilentUninstall.active="true"
-P copyJRE1.active="true"
-P SilentUninstall1.active="true"
-silent
Des nouvelles variables fortement utiles et valables uniquement pour Windows
sont introduites dans les installations de Sybase IQ 15.1 (installations
serveur et client) : Variable_OverridePrependOrAppendToPath
et
Variable_IQAppendPath_Prepend_IQBinDir
.
Ces variables permettent de gouverner la position des variables
d’environnement IQ 15.1 dans la variable système %PATH%
(append
pour après et
prepend
pour avant). Cette nouveauté donne l’ordre à l’installation de Sybase
IQ 15.1 de détecter l’existence éventuelle d’un Open Client Sybase dans la
variable %PATH%
Windows pour éviter tout conflit. Cela permet aussi de mieux
gérer les rares cas où la taille maximale système de la variable %PATH%
est
atteinte ou bien si une entrée est invalide ou corrompue dans %PATH%
. Par
défaut, pour se prémunir de conflits avec un Open Client Sybase sur Windows,
l’installation d’IQ ajoute le répertoire des exécutables IQ à la fin de la
variable %PATH%
lorsqu’un Open Client Sybase est détecté : les variables
Variable_OverridePrependOrAppendToPath
et
Variable_IQAppendPath_Prepend_IQBinDir
permettent de modifier ce comportement
par défaut.
L’installation est réalisée sans spécifier de fichier de license (-W
sysamLicense.proceedWithoutLicense=true
), le fichier de licence sera déposé
ultérieurement dans l’arborescence SYSAM appropriée.
L’installation peut alors démarrer
SHELL> SilentInstall.sh -dst /DBA/asiq/DBA_T1_ASQ -txt SilentInstall_DBA_T1_ASQ.txt -cl logfile
L’installation est réellement silencieuse et pire le logfile est quasi inexploitable. Néanmoins, les erreurs éventuelles sont retournées sur la sortie standard et clairement identifiables.
Installation interactive : setupSunx64
Le mode intéractif est pris en charge par setupSunX64
. L’installation
s’effectue en plusieurs étapes de manière intuitive.
- Démarrage de l’installation, choix de la langue et licence
- Sélection des produits
- Installation de la distribution IQ
- Configuration des options sous licence
- Mise à jour des fichiers de configuration
SHELL> setupSunX64
Personnalisation de la distribution
La distribution est désormais installée. Cette installation va être personnalisée quelque peu afin d’assurer la compatibilité avec les outils existants. Pour celà il va falloir :
- Redéfinir l’arborescence
- Revoir la définition des variables
- Mettre en place le fichier de licence
L’arborescence
Les répertoires principaux installés sont listés dans le tableau ci-dessous :
Repertoire | Description |
---|---|
/Software/sybase/asiq-15.1 |
Répertoire racine de l’installation de Sybase 15.1 |
/Software/sybase/asiq-15.1/IQ-15_1 |
Répertoire des binaires et des librairies d’Adaptive Server IQ,
anciennement ASIQ_12* . À noter que la couche OCS est maintenant
directement incluse dans cette arborescence, contrairement aux
précédentes versions qui permettaient une gestion de version
indépendante via le répertoire OCS* |
À noter également le changement d’arborescence sous IQ-15_1 : bin
est
renommé en bin64
et lib en lib64
.
Le script de démarrage start_asiq
est renommé en start_iq
avec la version
15.1.
Pour des raisons de compatibilité et s’affranchir du caractère 32 bits ou 64
bits de la distribution IQ, une tentative infructueuse de création de liens
référençant les répertoires bin64
et lib64
sous leurs anciens noms respectifs
bin
et lib
a été réalisée.
SHELL> cd /Software/sybase/asiq-15.1/IQ-15_1
SHELL> ln -s bin64 bin
SHELL> ln -s lib64 lib
La tentative a été un échec, l’instance IQ ne pouvant plus démarrer. Le message d’erreur suivant est affiché: iqsrv15 is not a valid databasefile.
Les variables d’environnement
Historiquement, les variables d’environnement d’une instance IQ comme ASE
sont définies dans un fichier SYBASE.sh
situé à la racine de la distribution ($SYBASE
)
et/ou un fichier $SYBASE/<PRODUIT>/<PRODUIT>.sh
. Dans la
version 15.1, seul ce dernier fichier est conservé ($SYBASE/IQ-15_1/IQ-15_1.sh
).
Par ailleurs, l’ancienne variable $ASDIR
disparait au profit de $IQDIR15
Ces différences minimes en apparence peuvent poser problème en particulier
dans le cadre d’environnements mutualisés. En outre, définir un numéro de
version dans le nom d’une variable censément générique ne parait pas judicieux.
Aussi, dans nos installations nous allons (re)créer l’ancien fichier SYBASE.sh
et y inclure la définition de la variable $ASDIR
.
SHELL> cd /Software/sybase/asiq-15.1
SYBASE.sh
#!/bin/sh
SYBASE=/Software/sybase/asiq-15.1
. $SYBASE/IQ-15_1/IQ-15_1.sh
ASDIR=$IQDIR15
export ASDIR
Le fichier de licence
L’objectif est de rendre disponible un fichier de licence valide dans le
répertoire /Software/sybase/asiq-15.1/SYSAM-2_0/licenses
Pour des motifs de déploiement et de simplification de gestion de ces fichiers en environnement fortement mutualisé, le répertoire licenses est rendu générique et unique par machine. Aussi, le répertoire original est remplacé par un lien pointant sur un répertoire centralisant les fichiers de licences.
SHELL> cd /Software/sybase/asiq-15.1/SYSAM-2_0
SHELL> mv licenses licenses_orig
SHELL> ln -s /Software/sybase/licenses
La base demo
Installation
Une base de données Sybase IQ de démonstration est livrée par l’éditeur. Sa mise en place va servir doublement :
- à valider la distribution
- à creer notre propre base de données catalog (méthode alternative à
utility_db
)
Sybase livre un script de création de cette base qu’il faut exécuter dans le
répertoire cible. Il est également nécessaire que les variables $SYBASE
et
$IQDIR15
soient préalablement définies. SYBASE.sh
précédemment créé sera
utilisé pour cela.
SHELL> . /Software/sybase/asiq-15.1/SYBASE.sh
SHELL> cd /dba/asiq/DBA_T1_ASQ
SHELL> $IQDIR15/demo/mkiqdemo.sh
Pour vérifier la bonne installation des fichiers iqdemo*
SHELL> ls -ll /dba/asiq/DBA_T1_ASQ
-rw-r--r-- 1 sybase dba 78643200 Jul 29 15:04 iqdemo_main.iq -rw-r--r-- 1 sybase dba 571 Jul 29 15:04 iqdemo.cfg -r--r--r-- 1 sybase dba 2908160 Jul 29 15:04 iqdemo.db -rw-r--r-- 1 sybase dba 26214400 Jul 29 15:04 iqdemo.iq -rw-r--r-- 1 sybase dba 33019 Jul 29 15:04 iqdemo.iqmsg -rw-r--r-- 1 sybase dba 13107200 Jul 29 15:04 iqdemo.iqtmp -rw-r--r-- 1 sybase dba 223 Jul 29 15:04 iqdemo.lmp -r-------- 1 sybase dba 327680 Jul 29 15:04 iqdemo.log -rw-r--r-- 1 sybase dba 121 Jul 29 15:04 util_db.ini
Démarrage
Il peut être nécessaire de personnaliser le fichier cfg
, en particulier le
numéro de port utilisé ( -x
)
SHELL> start_iq @iqdemo.cfg iqdemo.db
Starting server DBA_T1_ASQ on SRVUNXFR30 at port 30074 (07/31 12:34:13) Run Directory : /test/asiq/DBA_T1_ASQ Server Executable : /Software/sybase/asiq-15.1/IQ-15_1/bin64/iqsrv15 Server Output Log : /Software/sybase/asiq-15.1/IQ-15_1/logfiles/DBA_T1_ASQ.0007.srvlog Server Version : 15.1.0.5027/GA Open Client Version : 15.0/P-EBF16086 ESD #15 User Parameters : '@iqdemo.cfg' 'iqdemo.db' Default Parameters : -ti 4400 -gn 25 ... New process id is 13677 I. 07/31 12:34:22. TCPIP link started successfully I. 07/31 12:34:22. Now accepting requests Server started successfully
Noter le bon démarrage de ce serveur avec le message 'Server started
successfully
'. Noter également le numéro de process système.
SHELL> ps -ef | grep 13677
sybase 14035 18348 0 12:36:14 pts/4 0:00 grep 13677 sybase 13677 1 0 12:34:16 ? 0:01 /Software/sybase/asiq-15.1/IQ-15_1/bin64/iqsrv15 @iqdemo.cfg iqdemo.db -ti 4400
La commande ps du package /usr/ucb
(University of Berkeley) peut être
également utilisée afin d’identifier le binaire iqsrv15
qui correspond au
serveur Sybase IQ DBA_T1_ASQ
qui vient d’être démarré ainsi que ses
paramètres
SHELL> /usr/ucb/ps -auxwwwwww | egrep -e 'iq.*DBA_T1_ASQ' | grep -v grep
Test de connexion
Le binaire dbisql
(localisé dans le répertoire $IQDIR15/bin64
) permet de
tester la connexion à l’instance nouvellement créée. Par défaut, 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.
SHELL> dbisql -nogui -c "uid=DBA;pwd=sql"
(DBA)> select count(1) from sale;
count(1) -------------------- 19 (1 rows) Execution time: 0.017 seconds
Arrêt du serveur
Le binaire dbstop
dans le répertoire $IQDIR15/bin64
arrête
l’instance.
Il fonctionne dans les 2 modes, intéractif ou silencieux, c’est ce dernier mode qui est utilisé.
SHELL > dbstop -c "uid=DBA;pwd=sql" -y
SQL Anywhere Stop Server Utility Version 11.0.1.5027
Nomenclatures
Noms de serveurs
Les serveurs Sybase IQ ont la nomenclature :
<APP>_<D|T|U|P>xx_ASQ
<APP>
: Trigramme de l’application.<D|T|U|P>
: Environnement Développement (D
) | System Test (T
) | UAT (U
) | Production (P
).xx
: numéro de serveur dans l’environnement.
À 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
.
Ports
Les ports des serveurs Sybase IQ sont compris entre 30070 et 30079.
Les fichiers de données
Les fichiers des bases de données de Sybase IQ seront installés systématiquement dans des filesystems ayant la nomenclature ci-dessous :
<APP>/asiq/$IQSERVERNAME
Dans ce 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 :
<APP>/asiq/$IQSERVERNAME/export
Le lien dmp
dans le répertoire $DBA/$IQSERVERNAME
pointe sur ce filesystem
dédié aux sauvegardes :
dmp -> /dba/asiq/DBA_T1_ASQ/export
L’administration : le répertoire $DBA
Chaque Instance Sybase IQ doit disposer d’un répertoire dans le répertoire
$DBA
(/Software/sybase/dba
) : par exemple $DBA/DBA_T1_ASQ
.
Celui-ci est organisé comme suit :
Racine | Répertoire | Description |
---|---|---|
$DBA |
/etc |
Stocke tous les fichiers de définition d’instances (*.asq ) |
/bin |
Contient les outils et scripts d’administration | |
/$IQSERVERNAME/cfg |
Fichier de configuration $IQSERVERNAME.cfg de l’instance |
|
/$IQSERVERNAME/log |
Fichiers de logs de l’instance | |
/$IQSERVERNAME/run |
Scripts d’arrêt / démarrage de l’instance. |
Le répertoire $DBA/etc, les fichiers $IQSERVERNAME.asq et defaults_asq.ksh
Le répertoire $DBA/etc
liste toutes les instances présentes sur le serveur et pour
chacune d’entre-elles définit le contexte d’exécution. Il est utilisé par le
script $DBA/bin/USE
qui va détecter et analyser les fichiers de type
$IQSERVERNAME.asq
.
Le fichier $IQSERVERNAME.asq
définit les variables propres au serveur Sybase
IQ correspondant : $DSQUERY
, $SYBASE
, $APPNAME
et $DBENV
.
Les autres variables génériques ($CFG
…) sont sourcées par le shell
$DBA/etc/defaults_asq.ksh
, lequel doit être appelé à la fin de chaque fichier
$IQSERVERNAME.asq
.
Cas pratique :
$DBA/etc/DBA_T1_ASQ.asq
#!/bin/ksh
export DSQUERY=DBA_T1_ASQ
export SYBASE=/Software/sybase/asiq-15.1
export APPNAME=dba
export DBENV=DEV
. ~sybase/dba/etc/defaults_asq.ksh
Le shell defaults_asq.ksh
exploite ces variables afin de construire un
environnement de travail propre à l’instance. Il va non seulement exécuter le
scritpt SYBASE.sh
correspondant à la version choisie mais aussi définir
quelques variables et raccourcis utiles, comme SQLCONNECT
ou tlog
.
Le code source du shell defaults_asq.ksh
est donné en annexe plus bas.
Les variables d’environnement alors définies pour le serveur Sybase IQ
DBA_T1_ASQ
sont les suivantes :
Variable d’environnement | Description | Valeur |
---|---|---|
$IQDIR15 |
Réperoire d’installation des binaires IQ15 | /Software/sybase/asiq-15.1/IQ-15_1 |
$SQLCONNECT |
Définition des parametres de connexion à l’instance | eng=DBA_T1_ASQ;uid=DBA;pwd=sql;links=tcpip |
$IQSERVERNAME |
Nom du serveur Sybase IQ | DBA_T1_ASQ |
$SYBASE |
Répertoire de la distribution racine Sybase IQ (IQ + Open Client) | /Software/sybase/asiq-15.1 |
$ASDIR |
Localisation complète du répertoire
de la distribution Sybase propre à IQ
(répertoire ASIQ-<version> ) |
/Software/sybase/asiq-15.1/IQ-15_1 |
$APPNAME |
Nom de l’application | dba |
$DBENV |
Environnement du serveur Sybase IQ | DEV , UAT ou PROD |
$CFG |
Répertoire de configuration | /Software/sybase/dba/DBA_T1_ASQ/cfg |
$SCRIPT |
Répertoire des scripts | /Software/sybase/dba/DBA_T1_ASQ/cfg/script |
$DMP |
Répertoire des sauvegardes | /Software/sybase/dba/DBA_T1_ASQ/dmp |
$LOG |
Répertoire des logs | /Software/sybase/dba/DBA_T1_ASQ/log |
$PATH |
PATH | /Software/sybase/iq-15.1/IQ-15_1/bin64:
/Software/sybase/dba/bin:$PATH |
$LD_LIBRARY_PATH |
LD_LIBRARY_PATH | /Software/sybase/iq-15.1/IQ-15_1/lib64:* |
Des alias sont également mis en place
Alias | Description | Valeur |
---|---|---|
i |
Connexion à l’instance par sqsh |
isql -U<user> -P<password> -SDBA_T1_ASE |
dbi |
dbisql avec l’option -nogui |
dbisql -nogui -c "$SQLCONNECT" |
dci |
dbisqlc avec l’option -q |
dbisqlc -q -c "$SQLCONNECT" |
tlog |
Dernières lignes du fichier log | tail -50 $LOG/$IQSERVERNAME.log |
flog |
Dernières lignes en continu du fichier log | tail -f $LOG/$IQSERVERNAME.log |
vlog |
Édition du fichier log | view $LOG/$IQSERVERNAME.log |
fmsg |
Dernières lignes en continu du fichier message | tail -f $LOG/catalog.fmsg |
Le répertoire $DBA/$IQSERVERNAME/cfg
$DBA/$IQSERVERNAME/cfg
est le répertoire contenant le fichier de
configuration $IQSERVERNAME.cfg
du serveur Sybase IQ correspondant.
Dans le cadre d’une nouvelle installation, on peut s’appuyer sur le fichier
modèle fourni ($SYBASE/IQ-15_1/scripts/default.cfg
).
SHELL> cd $DBA/$IQSERVERNAME/cfg
SHELL> cp $SYBASE/IQ-15_1/scripts/default.cfg ./$IQSERVERNAME.cfg
Après personnalisation, le fichier de configuration doit ressembler à ceci. En surbrillance, les valeurs modifiées ou ajoutées.
$DBA/$IQSERVERNAME/cfg/$IQSERVERNAME.cfg
# ----------------------------------------------------------------------
# This file contains the default ASIQ startup parameters. All servers
# started will default to these parameters, unless overriden by contents
# of parameter list.
# ----------------------------------------------------------------------
# Must be in the format: One parameter [and value] per line
# ----------------------------------------------------------------------
# DBA_T1_ASQ.cfg
-c 48m
-gc 20
-gd all
-gl all
-gm 10
#-gp 4096
-ti 4400
-n DBA_T1_ASQ
-x tcpip{port=30071}
-o /Software/sybase/dba/DBA_T1_ASQ/log/DBA_T1_ASQ.log
-iqmc 2000
-iqtc 3000
-zr all -zs '100M' -zo /Software/sybase/dba/DBA_T1_ASQ/log/sql.log
/DBA/asiq/DBA_T1_ASQ/iqdemo.db
Paramètre | Valeur | Description |
---|---|---|
-n |
DBA_T1_ASQ |
Nom du serveur Sybase IQ |
-c |
48m |
Taille en Mb du cache pour le catalogue |
-gc |
20 |
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 |
-zr |
ALL |
Collecte des ordres SQL au niveau
(ALL ou NONE ) |
-zo |
$LOG/sql.log |
Nom du fichier de collecte des ordres SQL |
-zs |
'100M' |
Taille maximale du fichier de collecte des ordres SQL |
En dernier paramètre, la localisation du fichier de données de la base de
données IQ *.db
est donnée :
/DBA/asiq/DBA_T1_ASQ/iqdemo.db
Le répertoire $DBA/$IQSERVERNAME/log
$DBA/$IQSERVERNAME/log
est le répertoire contenant les fichiers de log de
l’instance IQ. Sa définition est donnée dans le fichier de configuration cfg de
l’instance vu précédemment (-o
/Software/sybase/dba/DBA_T1_ASQ/log/DBA_T1_ASQ.log
)
Le répertoire $DBA/$IQSERVERNAME/run
$DBA/$IQSERVERNAME/run
est le répertoire contenant les scripts d’arrêt (
STOP_$IQSERVERNAME
) et de redémarrage ( START_$IQSERVERNAME
) de
l’instance.
Noter que par rapport aux versions précédentes, la commande de démarrage
n’est plus bin/start_asiq
mais bin64/start_iq
.
Les codes sources des scripts START_$IQSERVERNAME
et STOP_$IQSERVERNAME
sont donnés en annexe plus bas.
Le shell USE dans le répertoire $DBA/bin
Le shell USE
avec l’option -Q
dans le répertoire $DBA/bin
source
le contexte d’une instance Sybase IQ. Le point d’interrogation -?
passé en
paramètre liste toutes les instances installées sur le serveur. Ce script
s’appuie sur tous les fichiers $IQSERVERNAME.asq
présents dans le répertoire
$DBA/etc
.
USE -Q < ? | ServerName >
SHELL> USE -Q ?
DBA_T1_ASQ
Normalisation de l’instance
La distribution IQ validée, la normalisation de l’environnement est finalisée en :
- créant la base de données applicative.
- créant un compte d’administration autre que DBA.
- modifiant le mot de passe par défaut du compte DBA.
Dans les paragraphes qui suivent:
- la variable d’environnement
$DBA
identifie le répertoire/Software/sybase/dba
. - la variable d’environnement
$IQSERVERNAME
identifie le nom de l’instanceDBA_T1_ASQ
.
SHELL> export DBA=/Software/sybase/dba
SHELL> export IQSERVERNAME=DBA_T1_ASQ
La base applicative positions
La personnalisation de l’installation se poursuit par la création de la base applicative. Sous IQ, pour créer une base il est nécessaire de se connecter à une base existante, quelle qu’elle soit. Il y a deux moyens de le faire à l’installation :
- Avec la création d’une base système factice
utility_db
(cf IQ 12.7 : La base factice utilitaire IQ (utility_db)) . - Avec la base démo, base sur laquelle la bonne installation des binaires a été validée.
L’opération va consister à utiliser une instance démarrée avec iqdemo
, créer
la base, base qui sera par appelée 'positions
' puis modifier les
fichiers de configuration normés pour refléter le changement.
La base positions est créée avec le fichier create.sql
ci-dessous, fichier
create.sql
exécuté depuis une connexion dans la base iqdemo
:
create.sql
create database '/test/asiq/DBA_T1_ASQ/positions.db'
log on '/test/asiq/DBA_T1_ASQ/positions.log'
java off
case respect
collation 'ISO_BINENG'
IQ PATH '/test/asiq/DBA_T1_ASQ/positions_01.iqmaint'
IQ SIZE 100
IQ PAGE SIZE 131072
TEMPORARY PATH '/test/asiq/DBA_T1_ASQ/positions.iqtmp'
TEMPORARY SIZE 2000
MESSAGE PATH '/test/asiq/DBA_T1_ASQ/positions.iqmsg';
SHELL> dbisql -nogui -c "uid=DBA;pwd=sql" create.sql
CHAR collation sequence: ISO_BINENG(CaseSensitivity=Respect) CHAR character set encoding: ISO_8859-1:1987 NCHAR collation sequence: UCA(CaseSensitivity=UpperFirst;AccentSensitivity=Respect;PunctuationSensitivity=Primary) NCHAR character set encoding: UTF-8 Creating system tables Creating system views Setting option values Execution time: 28.24 seconds
Reste à redémarrer l’instance en utilisant le fichier de configuration normé, référençant la nouvelle base positions.
Une fois l’instance de la base de démo iqdemo
stoppée :
SHELL > dbstop -c "uid=DBA;pwd=sql" -y
On se positionne dans
l’environnement normé, puis le fichier de configuration $DBA/DBA_T1_ASQ/cfg/DBA_T1_ASQ.cfg
est édité afin de
référencer la nouvelle base positions créée.
SHELL > USE -Q DBA_T1_ASQ
DBA_T1_ASQ > tail $CFG/$IQSERVERNAME.cfg
-n DBA_T1_ASQ
-x tcpip{port=30071}
-o /Software/sybase/dba/DBA_T1_ASQ/log/DBA_T1_ASQ.log
-iqmc 2000
-iqtc 3000
-zr all -zs '100M' -zo /Software/sybase/dba/DBA_T1_ASQ/log/sql.log
#/test/asiq/DBA_T1_ASQ/iqdemo.db
/DBA/asiq/DBA_T1_ASQ/positions.db
L’instance est démarrée en utilisant la nouvelle base et le script de démarrage normé.
DBA_T1_ASE> $RUN/START_DBA_T1_ASQ
Starting server DBA_T1_ASQ on SRVUNXFR30 at port 30071 (07/31 16:27:09) Run Directory : /test/asiq/DBA_T1_ASQ Server Executable : /Software/sybase/asiq-15.1/IQ-15_1/bin64/iqsrv15 Server Output Log : /Software/sybase/dba/DBA_T1_ASQ/log/DBA_T1_ASQ.log Server Version : 15.1.0.5027/GA Open Client Version : 15.0/P-EBF16086 ESD #15 User Parameters : '@/Software/sybase/dba/DBA_T1_ASQ/cfg/DBA_T1_ASQ.cfg' Default Parameters : -gp 4096 -gn 25 ... I. 07/31 16:27:17. Now accepting requests New process id is 25037 Server started successfully
Sécurité
Par défaut, le compte DBA de la nouvelle base de données créée a pour mot de passe sql. Par sécurité, le mot de passe du compe DBA est modifié et un autre compte administrateur sa est créé.
DBA_T1_ASQ > dbisql -nogui -c "uid=DBA;pwd=sql"
(DBA)> create user sa identified by ****
(DBA)> grant DBA to sa
(DBA)> alter user DBA identified by ************
(DBA)> exit
isql/sqsh et Sybase IQ
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) |
---|---|
|
|
> 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 avec des libraires OCS 12.x
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 15.1) suffit amplement pour faire fonctionner à
nouveau sqsh
:
SHELL> cd $SYBASE/$SYBASE_OCS/lib
SHELL> ln -fs libsybtcl.so libtcl.so
SHELL> ln -fs libsybcomm.so libcomm.so
SHELL> ln -fs libsybcomn.so libcomn.so
SHELL> ln -fs libsybcs.so libcs.so
SHELL> ln -fs libsybct.so libct.so
SHELL> 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.
Annexes
Annexe 1 - Source du shell .kshrc (version 1.1)
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 "
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 -c \"$SQLCONNECT\"" "
alias dci="dbisqlc -q -c \"$SQLCONNECT\""
fi
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"
Annexe 2 - Source du shell defaults_asq.ksh
SHELL> cat defaults_asq.ksh
#!/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 TLG=$DBA/$IQSERVERNAME/tlg
export RUN=$DBA/$IQSERVERNAME/run
export LOG=$DBA/$IQSERVERNAME/log
. $SYBASE/SYBASE.sh
SHASIQ=`echo $SYBASE/ASIQ-*/ASIQ-*.sh`
if [ -f $SHASIQ ]
then
. $SHASIQ
fi
# Preparation de la variable SQLCONNECT
if [ $(echo ${IQSERVERNAME} | egrep `hostname`| wc -l) -eq 1 ]
then
DBUSER=DBA
DBPWD=`nawk -F"=" '/PWD/ {print $2}' ${ASDIR}/bin/util_db.ini`
export SQLCONNECT="uid=${DBUSER};eng=${DSQUERY};pwd=${DBPWD};dbn=utility_db;links=tcpip"
else
DBUSER=sa
DBPWD=`cat ${CFG}/script/mdp/mdp_sa`
export SQLCONNECT="uid=${DBUSER};eng=${DSQUERY};pwd=${DBPWD};links=tcpip"
fi
export ENV=~sybase/.kshrc
Annexe 3 - Source du shell START_$IQINSTANCENAME
SHELL> cat START_DBA_T1_ASQ
#!/bin/ksh
########################################################################
# @(#) Fichier : START IQ
# @(#) Auteur : DBA team
# @(#) Objet : generic IQ startup script
########################################################################
########################################################################
## Environnement
basename $0 | sed 's/^START_//' | read IQSERVERNAME
. /Software/sybase/dba/etc/$IQSERVERNAME.asq
LOGFILE=$DSQUERY.log
########################################################################
## Backup log file
if [ -f $LOG/$LOGFILE ]
then
DATE=`date +%y%m%d`Source du shell .kshrc (version 1.1)
COUNT=1
ARCHIVEFILE=${DSQUERY}_${DATE}_${COUNT}.log
while [ -e $LOG/$ARCHIVEFILE ]
do
COUNT=`expr $COUNT + 1`
ARCHIVEFILE=${DSQUERY}_${DATE}_${COUNT}.log
done
mv $LOG/$LOGFILE $LOG/$ARCHIVEFILE
fi
########################################################################
## Start server
$IQDIR15/bin64/start_iq @$CFG/$IQSERVERNAME.cfg
Annexe 4 - Source du shell STOP_$IQINSTANCENAME
SHELL> cat STOP_DBA_T1_ASQ
#!/bin/ksh
########################################################################
# @(#) Fichier : STOP IQ
# @(#) Auteur : DBA team
# @(#) Objet : generic IQ startup script
########################################################################
########################################################################
## Environnement
basename $0 | sed 's/^STOP_//' | read IQSERVERNAME
. /Software/sybase/dba/etc/$IQSERVERNAME.asq
########################################################################
## Stop server
$IQDIR15/bin64/dbstop -y
Annexe 5 - Source du shell SYBASE.sh ($SYBASE : /Software/sybase/asiq-15.1)
#!/bin/sh
SYBASE=/Software/sybase/asiq-15.1
. $SYBASE/IQ-15_1/IQ-15_1.sh
ASDIR=$IQDIR15
export ASDIR