search
LoginSignup
71
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

updated at

SQL Server AlwaysOn 構築メモ(その1)

最近はめっぽうMySQLなのですが、仕事で少し触る機会があったので、備忘も兼ねてメモしておきます。

基本的にはMSさんのよく出来た自習書を見ればいいのですが、1つ難点なのが重要前提手順となるWindows Server Failover Clustering(WSFC)の構成の詳細が書かれていないことです。

WSFCについては、やまさんノートが参考になります。

また、手順書では操作がコマンドラインだったり、GUIだったりするので、ここではGUIでのやり方に極力統一してみます。

全体構成

1つの記事として書くには量が多いので、数回にわけました。

必要に応じて追加していくつもりです。

本シリーズの前提

前提知識

ここでは、Windows Serverや、SQL Serverのインストール経験があることを前提にしていますので、Windows ServerやSQL Serverのインストールの詳細は説明していません。

前提環境

  • OS : Windows Server 2012 R2 Standard
  • SQL : SQL Server 2014 (Enterprise or Developer)

となります。SQL Serverは2012でも手順はほぼ変わりません。

その他

私は、Mac上のVMWare Fusionでテストしましたが、もちろん、実サーバ、クラウドでも何でもかまいません。
Azure上での構築はSEの雑記が参考になります。

本編での主な内容

本編では、前提知識整理とActiveDirecotryの構築くらいまでを書きます。

  • 前提知識の整理
  • ActiveDirecotryの設定

AlwaysOnとは?

そもそもAlwaysOnは、SQL Server2012から搭載された冗長化のための機能で、複数のSQL Serverのグループ(可用性グループ)を仮想的に1台のSQL Serverのに見せ、グループのいずれか1台が正常に機能していれば、接続先からは正常に動いているように見せるという技術です。

いわゆるシェアードナッシングで構成できるため、非常にお手軽かつ強力なソリューションです。

説明すればきりがないので詳細な説明は他の記事に譲ります。

AlwaysOnの登場要素

AlwaysOnの構成要素は広範囲に及ぶので、0から設定していると、今、自分が何を、何のために設定しているのかわからなくなります。ですので登場要素や意味を簡単におさらいしておきます。

AlwaysOnの要素に対する私の理解はおおよそ下記のような感じです。

ao

2台のSQLサーバがリスナーを介して利用者からは1台に見えます。
通常はプライマリ(SQL1)が動いていますが、SQL1がダウンした際には、SQL2がプライマリになります。
リスナーや障害検知等、冗長化機能のベースはWSFC(Windows Server Failover Clustering)が提供しており、WSFC含め、全体の制御基盤をAD(ActiveDirectory)が提供しているという感じです。

alwaysOnは可用性向上のソリューションであって、基本、負荷分散はできません。ただ、SQL2はReadOnly用のDBとしては使えるのでMySQLのレプリケーションのように、用途がマッチすれば参照系の分散はできます。

つまり、0ベースからAlwaysOnを利用するためには、

  • ADの構築
  • WSFCの構築(SQL Serverをホストする各サーバにおいて)
  • SQL Serverの設定

を行う必要があるということです。

構築の前提

では、具体的な設定を見ていきたいと思います。
ここでは、Windows Server 2012 R2のインストールを完了し、かつ、Windows Updateを適用した3台のサーバが存在することを前提に話を進めます。構築に利用する各サーバは、

  • WS2012R2-AD (略AD)
  • WS2012R2-SQL1 (略SQL1)
  • WS2012R2-SQL2 (略SQL2)

という名前にします。
IPアドレス等は上記の図の通りとします。IPベースで言えば、実サーバの3つに加え、リスナー用に1つ。クラスター(管理)用に1つの、合わせて5つのIPを仕様することになります。

作業の大きな流れとしては、

  • ADの構築
  • SQL1,SQL2をドメインに参加させる
  • SQL1,SQL2上でWSFCを構成
  • SQL1,SQL2にSQL Serverをインストール
  • SQL1,SQL2をAlwaysOnできるよう構成
  • AlwaysOn(可用性グループ)の設定

という感じになります。

ActiveDirectoryの設定

ADにActiveDirectoryを構成します。
ADの設定は多くの情報があるので、詳細は他に譲ります。ここでは主要部分だけ抜粋して紹介します。

ActiveDirecotryのインストール

サーバの役割の追加から「ActiveDirecotryドメインサービス」を追加します。

ao

ドメインコントローラーへの昇格(構成)

インストールするだけではためなので、インストール後、「このサーバーをドメインコントローラーに昇格する」で、ドメインコントローラーに昇格させます。昇格作業はウイザードにしたがって行っていきます。

ao

テストなので、既存のフォレストやドメインは無いと思いますので、配置構成では「新しいフォレストを追加する」を選びます。
ルート/ドメインは、適当でいいですが、hoge.localとか分かりやすいものを登録しておきましょう(もちろん、本番なら、まじめに設定します)。

ao

あとは基本デフォルトで進めていきます。

ao

いくつかのアラートはあるものの、正常に構成されたメッセージがでればそれでOKです。

ドメインへの参加

ADが構成されたので、SQL1とSQL2をセットアップし、ドメインに参加させましょう。
先述の通り、SQL1,SQL2はWidnwos Server 2012 R2 Stdがインストールされた状態(SQLは未インストール)として話を進めます。

ドメインを認識するためには、サーバの名前解決ができないといけないので、SQL1,SQL2のDNSとしてADマシンのIPを指定します。

ao

その後、システムのプロパティからドメインに参加させます。

ao

登録時にはアカウントとパスワードを聞いてきますので、それぞれadministratorとそのパスワードを入力して下さい。
SQL1,SQL2で同じ操作を行った後、各サーバを再起動します。

ADサーバの「ユーザーとコンピューター」にて、両サーバが認識されているか確認します。
認識されているようです。

ao

ここまでの手順で次のWSFCの構築ステップにむけた基本的な準備が整いました。
その1は、ひとまずここまでとして、つづきはその2をどうぞ。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
71
Help us understand the problem. What are the problem?