バックアップを使用して大規模データベースのトランザクションレプリケーションを初期化する方法
本記事では、大規模なデータベースに対してスナップショットを作成せずに、データベースバックアップを使ってサブスクリプションを初期化し、トランザクションレプリケーションを構築するための詳細な手順を紹介します。スナップショット方式は大規模データベースでは非常に時間がかかるため、その代替手段として非常に有効です。
はじめに
非常に大規模なSQL Serverデータベースに対してトランザクションレプリケーションを構築するのは、大きな作業となります。一般的に、レプリケーションを設定する際にはスナップショットを生成しますが、その作成にかかる時間や、スナップショットフォルダに必要となるディスク容量までは考慮されないことが少なくありません。
初期スナップショットの作成やサブスクライバーの再初期化に長時間を要することを避けるために、本記事ではSQL Serverのデータベースバックアップからサブスクライバーを初期化する簡単な方法を解説します。
セットアップの詳細手順
トランザクションレプリケーションを構築するには、まずディストリビューターを構成する必要があります。この検証環境ではディストリビューターはすでに構成済みです。構成方法については、以下のMicrosoft公式ドキュメントを参照してください。
https://docs.microsoft.com/en-us/sql/relational-databases/replication/configure-publishing-and-distribution?view=sql-server-ver15
処理ステップの概要
- パブリケーションの作成
- パブリケーションプロパティの変更
- パブリッシャーデータベースのバックアップ
- サブスクライバーデータベースへのバックアップの復元
- T-SQLによるサブスクリプションの作成(GUIではデータベースバックアップからの初期化がサポートされていないため)
今回のシナリオの構成
このシナリオでは、以下の構成でトランザクションレプリケーションを設定します。
- パブリッシャー + ディストリビューター:Node1
- サブスクライバー:Node2
- パブリッシャーデータベース:ABC_Pub
- サブスクライバーデータベース:ABC_Sub
- パブリケーション:ABC_Pub_Bkp
- サブスクリプション:ABC_Sub_Bkp
ステップ1:レプリケーション対象のデータベースを選択してパブリケーションを作成する
パブリッシャーデータベースとして ABC_Pub を選択します。
ステップ2:パブリケーションの種類とレプリケーションに参加させるテーブルを選択する
レプリケートするアーティクル(テーブル)を選択します。
ステップ3:スナップショットの設定をスキップする
今回はスナップショットの代わりにデータベースバックアップファイルを使用するため、スナップショット関連の項目は空欄のまま「次へ」をクリックします。これでパブリケーション「ABC_Pub_Bkp」が作成されます。
ステップ4:「バックアップファイルからの初期化を許可」をTrueに設定する
T-SQLで設定する場合:sp_changepublication を使用して該当オプションを変更します。
GUIで設定する場合:パブリケーションのプロパティを開き、「サブスクリプション オプション」ページで「バックアップ ファイルからの初期化を許可」を「True」に設定し、「OK」をクリックして変更を保存します。
ステップ5:「ディストリビューションのクリーンアップ」ジョブを無効化する
SQL Serverエージェントのジョブ名を右クリックし、「無効化」を選択します。
重要:次のステップでバックアップを取得する前に、必ずこのジョブを無効化してください。無効化しない場合、エラーが発生する可能性があります。
ステップ6:パブリッシャーでデータベースのバックアップを実行する
パブリッシャーデータベース(ABC_Pub)の完全バックアップを取得します。
ステップ7:サブスクライバーサーバーでバックアップを復元する
取得したバックアップを、サブスクライバーサーバー上のサブスクライバーデータベース(ABC_Sub)として復元します。
ステップ8:sp_addsubscriptionを実行する
GUIではデータベースバックアップからの初期化がサポートされていないため、パブリケーションデータベースに対して sp_addsubscription を実行し、必要なパラメーター(sync_type = initialize with backup など)を指定します。
ステップ9:「ディストリビューションのクリーンアップ」ジョブを再度有効化する
他のすべての手順が完了したら、無効化しておいたディストリビューションクリーンアップジョブを再度有効にします。
ステップ10:レプリケーションモニターで状態を確認する
SSMSの「レプリケーション」→「レプリケーション モニター」からレプリケーションの状態を確認します。パフォーマンスが「優れた」状態になっていること、またバックアップファイルを使用して初期化を行ったため、プロセス全体を通じてスナップショットエージェントが一切作成されていないことが確認できます。
まとめ
データベースバックアップファイルからの初期化は、大規模データベースの同期時に発生する多くの問題を解決しますが、一方でいくつかの新たな課題も生じさせます。これらの問題は適切な計画によって十分解決可能であり、本記事がそのプロセスを簡素化する一助となれば幸いです。
ご意見やご質問がある場合は、フィードバックタブをご利用ください。また、私たちとの対話もぜひお気軽にどうぞ。
-
WordPressデータベースのマルウェアスキャンと駆除方法を徹底解説
最近、データベースに何か奇妙なものを見つけませんでしたか?見覚えのないテーブルがいくつも存在する、あるいはoptionsテーブルに不明なURLが記録されている——そんな経験はありませんか?これらは、ハッキングされたデータベースを示す典型的な兆候です。WordPressデータベースには、WordPressサイトに関するあらゆる情報が保存されています。データベースがハッキングされると、攻撃者は情報を盗み出したり、サイトを別のWebサイトへ不正にリダイレクトさせたりといった被害をもたらします。しかし、心配はいりません。データベースへの感染はWordPressサイト運営者にとってごく一般的なトラブルで
-
Macのおすすめバックアップソフト9選|無料で使える定番ツールを徹底比較
Macのデータを守るためにバックアップが必要な理由 何ものも永遠には続きません。それは高性能なMacであっても例外ではありません。macOSには高度なセキュリティ機能が備わっていますが、サイバー攻撃やデータ漏洩の脅威から完全に守られているわけではありません。 さらに、突然の停電による電源障害でシステムが起動しなくなるリスクにも対処できません。だからこそ、日頃からデータのバックアップを取っておくことが重要です。その作業を自動化・効率化してくれるのがMac用バックアップソフトです。 本記事では、個人用・ビジネス用のファイルを安全に保管できる、信頼性の高いMac向けバックアップソフトを厳選してご紹介