FirebirdSQL logo

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 lespour 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;