どのような理由で、どのような状況で「オフラインにする」/ ALTER DATABASE dbName SET OFFLINE
機能。
オフラインデータベースで実行できるタスクは何ですか?オフラインデータベースでのみ実行できるタスクは何ですか?
MDFファイルを別のサーバーに移動してオンラインにすることができます。
開発/ステージング環境では、データベースをオフラインにして、アプリケーション内のデータベースの適切なインスタンスに接続していることと、どこかに接続文字列が接続されていないことを確認すると便利な場合があります。
とはいえ、この状況では、環境ごとに異なるデータベース名を使用し、接続文字列を自動的に構成するビルドプロセスを使用する方がはるかに適切です...
同様に、何らかの理由でオンラインに戻る必要がある(そうではない)オフチャンスでデータベースを使用停止にする前に、データベースを一定期間オフラインにしたいと思います。私はそれを取り除きたいときに自分のデータベースの1つに知らないフックを持っている開発者に何度も噛まれました。オフラインにしておくと、削除して必要に応じて復元するよりも大幅に時間がかからなくなります。
もう1つは、緊急時の保護手段です。私は以前これをしなければならなかった。アプリに厄介なバグが見つかることもありますが、悪意はありませんが、データベース内のデータが破損する可能性があります。データベースをオフラインにすると、バグを特定するまで出血を止めることができます。その後、それをオンラインに戻して、データベース内の損傷を評価できます。
ここでの回答の一部は、アクセスが制限されたデータベースで何ができるかについていくつかのアイデアを提供するかもしれませんが、オフラインのデータベースで実際にできることは多くありません。データの更新、アップグレード、追加、削除などはできません。
私の包括的な理由、私がDBAに販売する必要があるのは、列挙したいよりも頻繁に...
「SAN修復が必要です...いいえ、ドライブをホットスワップするだけではできません。バックプレーン/コントローラーに障害があります。」
ディスクがなくなると、DBインスタンスの動作が非常に悪くなります。
したがって、SAN=をオフラインにする前にSQLインスタンスをシャットダウンし、一度に1つずつ戻し、リソースと競合しないようにします。最初のインスタンスが起動すると、すべてのクラスターリソースとアクティブDBノードになり、後続のインスタンスはパッシブノードとして実行されます。