FirebirdSQL logo

Cette section décrit comment créer une base de données, se connecter à une base de données existante, modifier la structure des fichiers, déplacer la base de données vers et depuis un état de sauvegarde sûr et supprimer la base de données.

CREATE DATABASE

Objectif

Pour créer une nouvelle base de données.

Disponible en

DSQL, ESQL

Syntaxe
CREATE {DATABASE | SCHEMA} <filespec>
  [<db_initial_option> [<db_initial_option> ...]]
  [<db_config_option> [<db_config_option> ...]]

<db_initial_option> ::=
    USER username
  | PASSWORD 'password'
  | ROLE rolename
  | PAGE_SIZE [=] size
  | LENGTH [=] num [PAGE[S]]
  | SET NAMES 'charset'

<db_config_option> ::=
    DEFAULT CHARACTER SET default_charset
      [COLLATION collation]
  | <sec_file>
  | DIFFERENCE FILE 'diff_file'


<filespec> ::= '[<server_spec>]{filepath | db_alias}'

<server_spec> ::=
    host[/ {port | service}]:
  | \\host\
  | <protocol>://[host[:{port | service}]/]

<protocol> ::= inet | inet4 | inet6 | wnet | xnet

<sec_file> ::=
  FILE 'filepath'
  [LENGTH [=] num [PAGE[S]]
  [STARTING [AT [PAGE]] pagenum]
Note

Chaque option db_initial et db_config_option ne peut apparaître plus d’une fois, à l’exception de sec_file qui peut apparaître zéro fois ou plus.

Table 1. Paramètres de l’opérateur CREATE DATABASE
Paramètre Description

filespec

Spécification du fichier de base de données primaire.

server_spec

Spécification du serveur distant. Comprend le nom et le protocole du serveur. Requis si la base de données est créée sur un serveur distant.

filepath

Chemin d’accès complet et nom du fichier, y compris l’extension. Le nom du fichier doit être spécifié en fonction des spécificités de la plate-forme utilisée.

db_alias

L’alias de la base de données présente dans le fichier databases.conf

host

Le nom du serveur ou l’adresse IP où la base de données est créée.

port

Le numéro du port sur lequel le serveur distant écoute (paramètre RemoteServicePort du fichier firebird.conf).

service

Nom du service. Doit correspondre à la valeur du paramètre RemoteServiceName du fichier firebird.conf.

protocol

Nom du protocole.

username

Le nom de l’utilisateur/propriétaire de la base de données. Il peut être entouré de guillemets simples ou doubles. Si le nom d’utilisateur est entre guillemets, il est sensible à la casse.

password

Le mot de passe de l’utilisateur/propriétaire de la base de données. Sensible à la casse.

role

Le nom du rôle dont les droits peuvent être pris en compte lors de la création de la base de données. Il peut être entouré de guillemets simples ou doubles. Si le nom du rôle est entre guillemets, il est sensible à la

size

Taille de la page pour la base de données. Valeurs valides : 4096, 8192, 16384, 32768. La taille de page par défaut est de 8192.

num

Taille maximale du fichier primaire ou secondaire en pages.

charset

Spécifie le jeu de caractères de la connexion disponible après la création réussie de la base de données.

default_charset

Spécifie le jeu de caractères par défaut pour les types de données de type chaîne.

collation

Le jeu de caractères pour le tri par défaut.

sec_file

Spécification du fichier secondaire.

pagenum

Le numéro de page à partir duquel le fichier de la base de données secondaire commence.

diff_file

Chemin et nom du fichier delta.

L’instruction CREATE DATABASE crée une nouvelle base de données. Vous pouvez utiliser CREATE DATABASE ou CREATE SCHEMA. Ce sont des synonymes.

Une base de données peut être constituée d’un ou plusieurs fichiers. Le premier fichier, primaire, est appelé le fichier principal, les autres fichiers sont appelés les fichiers secondaires.

Note

Actuellement, les bases de données multi-fichiers sont un atavisme. Il est logique d’utiliser des bases de données multi-fichiers sur les anciens systèmes de fichiers où la taille de chaque fichier est limitée. Par exemple, en FAT32, vous ne pouvez pas créer un fichier de plus de 4 gigaoctets.

La spécification du fichier primaire est le nom du fichier de la base de données et son extension, en précisant le chemin d’accès complet à celui-ci selon les règles du système d’exploitation utilisé. Le fichier de la base de données doit être absent lors de la création de la base de données. Sinon, un message d’erreur sera affiché et la base de données ne sera pas créée. Si le chemin complet de la base de données n’est pas spécifié, la base de données sera créée dans l’un des répertoires du système. Le choix du répertoire dépend du système d’exploitation.

Utilisation d’alias de base de données

Des alias peuvent être utilisés à la place du chemin d’accès complet au fichier de la base de données primaire. Les alias sont décrits dans le fichier databases.conf au format :

alias = filepath
Note

En plus de spécifier les alias de la base de données, les paramètres de niveau base de données pour chaque base de données décrite peuvent être spécifiés dans ce fichier. Ces paramètres sont spécifiés entre crochets immédiatement après la déclaration de l’alias.

Création d’une base de données sur un serveur distant

Lors de la création d’une base de données sur un serveur distant, la spécification du serveur distant doit être précisée. La spécification du serveur distant dépend du protocole utilisé.

Si vous utilisez TCP/IP lors de la création de la base de données, la spécification du fichier primaire doit ressembler à ceci

host[/{port | service}]:{filepath | db_alias}

Si vous utilisez un protocole appelé Name Pipes lors de la création de la base de données, la spécification du fichier primaire doit ressembler à ceci

\\host\{filepath | db_alias}

Il existe également une syntaxe unifiée de type URL pour la spécification du serveur distant. Dans cette syntaxe, le premier paramètre est le nom du protocole, suivi du nom ou de l’adresse IP du serveur, du numéro de port et du chemin d’accès au fichier de base de données primaire ou à l’alias. Les valeurs suivantes peuvent être spécifiées comme protocole :

INET

TCP/IP (essayez d’abord TCP/IP v6, si vous ne réussissez pas, alors TCP/IP v4) ;

INET4

TCP/IP v4;

INET6

TCP/IP v6;

WNET

Protocole "Named Pipes (Tuyaux nommés) ;

XNET

protocole local.

<protocol>://[host[:{port | service}]/]{filepath | db_alias}

Paramètres facultatifs CREATE DATABASE

USER et PASSWORD

Les phrases facultatives USER et PASSWORD spécifient, respectivement, le nom d’utilisateur et le mot de passe présents dans la base de données de sécurité (security4.fdb ou celle spécifiée dans SecurityDatabase). L’utilisateur et le mot de passe peuvent être omis si les variables d’environnement ISC_USER et ISC_PASSWORD sont définies. L’utilisateur spécifié lors de la création de la base de données sera le propriétaire de la base de données.

ROLE

La clause optionnelle ROLE spécifie le nom du rôle (généralement RDB$ADMIN) dont les permissions seront prises en compte lors de la création de la base de données. Le rôle doit être attribué à un utilisateur dans la base de données sécurisée correspondante.

PAGE_SIZE

La phrase optionnelle PAGE_SIZE définit la taille des pages de la base de données. Cette taille sera définie pour le fichier primaire et tous les fichiers de base de données secondaires. Si une taille de page de base de données inférieure à 4096 est saisie, elle sera automatiquement modifiée en 4096. Les autres nombres (non égaux à 4096, 8192, 16384 ou 32768) seront remplacés par la plus petite valeur prise en charge. Si aucune taille de page de base de données n’est spécifiée, la valeur par défaut est 8192.

Tip
Plus n’est pas mieux

Des pages plus grandes peuvent contenir plus d’enregistrements sur une page, avoir des index plus larges et plus nombreux, mais elles gaspillent également plus d’espace BLOB (comparez l’espace BLOB gaspillé de 3 Ko sur une page de taille 4096 et le même espace BLOB de 32768 : +/- 1 Ko contre +/- 29 Ko). De plus, avec une taille de page plus grande, il y a plus de concurrence pour la même page de données, car elle contient plus d’enregistrements qui pourraient se trouver sur des pages différentes.

LENGTH

La clause optionnelle LENGTH spécifie la taille maximale d’un fichier de base de données primaire ou secondaire en pages. Lorsqu’une base de données est créée, son fichier primaire ou secondaire occupera le nombre minimum de pages nécessaires au stockage des données du système, quelle que soit la valeur définie dans la clause LENGHT. Pour un seul fichier ou le dernier fichier (dans une base de données multi-fichiers), la valeur de LENGTH n’a aucun effet sur la taille du fichier. Le fichier augmentera automatiquement sa taille si nécessaire.

SET NAMES

La clause optionnelle SET NAMES spécifie le jeu de caractères de la connexion disponible après la création réussie de la base de données. Le jeu de caractères par défaut est NONE.

DEFAULT CHARACTER SET

La phrase facultative DEFAULT CHARACTER SET spécifie le jeu de caractères par défaut pour les types de données de type chaîne. Les jeux de caractères sont utilisés pour les types CHAR, VARCHAR et BLOB. Le jeu de caractères par défaut est NONE. Vous pouvez également spécifier un tri par défaut (COLLATION) pour le jeu de caractères par défaut. Dans ce cas, le tri deviendra silencieux pour le jeu de caractères par défaut (c.-à-d. pour l’ensemble de la base de données, sauf si d’autres jeux de caractères sont utilisés).

STARTING AT

La phrase STARTING AT indique le numéro de page de la base de données à partir duquel le prochain fichier de la base de données doit commencer. Lorsque le fichier précédent est entièrement rempli de données selon le numéro de page spécifié, le système commence à placer les nouvelles données ajoutées dans le fichier de base de données suivant.

DIFFERENCE FILE

La phrase facultative DIFFERENCE FILE spécifie le chemin et le nom du fichier delta dans lequel seront écrites les modifications apportées à la base de données après qu’elle ait été mise en mode copy-safe en exécutant la commande ALTER DATABASE BEGIN BACKUP. Pour une description complète de cette option. Voir ALTER DATABASE.

Dialecte de la base de données

Par défaut, la base de données est créée dans le dialecte 3. Afin de créer la base de données dans le dialecte SQL que vous souhaitez, vous devez définir le dialecte souhaité avant d’exécuter l’instruction de création de la base de données en exécutant l’instruction SET SQL DIALECT.

Qui peut créer une base de données ?

L’instruction CREATE DATABASE peut être exécutée :

Exemples

Example 1. Création d’une base de données dans un système d’exploitation Windows

Création d’une base de données sur un système d’exploitation Windows situé sur le lecteur D avec une taille de page de 8192. Le propriétaire de la base de données sera l’utilisateur assistant. La base de données sera en dialecte 1, et utilisera le jeu de caractères par défaut WIN1251.

SET SQL DIALECT 1;
CREATE DATABASE 'D:\test.fdb'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET WIN1251;
Example 2. Création d’une base de données dans un système d’exploitation Linux

Création d’une base de données sur un système d’exploitation Linux avec une taille de page de 4096. Le propriétaire de la base de données sera l’utilisateur assistant. La base de données sera en dialecte 3, et utilisera le jeu de caractères par défaut UTF8 avec un tri diminué UNICODE_CI_AI.

CREATE DATABASE '/home/firebird/test.fdb'
USER "wizard" PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 4096
DEFAULT CHARACTER SET UTF8 COLLATION UNICODE_CI_AI;
Important

Dans ce cas, la base de données sera sensible à la casse pour le nom d’utilisateur car il est spécifié entre guillemets.

Example 3. Création d’une base de données sur un serveur distant

Création d’une base de données sur le serveur de base distant situé au niveau du chemin référencé par l’alias test décrit dans le fichier databases.conf. Le protocole utilisé est le TCP. Le propriétaire de la base de données sera l’assistant utilisateur.

CREATE DATABASE 'baseserver:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

Il en va de même pour l’utilisation d’une syntaxe unifiée de type URL pour spécifier un serveur distant.

CREATE DATABASE 'inet://baseserver:3050/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

ou

CREATE DATABASE 'inet://baseserver:gds_db/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

Lorsque vous utilisez des noms de domaine, il peut être utile de préciser quel protocole IP v4 ou IP v6 vous souhaitez utiliser.

CREATE DATABASE 'inet4://baseserver/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

ou

CREATE DATABASE 'inet6://baseserver/test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

Création d’une base de données avec une adresse IP (IPv4) au lieu d’un nom de serveur.

CREATE DATABASE '127:0:0:1:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;

Création d’une base de données avec une adresse IP (IPv6) au lieu d’un nom de serveur.

CREATE DATABASE '[::1]:test'
USER wizard PASSWORD 'player' ROLE RDB$ADMIN
DEFAULT CHARACTER SET UTF8;
Example 4. Création d’une base de données multi-fichiers

Création d’une base de données en dialecte 3 avec le jeu de caractères par défaut UTF8. Le fichier primaire contiendra 10000 pages avec une taille de page de 8192. Dès que le processus de base de données remplit le fichier primaire, le SGBD place de nouvelles données dans le fichier secondaire test.fdb2. Les mêmes actions se produiront avec le deuxième fichier secondaire. La taille du dernier fichier augmentera tant que le système d’exploitation le permettra ou tant que la mémoire du périphérique de stockage externe ne sera pas épuisée.

SET SQL DIALECT 3;
CREATE DATABASE 'baseserver:D:\test.fdb'
USER wizard PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 8192
DEFAULT CHARACTER SET UTF8
FILE 'D:\test.fdb2'
STARTING AT PAGE 10001
FILE 'D:\test.fdb3'
STARTING AT PAGE 20001;
Example 5. Création d’une base de données multi-fichiers 2

Création d’une base de données en dialecte 3 avec le jeu de caractères par défaut UTF8. Le fichier primaire contiendra 10000 pages avec une taille de page de 8192. Dès que le processus de base de données remplit le fichier primaire, le SGBD place de nouvelles données dans le fichier secondaire test.fdb2. Des actions similaires auront lieu avec le deuxième fichier secondaire.

SET SQL DIALECT 3;
CREATE DATABASE 'baseserver:D:\test.fdb'
USER wizard PASSWORD 'player' ROLE 'RDB$ADMIN'
PAGE_SIZE = 8192
LENGTH 10000 PAGES
DEFAULT CHARACTER SET UTF8
FILE 'D:\test.fdb2'
FILE 'D:\test.fdb3'
STARTING AT PAGE 20001;

ALTER DATABASE

Objectif

Pour modifier la structure des fichiers de la base de données, la mettre en "sécurité pour la copie" ou modifier certaines propriétés de la base de données.

Disponible en

DSQL, ESQL

Syntaxe
ALTER {DATABASE | SCHEMA}
    {<add_sec_clause> [<add_sec_clausee> ...]}
  | {ADD DIFFERENCE FILE 'diff_file' | DROP DIFFERENCE FILE}
  | {{BEGIN | END} BACKUP}
  | {SET DEFAULT CHARACTER SET charset}
  | {SET DEFAULT SQL SECURITY {DEFINER | INVOKER}}
  | {SET LINGER TO linger_duration | DROP LINGER}
  | {ENCRYPT WITH plugin_name [KEY key_name] | DECRYPT}
  | {ENABLE | DISABLE} PUBLICATION
  | INCLUDE {TABLE <table_list> | ALL} TO PUBLICATION
  | EXCLUDE {TABLE <table_list> | ALL} FROM PUBLICATION

<add_sec_clause> ::= ADD <sec_file> [<sec_file> ...]

<sec_file> ::=
  FILE 'filepath'
  [STARTING [AT [PAGE]] pagenum]
  [LENGTH [=] num [PAGE[S]]

<table_list> ::= tablename [, tablename ...]
Table 1. Paramètres de l’opérateur ALTER DATABASE
Paramètre Description

add_sec_clause

sec_file pour ajouter un fichier de base de données secondaire.

sec_file

Spécifier le fichier secondaire.

filepath

Chemin et nom du fichier delta ou du fichier de base de données secondaire.

pagenum

Le numéro de la page à partir de laquelle le fichier de la base de données secondaire commence.

num

num Taille maximale du fichier secondaire en pages.

diff_file

diff_file chemin et nom du fichier delta.

charset

jeu de caractères par défaut pour la base de données.

linger_duration

délai en secondes.

plugin_name

nom du plugin de cryptage.

key_name

Nom de la clé de cryptage.

table_list

Liste des tableaux à activer ou à désactiver pour les pour la réplication.

tablename

nom de la base de donnée.

L’instruction ALTER DATABASE modifie la structure des fichiers de la base de données ou la fait passer à l’état copy-safe.

Ajout d’un fichier secondaire

La phrase ADD FILE ajoute un fichier secondaire à la base de données. Pour le fichier secondaire, le chemin d’accès complet au fichier et le nom du fichier secondaire doivent être spécifiés. La description du fichier secondaire est la même que dans l’instruction CREATE DATABASE.

Example 1. Ajout d’un fichier secondaire à la base de données

Dès que le fichier primaire ou secondaire précédent est rempli de 30 000 pages, le SGBD place les données dans le fichier secondaire test4.fdb.

ALTER DATABASE
ADD FILE 'D:\test.fdb4'
STARTING PAGE 30001;

Modification du chemin et du nom du fichier delta

La phrase ADD DIFFERENCE FILE spécifie le chemin et le nom du fichier delta dans lequel seront écrites les modifications apportées à la base de données après l’avoir mise en mode copy-safe (“copy-safe”). Cette déclaration n’ajoute pas réellement un fichier. Il remplace simplement le nom et le chemin du fichier delta silencieux. Pour modifier les paramètres existants, vous devez d’abord supprimer la description du fichier delta précédemment spécifiée à l’aide de l’opérateur DROP DIFFERENCE FILE, puis spécifier une nouvelle description du fichier delta. Si vous ne modifiez pas le chemin d’accès et le nom du fichier delta, il aura le même chemin d’accès et le même nom que la base de données, mais avec l’extension .delta.

Note

Si un chemin relatif ou un nom de fichier delta seulement est spécifié, il sera créé dans le répertoire actuel du serveur. Pour les systèmes d’exploitation Windows, il s’agit du répertoire système.

La phrase DROP DIFFERENCE FILE supprime la description (chemin et nom) du fichier delta donnée précédemment par la commande ADD DIFFERENCE FILE. Cette déclaration ne supprime pas réellement le fichier. Il supprime le chemin d’accès et le nom du fichier delta et les valeurs par défaut seront utilisées lorsque la base de données sera ensuite configurée en mode safe copy (i.e. le même chemin et le même nom que le fichier de la base de données, mais avec l’extension .delta).

Example 1. Définir le chemin et le nom du fichier delta
ALTER DATABASE
ADD DIFFERENCE FILE 'D:\test.diff';
Example 2. Suppression de la description du fichier delta
ALTER DATABASE
DROP DIFFERENCE FILE;

Mise en mode "copie sécurisée" de la base de données

L’instruction `BEGIN BACKUP' est destinée à mettre la base de données en mode `copy-safe'. Cette instruction "gèle" le fichier principal de la base de données, ce qui permet d’effectuer une sauvegarde sûre en utilisant le système de fichiers, même si des utilisateurs sont connectés et effectuent des opérations sur les données. Toutes les modifications apportées par les utilisateurs à la base de données seront écrites dans un fichier séparé, appelé fichier delta (delta file).

Note

L’instruction `BEGIN BACKUP', malgré sa syntaxe, ne démarre pas une sauvegarde de base de données, mais crée seulement les conditions pour qu’elle ait lieu.

La proposition FEND BACKUP est conçue pour faire passer la base de données du mode copy-safe au fonctionnement normal. Cette instruction fusionne le fichier delta avec le fichier principal de la base de données et rétablit le fonctionnement normal, ce qui ferme la possibilité de créer des sauvegardes sûres en utilisant le système de fichiers. (Une sauvegarde sûre utilisant l’utilitaire [app]``gbak'' reste disponible).

Example 1. Mise en mode "copie sécurisée" de la base de données
ALTER DATABASE
BEGIN BACKUP;
Example 2. Remettre la base de données en fonctionnement normal à partir du mode "copie sécurisée".
ALTER DATABASE
END BACKUP;

Modifier le jeu de caractères par défaut

La phrase SET DEFAULT CHARACTER SET modifie le jeu de caractères par défaut de la base de données. Ce changement n’affecte pas les données existantes. Le nouveau jeu de caractères par défaut ne sera utilisé que dans les commandes DDL suivantes, qui utiliseront en outre le tri par défaut pour le nouveau jeu de caractères.

Example 1. Modification du jeu de caractères par défaut de la base de données
ALTER DATABASE SET DEFAULT CHARACTER SET WIN1251;

Modification des privilèges d’exécution par défaut

Depuis Firebird 4.0, il est maintenant possible de spécifier les objets de métadonnées avec quels privilèges ils seront exécutés : appelant ou utilisateur définissant. Ceci est fait en utilisant l’option SQL SECURITY, qui peut être spécifiée pour une table, un trigger, une procédure, une fonction ou un package. Si l’option INVOKER est sélectionnée, l’objet de métadonnées sera exécuté avec les privilèges de l’utilisateur appelant. Si l’option DEFINER est sélectionnée, l’objet de métadonnées sera exécuté avec les privilèges de l’utilisateur qui le définit (propriétaire). Si la clause SQL SECURITY n’est pas spécifiée lors de la création d’un module ou d’une table PSQL, l’option INVOKER est utilisée par défaut.

La clause SET DEFAULT SQL SECURITY modifie les privilèges d’exécution avec lesquels les modules PSQL (procédures stockées, fonctions et packages) sont exécutés par défaut.

Example 1. Modification des privilèges d’exécution par défaut

Après avoir exécuté cette déclaration, les modules PSQL seront exécutés par défaut avec l’option `SQL SECURITY DEFINER'.

ALTER DATABASE SET DEFAULT SQL SECURITY DEFINER;

LINGER

La proposition SET LINGER vous permet de définir un délai de fermeture de la base de données. Ce mécanisme permet à Firebird, en mode SuperServer, de garder la base de données ouverte pendant un certain temps après la fermeture de la dernière connexion. disposent d’un mécanisme de fermeture différée de la base de données. Cela peut contribuer à améliorer les performances et à réduire les coûts dans les cas où la base de données est fréquemment ouverte et fermée, tout en gardant les ressources "réchauffées" jusqu’à la prochaine ouverture.

Tip

Ce mode peut être utile pour les applications Web où la connexion à la base de données ne dure généralement que très peu de temps.

La phrase DROP LINGER supprime le délai et ramène la base de données à son état normal (sans délai). Cette commande équivaut à mettre le délai à 0.

Tip

La suppression de "LINGER" n’est pas la meilleure solution pour répondre au besoin temporaire de le désactiver pour une action ponctuelle qui nécessite de forcer un arrêt du serveur. L’utilitaire gfix'' dispose maintenant d’un commutateur [option]NoLinger'' qui fermera immédiatement la base de données spécifiée après la disparition de la dernière connexion, indépendamment des paramètres LINGER de la base de données. Le réglage "LINGER" sera sauvegardé et fonctionnera normalement la prochaine fois.

En outre, le remplacement ponctuel est également disponible via les services API, en utilisant le tag isc_spb_prp_nolinger, par exemple (dans une ligne comme celle-ci) :

fbsvcmgr host:service_mgr user sysdba password xxx
action_properties dbname employee prp_nolinger
Example 1. Réglage d’un délai de 30 secondes
ALTER DATABASE SET LINGER 30;
Example 2. Suppression du délai
ALTER DATABASE DROP LINGER;

ou

ALTER DATABASE SET LINGER 0;

Cryptage des bases de données

L’instruction ALTER DATABASE avec la phrase ENCRYPT WITH crypte la base de données avec le plugin de cryptage spécifié. Le chiffrement commence immédiatement après cette déclaration et s’exécute en arrière-plan. Le fonctionnement normal de la base de données n’est pas perturbé pendant le cryptage.

Note

Le processus de cryptage peut être surveillé en utilisant le champ MON$CRYPT_PAGE dans la pseudo-table MON$DATABASE ou visualisé sur la page d’en-tête de la base de données en utilisant gstat -e.

gstat -h fournira également des informations limitées sur l’état du cryptage.

Par exemple, la requête suivante

select MON$CRYPT_PAGE * 100 / MON$PAGES from MON$DATABASE

affichera le pourcentage d’achèvement du processus de cryptage.

La clause optionnelle KEY permet de passer un nom de clé au plugin de cryptage. Le plugin décide de ce qu’il faut faire avec ce nom de clé.

L’instruction ALTER DATABASE avec la clause DECRYPT décrypte la base de données.

Example 1. Cryptage des bases de données
ALTER DATABASE ENCRYPT WITH DbCrypt;
Example 2. Décryptage de la base de données
ALTER DATABASE DECRYPT;

Gestion de la réplication

L’instruction ALTER DATABASE avec la phrase ENABLE PUBLICATION active la réplication de la base de données.

ALTER DATABASE ENABLE PUBLICATION

Pour désactiver la réplication de la base de données, exécutez l’opérateur

ALTER DATABASE DISABLE PUBLICATION

Les modifications seront appliquées dès que la transaction sera confirmée.

Un ensemble de réplication (ou publication) doit être défini lorsque la réplication est activée. Il comprend les tables à répliquer. Cela se fait également à l’aide de la commande DDL :

ALTER DATABASE INCLUDE {TABLE <table_list> | ALL} TO PUBLICATION

<table_list> ::= tablename [, tablename ...]

Si le mot-clé ALL est utilisé, le jeu de réplication inclura toutes les tables, y compris celles qui seront créées ultérieurement. La commande se présentera comme suit :

ALTER DATABASE INCLUDE ALL TO PUBLICATION

Vous pouvez spécifier un ensemble spécifique de tables pour la réplication. Pour ce faire, spécifiez une liste de tables séparées par des virgules après le mot-clé TABLE. Dans l’exemple suivant, nous autorisons la réplication pour les tables t1 et t2 :

ALTER DATABASE INCLUDE TABLE t1, t2 TO PUBLICATION

L’opérateur suivant est utilisé pour exclure des tables d’un ensemble de réplication (publication) :

ALTER DATABASE EXCLUDE {TABLE <table_list> | ALL} FROM PUBLICATION

<table_list> ::= tablename [, tablename ...]

L’utilisation du mot-clé ALL exclura toutes les tables du jeu de réplication. Si toutes les tables ont été précédemment ajoutées à la publication à l’aide du mot-clé ALL, cet opérateur désactivera la publication automatique pour les tables nouvellement créées. La commande se présentera comme suit :

ALTER DATABASE EXCLUDE ALL FROM PUBLICATION

Vous pouvez spécifier un ensemble spécifique de tables à exclure de la réplication. Pour ce faire, spécifiez une liste de tables séparées par des virgules après le mot-clé TABLE. Dans l’exemple suivant, nous excluons les tables t1 et t2 du jeu de réplication :

ALTER DATABASE EXCLUDE TABLE t1, t2 FROM PUBLICATION

Les tables activées pour la réplication peuvent être davantage filtrées en utilisant deux paramètres dans le fichier de configuration replication.conf : include_filter et exclude_filter. Il s’agit d’expressions régulières qui sont appliquées aux noms de tables et définissent des règles pour inclure des tables dans le jeu de réplication ou les exclure du jeu de réplication.

Qui peut faire un `ALTER DATABASE' ?

Qui peut exécuter l’opérateur ALTER DATABASE :

  • Administrateurs ;

  • Propriétaire de la base de données ;

  • Utilisateurs avec le privilège `ALTER DATABASE'.

DROP DATABASE

affectation

Suppression de la base de données actuelle.

Disponible en

DSQL, ESQL

Syntaxe
DROP DATABASE

L’instruction DROP DATABASE supprime la base de données actuelle. Avant que la base de données soit supprimée, elle doit être jointe. L’opérateur supprime le primaire, tous les fichiers secondaires et tous les fichiers de la copie fantôme.

Qui peut supprimer la base de données ?

Qui peut exécuter l’opérateur DROP DATABASE :

  • Administrateurs ;

  • Propriétaire de la base de données ;

  • Utilisateurs avec le privilège `DROP DATABASE'.

Exemples

Example 1. Suppression d’une base de données

Suppression de la base de données à laquelle le client est connecté.

DROP DATABASE;