Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

40
SQL Server 2012 の新機能を使ってみよう。 DB 管理者向け機能の紹介 小澤 真之 (@Masayuki_Ozawa) http://engineermemo.wordpress.com

Transcript of Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

Page 1: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

SQL Server 2012 の新機能を使ってみよう。DB 管理者向け機能の紹介

小澤 真之 (@Masayuki_Ozawa)

http://engineermemo.wordpress.com

Page 2: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

本資料は Denali (SQL Server 2012) CTP3 をベースに作成しています。 そのため、製品版では動作が変わる可能性があります。 あらかじめご了承ください。 SQL Server 2012 RC0 は 2011 年末に提供開始予定 SQL Server 2012 の RTM は 2012 年 1H に提供開始予定

はじめに

2

CTP : Community Technology Preview RC : Release Candidate (製品候補版)

Page 3: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

本日の Agenda

2011/10/29 3

Page 4: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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

Page 5: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

2011/10/29 5

Page 6: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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

“いつでも” “どこからでも” 使えるように 柔軟な高可用性環境を提供

Page 7: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

7

Availability Groups

Page 8: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

従来までの複製を保持した可用性環境

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

8

SQL Server 2008 R2 までのミラーリングの構成

プリンシパル (更新可能)

ミラー (待機サーバー)

ウィットネス (監視サーバー)

ミラーリング エンドポイント

プリンシパル : 1 台 ミラー : 1台

ウィットネス : 1 台

Page 9: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

従来までの複製を保持した可用性環境

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

9

プリンシパル ミラー

Server=プリンシパルサーバー名; Failover Partner=ミラーサーバー名; Initial Catalog=ミラーリングデータベース名

ミラー

SQL Server に対しての接続文字列を使用して プリンシパルとミラーを識別

プリンシパル

Page 10: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

Availability Group を使用した可用性環境

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

10

プライマリ (更新可能)

ミラーリング エンドポイント

セカンダリ (読み取り可能な

複数の待機サーバー)

WSFC : Windows Server Failover Clustering

Active Directory

プライマリ: 1 台 セカンダリ: 4 台

制御用 クラスターリソース

必須

Page 11: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

Availability Group を使用した可用性環境

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

11

プライマリ セカンダリ

リスナー

セカンダリ

リスナー

Server=リスナー名; Initial Catalog=AlwaysOnデータベース名;

Availability Group リスナーを経由してプライマリ / セカンダリに接続

接続文字列はリスナーに対しての接続情報

プライマリ

ApplicationIntent=ReadOnly;

Page 12: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

• ミラーリングと Availability Group の接続の違い

• セカンダリサーバーの利用

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

12

Page 13: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

13

Failover Clustering

Page 14: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

従来までの一般的なクラスターの構成

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

共有ストレージ

Page 15: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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 を使用することで設定可能

Page 16: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

柔軟性のあるフェールオーバーポリシー

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 のクラスター

Page 17: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

• 共有ディレクトリを使用した構成の確認

• ローカルディスクに配置した tempdb

• 柔軟なフェールオーバーポリシーの設定

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

17

Page 18: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

18

Server Core

Page 19: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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 の機能は使用できないので管理は基本的にリモートで実施

Page 20: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

• Server Core にインストールした SQL Server に接続

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

20

Page 21: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

2011/10/29 21

Page 22: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

Contained (包含) Database

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

22

• ユーザーデータベースにログイン情報を含んだユーザーを作成

ログインの包含

• 一時テーブルの作成時に tempdb の照合順序ではなくユーザー

データベースの照合順序を使用

照合順序の包含

Page 23: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

ログインの包含

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

23

master

ログイン

User DB

ユーザー

SQL Server

クライアント

今までのログイン方式

ログイン 認証

ユーザー マッピング

master User DB

ユーザー

SQL Server

クライアント

ログインの包含

ログイン 認証 +

ユーザーマッピング

ユーザーがデータベース内で完結しているので、データベースをまたいだクエリの実行が難しい

Page 24: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

バックアップ / リストアで見る

Contained データベースの動作

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

24

Page 25: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

照合順序の包含

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

Page 26: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

一時テーブル使用時の照合順序の違い

テーブル変数使用時の照合順序

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

26

Page 27: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

2011/10/29 27

Page 28: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

インデックスの種類

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

28

• 従来からのインデックス

• 行を基本としてデータを格納

Rowstore インデックス

• Project “Appolo” と呼ばれていたもの

• PowerPivot で使用されている VertiPack エンジンを採用

• 列を基本としてデータを格納

Columnstore インデックス

Page 29: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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 インデックスを設定している場合、テーブルを直接更新することはできない

•パーティショニングと組み合わせてパーティションのスイッチをすることでデータの追加は可能

データの更新

Page 30: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

ルートノード

中間ノード

リーフノード

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) 構造 ページ

Page 31: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

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

内部構成

Page 32: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

• Columnstore Index の制限を見てみる

• Rowstore インデックスと Columnstore インデックスの

読み取りページ数の違い

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

32

Page 33: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

2011/10/29 33

Page 34: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

サーバーロール

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

34

• 特定の権限の集まりをロールとして定義し、SQL Server のログイン

に一定の権限を付与することができる

• SQL Server ではあらかじめ固定サーバーロールとして、一定の役割

を持つロールが準備されている

• sysadmin : SQL Server の管理者、サーバーに対してすべての操作

ができる

ログインの権限を定型化したもの

サーバーロール

sysadmin

ログイン

Page 35: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

ログインに対しての権限の設定

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

35

• ユーザーが独自のサーバーロールを作成することはできなかった

• データベースロールは作成可能だったがサーバーロールは作成できなかった

• サーバーロールで設定できる一部の権限を付与したい場合は、ログインに直接

権限を付与する必要があった

• 複数のログインに同等の権限を付与したい場合、個別に権限付与をする必要

があった

SQL Server 2008 R2 まで

• ユーザーが独自のサーバーロールを作成することが可能になった

•ログインに対しての権限の管理性が向上している

SQL Server 2012

Page 36: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

サーバーロールを使用した DB の表示制御

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

36

Page 37: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

AlwaysOn

Contained (包含) Database

Columnstore インデックス

サーバーロールの作成

管理ツールの機能強化

SQLTO 第 3 回勉強会 http://www.sqlto.net

2011/10/29 37

Page 38: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

管理ツールの機能強化

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

38

•リストア機能の強化

•拡張イベントの作成

•コードスニペットが利用可能に

SQL Serer Management Studio

Page 39: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

• SQL Server 2012 の SSMS のリストア画面

• 拡張イベントの作成

• コードスニペットの利用

2011/10/29 SQLTO 第 3 回勉強会 http://www.sqlto.net

39

Page 40: Sql server 2012 の新機能を使ってみよう。db 管理者向け機能の紹介

最後に

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 による可用性の向上