web-dev-qa-db-fra.com

Comment sauvegarder la base de données IBM DB2 en ligne?

J'ai essayé de sauvegarder la base de données IBM DB2 (LUW) à l'aide de cette commande:

./db2 backup database DBEMP to /home/user1/db2bkup

Mais j'ai reçu ce message:

SQL1035N La base de données est en cours d'utilisation. SQLSTATE = 57019

Ensuite, j'ai essayé ceci:

./db2 backup database DBEMP online to /home/user1/db2bkup

Et j'ai reçu ce message:

La sauvegarde en ligne SQL2413N n'est pas autorisée car la base de données n'est pas récupérable ou une condition de sauvegarde en attente est en vigueur.

Qu'est-ce que ça veut dire? Existe-t-il un autre moyen de sauvegarder la base de données en ligne? Je ne peux pas arrêter la base de données car elle est utilisée.

7
null

Malheureusement, il n'est pas possible d'effectuer une sauvegarde en ligne d'une base de données DB2 si elle est en mode de journalisation circulaire , qui est la valeur par défaut pour les bases de données DB2 lors de leur création.

Vous pouvez vérifier si votre base de données utilise la journalisation circulaire en émettant:

./db2 get db cfg for dbemp | grep LOGARCH

Si les deux options LOGARCHMETH sont désactivées ...

First log archive method       (LOGARCHMETH1) = OFF
Second log archive method      (LOGARCHMETH2) = OFF

... vous devrez alors modifier la configuration de votre base de données pour utiliser journalisation des archives avant de pouvoir effectuer des sauvegardes. Je ne suis pas sûr à 100% de cela, mais je pense que vous devrez redémarrer votre base de données et effectuer une sauvegarde hors ligne avant de pouvoir commencer à prendre des sauvegardes en ligne.

La procédure à suivre est décrite dans documentation IBM "Configuration des options de journalisation de la base de données" .

Notez que si vous passez de LOGCING CIRCULAIRE à LOGGING ARCHIVE, vous devrez déterminer quoi faire avec vos fichiers journaux archivés. Les stocker sur SAN/NAS/bande pour permettre la récupération par restauration peut être une très bonne idée si ces données sont importantes pour vous.

9
Nathan Jolly

Les sauvegardes en ligne nécessitent que la base de données soit activée pour la récupération aval. Cependant, ce n'est pas la valeur par défaut lorsque vous créez une base de données.

Pour ce faire, vous devez définir le LOGARCHMETH1 base de données paramètre de configuration . Une fois que vous avez fait cela, vous devrez effectuer une sauvegarde hors ligne (c'est-à-dire qu'aucun utilisateur ne peut être connecté).

Une fois ces étapes terminées, vous pourrez exécuter des sauvegardes en ligne comme vous le souhaitez.

Vous souhaiterez peut-être passer du temps à lire la section Data Recovery du guide d'administration de la base de données DB2 pour vous familiariser avec la sauvegarde/récupération DB2.

4
Ian Bjorhovde