SQL Server 2016 のオフラインインストールについて

SQL Server 2016 が GA となって一か月経過し、ポツポツ情報が出始めているこの頃です。
インストーラー(setup.exe)を起動してみると…

SQL2016インストーラートップ

なんか、過去バージョンと微妙に違っています。

SQL2014インストーラートップ

インストール対象環境がインターネット接続できる場合には何も問題ないですが、オフラインインストール時に
問題なくインストールできるのかは気になります。で、実際にやってみると、↓ で止まると思います。

SQL2016-R2

ウィザードに表示されている URL からダウンロードすればいいのですね。
では、アクセスしてみます。(ウィザードがテキスト表示だけでリンクになっていないのが残念)

https://go.microsoft.com/fwlink/?LinkId=761266&lcid=1041
https://go.microsoft.com/fwlink/?LinkId=735051&lcid=1041

すると、2016/07/01 現在だと

SRO_3.2.2.803_1033.cab
SRS_8.0.3.0_1033.cab

のファイルがダウンロードできます。このファイルを適当なフォルダーにコピーして選択してみると…

SQL2016-R3

「次へ」ボタンが非活性のままで、先に進まねえっすよ。
どうなってんだ、これ。

解決方法ですが、先ほどダウンロードしたファイルの名前を変更してから、再度、フォルダーを指定します。

  • SRO_3.2.2.803_1033.cab  SRO_3.2.2.803_1041.cab に変更する
  • SRS_8.0.3.0_1033.cab SRS_8.0.3.0_1041.cab に変更する

なんだかねぇ。
Microsoft のサイトを探しまくったら、米国サイトに情報がありました。

URL 文字列に 1041 を足しているんだから、こういうのは直してほしいもんです。

広告

DTCTester の使い方

DTCTester は、MS-DTC を使い、SQL Server に対する分散トランザクションの動作を確認することができるツールです。
内部的には、ODBC データソースを使い、SQL Server データベースのトランザクション サポートを確認しています。
DTC の設定は問題ないのか、DTC が動いているか、等確認する際には、便利なツールなので紹介します。
なお、DTCTester は実際に SQL Server に接続して、一時テーブルを作成するので、SQL Server があることが前提です。

まず、上記をダウンロードして、どっか適当なフォルダーに展開しておく。

[ クライアント側の設定]

  • MS-DTC の設定
  • ODBC データソースの定義
  1. MS-DTC の設定
    Client_MS-DTC設定1
    Client_MS-DTC設定2
    上記でクライアント側の MS-DTC の設定は完了です。
    なお、MS-DTC は設定を変更したら、DTC サービスを再起動する必要があります。
  2. DTCTester は、DTC に対して ODBC データソースを使って SQL Server にアクセスするように指示します。
    では、データソースを定義しておきます。なお、クライアント側が 64bit OS の場合には、
    32bit の ODBC データソース(C:\Windows\SysWOW64\odbcad32.exe)で作成することを
    忘れないようにしてください。(DTCTester が 32bit ツールのため)
    Client_DSN作成1
    Client_DSN作成2
    Client_DSN作成3Client_DSN作成4
    Client_DSN作成5Client_DSN作成6
    Client_DSN作成7

この投稿の続きを読む

SQL Server 用のポートを開く

Windows Server 2008/Vista では既定でファイアウォールが ON です。
SQL Server 2005/2008 をインストールした際、外部からの接続がファイアウォールに
よって拒否されてしまいます。
そのため、SQL Server 用のポートを開いておく必要があります。
最低限、以下のポートを開いておけば何とかなると思います。

SQL Server 用のポート

既定のインスタンス用ポート 1433
netsh firewall set portopening TCP 1433 "SQLServer"

管理接続用ポート 1434
netsh firewall set portopening TCP 1434 "SQL Admin Connection"

SQL Server Service Broker 用ポート 4022 
netsh firewall set portopening TCP 4022 "SQL Service Broker"

Transact-SQL Debugger/RPC 用ポート 135
netsh firewall set portopening TCP 135 "SQL Debugger/RPC"

Analysis Services 用のポート

SSAS 既定のインスタンス用ポート 2383
netsh firewall set portopening TCP 2383 "Analysis Services"

SQL Server Browser Service 用ポート 2382
netsh firewall set portopening TCP 2382 "SQL Browser"

以下はオプションで。

SQL Server ブラウザで使うポート
netsh firewall set portopening UDP 1434 "SQL Browser"

SQL Server ブラウザに反応するためのブロードキャスト
netsh firewall set multicastbroadcastresponse ENABLE

SQL Server 2005 SP2 適応後の Windows Vista ユーザー権限追加ツール

Windows Vista に SQL Server 2005 をインストールし、その後 SQL Server 2005 Service Pack 2 を適用し、
完了すると 「 Vista での SQL Server ユーザーの準備 」 ツールなるものが起動します。

でも、たまたま、対象の SQL Server 2005 のインスタンスが停止しているとエラーと言って終了してしまいます。
インストール後、スタートメニューを見ても、そんなものはどこにもありません。
オンラインヘルプを見ても、どれが実際のモジュールなのかがまったくわかりませんでした。
で、探してみたところ

C:\Program Files\Microsoft SQL Server\90\Shared\SqlProv.exe

が実体でした。
これダブルクリックして起動すると、「 Vista での SQL Server ユーザーの準備 」 が起動します。
・・・ヘルプに書いといてください。

SQL Server 2005 ユーザーデータベースをデタッチ/アタッチで移行する

マシンの入れ替えをする際によくあるシナリオです。
私も先日、XP から Vista に移行したのですが、コンピューター名は違えど、ユーザー名は同じにしてしまいがち。
自宅の PC ですし…(といいわけ)

普通に、元 SQL Server からデータベースをデタッチして、新 SQL Server にデータベースをアタッチする。
そして、SQL ログインユーザーを作成して、既定のデータベースを割り当てると

エラー15023:ユーザーまたはロール’XXXXX’はカレントデータベースに既に存在します。

というエラーが発生することがあります。
実は、データベースユーザーは、SQL ログインアカウントの SID にマップされるので、このエラーが発生してしまいます。
この場合には、慌てずに以下の方法で解決しましょう。

KB314546 SQL Server を実行しているコンピュータ間でデータベースを移動する方法
手順4: 不明なユーザーを解決する方法
ここで紹介されている sp_change_users_login を使って不明なユーザーをリストアップします。

USE データベース名
EXEC sp_change_users_login ‘Report’

次に、不明なユーザーのマッピングを修復するには、
KB274188 [SQL]PRB: 対応するログインの存在しないユーザー
のように sp_change_users_login を使い、ユーザーを解決します。

USE データベース名
EXEC sp_change_users_login ‘Update_One’,’DBユーザー名’,’ログイン名’

これでめでたしめでたしです。
異なる SQL Server 間で、同じ SID を持ったSQL Server 認証用ログインアカウントを作成するには、本来は、
「データベース コピー ウィザード」を使用するか、
サポート技術情報(KB)の KB246133 で提供される sp_help_revlogin ストアドプロシージャを使用した方が無難です。

別 SQL Server にデータベースを持っていくときの Tips です。