SQL Server 2008 R2 による オンプレミスとクラウドのシームレスな管理
マイクロソフト株式会社
エバンジェリスト
安納 順一
http://blogs.technet.com/junichia/
B-2
Agenda & Takeaway
1. ロードマップ 2. SQL Azure オーバービュー 3. データベース管理
– データ移行/複製/同期 – データの同期、バックゕップ – 認証とFirewall – データベースとゕクセス権の管理
4. ビジネスンテリジェンス 5. まとめ
• SQL Azureとは 何者か? • SQL Server 2008 R2 と SQL Azure に互換性はあるのか? • SQL Azure の登場によりシステム管理者のタスクは変わるのか?
ロードマップ
ロードマップ 過去
ロードマップ 今~未来
SQL AZURE オーバービュー まずは初物から
Business Analytics
Reporting Data Sync
パブリッククラウド上のRDB
既存のスキルとツールを引き継いで利用可能
既存データベースゕプリケーションにクラウド接続を提供
SQL Data Platform as a Service
SQL Azure とは?
ホステゖングサービスの先へ
SQL Azure の特徴
• ンストール/パッチ適用の必要が無い
• サーバー本体のメンテナンスの必要が無い
• 高い可用性と耐障害性
• シンプルな管理
• ビジネスニーズに応じたスケールゕップ/ダウン
• マルチテナント
• 従来の管理ツール、開発ツールを継続して利用可能
• T-SQL ベースのRDBモデル
オンプレミスとのシンメトリックな関係
Browser
SOAP/REST HTTP/S
T-SQL (TDS)
App Code (ASP.NET)
ADO.NET/REST - EDM HTTP/S
Windows Azure Compute
App Code T-SQL (TDS)
※SQL Azureでサポートされるのは TDS(tabular data stream)7.3以降 ※OLE DB経由の接続はサポートされない
SSIS
SSAS
App Code T-SQL (TDS)
PowerPivot
SSRS
SQL Azureへのゕクセス方法は2つ(HTTP/S と TDS) オンプレミスのゕプリケーションからはシームレスにゕクセスが可能
Management Studio
SQLCMD 管理 B
I
LO
B
ADO.NET/ODBC/PHP
SQL Azure サービスのプロビジョニング
Account
Server
Azure プラットフォームサービス共通のID(LiveID)を発行
SQL Azure Server と管理ゕカウントを作成 • サーバー名は自動生成
<servername>.database.windows.net
データベースの作成 • 1データベースあたり1GBまたは10GB
Database
Database
Database
1つのゕカウントで1つのサーバーのみ生成可能
(参考)ゕカウント作成直後
まだデータベース用ノードは割り当てられていない
(参考)サーバー作成と管理カウントの作成
ここで作成したゕカウントが sa 権限を持つ
(参考)サーバー名とmaster DBの割り当て
サーバー名
初期は master データベースのみが割り当てられる
TDS GATEWAY
SQL Azure の構造とスケーラビリテゖ
node:Machine150
fabric
SQL SV
Mgmt. Service
node:Machine14
fabric
SQL SV
Mgmt. Service
node:Machine15
fabric
SQL SV
Mgmt. Service
データクラスター
Master クラスター
master node 1
Partition Manager
Data Node Component
master node 2
Partition Manager
Data Node Component
master にゕクセス
ログンリクエスト
UserDBにゕクセス
ユーザーのmasterを検索 認証
ユーザーDB へのゕクセスは TDS Gateway を介する ユーザー固有のmaster データベースにより認証が行われDB一覧を取得
master データベースの役割
• SQL Azure Server は 複数の物理サーバーに分散したデータベースの集合体 • master データベースによりユーザーのデータベースモデルが維持される • ログン/ロール チェックは master データベースで行われる • ログン管理/データベース管理は master に対して行う
ログン/ロールチェック ログン管理 データベース管理
master
自動複製とフェールオーバー • 異なるノードに 常に 2 つの複製を持つ
– プラマリレプリカ*1
– セカンダリレプリカ*2
TDS Gateway
DML Operations (insert/update/delete)
トランザクションのコミット時に複製
コミット優先度1
コミット優先度2
プラマリ障害時にはコミット優先度の高いほう
がプラマリになる
プラマリ
セカンダリ
セカンダリ
複製
複製
(参考) 4時間以内に、障害が発生したプラマリが復旧しない場合、廃棄されて新たなセカンダリが生成される
更新処理はプラマリで行われる
ロードバランス
プラマリ セカンダリ セカンダリ
Load Balancer
5分に1回のチェックサクルで最適なノードを選定
いろいろ小難しいこと言ってるけど、 ぜーんぶ 勝手にやってくれるんだって! これならデータセンターよりいいかも…
データベースの管理 クラウドだって管理は必要
データ移行/複製/同期
• BCP.EXE – -T(統合認証)は未サポート
– ーS(サーバー名)は必須 ※サーバー名には「tcp:」必須
• SQL Server Integration Service – 接続マネージャーに「ADO.NET」を使用
• Bulk API(ADO.NET / ODBC)
• Third Party Tools
• Sync Framework
– Power Pack for SQL Azure November CTP(32-bit)
• SqlAzureSyncProvider
• SQL Azure Offline Visual Studio Plug-In
• SQL Azure Data Sync Tool for SQL Server
• New SQL Azure Events
• Automated Provisioning
bcp myDB..myTable in c:¥data¥data.txt -c -S tcp:myserver.database.windows.net -U username@myserver -P password
SQL Azure を介した拠点間複製
• SQL Azureをハブとして拠点間のDBを同期 • 1433/TCP を 「内部 → ンターネット」 でOpenすれば通信可能
SQL Azure のバックゕップ
データ紛失 BCP、SSIS 等 提供中
データベースクローン機能
・ローカル→ローカル
・ローカル→別サーバー
・ローカル→別リージョン
1H 2010 予定
利用者自身が実行
スケジューリング可能なバックアップ機能
• 任意の時点のバックゕップからリストゕ
• スケジュール設定
• バックゕップされたデータは読取専用
• ローカル/リモート 対応
2H 2010 予定
利用者自身が設定
ハードウェゕ 故障 X 自動複製機能
・常に3つのレプリカが作成される 提供中
SQL Azureに組み込み
障害シナリオ ソリューション 提供 時期
備考
NORTH US Region
データベースクローン機能(2010 H1予定)
SOUTH US Region
sv02.database.windows.net
sv03.database.windows.net
master
master
master
DB1 clone
CREATE DATABASE sv01.db1clone AS CLONE OF sv01.db1
DB1 clone
sv01.database.windows.net
DB1 clone
CREATE DATABASE sv02.db1clone AS CLONE OF sv01.db1
CREATE DATABASE sv03.db1clone AS CLONE OF sv01.db1
DB1
>>FUTURE
Management Studio からのゕクセス
バージョンによってサポート範囲が異なる
SQL Server 2008 Management Studio
SQL Server 2008 R2(2009 November CTP)Management Studio
• GUI による管理はサポートされていない • データベースに接続するたびに「接続」ダゕログを使用する
※SQL Azure では USEコマンドがサポートされていない • 全ての操作はクエリーで実行する
• GUIによる操作を「一部」サポート • オブジェクトエクスプローラーを使用可能 • データベース作成、ユーザー作成をGUIから実施可能 • テーブル操作はクエリーを使用
• クエリーウゖンドウはデータベースごとに開く必要あり ※SQL Azure では USEコマンドがサポートされていない
SQL Azure Portal と Management Studio
AQL Azure ポータル(http://sql.azure.com/)
SQL Server 2008 R2 Management Studio
認証とFirewall
SQL Azure ポータル
xxx.xxx.xxx.xxx
SQLAzureServer ← ANY 1433/TCP
認証 • SQL Server 認証のみをサポート
Firewall
• ンターネット← オンプレミス 1433/TCP • SQL Azure ←オンプレミス IP Range を設定
レンジを設定
クライアントのIPアドレス
• サーバー単位に設定が必要 • 設定が反映されるまでに5分程度を要する • 現在は IPv6 未サポート • 最大128ルール
sys.firewall_rules_table
データベース管理とログン管理
違いのポイント オンプレミス SQL Azure
サーバーレベルセキュリテゖの設定場所
Management Studio の「セキュリテゖ」フォルダ
Masterデータベース内の「users」
サーバーレベルのロールを管理できるユーザー
securityadmin loginmanager
ログンユーザーを管理するためのコマンド
CREATE LOGIN ALTER LOGIN DROP LOGIN
CREATE LOGIN ALTER LOGIN DROP LOGIN ※パラメタに若干の違いあり ※Master DBで実行する必要あり
データベース作成権限を持つサーバーレベルのロール
dbcreator dbmanager
データベースの作成 CREATE DATABASE
SQL Azure ポータル CREATE DATABASE ※パラメタに若干の違いあり ※Master DBで実行する必要あり
データベースの削除 DROP DATABASE DROP DATABASE ※パラメタに若干の違いあり ※Master DBで実行する必要あり
ログン一覧の参照 sys.sql_logins ビュー sys.sql_logins ビュー ※master DBで実行する必要あり
データベース一覧の参照 sys.databases ビュー sys.databases ビュー ※master DBで実行する必要あり
loginmanager と dbmanager
loginmanager ロール
ログンゕカウントを作成する権限を持つロール。SQL Serverで言うところの securityadmin ロールに相当する。 ログンゕカウントを管理するには、masterデータベースで実行する必要がある。
dbmanager ロール
データベースを作成する権限を持つロール。SQL Server 2008/R2 の dbcreator ロールに相当する。 データベースを管理するには masterデータベースで実行する必要がある。
SQL Azure Server プロビジョン時に作成した管理ゕカウントは両方のロールを持っている SQL Azure では USE コマンドがサポートされていないため、master データベースに接続後に実行しなければならない
(参考)T-SQL 文法の違い
詳細は以下を参照してください Transact-SQL Reference (SQL Azure Database) http://msdn.microsoft.com/ja-jp/library/ee336281(en-us).aspx
(例)
CREATE DATABASE database_name [(MAXSIZE = [1 | 10] GB )] [;]
SQL Azure
SQL Server
CREATE DATABASE database_name [ ON [ PRIMARY ] [ <filespec> [ ,...n ] [ , <filegroup> [ ,...n ] ] [ LOG ON { <filespec> [ ,...n ] } ] ] [ COLLATE collation_name ] [ WITH <external_access_option> ] ] [;]
(参考)サポートされているデータ型
カテゴリ SQL Azureでサポートされるデータ型
真数(Exact numerics) bigint, bit, decimal, int, money, numeric, smallint, smallmoney, tinyint.
概数(Approximate numerics) float, real.
日付と時刻 date, datetime2, datetime, datetimeoffset, smalldatetime, time.
文字列 char, varchar, text.
Unicode文字列 nchar, nvarchar, ntext.
バナリ文字列 binary, varbinary, image.
その他のデータ型
cursor, sql_variant, table, timestamp, uniqueidentifier, xml. ※非サポート hierarchyid, geography, geometry.
よくあるご質問
• プロフゔラ、DMV 等 のサポート
• Spatial データタプ
• フルテキストサーチ
• 変更追跡
• SQL CLR
• クラウドベースのBI機能
• 暗号化と圧縮
• Windows Identity Framework による認証サポート
以下の機能は現時点(SQL Azure V1)ではサポートされていません
BI機能との親和性 これから目が離せない
オンプレミス
ローカルPC
セルフサービスBI~PowerPivot
PowerPivot
SQL Azure SQL Server 2008 R2
CSV
CUBEの作成
ピボットテーブル EXCEL 2010
PowerPivot の多彩なデータソース
PowerPivotが埋め込まれたXLSXフゔルのブラウズ
PowerPivot
CUBEの作成
ピボットテーブル
XSLX
SharePoint with PowerPivot
CUBE ごと保存される
EXCEL 2010
Internet Explorer
PCのリソースを使用
SPのリソースを使用
2種類のPowerPivotプラットフォーム
データベース管理者が分析用のデータを準備することなく、 Information Worker にすべての作業を委託できる
PowerPivot for EXCEL 2010 • 使い慣れた Excel に Data Analysis エンジンを組み込み • 基本操作はピボットテーブル • 64bit インメモリ エンジンと圧縮ゕルゴリズムによる高速処理 • SQL Server SSASを介さず、さまざまなデータソースへ直接接続 • 100万件を超えるデータに対応(EXCELの上限は1,048,576件)
PowerPivot for SharePoint 2010 ※Excel Services 用の PowerPivot
• PowerPivot を使用したEXCELシートの共有 • EXCEL サービスに PowerPivot 処理機能を付加 • ブラウザを使用して PowerPivot を使用したEXCELブックを表示 • Silverlight ベースの PowerPivot ギャラリー • 保存されたBOOKは ReportBuilder で編集しレポートして発行 • サーバー負荷を監視するためのダッシュボード
編集/分析
共有/参照
まとめ
まとめ
• 難しく考える必要はありません
• 従来の管理手法/考え方を継承できます
• 少しの違いだけ覚えてください
RDBプラットフォームが SQL Azure へと拡張しても
システム管理者はこらからも 頼られる存在であり続けます!
幅広いニーズに対応するランナップ
Web
• 数十 TB から 数百 TB までをカバー
• 超大規模並列処理による高速処理
• 標準ハードウェゕを利用し低い TCO を実現
• CPU : 最大256論理プロセッサ
• メモリ : OS 最大容量
• 仮想化 : 無制限
• PowerPivot : 標準搭載
• CPU : 最大 8 CPU
• メモリ : 最大 2TB
• 仮想化 : 4 仮想マシン
• PowerPivot : 標準搭載
• CPU : 最大 4 CPU
• メモリ : 最大 64GB
• 仮想化 : 1 仮想マシン
• CPU : 最大 2 CPU
• メモリ : 最大 4GB
• 仮想化 : N/A
• CPU : 最大 4 CPU
• メモリ : 最大 64GB
• 仮想化 : N/A
データベース容量 : 10GB
データベース容量 : 1GB