|
-
Avertissement *
-
VII-1 Introduction *
-
VII-2 Commandes primaires sur les bases *
-
VII-2-1 createdb : *
-
VII-2-2 destroydb : *
-
VII-2-3 catalogdb : *
-
VII-3 Commandes d'outils écran *
-
VII-3-1 ingmenu : *
-
VII-3-2 isql : *
-
VII-3-3 sql : *
-
VII-3-4 qbf : *
-
VII-3-5 rbf : *
-
VII-3-6 vifred : appel de Vifred, interface écran pour créer
/ modifier une grille *
-
VII-4 Commandes sur les bases *
-
VII-4-1 Audit, sauvegarde, restauration *
-
VII-4-1-1 auditdb : *
-
VII-4-1-2 ckpdb : *
-
VII-4-1-3 rollforwarddb : *
-
VII-4-1-4 alterdb : *
-
VII-4-2 Copie ou déchargement de base *
-
VII-4-2-1 copydb : *
-
VII-4-2-2 unloaddb : *
-
VII-4-3 Statistiques *
-
VII-4-3-1 optimizedb : *
-
VII-4-3-2 statdump : *
-
VII-4-4 Réorganisation *
-
VII-4-4-1 sysmod : *
-
VII-4-4-2 verifydb : *
-
VII-4-4-3 modifyfe : *
-
VII-4-5 Usage de rapport *
-
VII-4-5-1 copyrep : *
-
VII-4-5-2 sreport : *
-
VII-4-5-3 report : *
Avertissement
Pour avoir une description complète des commandes Ingres il est
conseillé de consulter la documentation en ligne par la commande
oidoc
ou de se reporter aux manuels OpenIngres.
Les commandes décrites ici sont regroupées par thèmes.
En ce qui concerne l'utilisation des supports magnétiques (bandes
et cassettes) que certains exemples nécessitent, il est conseillé
aux utilisateurs de consulter la brochure "Utilisation des bandes et cassettes
au CIR" et, surtout, l'exploitation de chaque site : Unix ne vérifiant
pas que l'usager d'un support en est bien propriétaire, de sérieuses
précautions s'imposent.
Conventions
La syntaxe des options a été en partie francisée,
voici les choix de traduction :
dbname nom_base (nom de base)
tablename nom_table (nom de table)
reportname rapport (nom de rapport)
username usager (nom d'usager)
Les conventions usuelles sont toujours valables :
[ ] pour les options facultatives
{ } pour les options éventuellement multiples
| indique 2 ou plusieurs choix s'excluant mutuellement
+x | -x indique le choix de 2 options contraires
L'option -uusager permet à l'administrateur de la base
ou au super-usager Ingres de lancer la commande au nom d'une autre personne
: elle est presque toujours possible, et n'a pas été indiquée
dans la syntaxe des commandes.
L'option -Ggroupe permet d'accéder à des données
avec les permissions définies pour tout un groupe : elle n'est valide
que si l'usager appartient au groupe indiqué. Elle est inutile si
on a défini ce groupe par défaut, ce qu'on fera dans la pratique
pour éviter d'avoir à s'en préoccuper.
L'option -Rrole permet un usage bien précis (avec mot
de passe éventuel).
VII-1 Introduction
Une étude rapide des commandes et outils Ingres permet de distinguer
:
-
des utilitaires d'outils écran :
ingmenu, isql, qbf, query, rbf, vifred
(on parlera aussi de sql, qui n'est pas un outil écran pleine
page, mais dont les options sont également celles de isql)
-
des commandes d'administration des bases réservées à
l'administrateur Ingres ou au propriétaire (DBA) de la base (sauf
copydb, optimizedb et statdump, pour les tables propres à l'usager)
:
-
des commandes "primaires" sur les bases possédées : createdb,
destroydb, catalogdb
-
sauvegarde et restauration : auditdb, ckpdb, rollforwarddb, alterdb
-
copie ou déchargement : copydb, unloaddb
-
statistiques : optimizedb, statdump
-
réorganisation ("ménage") : sysmod, verifydb, modifyfe
-
des commandes pour utilisations particulières :
-
utilisation d'ordres sql dans un langage de programmation (Fortran ou C)
(esqlf, esqlc non traité : voir cours embedded SQL)
-
édition de rapports : copyrep, report, sreport
-
ABF : non traité (abf, imageapp, copyapp)
-
form : non traité (compform, copyform, printform)
-
graph (non disponible) (convgraph, copygraph)
-
vision (non disponible) : génération d'applications ABF
VII-2 Commandes primaires
sur les bases
VII-2-1 createdb :
crée la base de nom "nom_base"; le créateur est l'administrateur
(DBA)
$ createdb [-p] nom_base [options_lieu]
| -p |
spécifie que la base est privée |
| options_lieu |
permet de changer la localisation des fichiers
systèmes (base, checkpoint, journal, dump) |
VII-2-2 destroydb :
détruit la base de nom "nom_base"
$ destroydb [-p] nom_base
| -p |
Ingres vous demandera de confirmer la
destruction de la base |
VII-2-3 catalogdb :
liste les bases que l'on possède, c'est un outil écran pleine
page
$ catalogdb
VII-3 Commandes d'outils
écran
VII-3-1 ingmenu :
permet d'accéder aux outils écran Ingres (dont sql interactif)
$ ingmenu nom_base [-uusager]
-Ggroupe]
VII-3-2 isql :
appel direct de sql interactif; les options doivent être cherchées
parmi celles de la commande sql.
$ isql [options] -Ggroupe -Rrole
nom_base
Appel et signification des principales options :
les 4 premières permettent de modifier le format d'affichage
des données selon leur type
| -cN |
met la largeur minimum pour imprimer les colonnes
de type caractères à N; par défaut : 6 |
| -ikn |
même chose pour les entiers, avec k=1
(integer1), 2 (integer2), 4 (integer4); par défaut : 6 pour i1 et
i2, 13 pour i4 |
| -fkxM.N |
k : 4 (float4) ou 8 (float8).
x :
E exponentiel
F flottant,
G et N flottant, sauf si largeur insuffisante pour le
nombre qui est alors écrit sous forme exponentielle
|
| -vX |
change le séparateur de colonne en X;
par défaut, ce séparateur est la barre verticale (|) |
| -nM |
met le mode modify pour les index à M;
par défaut : ISAM |
| -l |
bloque la base pour votre usage exclusif |
| +w|-w |
attend ou n'attend pas que la base soit libre;
par défaut attend (-w) |
| +s|-s |
imprime | n'imprime pas les messages du moniteur,
y compris les prompts |
| -xk |
gère le mode arithmétique (dépassement
de capacité, division par 0)
k peut valoir :
f les exceptions sont des erreurs fatales, terminant
la requête
w simple message d'avertissement
par défaut, les exceptions sont totalement ignorées |
exemple :
$ isql -c3 -i14 -i24
-i46
parcauto
accès à la base parcauto avec une largeur minimale de colonne
à 3 pour les caractères, 4 chiffres pour les entiers de type
1 et 2, 6 chiffres pour les entiers de type 4.
VII-3-3 sql :
appel du sql, interactif, mais ce n'est pas un outil écran pleine
page
$ sql [options] [< nomentree] [>
nomsortie] nom_base
| nomentree : |
nom d'un fichier où l'on va lire les
requêtes (analogue à isql + File + ReadFile + Go) |
| nomsortie : |
nom d'un fichier où s'imprimeront
les résultats (analogue à isql + Go + File) |
Syntaxe : toutes les requêtes doivent être suivies de \g
pour être exécutées :
\g exécute la requête,
\p l'imprime,
\q quitte sql
exemple :
$ sql -f4N7.2 -xw < req.sql
>
req.sortie parcauto
On interroge la base parcauto avec le fichier de requêtes req.sql;
les résultats iront dans le fichier req.sortie; les flottants (de
type float4) seront édités sur une largeur minimale de 7
caractères dont 2 décimales (et 4 entiers); les erreurs provoqueront
l'édition d'un message.
VII-3-4 qbf :
appel de Query-By-Forms, permettant des traitements de donnée par
écrans
$ qbf nom_base [-s] [-mmode]
[-uusager] [[-f | -j | -t | -l] [querytarget]]
[-Ggroupe]
| -s -mmode |
saute la phase "JoinDefinition"
de QBF et place dans le menu de la fonction "mode" (retrieve,
append,
update, all);
si cette option est spécifiée, il faut aussi définir
une cible ("querytarget") dans la ligne de commande |
| querytarget |
nom de cible, c'est à dire
d'un QBFname, d'une JoinDef, ou d'une Table, sur laquelle on va travailler |
| -f -j -t -l |
indique que la cible est,
respectivement, un QBFName, une JoinDef, une Table, ou doit être
cherchée dans cet ordre;
s'il n'y a pas d'option pour querytarget, alors QBF cherchera une table
et donnera une erreur s'il n'y a pas de table à ce nom;
si on indique l'option -t, la présentation sera en TableField,
sinon la table sera présentée en SimpleField |
exemple : utilisation de qbf sur la base parcauto en mode interrogation
TableField sur la table commune.
$ qbf parcauto -mretrieve -t
commune
VII-3-5 rbf :
appel de RBF, permettant de définir des rapports
$ rbf [-s] [-uusager]
[-r]|[-m[style]]
[-lmxline] nom_base [rapport|nom_table]
[-Ggroupe]
| -s |
les messages d'état, y compris le prompt,
seront supprimés; |
| -r |
c'est un rapport qui est appelé, pas
une table |
| -m[style] |
c'est une table qui est appelée,
pas un rapport;
style :
wrap, block, tabular (ex column), labels,
indented;
le mode par défaut est tabular si toutes les colonnes
tiennent sur une page, sinon c'est wrap
|
| -lmxline |
longueur de ligne utilisée pour le rapport;
par défaut, celle affectée au terminal (80 à 132c) |
| -uusager |
l'administrateur de base peut se connecter sous
le nom du propriétaire du rapport |
exemple :
$ rbf -mwrap parcauto foyer
appel de rbf en mode wrap sur la table foyer de la base parcauto.
VII-3-6 vifred : appel
de Vifred, interface écran pour créer / modifier une grille
$ vifred nom_base [[-f | -t | -j]
nom_objet]
[-uusager] [-Ggroupe]
| -f nom_objet |
indique que nom_objet est le nom d'une grille
existante, déjà créée par VIFRED; si nom_objet
est spécifié sans argument, VIFRED présume que c'est
le nom d'une grille existante |
| -t | -j |
l'objet est une table ou une jointure |
| -uusager |
l'administrateur de base peut se connecter sous
le nom du propriétaire de la grille |
exemple :
$ vifred parcauto -t commune
appel de vifred sur la table commune de la base parcauto.
VII-4 Commandes sur les
bases
VII-4-1 Audit, sauvegarde,
restauration
VII-4-1-1 auditdb :
l'audit étant l'ensemble des informations stockées dans le
journal, cette commande permet à l'usager de l'imprimer en tout
ou partie
$ auditdb [-bdate] [-edate]
[-f] [-iusager] [-tnom_table] {nom_base}
| -b |
imprime les transactions dont le commit
a eu lieu après la date indiquée (date est de la forme :
dd-mmm-yyyy :hh :mm :ss) |
| -e |
imprime les transactions ayant eu lieu avant
la date indiquée |
| -f |
crée un fichier contenant les lignes
ajoutées, détruites ou copiées, dans la table indiquée
par -t |
| -i |
liste seulement les transactions de l'usager
indiqué |
| -t |
liste seulement les transactions sur la table
spécifiée |
Attention, si l'on ne précise pas le nom de base, l'audit est
fait sur toutes celles possédées, ce qui prend un certain
temps.
Les résultats d'un audit sont souvent volumineux et pas toujours
très faciles à lire, il y a possibilité de les charger
dans une table.
exemple :
$ auditdb -b13-Apr-1991
-e05-May-1991
-tvehicule parcauto
imprime le journal des transactions effectuées du 13 avril au 5
mai 1991 exclu sur la table vehicule de la base parcauto
VII-4-1-2 ckpdb :
crée un point de reprise (checkpoint) pour une sauvegarde de la
base indiquée (toutes celles possédées si aucun nom
n'est indiqué)
$ ckpdb [-d] [+j | -j] [ -mdevice]
[+w | -w] [-v] {nom_base}
| -d |
détruit tous les fichiers point de reprise
ou journal précédents |
| +j |- j |
active | désactive la journalisation
sur la base |
| -mdevice |
écrit le point de reprise directement
sur le dérouleur spécifié |
| +w | -w |
attend/n'attend pas que la base soit libre |
| -v |
mode "verbose", commentant les opérations
effectuées |
exemple :
$ ckpdb -d +j -m/dev/nrst0
parcauto
fait une sauvegarde de parcauto sur cartouche en détruisant les
anciens journaux ou point de reprise et en activant la journalisation.
VII-4-1-3 rollforwarddb :
permet de restaurer la (les) base(s) nommée(s) à partir de
précédents points de reprise
$ rollforwarddb [+c | -c] [+j | -j] [
-mdevice]
[+w | -w] [-v] [-bdate]
[-edate] {nom_base}
| +c | -c |
restaure/ne restaure pas la base à partir
du dernier point de reprise |
| +j | -j |
idem à partir du journal |
| -mdevice |
lit le point de reprise directement sur
le dérouleur spécifié |
| -v |
mode "verbose", commentant les opérations
effectuées |
exemples :
$ rollforwarddb -v parcauto
restaure la base parcauto en mode diagnostic, à partir du dernier
point de reprise et du journal. Il est nécessaire que les deux soient
sur disque ou de les y mettre si ce n'est pas le cas.
$ rollforwarddb +c +j -m/dev/nrst0
parcauto
restaure la base parcauto depuis un point de reprise sur cartouche, puis
à partir du journal sur disque.
VII-4-1-4 alterdb :
permet d'arrêter la journalisation pour les bases indiquées
$ alterdb -nojournaling -disable_journaling
nom_base
{nom_base}
| -nojournaling |
arrêt en "off-line", sans usager connecté |
| -disable_journaling |
arrêt immédiat, même
s'il y a des usagers connectés |
VII-4-2 Copie ou déchargement
de base
VII-4-2-1 copydb :
copie de base
$ copydb [-c] -uusager -drepertoire
nom_base {nom_table}
crée deux fichiers de commandes SQL (copy.out et copy.in : attention,
d'éventuels fichiers de ce nom dans le répertoire de lancement
seraient détruits) permettant à un usager d'une base de copier
(exporter et réimplanter) les données qu'il y possède
(tables et objets associés : vues, accès, index, règles
d'intégrité)
Utilisée par le DBA, cette commande permet de changer le nom
de propriétaire d'une (ou plusieurs) table (pour une seule utiliser
de préférence l'outil chown.table, développé
au CIR)
| -drepertoire |
donne un répertoire explicite pour les
fichiers copy.in et copy.out |
| -c |
conversion des données dans un
format portable : ASCII (option conseillée) |
exemple : exportation sur cartouche des données de la base parcauto
appartenant à l'usager st7 :
$ cd /serveur3/cir/iss/SAUVE
$ rm * #on efface tous les fichiers
du répertoire courant
$ copydb -c -ust7 parcauto
#création des fichiers de commande sql copy.in et copy.out
$ sql parcauto < copy.out
#création des fichiers de données
$ tar cvf /dev/rst0 . #copie sur
cassette des fichiers du répertoire courant
$ rm * #on efface tous les fichiers
du répertoire courant
chargement depuis une cartouche des données sauvegardées,
avec nouveau nom de propriétaire juju (indiqué dans la commande
sql) :
/* IMPORTANT : avez vous vérifié que juju ne possède
pas déjà un objet ayant le même nom que l'un de ceux
qui vont être copiés ? Sinon il y a risque de destruction
des données ...*/
$ cd /serveur3/cir/iss/SAUVE
$ tar xvf /dev/rst0 #copie des fichiers
de la cassette dans le répertoire courant
$ sql -ujuju parcauto < copy.in
#chargement des données
$ rm copy.*; rm *st7* #on efface
les fichiers créés dans le répertoire courant
VII-4-2-2 unloaddb :
déchargement de base
$ unloaddb [-c] [-d]
nom_base
crée deux fichiers de commande Unix (scripts) unload.ing et reload.ing,
ainsi que des fichiers de commande sql suffixés par .in et .out
(d'éventuels fichiers de même nom dans le répertoire
de lancement seraient détruits) pour décharger et recharger
une base (conserve aussi les objets usager Ingres : rapports, tables système
...)
permet à son propriétaire (DBA) de transférer une
base Ingres ou de la sauvegarder, pour tous les usagers, et tous les objets
|
-c
|
conversion des données dans un format
portable pour d'autres machines |
|
-d
|
indique un répertoire explicite
où créer les fichiers |
exemple : déchargement et rechargement de la base parcauto
:
$ cd /serveur3/cir/macchi/SAUVE
$ unloaddb parcauto #création
des fichiers de commandes scripts
$ unload.ing #création des
fichiers de données ASCII
$ chmod 777 * #accès sur les
fichiers à tous les usagers,
#nécessaire si un autre doit charger
la base
$ tar cvf /dev/rst0 #copie sur cassette
des fichiers du répertoire courant
#changement de machine, ou destruction de
la base parcauto
# il est préférable de travailler
dans un répertoire spécial, vide au départ
$ mkdir SAUVE ; cd SAUVE
$ tar xvf /dev/rst0 # copie des fichiers
de la cassette dans le répertoire courant
$ createdb parcauto # création
de la nouvelle base parcauto
$ reload.ing # chargement des données
dans parcauto
Pour changer le nom de propriétaire d'une base, il faut remplacer,
partout dans le script reload.ing, le nom de l'ancien propriétaire
par celui du nouveau, qui créera lui-même la nouvelle base
VII-4-3 Statistiques
VII-4-3-1 optimizedb :
effectue les statistiques sur la base
$ optimizedb [-zf fichier][-zk]
[options ingres]
[-i fichier] [-zp] nom_base [{-rnom_table
{-acolonne}}]
|
-zf
|
indique que fichier contient toutes les options utilisées à
cet appel d'optimizedb
|
|
-zk
|
statistiques seulement sur les clés et index secondaires
|
|
options ingres
|
des options ingres peuvent être indiquées (voir options
de isql) :
+U|-U -u -cN -tN -ikN -fkxM.N +w|-w -xk
|
|
-i fichier -zp
|
lit les statistiques dans fichier et les charge directement dans les
tables système (voir option -o de statdump)
|
exemple :
$ optimizedb -zk parcauto
effectue les statistiques sur les clés et index secondaires de toutes
les tables de la base parcauto
$ optimizedb parcauto -rfoyer
-acprof
effectue les statistiques sur la colonne cprof de la table foyer
VII-4-3-2 statdump :
gère les statistiques
$ statdump [-zdl] [-zq]
[-o fichier] nom_base [{-rnom_table {-acolonne}}]
|
-zdl
|
détruit les statistiques
|
|
-zq
|
imprime seulement des statistiques résumées (celles
de "iistats", et pas celles de "iihistograms")
|
|
-o
|
fichier envoie la sortie de statdump dans le fichier spécifié
|
exemple : impression des statistiques existantes sur toutes les colonnes
de la table commune de la base parcauto
$ statdump parcauto -rcommune
VII-4-4 Réorganisation
VII-4-4-1 sysmod :
réorganise les tables système
indiquées, ou, à défaut, toute la base (permet d'accélérer
les requêtes)
$ sysmod [+w|-w] nom_base [nom_table
{,nom_table}]
|
+w | -w
|
attend/n'attend pas que la base soit libre, sysmod exigeant un usage
exclusif
|
exemple :
$ sysmod -w parcauto iirelationiiindexes
optimisation des tables système "iirelation" et "iiindexes" dans
parcauto, mais seulement si la base n'est pas occupée.
VII-4-4-2 verifydb :
détruit ou liste les fichiers disque inutiles, les tables expirées
ou temporaires
$ verifydb -mmode -sscope -ooperation
[-n]
-mmode peut être :
|
-mreport
|
n'exécute pas, donne le résultat des recherches
|
|
-mrun
|
force l'exécution
|
|
-mruninteractive
|
verifydb prévient l'usager et l'oblige à confirmer avant
chaque action
|
-sscope peut-être :
|
-sdbname "nom_base"
|
exécute sur la base nommée
|
|
-sdba
|
exécute sur toutes les bases dont l'usager est administrateur
|
|
-n
|
déconnecte le terminal et le fichier log
|
exemple :
$ verifydb -mrun -sdbname "parcauto"
-opurge
-n
détruit dans parcauto les tables temporaires ou expirées.
VII-4-4-3 modifyfe :
modifie la structure de stockage des catalogues des interfaces Ingres
(ABF, QBF, RBF, Vifred, OpenRoad) (sysmod sur les interfaces seules)
$ modifyfe nom_base [+w | -w]produit
{,produit}
|
produit
|
Ingres pour les produits Ingres de base (ABF, QBF, RBF, Vifred)
OpenRoad pour les catalogues OpenRoad
|
VII-4-5 Usage
de rapport
VII-4-5-1
copyrep :
copie dans un fichier texte les spécifications d'un rapport d'une
base
$ copyrep -f nom_base fichier rapport{,rapport}
Avec sreport permet de copier un rapport d'une base dans une autre,
ou de changer le propriétaire d'un rapport.
|
-f
|
écrit le rapport dans le même format que l'opération
Archive
dans l'écran RBF du catalogue des rapports. Ce format ne permet
plus de modifier le rapport par RBF
|
exemple :
$ copyrep parcauto vehpfoy.rw vehicule_par_foyer
copie les spécifications du rapport vehicule_par_foyer dans le fichier
vehpfoy.rw
VII-4-5-2 sreport :
insère dans une base un fichier texte (résultat de copyrep
ou de l'option Archive de RBF)
$ sreport nom_base fichier
exemple :
$ sreport parcauto vehpfoy.rw
copie, dans la base parcauto, du rapport vehicule_par_foyer sauvé
dans le fichier vehpfoy.rw.
VII-4-5-3 report :
active un rapport créé par les commandes sreport ou rbf
$ report nom_base rapport|nom_table
[ -ffichier ] [-s] [-lmxline] [-vpage]
|
-ffichier
|
envoie le rapport dans fichier
|
|
-s
|
suppression des messages de statut
|
|
-lmxline
|
donne la longueur maximale de ligne
|
|
-vpage
|
donne le maximum de lignes dans une page
|
exemple :
$ report parcauto vehicule_par_foyer
-fvehfoy -l80 -v30
impression dans le fichier vehfoy des résultats du rapport vehicule_par_foyer
de parcauto, qui seront édités avec une largeur de ligne
de 80 colonnes et 30 lignes par page.
Exemple de résultats obtenus : fichier d'impression du rapport
"vehicule_par_foyer" créé par la commande ci-dessus
|