Explorer les Livres électroniques
Catégories
Explorer les Livres audio
Catégories
Explorer les Magazines
Catégories
Explorer les Documents
Catégories
Mars 2000
I. Présentation...........................................................................................................................................................................5
1. La copie formatée.......................................................................................................................................................37
2. Copie binaire...............................................................................................................................................................43
D. Chargement, déchargement d'une base de données.......................................................................................................44
1. Présentation.................................................................................................................................................................44
2. Utilisation...................................................................................................................................................................44
3. La commande unloaddb..............................................................................................................................................44
4. La commande copydb.................................................................................................................................................46
A. Principes de base............................................................................................................................................................50
1. Sécurité des bases de données....................................................................................................................................50
2. Sécurité des tables.......................................................................................................................................................50
B. Des droits pour QUI ?....................................................................................................................................................51
1. Gestion des groupes....................................................................................................................................................51
2. Gestion des rôles.........................................................................................................................................................52
3. Utilisation des droits liés aux groupes et rôles...........................................................................................................53
C. Quels droits, sur quelles entités ?...................................................................................................................................54
1. Principes.....................................................................................................................................................................54
2. Privilèges sur les bases de données............................................................................................................................56
3. Privilèges sur les tables et vues..................................................................................................................................59
4. Privilège sur les procédures bases de données...........................................................................................................62
5. Privilèges sur les événements bases de données.........................................................................................................63
6. Privilèges sur les rôles................................................................................................................................................65
D. Récapitulation des privilèges CA-OpenIngres...............................................................................................................66
A. Précaution d'usage.........................................................................................................................................................68
B. Sauvegarde statique........................................................................................................................................................68
1. La commande ckpdb...................................................................................................................................................68
2. Sauvegarde d'une base de données complète.............................................................................................................69
3. Sauvegarde de tables...................................................................................................................................................69
4. Sauvegarde en ligne / hors ligne.................................................................................................................................69
5. Verrouillage pour la sauvegarde.................................................................................................................................69
6. Suppression de sauvegarde anciennes........................................................................................................................69
C. Sauvegarde dynamique...................................................................................................................................................70
1. Lancement de la journalisation...................................................................................................................................70
2. Interruption de la journalisation..................................................................................................................................70
D. Utilisation de copydb, unloaddb....................................................................................................................................70
E. Restauration des bases de données.................................................................................................................................71
1. La commande rollforwarddb......................................................................................................................................71
VII. Utilitaires.........................................................................................................................................................................73
A. Accessdb.........................................................................................................................................................................73
1. Option Databases........................................................................................................................................................73
2. Option Locations........................................................................................................................................................74
3. Option Users...............................................................................................................................................................75
B. Infodb..............................................................................................................................................................................76
C. Ipm..................................................................................................................................................................................76
1. Surveillance du système de verrouillage....................................................................................................................76
2. Surveillance du système de connexion.......................................................................................................................76
3. Syntaxe.......................................................................................................................................................................76
I. Présentation
Avant d'indiquer à quel type de lecteurs s'adresse ce document, il est indispensable de préciser les
différentes catégories d'utilisateurs de CA-OpenIngres. Le raisonnement présenté ci-dessous peut
s'appliquer à n'importe quel SGBD.
1. L'administrateur système
Il configure le système d'exploitation sous lequel CA-OpenIngres est installé. Il est propriétaire
du compte système (root) qui attribue les permissions autorisées par le système d'exploitation. Il
travaille en collaboration avec l'administrateur CA-OpenIngres.
2. L'administrateur CA-OpenIngres
Il est propriétaire du compte ingres qui fournit les permissions nécessaires à l'installation et la
maintenance de CA-OpenIngres. Il est responsable de ces opérations.
Rôle :
→ Installation de CA-OpenIngres
→ Définition des variables d'environnement
→ Autorisation d'accès aux utilisateurs grâce au privilège security
→ Démarrage, arrêt et gestion des serveurs
→ Maintenance des sessions utilisateurs connectées à un serveur
→ Arrêt de tout ou partie de l'installation si une maintenance système est nécessaire;
redémarrage de l'installation.
Certaines de ces tâches sont présentées dans ce document car elles peuvent agir sur les
opérations du DBA.
→ Définit des locations alternatives pour les fichiers des bases de données.
→ Gère les objets des bases de données publiques.
→ Gère l'accès des utilisateurs aux données par l'attribution de droits sur les tables, vues et
procédures.
→ Maintient la performance de la base de données et des requêtes.
→ Gère le système de verrouillage pour maximiser la concurrence.
→ Sauvegarde et restaure la base de données.
4. L'utilisateur final
Il s'agit de tout utilisateur de CA-OpenIngres ne disposant pas de privilèges particuliers. Il peut
s'agir d'un développeur expérimenté comme d'un opérateur de saisie sans compétence
informatique.
Possibilités :
→ Utilise des bases de données dont l'accès lui a été autorisé.
→ Crée des objets dans une base de données à laquelle il accède.
→ Accède aux tables, vues et procédures auxquelles d'autres utilisateurs lui ont donné accès. Il
n'a pas besoin de permissions spécifiques pour accéder à d'autres objets (forms, graphs,
reports, etc.); il ne peut accéder aux données qui utilisent ces objets que s'il dispose de
permissions sur les tables dont ces objets dépendent.
B. Avertissement
Ce document est avant tout destiné aux administrateurs de bases de données CA-OpenIngres. Il y a
dans certains cas un recouvrement de responsabilités entre l'administrateur de bases de données et
l'administrateur CA-OpenIngres. Certaines actions décrites dans ce document nécessitent une étroite
collaboration entre les personnes assurant ces deux fonctions.
C. Conventions
Les commandes exécutées sous système d'exploitation sont présentées avec la syntaxe valable sous
UNIX. Si nécessaire, le type de shell utilisé est précisé.
Conventions typographiques
Convention Utilisation
Gras Indique les mots clefs, les symboles et la
ponctuation qui doivent être saisis comme
précisé.
Italique Représente un nom de variable que vous
devez remplacer par une valeur adaptée.
[] Utilisé pour encadrer les listes d'options.
{} Utilisé pour encadrer les listes d'options qui
peuvent être répétées autant de fois que
nécessaire.
| Utilisé pour séparer les éléments d'une liste.
Vous devez choisir l'un des éléments de la
liste.
Le mot ingres (en minuscules, gras) fait référence au compte ingres dont l'administrateur CA-
OpenIngres est le propriétaire.
D. Bibliographie:
Ce support de cours récapitule l'essentiel du cours "Administration des données Ingres" réalisé par
Computer Associates. Les ouvrages cités ci-dessous ont également été utilisés.
1.1. Description
La commande SQL create user permet de définir un nouvel utilisateur et de donner une
valeur à un certain nombre de paramètres qui seront précisés dans le §.1.3
1.2. Permissions
Pour exécuter cette commande, vous devez utiliser une session connectée à la base de données
iidbdb (voir § 1). Le tableau suivant précise le privilège requis pour chaque action.
1.3. Syntaxe
create user nom_user
[with with_liste {, with_liste}]
Paramètre Description
group Définit le groupe auquel appartient l'utilisateur. Le groupe doit
exister. Dans le cas contraire, CA-OpenIngres ne le crée pas. La
valeur par défaut de ce paramètre est nogroup
privileges Ces privilèges ne seront pas actifs lors de la connexion mais ils
pourront être activés par la commande SET SESSION
PRIVILEGES =. Les valeurs possibles sont :
createdb : autorise l'utilisateur à créer des bases de données.
trace : permet à l'utilisateur d'utiliser les modes trace et
débogage.
security : autorise l'utilisateur à exécuter les fonctions de
sécurité.
operator : l'utilisateur peut réaliser des opérations de sauvegarde
et de maintenance.
maintain_locations : autorise l'utilisateur à créer et modifier les
caractéristiques des locations des bases de données et fichiers.
auditor : autorise l'utilisateur à créer et interroger les audits
maintain_audit : autorise l'utilisateur à modifier la valeur du
paramètre security_audit d'un utilisateur ou d'un profil.
maintain_users : autorise l'utilisateur à utiliser les fonctions de
gestion des utilisateurs, profils, groupes, rôles
Ces privilèges s'appliquent aux utilisateurs quelle que soit la base
de données à laquelle ils se connectent. La valeur par défaut est
noprivileges.
expire_date Permet de spécifier une date optionnelle d'expiration du compte.
Si la date est atteinte, l'utilisateur ne peut plus se connecter. La
valeur par défaut est noexpire_date.
password Permet à un utilisateur de modifier son mot de passe. Les
utilisateurs ayant le privilege maintain_users peuvent modifier
tout mot de passe. La valeur par défaut est nopassword.
external_password Autorise une authentification de mot de passe externe à CA-
OpenIngres.
limiting_security_label Autorise un administrateur à diminuer le label de sécurité
maximal avec lequel les utilisateurs peuvent se connecter à CA-
OpenIngres. Si un label de sécurité limite est spécifié, lorsque
l'utilisateur se connecte à CA-OpenIngres, le DBMS s'assure que
le label de sécurité de la session est inférieur à la limite. La
valeur par défaut est nolimiting_security_label
default_privileges Définit les privilèges initialement actifs lors de la connexion à
CA-OpenIngres. Ils doivent être un sous-ensemble de tous les
privilèges accordés à l'utilisateur.
Paramètre Description
nodefault_privileges Spécifie que la session démarre sans privilège actif. Supprime les
privilèges par défaut.
profile Permet d'attribuer un profil à un utilisateur. Pour attribuer le
profil par défaut, utiliser noprofile.
security audit Les valeurs possibles sont :
(all_events) : toutes les activités de l'utilisateur sont auditées
(default_events) : seul l'audit de sécurité par défaut est réalisé.
celui-ci est défini par la commande enable security_audit
type_audit.
(query_text) : l'audit portera sur le texte des requêtes de
l'utilisateur. Il faut pour cela que le type d'audit query_text ait été
validé par la commande enable security_audit
1.4. Verrouillage
Cette commande verrouille des pages dans le catalogue système iiuser.
1.5. Exemple
Créer l’utilisateur dupond du groupe stage. Il a par défaut le privilèges security et peut
obtenir le privilège createdb.
create user dupond
with privileges = (createdb, security ),
default_privileges = (security),
group = stage
2.1. Description
La commande alter user permet de modifier les caractéristiques d'un utilisateur existant.
2.2. Permissions
Les contraintes d'exécution sont identiques à celles de la commande create user.
2.3. Syntaxe
alter user nom_user
[add privileges (priv {, priv}) | drop privileges (priv {, priv})]
[with with_liste {, with_liste}]
Paramètre Description
Group Définit le groupe auquel appartient l'utilisateur. Le groupe doit
exister. Dans le cas contraire, CA-OpenIngres ne le crée pas. La
valeur par défaut de ce paramètre est nogroup
Privileges Voir privileges page 9. Les privilèges déclarés ici vont se substituer
à ceux mis en place par la commande create .
Expire_date Permet de spécifier une date optionnelle d'expiration du compte. Si
la date est atteinte, l'utilisateur ne peut plus se connecter. La valeur
par défaut est noexpire_date.
Password Permet à un utilisateur de modifier son mot de passe. Si la clause
oldpassword est absente ou non valide, le mot de passe est
inchangé.Les utilisateurs ayant le privilege maintain_users peuvent
modifier tout mot de passe. La valeur par défaut est nopassword.
External_password Autorise une authentification de mot de passe externe à CA-
OpenIngres.
Oldpassword Permet de préciser l'ancien mot de passe de l'utilisateur. Cette clause
est indispensable pour effectuer la modification de mot de passe.
Limiting_security_label Autorise un administrateur à diminuer le label de sécurité maximal
avec lequel les utilisateurs peuvent se connecter à CA-OpenIngres.
Si un label de sécurité limite est spécifié, lorsque l'utilisateur se
connecte à CA-OpenIngres, le DBMS s'assure que le label de
sécurité de la session est inférieur à la limite. La valeur par défaut
est nolimiting_security_label
Add_privileges Permet de compléter la liste des privilèges attribués à un utilisateur.
Cette clause s'emploie à l'exclusion des clauses drop_privileges et
privileges=
Drop_privileges Permet de supprimer des privilèges attribués à un utilisateur. Cette
clause s'emploie à l'exclusion des clauses add_privileges et
privileges=
Paramètre Description
Default_privileges Définit les privilèges initialement actifs lors de la connexion à CA-
OpenIngres. Ils doivent être un sous-ensemble de tous les privilèges
accordés à l'utilisateur.
Nodefault_privileges Spécifie que la session démarre sans privilège actif. Supprime les
privilèges par défaut.
profile Permet d'attribuer un profil à un utilisateur. Pour attribuer le profil
par défaut, utiliser noprofile.
security audit Les valeurs possibles sont :
(all_events) : toutes les activités de l'utilisateur sont auditées
(default_events) : seul l'audit de sécurité par défaut est réalisé.
celui-ci est défini par la commande enable security_audit
type_audit.
(query_text) : l'audit portera sur le texte des requêtes de
l'utilisateur. Il faut pour cela que le type d'audit query_text ait été
validé par la commande enable security_audit
2.4. Verrouillage
Cette commande verrouille des pages dans le catalogue système iiuser.
2.5. Exemples
Remplacer les privilèges de l’utilisateur dupond. Il doit disposer par défaut du privilège
security et pouvoir obtenir le privilège createdb.
alter user dupond
with privileges = (createdb, security ),
default_privileges = (security)
3.1. Description
Cette commande permet de supprimer un utilisateur existant. Il n'est pas possible de
supprimer un utilisateur propriétaire de bases de données. Si l'utilisateur est propriétaire
d'objets, ceux-ci ne sont pas supprimés.
3.2. Permissions
Pour exécuter cette commande, il faut disposer du privilège security et travailler dans une
session connectée à iidbdb.
3.3. Syntaxe
drop user nom_user
3.4. Verrouillage
Cette commande verrouille des pages dans le catalogue système iiuser de iidbdb.
3.5. Exemple
Supprimer l’utilisateur dupond
drop user dupond
Chaque utilisateur peut se voir attribuer un profil qui lui fournit les attributs par défaut. Un profil
par défaut, modifiable par l'administrateur de CA-OpenIngres est créé pendant l'installation. Il
détermine les attributs par défaut d'un utilisateur quand aucun profil ne lui est donné. Le profil par
défaut initial est :
→ noprivileges
→ nodefault_privileges
→ nolimiting_security_label
→ noexpire_date
→ nogroup
→ nosecurity_audit
1.1. Description
Cette commande permet de créer un nouveau profil qui pourra être utilisé lors de la création
des utilisateurs.
1.2. Permissions
Documentation erronée. L’utilisateur doit être connecté à iidbdb.
1.3. Syntaxe
create profile nom_profil
[with with_liste {, with_liste}]
Paramètre Description
Group Définit le groupe par défaut pour les utilisateurs ayant ce profile. Le
groupe doit exister. La valeur par défaut de ce paramètre est
nogroup
Privileges Voir privileges page 9
Expire_date Permet de spécifier une date optionnelle d'expiration du compte. Si
la date est atteinte, l'utilisateur ne peut plus se connecter. La valeur
par défaut est noexpire_date.
Limiting_security_label Autorise un administrateur à diminuer le label de sécurité maximal
avec lequel les utilisateurs peuvent se connecter à CA-OpenIngres.
Si un label de sécurité limite est spécifié, lorsque l'utilisateur se
connecte à CA-OpenIngres, le DBMS s'assure que le label de
sécurité de la session est inférieur à la limite. La valeur par défaut
est nolimiting_security_label
Default_privileges Définit les privilèges initialement actif lors de la connexion à CA-
OpenIngres. Ils doivent être un sous-ensemble de tous les privilèges
accordés à l'utilisateur.
Nodefault_privileges Spécifie que la sesssion démarre sans privilège actif. Supprime les
privilèges par défaut.
Security_audit Les valeurs possibles sont :
(all_events) : toutes les activités de l'utilisateur sont auditées
(default_events) : seul l'audit de sécurité par défaut est réalisé.
celui-ci est défini par la commande enable security_audit
type_audit.
(query_text) : l'audit portera sur le texte des requêtes de
l'utilisateur. Il faut pour cela que le type d'audit query_text ait été
validé par la commande enable security_audit
1.4. Verrouillage
Cette commande pose un verrou exclusif sur le catalogue système iiprofile.
1.5. Exemple
Créer le profil stagiaire. Les utilisateurs qui disposeront de ce profil appartiendront par défaut
au groupe stage et disposeront par défaut du privilège createdb.
create profile stagiaire
with group = stage,
privileges = (createdb),
default_privileges= (createdb)
2.1. Description
Cette commande permet de modifier les paramètres d'un profil existant et également de
compléter ou supprimer les privilèges dont il dispose.
2.2. Permissions
Cette commande ne peut être exécutée que par un utilisateur connecté à iidbdb et ayant le
privilège maintain_users. Pour certaines options, d'autres privilèges sont requis, comme
indiqué dans la table ci-dessous :
2.3. Syntaxe
alter [default] profile [nom_profil]
[add privileges (priv {, priv}) | drop privileges (priv {, priv})]
[with with_liste {, with_liste}]
with_liste = noprivileges | privileges = (priv {, priv})
| nogroup | group = default_group
| security_audit = (audit_opt {, audit_opt})
| noexpire_date | expire_date = 'expire_date'
| default_privileges = (priv {,priv}) | all | nodefault_privileges
| limiting_security_label = 'security_label' | nolimiting_security _label
Paramètre Description
add_privileges Permet de compléter la liste des privilèges attribués à un profil.
Cette clause s'emploie à l'exclusion des clauses drop_privileges
et privileges=
drop_privileges Permet de supprimer des privilèges attribués à un profil. Cette
clause s'emploie à l'exclusion des clauses add_privileges et
privileges=
Paramètre Description
group Définit le groupe par défaut auquel appartiennent les utilisateurs
ayant ce profil. Le groupe doit exister. Dans le cas contraire, CA-
OpenIngres ne le crée pas. La valeur par défaut de ce paramètre
est nogroup
privileges Voir privileges page 9.
expire_date Permet de spécifier une date optionnelle d'expiration du compte.
Si la date est atteinte, l'utilisateur ne peut plus se connecter. La
valeur par défaut est noexpire_date.
limiting_security_label Autorise un administrateur à diminuer le label de sécurité
maximal avec lequel les utilisateurs peuvent se connecter à CA-
OpenIngres. Si un label de sécurité limite est spécifié, lorsque
l'utilisateur se connecte à CA-OpenIngres, le DBMS s'assure que
le label de sécurité de la session est inférieur à la limite. La
valeur par défaut est nolimiting_security_label
default_privileges Définit les privilèges initialement actif lors de la connection à
CA-OpenIngres. Ils doivent être un sous-ensemble de tous les
privilèges accordés à l'utilisateur.
nodefault_privileges Spécifie que la sesssion démarre sans privilège actif. Supprime
les privilèges par défaut.
security_audit Les valeurs possibles sont :
(all_events) : toutes les activités de l'utilisateur sont auditées
(default_events) : seul l'audit de sécurité par défaut est réalisé.
celui-ci est défini par la commande enable security_audit
type_audit.
(query_text) : l'audit portera sur le texte des requêtes de
l'utilisateur. Il faut pour cela que le type d'audit query_text ait été
validé par la commande enable security_audit
2.4. Verrouillage
Cette commande pose un verrou exclusif sur iiprofile.
2.5. Exemple
Modifier le profil stagiaire. Il n’appartient plus au groupe stage.
alter profile stagiaire
with nogroup
3.1. Description
Cette commande permet de supprimer un profil utilisateur tout en tenant compte de l'existence
d'utilisateurs ayant ce profil.
3.2. Permissions
Cette commande ne peut être exécutée que par un utilisateur ayant le privilège maintain_user
et connecté à la base de données iidbdb.
3.3. Syntaxe
drop profile nom_profil [cascade | restrict]
Paramètre Description
cascade On attribue le profil par défaut aux utilisateurs ayant le profil
supprimé.
restrict C'est la clause par défaut. Si un utilisateur a ce profil, celui-ci
n'est pas supprimé.
3.4. Verrouillage
Cette commande verrouille iiprofile.
3.5. Exemple
Supprimer le profil stagiaire à condition qu’il ne soit attribué à aucun utilisateur.
drop profile stagiaire restrict
1. Le dictionnaire global
Il offre une vision d'ensemble des bases installées sous le système. Les informations de ce
dictionnaire sont stockées dans la base de données iidbdb créée lors de l'installation. iidbdb est
la base de données des bases de données, également appelée master base.
Le tableau suivant liste les tables spécifiques au dictionnaire global (elles n'existent donc que
dans iidbdb. Il s'agit donc d'un extrait du tableau présenté au § 1.
Table Description
iidatabase Décrit les caractéristiques propres à chaque base de données d'une
installation
iidbpriv Décrit les privilèges bases de données pour toutes les bases de données.
iiextend Définit les extensions aux locations de données d'une base de données.
iilocations Indique la localisation physique et l'utilisation de chaque location.
iiprofile Décrit les profils existants
iirole Chaque occurrence décrit un rôle.
iiuser Définit pour une installation, les utilisateurs et leurs privilèges.
iiusergroup Contient pour chaque groupe, la liste des utilisateurs membres.
2. Le dictionnaire local
Un dictionnaire local est propre à chaque base de données. Il est créé au même moment que la
base de données concernée. La constitution de chaque dictionnaire local est similaire à celle du
dictionnaire global iidbdb. Ainsi, chaque base de données dispose de son autonomie par le biais
d'un dictionnaire qui stocke uniquement ses objets.
B. Les catalogues
La notion de catalogue est une autre façon de présenter le dictionnaire de données. Ce paragraphe
liste et décrit sommairement le catalogue système, l'interface du catalogue standard et l'extension du
catalogue système.
La description de ces catalogues ne doit pas être prise à la lettre car ils ne sont pas supportés par
CA-OpenIngres et sont régulièrement soumis à des modifications.
Les catalogues système sont des tables qui stockent l'information nécessaire à CA-OpenIngres. Ils
peuvent être exploités par des programmes de consultation mais ne doivent pas faire l'objet de mise
à jour. Pour interroger le catalogue système, il est recommandé de consulter l'interface du catalogue
standard.
L'interface du catalogue standard est un ensemble de tables et de vues définies à partir du catalogue
système.
La commande help table | view permet d'afficher le format des tables ou vues des catalogues.
1. Le catalogue système
Il est composé des tables qui stockent des informations utiles pour le noyau de CA-OpenIngres.
Ces tables ne peuvent être mises à jour que par le noyau.
Dans de nombreux cas, l'information présente dans ces tables est codifiée. L'administrateur aura
une meilleure lisibilité en accédant à une vue du catalogue standard. Le nom de la vue
correspond alors au pluriel du nom de la table.
Le tableau ci-dessous décrit succinctement les tables du catalogue système en précisant celles qui
n'existent que dans la base de données iidbdb ainsi que la correspondance directe avec une vue
du catalogue standard.
1
Les éléments les plus importants sont grisés.
2. Le catalogue standard
Tous les utilisateurs d'une base de données peuvent accéder à l'interface du catalogue standard.
Seuls les utilisateurs privilégiés peuvent le mettre à jour.
1. Syntaxe
createdb dbname [-dlocationname] [-clocationname] [-jlocationname] [-blocationname] [-
wlocationname] [-f product] [-llanguage] [-p] [-S] [-uusername]
2. Description
La commande createdb crée une nouvelle base de données. L'utilisateur qui la crée en devient
administrateur (DBA).
Le tableau ci-dessous décrit les paramètres de la commande.
Paramètre Description
dbname Nom de la base de données
-dlocationname Précise la location des fichiers de données. La location par défaut est celle
pointée par la variable II_DATABASE. 3
-clocationname Précise la location des fichiers checkpoint. La location par défaut est celle
pointée par la variable II_CHECKPOINT.
-jlocationname Précise la location des fichiers journaux. La location par défaut est celle
pointée par la variable II_JOURNAL.
-blocationname Précise la location des fichiers dump. La location par défaut est celle pointée
par la variable II_DUMP.
-wlocationname Précise la location des fichiers de travail. La location par défaut est celle
pointée par la variable II_WORK.
-f product Permet de préciser les catalogues qui doivent être créés. Les valeurs
possibles sont : ingres, ingres/dbd, vision, windows_4gl, and nofeclients
(aucun catalogue) Par défaut, tous les catalogues sont créés.
-llanguage Permet de préciser un jeu de caractères utilisés et définit ainsi l'ordre de tri
alphabétique. Les valeurs possibles sont multi et spanish (l'ordre de tri
correspondant est présenté dans le system reference guide) ou tout nom de
fichier élaboré avec l'utilitaire aducompile. Si aucune valeur n'est précisée
pour ce paramètre, la valeur par défaut est celle précisée par la variable
II_COLLATION. En absence de celle-ci, c'est le jeu de caractères ASCII ou
EBCDIC présent sur la machine qui s'applique.
-p Permet de créer une base de données privée. Seuls le DBA et les utilisateurs
nommément désignés pourront y accéder. Par défaut, une base de données
3
Le contenu des variables de niveau installation peut être obtenu par la commande système ingprenv. Pour les variables de
niveau session, utiliser la commande système env.
Paramètre Description
est publique mais l'accès aux tables doit être explicitement accordé.
-S Ce paramètre n'est utilisé que pour la création de la base iidbdb. Seul un
utilisateur privilégié peut l'employer.
-uusername Précise l'utilisateur effectif de la session. Ce paramètre permet à un
utilisateur autorisé de créer une base de données en se substituant à
l'utilisateur username qui en sera le DBA.
3. Exemple
Créer la base de données dbdupond dont le DBA sera l’utilisateur dupond.
createdb dbdupond –udupond
Créer la base de données mabase dont vous êtes administrateur.
createdb mabase
4. Fonctionnement de createdb
A l'exécution de la commande, les opérations suivantes sont réalisées :
→ Mise à jour du catalogue système de iidbdb.
→ Création d'un nouveau répertoire portant le nom de la base dans la location prévue pour la
base. La location par défaut est II_DATABASE/ingres/data/default.
→ Copie du fichier de configuration (aaaaaaaa.cnf) et des tables du noyau du catalogue système
de la base (aaaaaaax.t00, x prenant les valeurs de b jusqu'à e) dans le nouveau répertoire.
→ Création et modification du catalogue système.
→ Création du catalogue standard.
→ Création de l'extension utilisateur du catalogue système.
→ Attribution du droit select pour public sur le catalogue système.
1. Syntaxe
destroydb dbname
[-p] [-l] [-uusername]
2. Description
La commande destroydb supprime une base de données existante. Le répertoire de la base et
tous les fichiers qu'il contient sont détruits. Cette commande ne permet pas de détruire la base
iidbdb. Seuls le DBA et l'administrateur système CA-OpenIngres peuvent exécuter cette
commande. Le tableau qui suit décrit les paramètres de la commande.
Paramètre Description
dbname Nom de la base de données
-p Impose une demande de confirmation de destruction. Il est conseillé de faire
un alias de cette commande pour y inclure cette option.
-l Permet d'obtenir un message d'erreur si la base est en cours d'utilisation.
-uusername Précise l'utilisateur effectif de la session. Ce paramètre permet à un
utilisateur autorisé de supprimer une base de données en se substituant à
l'utilisateur username.
Selon les paramètres utilisés, la commande rend compte de son exécution à l'écran mais également
dans le fichier iivdb.log.
1.1. Syntaxe
create table nom_table
(
specif_col {,specif_col}
[, [constraint nom_contrainte] cont_table {, [constraint nom_contrainte] cont_table }]
)
[with clause_with]
cont_col Par opposition aux contraintes de niveau table, celles-ci font partie de la
définition d'un attribut et ne concernent donc que celui-ci. Les valeurs
possibles sont présentées dans le tableau qui suit.
type_donnée Tous les types de données reconnus par CA-OpenIngres.
Contrainte Description
unique Gère l'unicité de chaque valeur de l'attribut dans la table
primary key L'attribut est clef primaire. L'unicité est gérée et l'attribut
peut être référencé par une autre table.
references nom_table [(col)] L'attribut fait référence à la colonne de la table indiquée
check (spécification) Permet de spécifier un contrôle de validité pour une
occurrence de l'attribut. spécification doit être un prédicat.
Il est recommandé de nommer les contraintes. Leur nom et leur type (U : unicité, P :
primaire, C : contrôle, R : références) sont stockés dans iiconstraints qui peut être
consultée. La commande SQL alter table permet d'ajouter ou supprimer des contraintes de
niveau table.
Contrainte Description
unique (nom_col {, nom_col}) Gère l'unicité pour le groupe de valeur des
colonnes indiquées
primary key (nom_col {, nom_col}) Le groupe de colonnes constitue la clef primaire
de la table. L'unicité du groupe de colonnes est
gérée mais de plus, la clef primaire peut être
référencée par une autre table.
foreign key (nom_col {, nom_col}) Les colonnes précisées après foreign key
references nom_table [(nom_col {, constituent une clef étrangère et font référence
nom_col})] aux attributs et à la table spécifiée.
Contrainte Description
check (specif_controle) Permet de spécifier un contrôle de validité pour
une occurence de la table. Exemple : budget >
depense
1.2. Description
La table créée a par défaut la structure HEAP. Pour obtenir une autre structure, il est possible
d'utiliser les options de la clause with.
Une table contient au maximum 300 attributs. La taille maximale d'un enregistrement est de
2008 octets pour des pages de 2048 octets.
Certains types de données ont une taille réelle plus grande que la taille déclarée :
1.3. Exemple
Créer les tables nécessaires au MLD relationnel suivant en tenant compte des clefs étrangères
et primaires.
COMMANDE (numero, date_creation, date_livraison)
PRODUIT (nom, qte_dispo)
COMMANDER (num_commande, nom_produit, qte)
La quantité commandée doit être positive. La date de livraison peut être saisie plusieurs jours
après la création de la commande. Elle doit être postérieure à la date de création.
Toutes les contraintes doivent être nommées.
2.1. Syntaxe
alter table nom_table
add [constraint nom_contrainte] spécif_contrainte |
drop constraint nom_contrainte restrict | cascade
REMARQUE : une contrainte ne peut être supprimée qu’en la désignant par son nom. Si la
contrainte n’a pas été nommée lors de sa création, il est possible de la supprimer malgré tout
en recherchant dans le catalogue iiconstraint le nom attribué automatiquement par le système.
2.2. Description
Pour l'ajout de contraintes, les valeurs de spécif_contrainte respectent la syntaxe vue pour
create table.
La suppression d'une contrainte nécessite de connaître le nom qui lui a été attribué lors de la
création. Le comportement de la commande est différent selon l'option restrict ou cascade.
restrict
La commande s'interrompt si une contrainte dépend de celle supprimée.
cascade
La commande supprime la contrainte ainsi que celles qui en dépendent. Exemple, la
suppression d’une contrainte de clef primaire entraînera celle des contraintes de clef
étrangères.
2.3. Exemple
Supprimer la contrainte ckcomparedates de la table commande.
alter table commande
drop constraint ckcomparedates restrict
3.1. Syntaxe
drop [type_objet] nom_objet {, nom_objet}
3.2. Description
La commande drop supprime de la base de données les éléments spécifiés. Les synonymes et
commentaires associés sont également supprimés. Si l'objet supprimé est une table, les index,
vues, privilèges et intégrités qui en dépendent sont supprimés automatiquement.
Si le type d'objet est précisé, le système contrôle que le nom de l'objet appartient bien à ce
type. Si plusieurs éléments sont listés, seuls ceux de ce type seront supprimés.
Pour supprimer des éléments de type différent, il suffit de ne pas préciser le type d'objet.
3.3. Permissions
Seul le propriétaire de l'objet peut le supprimer.
3.4. Verrouillage
La commande drop pose un verrou exclusif sur la table spécifiée.
3.5. Exemple
Supprimer la table instructeur
drop instructeur
1.1. Syntaxe
create view nom_vue
[(nom_colonne {, nom_colonne})]
as commande_select
[with check option]
1.2. Description
La commande create view utilise la commande select pour définir le contenu de la table
virtuelle. La définition de la vue est mémorisée dans les catalogues (iiviews du catalogue
standard). Lorsque la vue est utilisée dans une commande SQL, celle-ci opère sur les tables
désignées. Lorsqu'une vue ou une table utilisées dans la définition d'une vue sont supprimées,
la vue est supprimée.
Pour une consultation, une vue est utilisée de la même façon qu'une table. Par contre, les
opérations de modification, ajout, et suppression d'occurrences d'une vue sont soumises à des
contraintes strictes. Elles ne peuvent s'effectuer que si la vue remplit toutes les conditions
suivantes :
→ La vue est basée sur une seule table ou vue qui peut être mise à jour.
→ Tous ses attributs se réfèrent aux attributs de la table ou vue (les fonctions agrégats et les
formules dérivées ne sont pas autorisées).
→ La commande select n'emploie pas les clauses distinct, group by, union, et having.
De plus, l'ajout d'occurrences est impossible si des attributs (de la table) dont la saisie est
obligatoire ne sont pas employés dans la définition de la vue.
Exemple :
create view ma_vue
as select *
from ma_table
where ma_colonne = 10
with check option;
La modification "update ma_vue set ma_colonne = 5" sera rejetée car elle ne respecte pas la
clause where (ma_colonne = 10).
1.4. Permissions
Le créateur d'une vue doit avoir tous les privilèges requis pour exécuter la clause select de
définition de la vue.
1.5. Verrouillage
La commande create view pose des verrous exclusifs sur les tables intervenant dans sa
définition.
1.6. Exemple
Créer la vue commandes. Elle reprend tous les attributs des tables commande, produit et
commander sans redondance.
create view commandes (commande, creation, livraison, produit, qte_dispo, qte_cde)
as select numero, date_creation, date_livraison, nom, qte_dispo, qte
from commande, produit, commander
where numero = num_commande
and nom = nom_produit
1. La copie formatée
1.1.1. Syntaxe
copy [table] tablename
([columnname = format [with null [(value)]]
{,columnname = format [with null [(value)]]}])
into | from 'filename'
[with with_clause {,with_clause}]
Le fichier (en entrée ou en sortie) peut être de format fixe ou variable.
Valeur Description
on_error = terminate | continue permet à la commande copy de continuer son
continue exécution même en cas d'erreur de conversion.
terminate est l'option par défaut.
Valeur Description
error_count = n précise le nombre d'erreurs à utiliser avec l'option
on_error = terminate.
1 est la valeur par défaut.
rollback = enabled | disabled n'a de sens qu'en import.
enabled permet de n'importer aucun des
enregistrements si la commande copy s'interrompt.
disabled permet d'importer une partie des
enregistrements même si une erreur intervient.
enabled est l'option par défaut.
log = 'filename' permet de récupérer les enregistrements ayant posé
problème.
à utiliser avec l'option on_error = continue.
Il existe d'autres options qui ne sont valables que dans le cas d'un "bulk copy"
formats :
Ce paragraphe décrit les principaux formats utilisables dans la commande copy ainsi que le
comportement qui en résulte dans le cas d'un copy into ou copy from. Pour plus de
précision (autres formats, conversion, nombre de décimales …) consultez le SQL
Reference Guide .
Pour un copy from (import), la chaîne de caractères (value) est interprétée comme une
valeur nulle dans la table.
b1Dudragnebbbb$125000.00etudesbbbbNEN/Abbbbb27-nov-1978b3
12Steinerbbbbb$680000.00adminbbbbbNODudragne27-nov-1978b2
1,Dudragne,$125000.00,etudes,NE,N/A,27-nov-1978,3
12,Steiner,$680000.00,admin,NO,Dudragne,27-nov-1978,2
b1Dudragnebbbb$125000.00etudesbbbbNEN/Abbbbb27-nov-1978b3
12Steinerbbbbb$680000.00adminbbbbbNODudragne27-nov-1978b2
1,Dudragne,$125000.00,etudes,N/A,27-nov-1978,3
12,Steiner,$680000.00,admin,Dudragne,27-nov-1978,2
2. Copie binaire
2.1. Syntaxe :
copy [table] nomtable () from | into 'filename'
→ Les parenthèses sont obligatoires.
→ Copie toutes les colonnes en format binaire.
→ Non portable.
→ Pour charger les données d'un fichier issu d'une copie binaire, il faut utiliser une copie
binaire.
2.2. Exemple
Efectuer la copie binaire de la table matable vers le fichier monfichier du répertoire courant.
copy matable () into ‘monfichier.dat’
1. Présentation
Ce paragraphe explique comment décharger et recharger une base de données ou les tables
sélectionnées à l'aide des commandes unloaddb et copydb. Il existe également des commandes
particulières pour copier des objets particuliers tels que les procédures, tables, forms,
applications, reports. Ces commandes ne seront pas traitées dans ce document.
Unloaddb et copydb sont lancées depuis le système d'exploitation et génèrent des scripts qui
permettent de :
→ décharger une base de données complète vers des fichiers externes au format binaire ou
ASCII,
→ copier les tables sélectionnées ou toutes les tables, vues et procédures dont vous êtes
propriétaire vers des fichiers externes au format binaire ou ASCII,
→ recharger la base de données ou les objets à partir de ces fichiers.
Conditions
→ unloaddb être administrateur de la base ou avoir le privilège security
→ copydb tout utilisateur propriétaire des tables, vues ou procédures copiées.
2. Utilisation
Ces commandes sont utilisées le plus fréquemment pour transférer tout ou partie d'une base de
données vers une autre installation, quelque soit le système d'exploitation.
Ces commandes peuvent également servir à
→ transférer tout ou partie d'une BD vers une autre de la même installation
→ documenter la BD. En effet, les scripts générés peuvent servir de documentation (modèle
physique de données : MPD)
→ faire des copies statiques de la BD dans un but de récupération
→ archiver des données que vous voulez purger ou recharger plus tard.
3. La commande unloaddb
Cette commande permet de décharger puis recharger une BD complète. Elle peut aussi ne
concerner que les objets d'un propriétaire précis.
Condition être administrateur de la base ou avoir le privilège security
→ forms
→ reports
→ graphs
→ définitions ABF
→ joindefs
→ QBFnames
→ permissions, intégrités et index
→ règles
→ événement BD
→ commentaires,
→ synonymes
et dans le cas de la iidbdb
→ groupes,
→ rôles
→ privilèges bases de données
→ événements
3.1. Syntaxe
unloaddb dbname [-c] [-ddirname] [-source= dirname] [-dest= dirname] [-uusername]
[-Ggroupid]
Unloaddb détruit les catalogues système étendus et les recrée avant de charger les données,
ceci pour s'assurer que les données sont chargées dans des catalogues système identiques à
ceux d'origine.
3.4. Verrous
Lors de l'exécution de la commande unloaddb ou du fichier de commandes unload.ing, le
système pose des verrous partagés sur les catalogues système et les tables concernées.
Lors de l'exécution du fichier de commandes reload.ing, le système pose des verrous
exclusifs sur les catalogues système et les tables concernées.
Si une table est supprimée pendant cet intervalle de temps, un message d'erreur est généré.
Certains changements peuvent être faits par un utilisateur sans générer de message d'erreur :
→ ajout ou suppression d'enregistrements dans une table
→ ajout de tables
4. La commande copydb
Cette commande permet à tout utilisateur de copier :
4.1. Syntaxe
copydb dbname [tablename {tablename}] [-c] [-ddirname] [-source= dirname] [-dest=
dirname]
[-uusername] [-Ggroupid]
Pour exporter les tables de votre base de données, exécutez le script copy.out. Pour les
importer dans la BD d'origine ou une autre, exécutez le script copy.in.
Si vous précisez une table ou vue particulière, le script copy.in ne contiendra que les
commandes de création de l'objet concerné.
4.5. Verrous
Lors de l'exécution de la commande copydb ou du script copy.out, le système pose des
verrous partagés sur les tables concernées.
Lors de l'exécution du script copy.in, le système pose des verrous exclusifs sur tables
concernées.
Si une table est supprimée pendant cet intervalle de temps, un message d'erreur est généré.
Certains changements peuvent être faits par un utilisateur sans générer de message d'erreur :
→ ajout ou suppression d'enregistrements dans une table
→ ajout de tables
Pour assurer la cohérence des tables copiées, verrouillez les de façon exclusive pendant leur
copie. Pour cela, ajoutez le flag –l pour exécuter le script copy.out :
sql –l dbname < copy.out
Ce chapitre répondra successivement à ces quatre questions après avoir présenté les principes de base
retenus par CA-OpenIngres.
A. Principes de base
Remarque : un groupe peut donc être créé sans utilisateurs. la commande de création des
utilisateurs permet de les associer à un groupe par défaut.
with_option =
nopasswd | passwd = 'mot_passe_role' | external_password
| noprivileges | privileges = (priv {, priv})
| nosecurity_audit | security _audit = (opt {, opt})
| nolimiting_security label | limiting_security_label = 'label'
La description de with_option et des privilèges est identique à celle de la création des
utilisateurs. Se référer au tableau page 9.
Lors de la création du rôle, un privilège d'accès à ce rôle est attribué implicitement à
l'utilisateur qui l'a créé.
with_option =
nopasswd | passwd = 'mot_passe_role' | external_password
| noprivileges | privileges = (priv {, priv})
Si l'un ou plusieurs identifiants de rôle sont inexistants, le système retourne un code d'erreur
pour chacun d'entre eux mais les rôles existants sont effectivement supprimés.
Les sessions qui utilisent un rôle supprimé continuent de disposer des privilèges liés à ce rôle
jusqu'à leur déconnexion.
1. Principes
Fonction dbmsinfo
Il s'agit d'une fonction SQL qui renvoie une chaîne de caractères contenant des informations
sur la session courante. La syntaxe SQL est la suivante :
Ainsi, si pour le privilège access, des droits différents ont été attribués à public, group, user ou
role actifs pour la session, les droits qui s'appliquent sont ceux de "role".
Privilège Description
[no]access Droit de connexion à la base de données spécifiée
[no]create_procedure Droit de créer des procédures bases de données pour la base de
données spécifiée
[no]create_table Droit de créer des tables dans la base de données spécifiée
[no]db_admin Attribue des privilèges bases de données sans limite pour la base de
données spécifiée ainsi que la possibilité de se substituer à un autre
utilisateur (par le flag –u). Une session qui a ce privilège ne dispose
pas de tous les droits du DBA; certains utilitaires ne peuvent être
utilisés que par le DBA. Le DBA et les utilisateurs ayant le privilège
SGBD "security" ont par défaut le privilège db_admin. Tous les
autres utilisateurs ont par défaut nodb_admin.
[no]lockmode droit d'utiliser la commande set lockmode
[no]query_io_limit Ce privilège précise le nombre maximal de requêtes d'entrée/sortie
pour une requête simple sur le base de données spécifiée. Ce nombre
doit être un entier positif ou nul. Noquery_io_limit est la valeur par
défaut; elle supprime cette limite.
[no]query_row_limit Nombre entier positif qui spécifie le maximum d'occurrences renvoyé
par une requête simple sur la base de données spécifiée.
Noquery_row_limit est la valeur par défaut; elle supprime cette
limite.
update-syscat Droit de mise à jour sur le catalogue système de la iidbdb.
select_syscat Autorise la session à interroger le catalogue système. Lors d'une
connexion à iidbdb, cela inclue les tables spécifiques au dictionnaire
Privilège Description
global (voir § 1)
[no]connect_time_lim Limite le temps de connexion d'une session. La valeur par défaut est
it [no]connect_time_limit. Le temps de connexion est contrôlé
périodiquement par le DBMS. Si la limite est atteinte pour une
session, celle-ci est déconnectée et un rollback est effectué sur toutes
les transactions en cours. L'unité utilisée pour ce paramètre est la
seconde. La plage de valeurs possibles va de 1 seconde à 130 ans.
[no]idle_time_limit Limite le temps d'inactivité d'une session. La valeur par défaut est
[no]idle_time_limit. Le temps d'inactivité est contrôlé
périodiquement par le DBMS. Si la limite est atteinte pour une
session, celle-ci est déconnectée et un rollback est effectué sur toutes
les transactions en cours. L'unité utilisée pour ce paramètre est la
seconde. La plage de valeurs possibles va de 1 seconde à 130 ans.
[no]session_priority Autorise une session à changer son degré de priorité jusqu'à la limite
spécifiée.
table_statistics Autorise l'utilisateur à visualiser (par SQL ou statdump) et créer (par
optimizedb) la table des statistiques base de données. Si ces
statistiques existent dans le catalogue de la base de données, le DBMS
les utilise automatiquement lors du traitement des requêtes même si
l'utilisateur ne dispose pas du privilège table_statistics.
Exemple : limiter à 100 le nombre d'enregistrement ramenés par une requête sur la base de
données viticole par les personnes du groupe ua197.
grant query_row_limit 100
on database viticole
to group ua197
Tables : par défaut, seul le propriétaire d'une table a des droits sur elle. Il peut accorder des
droits aux identifiants d'autorisations vus au § B.
Vues : les vues pouvant être définies à partir de plusieurs tables, l'attribution de droits sur
une vue ne peut se faire qu'en respectant l'une des contraintes suivantes :
pour accorder l'un des 4 droits sur une vue,
→ Le propriétaire de la vue doit être propriétaire de toutes les tables et vues utilisées dans la
définition de cette vue.
OU
→ Le propriétaire de la vue doit avoir obtenu l'autorisation d'attribuer le droit correspondant
pour toutes les tables et vues utilisées dans la définition de cette vue.
OU
→ L'autorisation d'accorder le droit correspondant doit avoir été donné à l'identifiant
d'autorisation "public" pour toutes les tables et vues utilisées dans la définition de cette vue
Remarque : l'autorisation d'accorder des droits est donnée à un identifiant d'autorisation par
l'option "with grant option" de la commande SQL "grant".
Remarques
Les privilèges references et copy ne s'appliquent qu'aux tables.
Exemple
grant select, update (nomcru)
on table vins
to ing1, ing2
Commentaire : pour exécuter un update, l'utilisateur doit également avoir le privilège select.
Cas particulier : la syntaxe de grant ne permet pas d'attribuer des droits de lecture sur une
partie des occurrences d'une table. Une solution consiste à créer une vue sur la portion de
table concernée et de définir les droits de lecture sur cette vue.
La commande :
select * from iipermits
permet donc de visualiser l’intégralité des droits accordés. Elle peut être complétée par des
clauses de restriction (where …) pour faire des recherches plus ciblées.
La commande :
help permit on table | view * | object_name {, object_name}
exploite le catalogue iipermits afin de ne montrer que les droits accordés à l’utilisateur.
Privilège Description
execute droit d'exécuter la procédure base de données spécifiée.
La commande :
help permit on procedure object_name {, object_name}
exploite le catalogue iipermits afin de ne montrer que les droits accordés à l’utilisateur.
Privilège Description
raise autorise l’identifiant d’autorisation à émettre l'événement base de données spécifié
donc à exécuter la commande raise dbevent.
register autorise l'identifiant d'autorisation désigné à se déclarer susceptible de recevoir
l'événement base de données spécifié donc à exécuter la commande register
dbevent.
La commande :
help permit on dbevent object_name {, object_name}
exploite le catalogue iipermits afin de ne montrer que les droits accordés à l’utilisateur.
Niveau de privilège Type de privilèges Privilèges Commande d’attribution Bénéficiaire Visualisation des droits
createdb
trace
security
user
Accès au SGBD operator create user , profil, role
profil
- utilitaire accessdb
SGBD maintain_locations alter user , profil, role - vue iiusers de la base iidbdb
role
auditor
maintain_audit
maintain_users
Accès aux rôles role user
grant vue iirolegrants de la base iidbdb
public
access
create procedure
create table
db_admin
lockmode
role
Accès à une base de query_io_limit user
Base de données données query_row_limit grant vue iidbprivileges de la base cible
group
update_syscat
public
select_syscat
connect_time_limit
idle_time_limit
session_priority
table_statistics
Exécution des execute Dans la base cible :
procédures grant idem - vue iipermits
Traitements - help permit on procedure
Exploitation des raise Dans la base cible :
événements register grant idem - vue iipermits
- help permit on dbevent
select
insert Dans la base cible :
Accès aux tables et delete - vue iipermits
Données aux vues grant idem
update - help permit on table|view
copy_into copy_from
references
A. Précaution d'usage
L'administrateur doit s'assurer que les données à sauvegarder sont accessibles avant toute opération
de sauvegarde. De cette vérification préalable dépend le succès d'une éventuelle restauration. Pour
cela, l'administrateur dispose de plusieurs possibilités :
→ la commande sysmod pour le catalogue système et la commande modify pour les tables
utilisateur
→ toute commande permettant d'accéder à l'ensemble des enregistrements d'une table (exemple :
select sans clause de restriction)
→ la commande verifydb –mreport –otable nomtable qui permet de contrôler l'intégrité des
tables spécifiées. Si une inconsistance est détectée, le système donne des recommandations pour
la résoudre.
Si des enregistrements d'une table ne sont pas accessibles, vous recevrez un message d'erreur. Dans
ce cas, vous devrez restaurer la table avec une version précédente avant d'envisager une nouvelle
sauvegarde.
B. Sauvegarde statique
Une sauvegarde statique correspond à l'enregistrement de l'état des données au moment de la
sauvegarde. Une éventuelle restauration à partir de cette sauvegarde ne tiendra aucun compte des
évolutions intervenues entre temps. La commande ckpdb (checkpoint) permet d'effectuer une telle
opération. En l'associant au système de journalisation, il est possible d'obtenir des sauvegardes
dynamiques (voir $ C)
1. La commande ckpdb
Cette commande permet de sauvegarder tout ou partie d'une base de données. La commande crée
les fichiers checkpoint et copie dans le fichier dump les enregistrement du fichier log
correspondant aux modifications survenues pendant l'exécution du checkpoint. La procédure de
restauration prend en compte ces fichiers dump pour reconstituer une base de données
sauvegardée en ligne (voir $ 4).
Les différents paramètres présents dans la syntaxe ci-dessous sont illustrés dans les paragraphes
qui suivent.
ckpdb dbname [-d] [+j | -j] [-l] [-mdevice] [-table=tablename {, tablename}] [-v] [+w | -w] [-
uusername] [-help]
→ -table permet de limiter la sauvegarde aux tables spécifiées
→ -m permet de préciser le support de sauvegarde (la commande utilisée lors de la restauration
devra tenir compte de l'utilisation de ce paramètre)
3. Sauvegarde de tables
Depuis le système d'exploitation, exécutez la commande :
ckpdb dbname [-table=tablename {, tablename}]
C. Sauvegarde dynamique
Par opposition à la sauvegarde statique qui photographie les données à un instant précis, la
sauvegarde dynamique prend en compte l'évolution des données depuis la sauvegarde statique. Cela
n'est possible qu'à condition de conserver dans des journaux les opérations (transactions) effectuées
sur les données depuis la sauvegarde statique.
Les journaux gardent la trace de toutes les modifications faites sur les tables "journalisées" depuis la
dernière commande ckpdb.
Lorsque la base de données est "journalisée", vous devez :
→ faire des sauvegardes régulières pour minimiser le temps de recouvrement,
→ vérifier régulièrement la qualité des données journalisées par un audit de la base.
1. Lancement de la journalisation
La journalisation peut concerner une base de données complète (option recommandée) ou des
tables.
ckpdb +j dbname
set journaling valide la journalisation de toutes les activités liées à la base.
Toutes les tables de la base sont alors crées avec l'option "with journaling" et leur journalisation
est immédiate.
Si vous choisissez de ne journaliser qu'une partie des tables de la base, vous devez vous assurer
que cet partie forme un tout cohérent. Par exemple, toutes les tables intervenant dans la
définition d'une vue doivent être journalisées.
2. Interruption de la journalisation
Pour une table :
set nojournaling on tablename
Pour la base de données complète, l'une de ces commandes peut convenir :
alterdb dbname –disable_journaling
ckpdb -j
De même, la commande unloaddb vue au $3 peut être considérée comme outil de sauvegarde dans
la mesure ou elle permet de générer un script de copie qui peut être utilisé pour recréer tout ou
partie de la base de données.
1. La commande rollforwarddb
Cette commande permet de restaurer une base de données si vous disposez d'une sauvegarde
avec ou sans journalisation. L'exécution de cette commande écrase le contenu actuel de la base
de données et le remplace par les informations enregistrées. Pour prévenir tout risque d'erreur, la
base de données est verroulliée, ce qui impose qu'elle ne soit pas en cours d'utilisation.
Si la dernière sauvegarde a été réalisée en ligne, rollforwarddb :
→ restaure la base à partir de la location de sauvegarde vers la location de données,
→ utilise les enregistrements du journal des transaction mémorisés dans la location dump (ces
enregistrements décrivent les transactions qui étaient en cours au moment de la sauvegarde).
La base retrouve ainsi l'état qu'elle avait au début de la sauvegarde.
→ applique, s'il existe, le journal des transactions réalisées depuis la dernière sauvegarde.
Paramètre Description
+c | -c Restaurer / ne pas restaurer la base de données à partir de la dernière
sauvegarde. (-c est utilisé probablement pour obtenir la liste des éléments de
la sauvegarde). La valeur par défaut est +c. L'option +c doit être précisée pour
une restauration à partir d'une sauvegarde effectuée avec l'option –m
(précisant le support).
+j | -j Restaurer à l'aide de la journalisation ou non. Par défaut : +j
-mdevice Permet de préciser le périphérique supportant la sauvegarde
#c[n] Permet d'effectuer la restauration à partir d'une ancienne sauvegarde. Le
numéro (n) de sauvegarde doit être valide. La commande infodb permet de
connaître les sauvegardes valides.
+w | -w Permet d'attendre ou non la libération de la base. –w est la valeur par défaut.
Paramètre Description
-v Permet d'obtenir un compte rendu des opérations exécutées
-statistics Permet d'obtenir des statistiques sur la commande.
VII. Utilitaires
Un certain nombre d'outils maintenus par CA-OpenIngres permettent de faciliter les tâches
d'administration. Ce chapitre présente les principaux utilisés.
A. Accessdb
Cet utilitaire permet de faciliter:
- la consultation de la liste des bases de données
- la gestion des locations
- la gestion des utilisateurs
L'accès à cet utilitaire est réservé à l'administrateur CA-OpenIngres ou à tout utilisateur ayant l'un
des trois privilèges :
- security
- maintain_locations
- maintain_users
Les fonctions réalisées à l'aide de cet utilitaire peuvent être effectuées à l'aide de commandes SQL.
1. Option Databases
Cette option permet de visualiser la liste des bases de données. Les actions possibles sont pour la
base de données sélectionnée sont indiquées ci-dessous.
- Access : permet de constater le mode d'accès par défaut (private ou public) et d'attribuer ou
supprimer le droit d'accès d'un utilisateur
- Extend : donne la liste des locations par défaut et permet de définir des locations
supplémentaires à conditions qu'elles aient été créées auparavant.
2. Option Locations
Cette option permet de gérer les locations (visualisation, création, modification, suppression de
locations inutilisées).
Une location est un nom logique (location name) qui désigne une structure de répertoires sur
disque contenant les différents types de fichiers d'une base de données. Dans la liste des
locations par défaut présentée ci-dessus, cette structure de répertoires (colonne area) est précisée
par le contenu d'une variable de niveau installation.
Exemple: la location de nom ii_database désigne le répertoire contenant les bases de données :
II_DATABASE/ingres/data/default. La racine de ce répertoire est définie par la variable
II_DATABASE.
Un utilisateur autorisé a la possibilité de créer des locations alternatives (en prévision d'une
modification de location par défaut), d'ajouter ou de changer des locations. Toutefois, ces
possibilités sont restreintes selon le tableau suivant :
3. Option Users
Cette option permet de
- définir de nouveaux utilisateurs et leur attribuer des privilèges
- visualiser, modifier les caractéristiques d'un utilisateur
- supprimer un utilisateur
- générer le script SQL de création de tous les utilisateurs.
4
Pour changer la location de ces fichiers, on peut utiliser l'utilitaire relocatedb ou décharger la base (unloaddb) puis la
recréer avec d'autres locations
B. Infodb
Cet utilitaire permet de consulter des informations sur le statut de la base de données, l’historique
des sauvegardes et journalisation ainsi que sur les localisations. Ces informations sont extraites du
fichier de configuration de la base de données : aaaaaaaa.cnf
L’accès à l’utilitaire infodb est réservé aux utilisateurs ayant le privilège security .
commande >infodb [–uusername] [dbname]
–uusername permet de demander les informations sur toutes les bases de données auxquelles
"username" a accès.
dbname permet de spécifier la base de données concernée. Si ce paramètre n'est pas précisé,
infodb concernera toutes les bases de données.
C. Ipm
Ipm (Interactive Performance Monitor) est un utilitaire qui regroupe en un outil unique les
utilitaires lockstat, logstat, iimonitor et iinamu.
Ipm permet de mettre en évidence différents aspects de l’utilisation d’une installation. Il peut être
utilisé pour voir les activités d’un serveur, examiner les systèmes de connexion et de verrouillage et
réaliser des actions sur les serveurs actifs.
3. Syntaxe
Ipm options