SE の雑記

SQL Server の情報をメインに Microsoft 製品の勉強内容を日々投稿

Denali CTP3 Express Core の新機能 LocalDB を触ってみる

4 comments

Denali CTP3 Express Core (SQL Server Express) では LocalDB という機能が追加されています。
SQL Server "Denali" Express LocalDB
# SSDT "Juneau" をインストールしてもこそっと導入されていそうな雰囲気もありますが。

LocalDB はサービスではなく、必要に応じてプロセスが起動される SQL Server Express Core となっています。 

今回はこの LocalDBを 軽く触ってみたいと思います。

参考にさせていただいたコンテンツはこちらになります。
SQL Server Express LocalDB Reference
SQL Server Express LocalDB Instance API Reference
Denali CTP3 introduces LocalDB – Think SQL Server Express crossed with SQL CE (or SQL CE grown up or SQL Express made as almost as easy CE)
SQL Server 2011 Express LocalDB Installation
SQL Server LocalDB Management Utility SqlLocalDB.exe

■LocalDB をインストール


LocalDB をインストールするために

MicrosoftR SQL ServerR コードネーム ‘Denali’, Community Technology Preview 3 (CTP 3)
MicrosoftR SQL ServerR コードネーム ‘Denali’ Express Core Community Technology Preview 3 (CTP 3)

のどちらかからインストーラーをダウンロードします。
# Denali CTP3 のインストーラーでも Express Core をインストールすることが可能となっています。
image

今回は CTP3 のインストーラーで Express Core を選択してインストールをしていきたいと思います。

LocalDB のインストールですが、機能の選択で [LocalDB] を選択します。
image

LocalDB だけをインストールする場合は、.NET Framework 3.5 SP1 / 4.0 はインストールしなくても問題ないようです。

LocalDB のインストールはインスタンス情報 / 照合順序 / データファイル / 管理者アカウントの設定は必要なく完了します。
image

LocalDB に必要となるファイルは [C:Program FilesMicrosoft SQL Server110LocalDB] にインストールされます。
# 単純に配置しているだけでなくレジストリも設定していますので XCOPY でファイルを動かせば他の環境でも使用できるというものではなさそうです。
image

ファイルサイズも 147MB 程度とかなりコンパクトになっています。
image

 

■LocalDB に接続する


LocalDB はサービスではなく必要に応じて SQL Server のプロセス (sqlservr.exe) が起動してデータベースをホストする形式で動作します。

そのため、SQL Server のサービスはインストールされません。
# SQL Server VSS Writer はインストールされるようですが。
image

LocalDB の管理ですが、コマンドラインの管理ツールである [SQLLOCALDB.exe] を使用します。
この EXE ですが、[C:Program FilesMicrosoft SQL Server 110ToolsBinn] に格納されています。
# インストール後 PATH に上記のディレクトリが追加されているはずです。

この EXE の詳細については SQL Server Express LocalDB Reference に記載されています。

LocalDB にもインスタンスの概念があり、この EXE を使用してインスタンスの作成 / 削除 / 開始 / 停止といった作業を実施することができます。

まずはテスト用のデータベースを作成したので、インスタンスを作成したいと思います。

インスタンスの作成には以下のコマンドを使用します。

sqllocaldb create "<インスタンス名>"

image

つづいて、インスタンスの情報を確認してみます。

sqllocaldb info

image

指定したインスタンスが作成されていることが確認できますね。
[v11.0] は既定で自動作成されるインスタンスになるようです。

インスタンスの詳細な情報を見るためには以下のコマンドを実行します。

sqllocaldb info <インスタンス名>

image

インスタンスの詳細な情報が表示されました。
インスタンスの作成時に [-s] を指定すると作成後に起動した状態にできるのですが、今回は手動で起動してみます。

sqllocaldb start <インスタンス名>

image

インスタンスが起動した状態で再度情報を確認してみます。
image

状態が実行中になり、接続するための名前付きパイプの情報が表示されていますね。
インスタンスを Start したタイミングで SQL Server のプロセスが起動します。
image

それでは、この名前付きパイプを使用して接続をしてみたいと思います。

SQLCMD でも SSMS のどちらでも接続できるのですが、今回は SSMS で接続をしてみます。
サーバー名に先ほど取得した名前付きパイプを指定することで接続ができます。
image

後の管理は通常の SQL Server Express Core を使用する場合と変わりません。
image

LocalDB のシステムデータベースのファイルですが、[C:Users<ユーザー名>AppDataLocalMicrosoftMicrosoft SQL Server LocalDBInstances<インスタンス名>] に格納がされるようです。
image

細かくは見れていないのですが、ベースになるシステムデータベースは、[C:Program FilesMicrosoft SQL Server110LocalDBBinnTemplates] に格納されているものが使われているのかなと思っています。

ちなみに照合順序は、[SQL_Latin1_General_CP1_CI_AS] のようです。
image

 

■LocalDB は手動で起動させる必要はありません


先ほどは手動で LocalDB を起動しましたがアプリケーションから利用する場合このようなことを行うのは面倒ですよね。
LocalDB は必要なタイミングで自動で起動しますので、明示的に手動で起動する必要はありません。

アプリケーションから LocalDB に接続をする場合は、接続先のサーバーを以下のように指定します。
image

[(localdb)<インスタンス名] の形式ですね。
この形式で指定することで起動していない LocalDB にも接続が可能となっています。
image

SSMS では手動でインスタンスを起動して、名前付きパイプを指定しないとうまく接続ができなかったのですが、SQLCMD であれば以下のような指定でインスタンスを事前に起動していなくても接続が可能です。
image

 

アプリケーションを開発している方だといろいろと面白い使い方ができるかもしれないですね。
調べると奥が深そうな機能ですが、まずはさわりの部分だけ投稿してみました。

Share

Written by Masayuki.Ozawa

8月 10th, 2011 at 12:41 am

Posted in SQL Server

Tagged with , ,

4 Responses to 'Denali CTP3 Express Core の新機能 LocalDB を触ってみる'

Subscribe to comments with RSS or TrackBack to 'Denali CTP3 Express Core の新機能 LocalDB を触ってみる'.

  1. […] 以前、Denali CTP3 Express Core の新機能 LocalDB を触ってみる という投稿をしました。 […]

  2. […] is My Database?Local Data OverviewLocalDB の共有名を使用してみる – SE の雑記Denali CTP3 Express Core の新機能 LocalDB を触ってみる ≪ SE の雑記SqlLocalDB UtilitySQL Server LocalDB Management Utility SqlLocalDB.exeタグ: LocalDB, SQL Server […]

  3. […] Denali CTP3 Express Core の新機能 LocalDB を触ってみる […]

  4. […] 以前、Denali CTP3 Express Core の新機能 LocalDB を触ってみる という投稿を書いてみたのですが、DB の移行に関しては書いていなかったので少しまとめてみたいと思います。 […]

Leave a Reply