ロック前の計画を慎重に行うことで、SQL または MySQL データベースが読み取り専用ステータスに変換された後も、意図したとおりに機能し、指定されたユーザー グループが引き続きアクセスできることが保証されます。この先見の明により、将来更新や変更が必要になった場合に、データベースのロックを安全に解除できることも保証されます。
データベースを読み取り専用に設定することには、DBA の共感を呼ぶ一定の魅力があります。あたかもデータベースが成熟に達し、定期的な更新の必要なしに世界に飛び出す準備ができているかのようです。
もちろん、データベースを読み取り専用に設定する理由は、一時的であれ永続的であれ、データベース自体と同じくらい多様です。ここでは、ユーザーがその内容にアクセスできるようにしながら、SQL または MySQL データベースの内容をロックする方法の包括的な概要を示します。
Atif Shehzad が MSSQLTips サイトで鋭く指摘しているように、データベースをロックする前にデータベースを微調整して最高のパフォーマンスを確保することが重要です。たとえば、読み取り専用データベースでは統計を更新したり、インデックスを作成したり最適化したりすることはできません。さらに、データベースのオブジェクトに拡張プロパティを追加したり、その権限を編集したり、ユーザーを追加/削除したりすることはできません。
Shehzad は、データベースを読み取り専用に変換する前に実行する、綿密な 8 ステップの事前ロック スクリプトを提供します。このチェックリストには、トランザクション ログのバックアップの作成から、アクセス許可の変更、統計の更新まで、すべてが含まれています。
8 ステップのロック前チェックリストにより、データベースが読み取り専用に切り替わる前に最適化され、バックアップされていることを確認します。出典: MSSQLTips.
データベースが最適化されてバックアップされたら、ALTER DATABASE [データベース名] SET READ_ONLY コマンドまたはシステム ストアド プロシージャ sp_dboption のいずれかを使用します (ストアド プロシージャは最新バージョンの SQL Server から削除されているため、前者をお勧めします)。または、SSMS でデータベースを右クリックし、プロパティ > オプションを選択し、データベース読み取り専用の状態をTrueに設定することもできます。 ]。 SSMS ではデータベースのアイコンと名前が変更され、読み取り専用状態であることが示されます。
MySQL データベースを読み取り専用として構成する主な動機は、バックアップ プロセス中のデータ損失を防ぐことです。 MySQL ドキュメント ライブラリは、レプリケーション セットアップでのマスター サーバーとスレーブ サーバーのバックアップ、グローバル読み取りロックの利用、read_only システム変数の操作に関する包括的なガイドラインを提供します。
ソース
レプリケーション セットアップ ガイドラインでは、マスター サーバー (M1)、スレーブ サーバー (S1)、およびクライアント (M1 に接続された C1、および S1 に接続された C2) を想定しています。マスターの読み取り専用モードへの移行を容易にし、バックアップ完了時にマスターを通常の動作に復元するコマンドの概要を以下に示します。 (特定のバージョンでは、「ENABLED」は「1」と同義であり、「DISABLED」は「0」と同等であることに注意してください。)
予備コマンドはデータベースを読み取り専用に切り替え、後続のコマンドはバックアップの完了時にデータベースを通常の状態に戻します。ソース: MySQL ドキュメント ライブラリ.
読み取り専用状態では、データベースにクエリを実行できますが、変更することはできません。 StackOverflow の 2013 年 8 月 23 日の投稿では、データベース全体のパフォーマンスに影響を与える可能性が低い、特定のユーザーの DML 権限を取り消してから復元する方法について説明しています。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3