はじめに
タイトル通り、以下のMicrosoftのページでも紹介されているSQL Serverのレプリケーション機能を使用して、バージョンが異なる場合のレプリケーション設定を行なっていきます。
docs.microsoft.com
構築する環境情報は以下です。
- 環境:AWS(EC2)
- OS:Windows Server 2012
- プライマリ SQL Server:2012 Standard
- セカンダリ SQL Server:2016 Standard
SQL Serverのレプリケーションについては、以下の記事がわかりやすいので、そちらをご確認ください。
dev.classmethod.jp
上記記事でも書いてありますが、レプリケーションには複数の種類があります。
今回はレプリケーションを行う前の事前準備のみ書いていきます。
実際のレプリケーション設定については、別途アップする記事をご確認ください。
※SQL Serverのレプリケーションの種類についてはこちらを参照
レプリケーションの種類 - SQL Server | Microsoft Docs
レプリケーションの設定はこちらです。
capybara-engineer.hatenablog.com
実施内容
- レプリケーション用Windowsアカウント作成
- スナップショットフォルダー準備
- ディストリビューション構築
- DBアクセス許可設定
実施作業
レプリケーション用Windowsアカウント作成
まずはレプリケーション用のアカウントを作成していきます。
Windowsアカウント作成(レプリケーション元)
(公式手順によると)レプリケーションエージェントを実行する用のアカウントが必要なので、まずはレプリケーション元(2012)のEC2でアカウントを作成します。
作成対象ユーザ
ユーザ名 |
---|
repl_snapshot |
repl_distribution |
repl_logreader |
repl_merge |
コントロールパネルを開き、以下の手順で新しいユーザを選択します。
この設定を元に4つ新規ユーザを作成します。
ユーザが作成されるとユーザー一覧に表示されるようになります。
Windowsアカウント作成(レプリケーション先)
同様にレプリケーション先(2016)のEC2でもアカウントを新規作成します。
作成対象ユーザ
ユーザ名 |
---|
repl_distribution |
repl_merge |
作成したユーザが一覧に表示されました。
スナップショットフォルダー準備
次にレプリケーション元のDBのスナップショットの作成と保存に使用されるフォルダを作成します。
今回はレプリケーション元のDB(2012)上のCドライブ配下にbackupフォルダを作成し、その中にレプリケーション用フォルダを作成しました。
作成できたら、右クリック→プロパティを選択し、共有タブを開きます。
フォルダを作成したばかりでは共有設定がされていないので、共有設定をしていきます。
画像の通りの手順で共有を許可するユーザの追加ボタンを押下します。
以下の手順で事前に作成したスナップショット用のユーザを指定します。
『コンピュータ名(レプリケーション元)\ユーザ名』になっていればOKです。
追加対象のユーザとそれぞれの必要な権限は以下の通りです。
ここまで設定できれば、共有の画面は『OK』ボタンを押下して閉じます。
※プロパティ設定は続くので閉じないでください。
設定対象ユーザ
ユーザ名 | アクセス権限 |
---|---|
repl_snapshot | フルコントロール権限 |
repl_distribution | 読み取り権限 |
repl_merge | 読み取り権限 |
今度はセキュリティタブの編集ボタンから先ほどと同じ手順でユーザの追加、権限の変更を行います。
※追加するユーザ、設定する権限は先ほどと一緒です。
最後に共有設定をしたフォルダのネットワークパスをメモして、『OK』ボタンを押下してプロパティ設定は閉じます。
ディストリビューション構築
スナップショットフォルダーの設定ができたら、ディストリビューションの設定をしていきます。
ディストリビューションが何かよくわからないと思いますが、簡単に言うとプライマリDBのスナップショットやトランザクションログをレプリカDBに対して配布してくれる用の機能です。
※Microsoft公式の手順では以下の通り、パブリッシャー(データ出力元)とディストリビューター(配布者)は共有のインスタンスで構築するようになっています。
SQL Server Management Studioを起動ログインし、Replicationフォルダの右クリックから『Configure Distribution...』を押下します。
ディストリビューション構成ウィザードが立ち上がるので、それを進めていきます。
上を選択し、『Next』を押下します。
スナップショットフォルダーは先ほど共有設定したフォルダを設定し、残りの設定は規定値で進めます。
問題なく完了したら『Close』ボタンで終了します。
DBアクセス許可設定
事前準備の最後に、作成したWindowsアカウントでレプリケーションDBにアクセスできるように設定していきます。
SQL Server Management Studioを起動ログインし、Replicationフォルダの右クリックから『New Login...』を押下します。
以下の手順で序盤に作成したWindowsアカウントを指定します。
Windowsアカウントの指定ができたら、DBとのマッピングを行います。
マッピング対象のDBはレプリケーション対象DBとディストリビューションDBの2つで、ロールはどちらともdb_ownerのロールを設定します。
同じ設定を以下のユーザすべてで行います。
設定対象ユーザ
ユーザ名 |
---|
repl_snapshot |
repl_logreader |
repl_logreader |
repl_merge |
作成ができたら図のようにDBのログインユーザ一覧に、作成したWindowsアカウントが表示されます。
以上で事前準備は完了になります。
次回は今回実施した内容を元にトランザクションレプリケーションを実施していきます。
docs.microsoft.com