Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
-
Upload
masayuki-ozawa -
Category
Documents
-
view
4.449 -
download
0
Transcript of Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介
SQL Server 2012 の新機能を使ってみよう。DB 管理者向け機能の紹介
小澤 真之 (@Masayuki_Ozawa)
http://engineermemo.wordpress.com
本資料は Denali (SQL Server 2012) CTP3 をベースに作成しています。 そのため、製品版では動作が変わる可能性があります。 あらかじめご了承ください。 SQL Server 2012 RC0 は 2011 年末に提供開始予定 SQL Server 2012 の RTM は 2012 年 1H に提供開始予定
はじめに
2
CTP : Community Technology Preview RC : Release Candidate (製品候補版)
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
本日の Agenda
2011/10/29 3
Beyond Relational
Denali 新機能ハイライト
4
High Availability
AlwaysOn
柔軟性のある フェールオーバー
ポリシー
アプリケーション中心の
フェールオーバー
読み取り可能な マルチセカンダリ
オンライン操作
HA for StreamInsight
Server Core サポート
Scalability &Performance
15,000の パーティション
Columnstore インデックス
FileStream の速度向上
Full Text の速度向上
FileTable
Security & Managebility
ユーザー定義 サーバーロール
SSDT "Juneau"
Contained Database
OpsMgr Management Pack for HA
セカンダリを使用したバックアップ
Windows グループの
既定のスキーマ
Web & Breadth
参照資料 : Denali Overview What’s New Feature Technical Overview
PHP ドライバー
JDBC 4.0 ドライバー
Semantic Platform
ローカル DB
UTF-16
結果セットのページング
Full Globe Spatial
サポート
DAC の拡張
ODBC for Linux
ARM プロセッサ サポート
Business Intelligence
Unified Semantic
Model
Project "Crescent"
インメモリ BI
セルフサービス アラート
SSAS の Sysprep
PowerPivot の機能拡張
SharePoint 共有サービスで レポーティング
Enterprise Information
Management
SSIS サーバー
Change Data Capture
for Oracle
Master Dataサービス
Add-in for Excel
Data Quality サービス
Master Data サービスの機能
拡張
空間データの 速度向上
Distributed Replay
Active Directory With SharePoint
For SSRS
ハイブリッド アプリケーション
With SQL Azure
Win32 アクセス to
Database Files
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
2011/10/29 5
AlwaysOn
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
6
•データベースミラーリングよりさらに上の可用性を提供
•複数のセカンダリを保持することが可能
•透過的な接続によるフェールオーバー
Availability Groups
•マルチサブネットでクラスターを構築可能
•ファイルサーバーを使用した共有ディスク不要のクラスター
•ただしファイルサーバーは Windows Server 2008 or R2 を使用する必要がある
•tempdb に関してはローカルディスクに配置可能
•柔軟性のあるフェールオーバーポリシー
Failover Clustering
•Server Core 上での SQL Server のサポート
Server Core
“いつでも” “どこからでも” 使えるように 柔軟な高可用性環境を提供
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
7
Availability Groups
従来までの複製を保持した可用性環境
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
8
SQL Server 2008 R2 までのミラーリングの構成
プリンシパル (更新可能)
ミラー (待機サーバー)
ウィットネス (監視サーバー)
ミラーリング エンドポイント
プリンシパル : 1 台 ミラー : 1台
ウィットネス : 1 台
従来までの複製を保持した可用性環境
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
9
プリンシパル ミラー
Server=プリンシパルサーバー名; Failover Partner=ミラーサーバー名; Initial Catalog=ミラーリングデータベース名
ミラー
SQL Server に対しての接続文字列を使用して プリンシパルとミラーを識別
プリンシパル
Availability Group を使用した可用性環境
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
10
プライマリ (更新可能)
ミラーリング エンドポイント
セカンダリ (読み取り可能な
複数の待機サーバー)
WSFC : Windows Server Failover Clustering
Active Directory
プライマリ: 1 台 セカンダリ: 4 台
制御用 クラスターリソース
必須
Availability Group を使用した可用性環境
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
11
プライマリ セカンダリ
リスナー
セカンダリ
リスナー
Server=リスナー名; Initial Catalog=AlwaysOnデータベース名;
Availability Group リスナーを経由してプライマリ / セカンダリに接続
接続文字列はリスナーに対しての接続情報
プライマリ
ApplicationIntent=ReadOnly;
• ミラーリングと Availability Group の接続の違い
• セカンダリサーバーの利用
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
12
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
13
Failover Clustering
従来までの一般的なクラスターの構成
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
14
192.168.0.1/24 192.168.0.2/24
SELECT @@SERVERNAME で死活監視
サブネット 255.255.255.0
System DB User DB tempdb
共有ストレージ
SQL Server 2012 で可能なクラスターの構成
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
15
192.168.0.1
tempdb
System DB User DB
172.23.0.1
tempdb
ファイルサーバー
sp_server_diagnosticsでインスタンスの死活監視
サブネット 255.255.255.0
サブネット 255.255.0.0
※ローカルディスクを使用した tempdb については SQL Server 2008 R2 でも -T3615 を使用することで設定可能
柔軟性のあるフェールオーバーポリシー
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
16
•定期的に [SELECT @@VERSION] を実行して、SQL Server の稼働状況を診断
SQL Server 2008 R2 までのクラスター
•[sp_server_diagnostics] を使用して、以下の 5 つの観点から稼働状況を診断
•system / resource / query_processing /io_subsystem / events
•FailureConditionLevel を変更することでフェールオーバーの条件を変更可能
•Failover Clustering では 0 ~ 5 の 6 段階で設定可能
•http://msdn.microsoft.com/en-us/library/ff878667(SQL.110).aspx
•Availability Groups では 1 ~ 5 の 5 段階で設定可能
•http://msdn.microsoft.com/en-us/library/ff878601(SQL.110).aspx
SQL Server 2012 のクラスター
• 共有ディレクトリを使用した構成の確認
• ローカルディスクに配置した tempdb
• 柔軟なフェールオーバーポリシーの設定
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
17
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
18
Server Core
Server Core に SQL Server をインストール
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
19
•Server Core は最小限の構成で動作する Windows Server のため、適用
対象となるパッチの数が少ない
•OS は Windows Server 2008 R2 SP1 の Server Core を使用
パッチ適用時のダウンタイムの低減
• クライアントツール (SSMS / BIDS), Reporting Services は使用
できない
•http://msdn.microsoft.com/ja-jp/library/hh231669(SQL.110).aspx
SQL Server のフル機能は使用できない
•サーバー上でSQLCMD コマンドラインツールで管理も可能
GUI の機能は使用できないので管理は基本的にリモートで実施
• Server Core にインストールした SQL Server に接続
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
20
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
2011/10/29 21
Contained (包含) Database
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
22
• ユーザーデータベースにログイン情報を含んだユーザーを作成
ログインの包含
• 一時テーブルの作成時に tempdb の照合順序ではなくユーザー
データベースの照合順序を使用
照合順序の包含
ログインの包含
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
23
master
ログイン
User DB
ユーザー
SQL Server
クライアント
今までのログイン方式
ログイン 認証
ユーザー マッピング
master User DB
ユーザー
SQL Server
クライアント
ログインの包含
ログイン 認証 +
ユーザーマッピング
ユーザーがデータベース内で完結しているので、データベースをまたいだクエリの実行が難しい
バックアップ / リストアで見る
Contained データベースの動作
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
24
照合順序の包含
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
25
tempdb User DB
CREATE TABLE #tmp
Japanese_XJIS_100_CI_AS Japanese_BIN2
INSERT INTO #tmp (Col1) VALUES (N'A‘) SELECT * FROM #tmp WHERE Col1 = N‘a'
tempdb User DB
CREATE TABLE #tmp
Japanese_XJIS_100_CI_AS
INSERT INTO #tmp (Col1) VALUES (N'A‘) SELECT * FROM #tmp WHERE Col1 = N‘a'
Non Contained Database
Contained Database
一時テーブル
一時テーブル
検索結果あり
検索結果なし
Japanese_BIN2
一時テーブル使用時の照合順序の違い
テーブル変数使用時の照合順序
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
26
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
2011/10/29 27
インデックスの種類
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
28
• 従来からのインデックス
• 行を基本としてデータを格納
Rowstore インデックス
• Project “Appolo” と呼ばれていたもの
• PowerPivot で使用されている VertiPack エンジンを採用
• 列を基本としてデータを格納
Columnstore インデックス
Columnstore インデックスの制限
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
29
•binary / varbinary / ntext / text / image / varchar(max) / nvarchar(max) / uniqueidentifier /
timestamp / sql_variant/ decimal (18 桁以上) numeric (18 桁以上) / datetimeoffset (2 桁以上) /
CLR 型 (hierarchyid / spatial types) / xml
一部のデータ型を含めることができない
•1023 列を含むインデックスが作成可能
•テーブルの最大列数は 1024 なのでほぼすべての列をインデックスに含むことができる
•クラスター化 / 非クラスター化インデックスの最大列数は 16
•900 バイト以上のデータをインデックスに含むことができる
•クラスター化 / 非クラスター化インデックスは、インデックス内に含める列のサイズの合計を 900
バイト以内にする必要がある
設定可能な列数
•Columnstore インデックスを設定している場合、テーブルを直接更新することはできない
•パーティショニングと組み合わせてパーティションのスイッチをすることでデータの追加は可能
データの更新
ルートノード
中間ノード
リーフノード
Rowstore インデックス
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
30
ID 姓 名 性別
1 井口 拓海 男
2 平岡 頼子 女
3 小畑 美樹 女
4 小宮 喜一郎 男
5 前川 涼子 女
ID
ID ID
ID 姓 名 性別 ID 姓 名 性別 ID 姓 名 性別 ID 姓 名 性別
B-Tree (Balanced Tree) 構造 ページ
Rowgroup
Segment Segment Segment Segment
Rowgroup
Columnstore インデックス
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
31
ID 姓 名 性別
1 井口 拓海 男
2 平岡 頼子 女
3 小畑 美樹 女
4 小宮 喜一郎 男
5 前川 涼子 女
Columnstore インデックス
ID 1 2 3 4 5
ID
姓 井口 平岡 小畑 小宮 前川
名 拓海 頼子 美樹
喜一郎 涼子
性別 男 女 女 男 女
姓 名 性別
Dictionary
Segment
内部構成
• Columnstore Index の制限を見てみる
• Rowstore インデックスと Columnstore インデックスの
読み取りページ数の違い
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
32
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
2011/10/29 33
サーバーロール
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
34
• 特定の権限の集まりをロールとして定義し、SQL Server のログイン
に一定の権限を付与することができる
• SQL Server ではあらかじめ固定サーバーロールとして、一定の役割
を持つロールが準備されている
• sysadmin : SQL Server の管理者、サーバーに対してすべての操作
ができる
ログインの権限を定型化したもの
サーバーロール
sysadmin
ログイン
ログインに対しての権限の設定
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
35
• ユーザーが独自のサーバーロールを作成することはできなかった
• データベースロールは作成可能だったがサーバーロールは作成できなかった
• サーバーロールで設定できる一部の権限を付与したい場合は、ログインに直接
権限を付与する必要があった
• 複数のログインに同等の権限を付与したい場合、個別に権限付与をする必要
があった
SQL Server 2008 R2 まで
• ユーザーが独自のサーバーロールを作成することが可能になった
•ログインに対しての権限の管理性が向上している
SQL Server 2012
サーバーロールを使用した DB の表示制御
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
36
AlwaysOn
Contained (包含) Database
Columnstore インデックス
サーバーロールの作成
管理ツールの機能強化
SQLTO 第 3 回勉強会 http://www.sqlto.net
2011/10/29 37
管理ツールの機能強化
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
38
•リストア機能の強化
•拡張イベントの作成
•コードスニペットが利用可能に
SQL Serer Management Studio
• SQL Server 2012 の SSMS のリストア画面
• 拡張イベントの作成
• コードスニペットの利用
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
39
最後に
2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net
40
SQL Server 2012 には他にもたくさんの機能が追加されています。
CTP3 はどなたでもダウンロード可能ですので、みなさんもどんどん触ってみてください。
自習書がいつもながらのハイクオリティで提供されていますので、とても参考になります。
http://www.microsoft.com/japan/sqlserver/2008/r2/denali/movie.mspx
SQL Server "Denali" CTP3 新機能ダイジェスト
SQL Server "Denali" 新機能ダイジェスト (BI 編)
SQL Server "Deanli" DWH (データ ウェアハウス) 関連の新機能
SQL Server AlwaysOn による可用性の向上