Pourquoi devrais-je mettre une base de données hors ligne?


15

Pour quelles raisons et dans quelles situations utiliseriez-vous la fonction "Take Offline" / ALTER DATABASE dbName SET OFFLINE.

Quelles tâches pouvez-vous effectuer avec une base de données hors ligne? Quelles tâches pouvez-vous effectuer uniquement avec une base de données hors ligne?

Réponses:


16

Vous pouvez déplacer le fichier MDF vers un autre serveur pour le mettre en ligne.


4
+1, ou un autre lecteur / dossier / SAN ...
Chris S

Est-ce la seule utilisation pour "mettre hors ligne"?
Greg B

5
Non, je peux penser à d'autres raisons. Imaginez que vous ayez plusieurs bases de données, pour plusieurs applications. L'une de ces applications obtient une mise à niveau de l'application frontale (application Web, client, qui sait.) Vous souhaitez désactiver l'accès à la base de données par quiconque pendant la mise à niveau, mais vous ne voulez pas arrêter tout le serveur à cause des autres bases de données. Cela pourrait être une raison pour le mettre hors ligne. Je suis sûr que votre imagination pourrait trouver d'autres raisons aussi.
mfinni

Mon imagination ne peut pas, j'ai peur, d'où la question. Je ne pensais pas que vous pouviez modifier une base de données hors ligne, donc je ne vois pas comment la mettre hors ligne pourrait aider au processus de mise à niveau
Greg B

2
Greg B - j'ai dit spécifiquement la mise à niveau du front-end, pas la DB elle-même. Dans le scénario que j'ai décrit, la base de données reste inchangée. Il serait mis hors ligne pour s'assurer que personne n'y accède pendant la transition.
mfinni

18

Dans les environnements de développement / de transfert, il est parfois utile de mettre une base de données hors ligne pour vous assurer que vous vous connectez à la bonne instance de la base de données dans l'application et que vous n'avez pas de chaîne de connexion jacked quelque part.

Cela dit, dans cette situation, c'est une bien meilleure idée d'avoir des noms de base de données différents pour les différents environnements et un processus de construction qui configurera automatiquement vos chaînes de connexion ...

De même, j'aime mettre les bases de données hors ligne pendant un certain temps avant de les mettre hors service au hasard (pas si vrai) que, pour une raison quelconque, elles doivent revenir en ligne. J'ai été mordu plusieurs fois par des développeurs qui ont des hooks que je ne connais pas dans l'une de mes bases de données quand je veux m'en débarrasser. Le mettre hors ligne est beaucoup moins drastique et prend moins de temps que le supprimer et le restaurer si nécessaire.

Une autre chose serait une sauvegarde d'urgence. J'ai dû faire ça avant. Parfois, un bug méchant est trouvé dans votre application qui, même s'il n'est pas malveillant, corrompra toujours les données de votre base de données. Mettre la base de données hors ligne est un moyen rapide d'arrêter le saignement jusqu'à ce que le bug soit identifié. Vous pouvez ensuite le remettre en ligne pour évaluer les dommages dans la base de données.


2
J'aime l'idée de mettre hors ligne avant de supprimer
Greg B

8
Idem. J'ai quatre mille bases de données dans nos environnements de pré-production. Il est parfois difficile de savoir à qui appartient quoi. Le mettre hors ligne et attendre les cris est parfois la seule option.
Michael Green

6

Bien que certaines des réponses ici puissent vous donner quelques idées sur ce que vous pouvez faire avec une base de données dont l'accès est limité, peu de choses peuvent réellement être faites avec une base de données hors ligne. Vous ne pouvez pas mettre à jour, mettre à niveau, ajouter ou supprimer des données, etc.


2
Correct. Si vous voulez pouvoir faire beaucoup avec la base de données, il vaut mieux la mettre en mode mono-utilisateur. Ensuite, vous restreignez toujours l'accès, mais vous pouvez faire beaucoup plus.
Sean Howat

Vous ne pouvez même pas le renommer!
Dima Fomin

0

Ma raison primordiale, celle que je dois vendre aux DBA plus souvent que je ne voudrais énumérer ...

"Le SAN doit être réparé ... et non, je ne peux pas simplement remplacer à chaud un lecteur, le fond de panier / les contrôleurs sont en faute."

Les instances de base de données se comportent très mal lorsque leurs disques disparaissent.

Ainsi, j'arrête les instances SQL avant de mettre le SAN hors ligne, puis les ramène une à la fois afin qu'elles ne contestent pas les ressources - la première instance prend toutes les ressources du cluster et devient le nœud Active DB, les instances suivantes s'exécutent comme nœuds passifs.


-3

Il y a plusieurs raisons pour lesquelles vous auriez besoin de faire cela ..

À titre d'exemple,

consider changing or upgrading the actual database program/binary...
consider changing or upgrading the schema or tables..
consider changing or upgrading index's..

Le point le plus important ..

Is taking a backup.. to get a perfect snapshot in time.. 

(dans certaines bases de données, vous créez simplement un verrou sur toutes les tables)


+1, également un SGBD plus ancien pour la défragmentation ou la réduction de la base de données.
Chris S

1
re: "modification ou mise à niveau du schéma", à partir de livres en ligne "HORS LIGNE La base de données est fermée, fermée proprement et marquée hors ligne. La base de données ne peut pas être modifiée lorsqu'elle est hors ligne." Comment pouvez-vous mettre à niveau le schéma dans cette situation?
Greg B

Désolé .. je faisais référence à apporter des modifications à une base de données inactive .. Im un suiveur MySQL, j'ai supposé qu'une mise à niveau aurait lieu sur une base de données qui est marquée hors ligne, donc elle n'a eu aucun problème de concurrence avec autre chose que le changement nécessaire. Peut-être que nous pouvons laisser cela de côté alors: D
Arenstar

2
De vraies bases de données prennent en charge de vraies sauvegardes, vous savez. Vous n'avez pas besoin de prendre autre chose qu'un jouet en ligne pour faire une sauvegarde cohérente dans le temps. Un db nécessitant un verrou ou un autre mécanisme stupide est un jouet. Vraiment. Toutes les principales bases de données n'ont aucun problème avec des sauvegardes complètes, cohérentes, alors qu'elles sont très utilisées.
TomTom
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.