オンプレの DBA が
Azure のデータベースを使ってみた
JAZUG 小澤 真之
@Masayuki_Ozawa
自己紹介
• 普段は試される大地の有名キャラである縄神様のイメージ戦
略を主業務として邁進する傍らで SQL Server を中心とした
案件に携わっています。
– 企業内に設置するオンプレミス環境の SQL Server を使用した案件
に携わる機会が多いです。

• Azure のユーザーグループ JAZUG や SQL Server の
ユーザーグループ SQLTO に参加させていただいています。
– CLR/H さんは 2 回目の参加となります。
• ブログ : SE の雑記 (http://engineermemo.wordpress.com)
• Twitter : @Masayuki_Ozawa
• Facebook : masayuki.ozawa

2
もしこんな時が訪れたら…
DBA の縄神君

クマー

縄神部長

¥

うちの部内システムの SQL Server を
Azure に移行できない??

¥

3
クラウドでデータベース??
• Azure のデータベースのサービスを使用すると、今まで
企業内の DBA をしていたエンジニアの仕事はどうな
る??
– 移行は簡単??
– メンテナンスフリー??

• Azure の Database は全力でぶん回すことにしか使った
ことがなかったので、次のようなシナリオを考えてみま
した。
4
想定する環境
社内

Internet
Azure Connect
Virtual Network

SQL Server
2012 SP1 CU3

Windows Azure

Azure の DB

シナリオ :
利用者が限られたサイズが
小~中程度のDB移行
5
本日のアジェンダ
ベース環境構築編
データベース移行編
環境メンテナンス編

6
Azure でデータベースを使うには??
¥

縄神君、移行する環境を考える の巻
- ベース環境構築編 7
Azure で SQL Server ??
SQL Database (旧 SQL Azure)
•従来から提供されている Azure の RDBMS
•PaaS 型のサービスとして RDBMS を提供

•物理環境上にホストされている (DB は 3 重化されている)
•利用する SQL Server のバージョンは選べない (現在は SQL Server 2012 相当)
•SQL Server 2012 と比較して多少制限はある (例) T-SQL がフルセットではなくサブセット)
SQL Server on Windows Azure Virtual Machine
•新しく提供される (現在プレビュー) IaaS 型のサービスを利用
•自分で OS / ミドルウェア (今回は SQL Server) を導入
•Hyper-V のゲスト OS として導入する
•SQL Server 2012 / 2008 R2

8
提供範囲の違い (ざっくり)
SQL Database

Virtual Machine

Database

Database

SQL Server

SQL Server

OS

OS

H/W リソースの割り当て

H/W リソースの割り当て

ホスト OS

ホスト OS

利用者が操作できる

利用者が操作できない
9
SQL Database の利用料
• Web Edition
– 最大 5 GB

• Business Edition
– 最大 150 GB

データベース サイズ データベースの月額料金
0 ~ 100 MB
定額 ¥414.79
100 MB 超~ 1 GB 定額 ¥829.57
¥829.57 (最初の 1 GB) + 1 GB
1 GB 超~ 10 GB
増えるごとに ¥331.83
¥3,816 (最初の 10 GB) + 1 GB
10 GB 超~ 50 GB
増えるごとに ¥165.75
¥10,452.52 (最初の 50 GB) + 1
50 GB 超~ 150 GB
GB 増えるごとに ¥82.96

ご利用明細に記載されるデータベース単位 (DU)
0.5 DU
1 DU
1 DU (最初の 1 GB)
0.4 DU (1 GB 増えるごとに)
4.6 DU (最初の 10 GB)
0.2 DU (1 GB 増えるごとに)
12.6 DU (最初の 50 GB)
0.1 DU (1 GB 増えるごとに)

http://www.windowsazure.com/ja-jp/pricing/details/ より抜粋
10
SQL Server on Azure VM の利用料
VM の利用料

•

サイズ CPU コア

メモリ

•
接続可能
ディスク数

Windows 料金/時間 非 Windows 料金/時間
プレビュー

GA

プレビュー

GA

ストレージの利用料

ストレージ容量

地理冗長

ローカル冗長

最初の 1 TB/月

¥7.89 (GB あたり) ¥5.82 (GB あたり)

次の 49 TB/月

¥6.65 (GB あたり) ¥5.40 (GB あたり)

XS

共有

768 MB

1

¥1.08

¥1.67

¥1.08

¥1.67

次の 450 TB/月

¥5.82 (GB あたり) ¥4.99 (GB あたり)

S

1

1.75 GB

2

¥6.65

¥9.55

¥6.65

¥7.06

次の 500 TB/月

¥5.40 (GB あたり) ¥4.57 (GB あたり)

M

2

3.5 GB

4

¥13.29 ¥19.10

¥13.29

¥14.12

次の 4,000 TB/月 ¥4.99 (GB あたり) ¥3.74 (GB あたり)

L

4

7 GB

8

¥26.58 ¥38.20

¥26.58

¥28.24

次の 4,000 TB/月 ¥4.57 (GB あたり) ¥3.08 (GB あたり)

XL

8

14 GB

16

¥53.15 ¥76.40

¥53.15

¥56.47

•

SQL Server の利用料
–
–

1) leverage the license mobility benefits under Software Assurance
2) pay per hour rate of SQL Server on a Windows Azure Virtual Machine.

Web
Standard
サイズ CPU コア 2008 R2 と 2012 2008 R2 と 2012
GA
GA
XS
共有
該当なし
該当なし
S
1
¥3.74
¥45.68
M
2
¥3.74
¥45.68
L
4
¥3.74
¥45.68
XL
8
¥7.48
¥91.35

Enterprise

9,000 TB 超/月

お問い合わせ

お問い合わせ

ストレージ トランザクション 料金
¥0.84
100,000 トランザクション (100,000
トランザクションあたり)

該当なし
該当なし
該当なし
○
○

11
参考)以前調べた SQL Database の構成
• 自分で調べたものなので公式情報ではありません。
CPU コア数
物理ソケット数
データファイル数
tempdb ファイル数

7~8
2
10
10

12
データベースはいちから作り直し??
¥

縄神君、DBの持って行き方を考える の巻
- データベース移行編 13
SQL Server to SQL Database
Data Sync
•SQL データベースのデータ同期機能 (現在 プレビュー) を使用して、テーブルのスキーマとデータを移行
•データ同期は手動、特定間隔 (5 分~1か月) を設定可能
BacPak
•データ層アプリケーションの DAC パッケージ (.bacpac) を使用しテーブル等のスキーマとデータを移行
SQL Database Migration Wizard

•データベースの移行 / 移行に伴う分析をすることができるツール
BCP / SSIS
•データのテキストファイルを BCP コマンドまたは SSIS パッケージで SQL Azure にインポート

14
DataSync (プレビュー)
Windows Azure

社内
TCP:443
*.sync.azure.com

SQL Server
(Data Sync
エージェント)

SQL Database
(ハブ)

SQL Database

• SQL Database をハブとして SQL Server / SQL Database 間のデータ同期を行う
サービス
(ハブの SQL Database データ同期対象として使用することも可能)
– ストアドプロシージャ等移行されないオブジェクトもあるので移行対象は注意
– Azure 上の既存データベースへの同期

• SQL Database 間 (Azure to Azure) のデータ同期も可能

15
DataSync の管理画面
旧ポータル

現行ポータル

16
BacPac
社内

SQL Server

Windows Azure

Azure Storage

SQL Database

• データベーススキーマ + データ (2012 SP1 以降は Native BCP / それ以前は JSON) を
ZIP 圧縮したファイル
– テーブルの他にストアドプロシージャ等も移行される。

• sqlvariant 型や暗号化されたオブジェクトは移行できないという制限はある

• オンプレミスでエクスポート → SQL Database にインポートが可能
– 新しいデータベースとしてインポート (配置)

17
BacPac を使用した移行 (1/2)

18
BacPac を使用した移行 (2/2)

19
SQL Database Migration Wizard
Windows Azure

社内

SQL Server

SQLDatabase
MW

SQL Database

• データベースのスクリプト生成 + BCP によるデータイ
ンポート
– codeplex で提供されているツールのためサポートはない
20
MW を使用した移行 (1/4)

21
MW を使用した移行 (2/4)

22
MW を使用した移行 (3/4)

23
MW を使用した移行 (4/4)

24
BCP / SSIS
社内

SQL Server

Windows Azure

Azure Storage

Azure Instance

SQL Database

• スキーマ定義等は手動でスクリプトを作成
– SSMS では SQL Database 向けのスクリプトを作成可能

• データは BCP or SSIS を使用してインポート
– 並列インポートで高速ロード
– インポート対象のデータを Azure ストレージに配置等の考慮点あり
25
SSIS を使用した並列ロード

26
BCP コマンドの例
• エクスポート
– bcp.exe “<データベース名>.<所有者名>.<テーブル名>”
out “<ファイル名> -E -n -F <開始行> -L <終了行> -a
16384 -q -S <サーバー名> -T

• インポート
– bcp.exe “<データベース名>.<所有者名>.<テーブル名>” in
“<ファイル名> -E -n -b 10000 -a 16384 -q -S <サーバー
名(FQDN)> -U “<ユーザー名>@<サーバー名>” -P “<パス
ワード>"

27
スクリプトの作成

28
SQL Server to SQL Server On VM
SQL Server to SQL Database の移行方法
• BacPac
• BCP / SSIS
データベースバックアップを復元

• SQL Server 2012 SP1 CU2 以降の新機能
• Azure ストレージに直接バックアップを取得可能
データベースのデタッチ / アタッチ
• オンプレミスのデータベースをデタッチしてファイルを VM にコピーしてアタッチ

29
データベースバックアップを復元
社内

SQL Server

Windows Azure

Azure Storage

SQL Database

• SQL Server 2012 SP1 CU2 からの機能
• Azure ストレージに SQL Server のバックアップを直接
取得、リストア可能
30
Azure ストレージにバックアップ
• バックアップ
BACKUP DATABASE [tpcc]
TO URL = 'http://clr81demo.blob.core.windows.net/sqldatabase/tpcc.bak'
WITH STATS=10, CREDENTIAL = 'AzureStorage', COMPRESSION

• リストア
RESTORE DATABASE tpcc
FROM URL = 'http://clr81demo.blob.core.windows.net/sqldatabase/tpcc.bak'
WITH CREDENTIAL = 'AzureStorage', STATS = 5,
MOVE N'tpcc' TO N'F:¥Database¥tpcc.mdf',
MOVE N'tpcc_log' TO N'F:¥Database¥tpcc_log.ldf'
GO

31
Azure Storage に SQL Server のバックアップを取得

DEMO

32
移行方法概要
方法

対象

DataSync

SQL Database

BacPac

テーブルスキーマ

データ

ストアドプロシージャ

差分更新化

○

○

-

SQL Database
SQL Server

-

○

○

○

SQL Database

オブジェクト単位で
洗い替え

○

○

○

BCP / SSIS

SQL Database
SQL Server

テキストの
内容に依存

△

○

-

Database Backup
デタッチ / アタッチ

SQL Server

DB 洗い替え

○

○

○

SQL Database MW

既存 DB への移行

33
クラウドを使うとメンテナンスは不要??
¥

縄神君、日々の作業を考える の巻
- 環境メンテナンス編 34
運用
パッチ適用 (バージョンアップ)
• SQL Database は自動適用
• SQL Server on Azure VM は利用者が OS / SQL Server に手動適用
メンテナンス
• どちらの利用形態でもインデックスは断片化するので解消が必要
• 稼働状態の確認
バックアップ

• BacPac を使用したデータのバックアップ
• DATABASE COPY を使用したバックアップ

35
パッチ適用
SQL Database

Virtual Machine

Database

Database

SQL Server

SQL Server

OS

OS

H/W リソースの割り当て

H/W リソースの割り当て

ホスト OS

ホスト OS

利用者が操作できる

パッチ適用は
利用者!

利用者が操作できない
36
SQL Server on Azure VM のパッチ適用
• インスタンスを利用者が手動でメンテナンスする必要が
ありデータベースの停止を最小限に抑えた更新が難しい
– Azure VM で負荷分散エンドポイントを使用したデータベース
の環境構築 (すべてのインスタンスが更新可能なスケールアウ
ト構成の DB) は難しい。
– AlwaysOn 可用性グループ を使うことで、ダウンタイムを抑
えてパッチ適用をすることが可能となる。
• オンプレミスの高可用性環境のスキルを活かせる

37
負荷分散エンドポイント

インスタンス 1

アプリケーション

負荷分散
エンドポイント

インスタンス 2

インスタンス 3
38
AlwaysOn Availability Group on Azure VM
• オンプレミスの AlwaysOn Availability Group
更新可能
(1 台のみ)
アプリケーション

リスナー
(代表 IP)

読み取り専用
(最大 4 台)

• AlwaysOn Availability Group on Azure VM (現状)
– リスナーを Azure のエンドポイント経由で公開することが現状はできない
更新可能
(1 台のみ)
アプリケーション

読み取り専用
(最大 4 台)

39
メンテナンス
• クラウドのデータベースはメンテナンス不要??
• SQL Database / SQL Server 共にテーブルの断片化が
発生するのでインデックスの再構築が必要
– SQL Database ではインデックスのオンライン再構築が可能
• ALTER INDEX [ORDER_LINE_I1] ON [dbo].[ORDER_LINE]
REBUILD WITH (ONLINE=ON)
• SQL Database では、再構築 (REBUILD) はできるが再構成
(REORGANIZE) はできない

– SQL Server では Enterprise Edition の機能

40
バックアップ
• SQL Server on Azure VM は通常の SQL Server のバッ
クアップ方法と同じ
• SQL Database のバックアップ方法は以下の方法等で取
得可能
– DATABASE COPY
– BACPAC をエクスポート

41
DATABASE COPY
Windows Azure

SQL Database

SQL Database

• SQL Database のデータベースのコピーを同一サーバーや別のサーバー
に取得するための機能
– CREATE DATABASE <コピー先データベース名> AS COPY OF [<コピー元
サーバー名>.] <コピー元データベース名>
• master データベースに接続して実行する必要がある

– コピーは非同期で行われるため [sys.dm_database_copies] [sys.databases]
でコピー状況を確認
42
コマンドで BacPac を取得
• SQLPackage.exe を使用して BacPac をコマンドで取得
することが可能
– cd C:¥Program Files (x86)¥Microsoft SQL Server¥110¥DAC¥bin
– sqlpackage.exe /a:Export /ssn:"<サーバー名>.database.windows.net" /sdn:"<
データベース名>" /su:"<ログイン名>" /sp:"<パスワード>"
/tf:"C:¥temp¥tpcc.bacpac"

– Azure ストレージに直接取得することはできないのでローカル
に保存してからアップロード
• AZCopy を使用するとコマンドで Azure ストレージを操作可能

43
BACPAC はポータルからも取得可能

44
ナワー
¥

縄神君、ここまでの内容を振り返る の巻

45
最後に
• Azure のデータベースを使う場合でも DBA の活躍する場所
はあります。
– オンプレミスの SQL Server の利用経験を活かし Azure のデータ
ベースを有効に活用
– 今回は時間の関係でお話しできませんでしたが管理ツールも SSMS
/ SSDT / ブラウザベースといろいろあり、取得できる管理用の情
報もいろいろとあります。

• 設置する場所を選ばない、ハイブリッドな環境を触れる
DBA を目指していくとよいかもしれないです。
– 私はオンプレミスの SQL Server 特化なので、大きなことは言えま
せんが…。
46
Appendix

47
参考情報 (1/4)
• ライセンス

– 料金の詳細

• http://www.windowsazure.com/ja-jp/pricing/details/

– Licensing FAQ

• http://www.windowsazure.com/en-us/pricing/licensing-faq/?fb=ja-jp

– ライセンス早わかりガイド サービス プロバイダー向けライセンス

• http://www.microsoft.com/ja-jp/server-cloud/windows-server/licenseguide/spla-01.aspx

– Windows Azure でのソフトウェア アシュアランスによるライセンス モビリティ

• 構築

• http://www.windowsazure.com/ja-jp/pricing/license-mobility/

– Provisioning a SQL Server Virtual Machine on Windows Azure

• http://www.windowsazure.com/en-us/manage/windows/common-tasks/install-sqlserver/

– Windows Azure 仮想マシンの正式リリースまだか!!SQL Server 編

• http://blogs.msdn.com/b/daisukei/archive/2013/03/21/windows-azure-sql-server.aspx

48
参考情報 (2/4)
•

移行
–

Windows Azure SQL データベース (以前の SQL Azure) へのデータベース移行

–

サポートされている Transact-SQL ステートメント (Windows Azure SQL データベース)

•

http://msdn.microsoft.com/ja-jp/library/windowsazure/ee730904.aspx

•

http://msdn.microsoft.com/ja-jp/library/ee336270.aspx

•

http://sqlazuremw.codeplex.com/

•

http://msdn.microsoft.com/ja-jp/library/windowsazure/hh335292.aspx

•

http://code.msdn.microsoft.com/windowsazure/SQLAzure-howto-80cbce75

•

http://blogs.msdn.com/b/sqlcat/archive/2010/07/30/loading-data-to-sql-azure-the-fast-way.aspx

•

http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx

•

http://msdn.microsoft.com/ja-jp/library/ee210549.aspx

–
–

データベースをインポート/エクスポートする方法 (Windows Azure SQL Database)

–

SQL Server データベースを SQL Azure へ移行する (DAC インポート/エクスポート サービスの使用)

–

Loading data to SQL Azure the fast way

–

Announcing Updates to Windows Azure SQL Database

–

•

SQL Database Migration Wizard

SQL Server オブジェクトとバージョンの DAC サポート

移行 (その他の RDBMS)
–

Microsoft SQL Server Migration Assistant for MySQL v5.2
•

http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=28764

•

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28763

•

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28766

•

http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28765

–

Microsoft SQL Server Migration Assistant for Access v5.2

–

Microsoft SQL Server Migration Assistant for Oracle v5.2

–

Microsoft SQL Server Migration Assistant for Sybase v5.2

49
参考情報 (3/4)
•

Data Sync
–

SQL データ同期プレビュー
•

http://msdn.microsoft.com/ja-jp/library/hh456371.aspx

•

http://go.microsoft.com/fwlink/?LinkID=223590

•

http://www.microsoft.com/en-us/download/details.aspx?id=35580

•

http://www.microsoft.com/en-us/download/details.aspx?id=29840

–

SQL Azure Data Sync Agent Preview

–

Microsoft® SQL Server® 2012 SP1 Feature Pack

–

•

Windows Azure Datacenter IP Ranges

バックアップ
–

Windows Azure SQL データベースでのデータベースのコピー

–

Windows Azure SQL データベースのバックアップと復元

•
•

http://support.microsoft.com/kb/2792921/ja

•

http://msdn.microsoft.com/ja-jp/library/jj720558.aspx

•

http://msdn.microsoft.com/ja-jp/library/windowsazure/jj900675.aspx

•

–

http://msdn.microsoft.com/ja-jp/library/windowsazure/jj650016.aspx

•

–

http://msdn.microsoft.com/ja-jp/library/windowsazure/ff951624.aspx

http://msdn.microsoft.com/ja-jp/library/hh550080(v=vs.103).aspx

•
•

http://go.microsoft.com/fwlink/?LinkId=287086
http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx

SQL Server 2012 SP1 用の累積的な更新プログラム 2 での新機能の説明
チュートリアル: Windows Azure BLOB ストレージ サービスへの SQL Server のバックアップと復元の概要

–

Windows Azure SQL データベースのバックアップの自動化

–

SqlPackage.exe

–

AZCopy

50
参考情報 (4/4)
• メンテナンス

– [Windows Azure] 更新ドメインと障害ドメインについて

• http://blogs.msdn.com/b/dsazurejp/archive/2011/06/29/windows-azurefault-domain-upgrade-domain.aspx

– インプレース アップグレードの実行

• http://technet.microsoft.com/ja-jp/library/gg457922.aspx

– ALTER INDEX (Windows Azure SQL データベース)

• http://msdn.microsoft.com/ja-jp/library/windowsazure/ee336278.aspx

– Test Lab: Create an AlwaysOn Availability Group in Windows Azure
End-to-End
• http://blogs.msdn.com/b/sqlalwayson/archive/2013/01/23/test-lab-createan-alwayson-availability-group-in-windows-azure-end-to-end.aspx

– Tutorial: AlwaysOn Availability Groups in Windows Azure

• http://msdn.microsoft.com/en-us/library/windowsazure/jj870963.aspx

51

オンプレのDbaがazureのデータベースを使ってみた

  • 1.
    オンプレの DBA が Azureのデータベースを使ってみた JAZUG 小澤 真之 @Masayuki_Ozawa
  • 2.
    自己紹介 • 普段は試される大地の有名キャラである縄神様のイメージ戦 略を主業務として邁進する傍らで SQLServer を中心とした 案件に携わっています。 – 企業内に設置するオンプレミス環境の SQL Server を使用した案件 に携わる機会が多いです。 • Azure のユーザーグループ JAZUG や SQL Server の ユーザーグループ SQLTO に参加させていただいています。 – CLR/H さんは 2 回目の参加となります。 • ブログ : SE の雑記 (http://engineermemo.wordpress.com) • Twitter : @Masayuki_Ozawa • Facebook : masayuki.ozawa 2
  • 3.
  • 4.
    クラウドでデータベース?? • Azure のデータベースのサービスを使用すると、今まで 企業内のDBA をしていたエンジニアの仕事はどうな る?? – 移行は簡単?? – メンテナンスフリー?? • Azure の Database は全力でぶん回すことにしか使った ことがなかったので、次のようなシナリオを考えてみま した。 4
  • 5.
    想定する環境 社内 Internet Azure Connect Virtual Network SQLServer 2012 SP1 CU3 Windows Azure Azure の DB シナリオ : 利用者が限られたサイズが 小~中程度のDB移行 5
  • 6.
  • 7.
  • 8.
    Azure で SQLServer ?? SQL Database (旧 SQL Azure) •従来から提供されている Azure の RDBMS •PaaS 型のサービスとして RDBMS を提供 •物理環境上にホストされている (DB は 3 重化されている) •利用する SQL Server のバージョンは選べない (現在は SQL Server 2012 相当) •SQL Server 2012 と比較して多少制限はある (例) T-SQL がフルセットではなくサブセット) SQL Server on Windows Azure Virtual Machine •新しく提供される (現在プレビュー) IaaS 型のサービスを利用 •自分で OS / ミドルウェア (今回は SQL Server) を導入 •Hyper-V のゲスト OS として導入する •SQL Server 2012 / 2008 R2 8
  • 9.
    提供範囲の違い (ざっくり) SQL Database VirtualMachine Database Database SQL Server SQL Server OS OS H/W リソースの割り当て H/W リソースの割り当て ホスト OS ホスト OS 利用者が操作できる 利用者が操作できない 9
  • 10.
    SQL Database の利用料 •Web Edition – 最大 5 GB • Business Edition – 最大 150 GB データベース サイズ データベースの月額料金 0 ~ 100 MB 定額 ¥414.79 100 MB 超~ 1 GB 定額 ¥829.57 ¥829.57 (最初の 1 GB) + 1 GB 1 GB 超~ 10 GB 増えるごとに ¥331.83 ¥3,816 (最初の 10 GB) + 1 GB 10 GB 超~ 50 GB 増えるごとに ¥165.75 ¥10,452.52 (最初の 50 GB) + 1 50 GB 超~ 150 GB GB 増えるごとに ¥82.96 ご利用明細に記載されるデータベース単位 (DU) 0.5 DU 1 DU 1 DU (最初の 1 GB) 0.4 DU (1 GB 増えるごとに) 4.6 DU (最初の 10 GB) 0.2 DU (1 GB 増えるごとに) 12.6 DU (最初の 50 GB) 0.1 DU (1 GB 増えるごとに) http://www.windowsazure.com/ja-jp/pricing/details/ より抜粋 10
  • 11.
    SQL Server onAzure VM の利用料 VM の利用料 • サイズ CPU コア メモリ • 接続可能 ディスク数 Windows 料金/時間 非 Windows 料金/時間 プレビュー GA プレビュー GA ストレージの利用料 ストレージ容量 地理冗長 ローカル冗長 最初の 1 TB/月 ¥7.89 (GB あたり) ¥5.82 (GB あたり) 次の 49 TB/月 ¥6.65 (GB あたり) ¥5.40 (GB あたり) XS 共有 768 MB 1 ¥1.08 ¥1.67 ¥1.08 ¥1.67 次の 450 TB/月 ¥5.82 (GB あたり) ¥4.99 (GB あたり) S 1 1.75 GB 2 ¥6.65 ¥9.55 ¥6.65 ¥7.06 次の 500 TB/月 ¥5.40 (GB あたり) ¥4.57 (GB あたり) M 2 3.5 GB 4 ¥13.29 ¥19.10 ¥13.29 ¥14.12 次の 4,000 TB/月 ¥4.99 (GB あたり) ¥3.74 (GB あたり) L 4 7 GB 8 ¥26.58 ¥38.20 ¥26.58 ¥28.24 次の 4,000 TB/月 ¥4.57 (GB あたり) ¥3.08 (GB あたり) XL 8 14 GB 16 ¥53.15 ¥76.40 ¥53.15 ¥56.47 • SQL Server の利用料 – – 1) leverage the license mobility benefits under Software Assurance 2) pay per hour rate of SQL Server on a Windows Azure Virtual Machine. Web Standard サイズ CPU コア 2008 R2 と 2012 2008 R2 と 2012 GA GA XS 共有 該当なし 該当なし S 1 ¥3.74 ¥45.68 M 2 ¥3.74 ¥45.68 L 4 ¥3.74 ¥45.68 XL 8 ¥7.48 ¥91.35 Enterprise 9,000 TB 超/月 お問い合わせ お問い合わせ ストレージ トランザクション 料金 ¥0.84 100,000 トランザクション (100,000 トランザクションあたり) 該当なし 該当なし 該当なし ○ ○ 11
  • 12.
    参考)以前調べた SQL Databaseの構成 • 自分で調べたものなので公式情報ではありません。 CPU コア数 物理ソケット数 データファイル数 tempdb ファイル数 7~8 2 10 10 12
  • 13.
  • 14.
    SQL Server toSQL Database Data Sync •SQL データベースのデータ同期機能 (現在 プレビュー) を使用して、テーブルのスキーマとデータを移行 •データ同期は手動、特定間隔 (5 分~1か月) を設定可能 BacPak •データ層アプリケーションの DAC パッケージ (.bacpac) を使用しテーブル等のスキーマとデータを移行 SQL Database Migration Wizard •データベースの移行 / 移行に伴う分析をすることができるツール BCP / SSIS •データのテキストファイルを BCP コマンドまたは SSIS パッケージで SQL Azure にインポート 14
  • 15.
    DataSync (プレビュー) Windows Azure 社内 TCP:443 *.sync.azure.com SQLServer (Data Sync エージェント) SQL Database (ハブ) SQL Database • SQL Database をハブとして SQL Server / SQL Database 間のデータ同期を行う サービス (ハブの SQL Database データ同期対象として使用することも可能) – ストアドプロシージャ等移行されないオブジェクトもあるので移行対象は注意 – Azure 上の既存データベースへの同期 • SQL Database 間 (Azure to Azure) のデータ同期も可能 15
  • 16.
  • 17.
    BacPac 社内 SQL Server Windows Azure AzureStorage SQL Database • データベーススキーマ + データ (2012 SP1 以降は Native BCP / それ以前は JSON) を ZIP 圧縮したファイル – テーブルの他にストアドプロシージャ等も移行される。 • sqlvariant 型や暗号化されたオブジェクトは移行できないという制限はある • オンプレミスでエクスポート → SQL Database にインポートが可能 – 新しいデータベースとしてインポート (配置) 17
  • 18.
  • 19.
  • 20.
    SQL Database MigrationWizard Windows Azure 社内 SQL Server SQLDatabase MW SQL Database • データベースのスクリプト生成 + BCP によるデータイ ンポート – codeplex で提供されているツールのためサポートはない 20
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
    BCP / SSIS 社内 SQLServer Windows Azure Azure Storage Azure Instance SQL Database • スキーマ定義等は手動でスクリプトを作成 – SSMS では SQL Database 向けのスクリプトを作成可能 • データは BCP or SSIS を使用してインポート – 並列インポートで高速ロード – インポート対象のデータを Azure ストレージに配置等の考慮点あり 25
  • 26.
  • 27.
    BCP コマンドの例 • エクスポート –bcp.exe “<データベース名>.<所有者名>.<テーブル名>” out “<ファイル名> -E -n -F <開始行> -L <終了行> -a 16384 -q -S <サーバー名> -T • インポート – bcp.exe “<データベース名>.<所有者名>.<テーブル名>” in “<ファイル名> -E -n -b 10000 -a 16384 -q -S <サーバー 名(FQDN)> -U “<ユーザー名>@<サーバー名>” -P “<パス ワード>" 27
  • 28.
  • 29.
    SQL Server toSQL Server On VM SQL Server to SQL Database の移行方法 • BacPac • BCP / SSIS データベースバックアップを復元 • SQL Server 2012 SP1 CU2 以降の新機能 • Azure ストレージに直接バックアップを取得可能 データベースのデタッチ / アタッチ • オンプレミスのデータベースをデタッチしてファイルを VM にコピーしてアタッチ 29
  • 30.
    データベースバックアップを復元 社内 SQL Server Windows Azure AzureStorage SQL Database • SQL Server 2012 SP1 CU2 からの機能 • Azure ストレージに SQL Server のバックアップを直接 取得、リストア可能 30
  • 31.
    Azure ストレージにバックアップ • バックアップ BACKUPDATABASE [tpcc] TO URL = 'http://clr81demo.blob.core.windows.net/sqldatabase/tpcc.bak' WITH STATS=10, CREDENTIAL = 'AzureStorage', COMPRESSION • リストア RESTORE DATABASE tpcc FROM URL = 'http://clr81demo.blob.core.windows.net/sqldatabase/tpcc.bak' WITH CREDENTIAL = 'AzureStorage', STATS = 5, MOVE N'tpcc' TO N'F:¥Database¥tpcc.mdf', MOVE N'tpcc_log' TO N'F:¥Database¥tpcc_log.ldf' GO 31
  • 32.
    Azure Storage にSQL Server のバックアップを取得 DEMO 32
  • 33.
    移行方法概要 方法 対象 DataSync SQL Database BacPac テーブルスキーマ データ ストアドプロシージャ 差分更新化 ○ ○ - SQL Database SQLServer - ○ ○ ○ SQL Database オブジェクト単位で 洗い替え ○ ○ ○ BCP / SSIS SQL Database SQL Server テキストの 内容に依存 △ ○ - Database Backup デタッチ / アタッチ SQL Server DB 洗い替え ○ ○ ○ SQL Database MW 既存 DB への移行 33
  • 34.
  • 35.
    運用 パッチ適用 (バージョンアップ) • SQLDatabase は自動適用 • SQL Server on Azure VM は利用者が OS / SQL Server に手動適用 メンテナンス • どちらの利用形態でもインデックスは断片化するので解消が必要 • 稼働状態の確認 バックアップ • BacPac を使用したデータのバックアップ • DATABASE COPY を使用したバックアップ 35
  • 36.
    パッチ適用 SQL Database Virtual Machine Database Database SQLServer SQL Server OS OS H/W リソースの割り当て H/W リソースの割り当て ホスト OS ホスト OS 利用者が操作できる パッチ適用は 利用者! 利用者が操作できない 36
  • 37.
    SQL Server onAzure VM のパッチ適用 • インスタンスを利用者が手動でメンテナンスする必要が ありデータベースの停止を最小限に抑えた更新が難しい – Azure VM で負荷分散エンドポイントを使用したデータベース の環境構築 (すべてのインスタンスが更新可能なスケールアウ ト構成の DB) は難しい。 – AlwaysOn 可用性グループ を使うことで、ダウンタイムを抑 えてパッチ適用をすることが可能となる。 • オンプレミスの高可用性環境のスキルを活かせる 37
  • 38.
  • 39.
    AlwaysOn Availability Groupon Azure VM • オンプレミスの AlwaysOn Availability Group 更新可能 (1 台のみ) アプリケーション リスナー (代表 IP) 読み取り専用 (最大 4 台) • AlwaysOn Availability Group on Azure VM (現状) – リスナーを Azure のエンドポイント経由で公開することが現状はできない 更新可能 (1 台のみ) アプリケーション 読み取り専用 (最大 4 台) 39
  • 40.
    メンテナンス • クラウドのデータベースはメンテナンス不要?? • SQLDatabase / SQL Server 共にテーブルの断片化が 発生するのでインデックスの再構築が必要 – SQL Database ではインデックスのオンライン再構築が可能 • ALTER INDEX [ORDER_LINE_I1] ON [dbo].[ORDER_LINE] REBUILD WITH (ONLINE=ON) • SQL Database では、再構築 (REBUILD) はできるが再構成 (REORGANIZE) はできない – SQL Server では Enterprise Edition の機能 40
  • 41.
    バックアップ • SQL Serveron Azure VM は通常の SQL Server のバッ クアップ方法と同じ • SQL Database のバックアップ方法は以下の方法等で取 得可能 – DATABASE COPY – BACPAC をエクスポート 41
  • 42.
    DATABASE COPY Windows Azure SQLDatabase SQL Database • SQL Database のデータベースのコピーを同一サーバーや別のサーバー に取得するための機能 – CREATE DATABASE <コピー先データベース名> AS COPY OF [<コピー元 サーバー名>.] <コピー元データベース名> • master データベースに接続して実行する必要がある – コピーは非同期で行われるため [sys.dm_database_copies] [sys.databases] でコピー状況を確認 42
  • 43.
    コマンドで BacPac を取得 •SQLPackage.exe を使用して BacPac をコマンドで取得 することが可能 – cd C:¥Program Files (x86)¥Microsoft SQL Server¥110¥DAC¥bin – sqlpackage.exe /a:Export /ssn:"<サーバー名>.database.windows.net" /sdn:"< データベース名>" /su:"<ログイン名>" /sp:"<パスワード>" /tf:"C:¥temp¥tpcc.bacpac" – Azure ストレージに直接取得することはできないのでローカル に保存してからアップロード • AZCopy を使用するとコマンドで Azure ストレージを操作可能 43
  • 44.
  • 45.
  • 46.
    最後に • Azure のデータベースを使う場合でもDBA の活躍する場所 はあります。 – オンプレミスの SQL Server の利用経験を活かし Azure のデータ ベースを有効に活用 – 今回は時間の関係でお話しできませんでしたが管理ツールも SSMS / SSDT / ブラウザベースといろいろあり、取得できる管理用の情 報もいろいろとあります。 • 設置する場所を選ばない、ハイブリッドな環境を触れる DBA を目指していくとよいかもしれないです。 – 私はオンプレミスの SQL Server 特化なので、大きなことは言えま せんが…。 46
  • 47.
  • 48.
    参考情報 (1/4) • ライセンス –料金の詳細 • http://www.windowsazure.com/ja-jp/pricing/details/ – Licensing FAQ • http://www.windowsazure.com/en-us/pricing/licensing-faq/?fb=ja-jp – ライセンス早わかりガイド サービス プロバイダー向けライセンス • http://www.microsoft.com/ja-jp/server-cloud/windows-server/licenseguide/spla-01.aspx – Windows Azure でのソフトウェア アシュアランスによるライセンス モビリティ • 構築 • http://www.windowsazure.com/ja-jp/pricing/license-mobility/ – Provisioning a SQL Server Virtual Machine on Windows Azure • http://www.windowsazure.com/en-us/manage/windows/common-tasks/install-sqlserver/ – Windows Azure 仮想マシンの正式リリースまだか!!SQL Server 編 • http://blogs.msdn.com/b/daisukei/archive/2013/03/21/windows-azure-sql-server.aspx 48
  • 49.
    参考情報 (2/4) • 移行 – Windows AzureSQL データベース (以前の SQL Azure) へのデータベース移行 – サポートされている Transact-SQL ステートメント (Windows Azure SQL データベース) • http://msdn.microsoft.com/ja-jp/library/windowsazure/ee730904.aspx • http://msdn.microsoft.com/ja-jp/library/ee336270.aspx • http://sqlazuremw.codeplex.com/ • http://msdn.microsoft.com/ja-jp/library/windowsazure/hh335292.aspx • http://code.msdn.microsoft.com/windowsazure/SQLAzure-howto-80cbce75 • http://blogs.msdn.com/b/sqlcat/archive/2010/07/30/loading-data-to-sql-azure-the-fast-way.aspx • http://blogs.msdn.com/b/windowsazure/archive/2012/09/19/announcing-updates-to-windows-azure-sql-database.aspx • http://msdn.microsoft.com/ja-jp/library/ee210549.aspx – – データベースをインポート/エクスポートする方法 (Windows Azure SQL Database) – SQL Server データベースを SQL Azure へ移行する (DAC インポート/エクスポート サービスの使用) – Loading data to SQL Azure the fast way – Announcing Updates to Windows Azure SQL Database – • SQL Database Migration Wizard SQL Server オブジェクトとバージョンの DAC サポート 移行 (その他の RDBMS) – Microsoft SQL Server Migration Assistant for MySQL v5.2 • http://www.microsoft.com/download/en/details.aspx?displaylang=en&id=28764 • http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28763 • http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28766 • http://www.microsoft.com/en-us/download/details.aspx?displaylang=en&id=28765 – Microsoft SQL Server Migration Assistant for Access v5.2 – Microsoft SQL Server Migration Assistant for Oracle v5.2 – Microsoft SQL Server Migration Assistant for Sybase v5.2 49
  • 50.
    参考情報 (3/4) • Data Sync – SQLデータ同期プレビュー • http://msdn.microsoft.com/ja-jp/library/hh456371.aspx • http://go.microsoft.com/fwlink/?LinkID=223590 • http://www.microsoft.com/en-us/download/details.aspx?id=35580 • http://www.microsoft.com/en-us/download/details.aspx?id=29840 – SQL Azure Data Sync Agent Preview – Microsoft® SQL Server® 2012 SP1 Feature Pack – • Windows Azure Datacenter IP Ranges バックアップ – Windows Azure SQL データベースでのデータベースのコピー – Windows Azure SQL データベースのバックアップと復元 • • http://support.microsoft.com/kb/2792921/ja • http://msdn.microsoft.com/ja-jp/library/jj720558.aspx • http://msdn.microsoft.com/ja-jp/library/windowsazure/jj900675.aspx • – http://msdn.microsoft.com/ja-jp/library/windowsazure/jj650016.aspx • – http://msdn.microsoft.com/ja-jp/library/windowsazure/ff951624.aspx http://msdn.microsoft.com/ja-jp/library/hh550080(v=vs.103).aspx • • http://go.microsoft.com/fwlink/?LinkId=287086 http://blogs.msdn.com/b/windowsazurestorage/archive/2013/04/01/azcopy-using-cross-account-copy-blob.aspx SQL Server 2012 SP1 用の累積的な更新プログラム 2 での新機能の説明 チュートリアル: Windows Azure BLOB ストレージ サービスへの SQL Server のバックアップと復元の概要 – Windows Azure SQL データベースのバックアップの自動化 – SqlPackage.exe – AZCopy 50
  • 51.
    参考情報 (4/4) • メンテナンス –[Windows Azure] 更新ドメインと障害ドメインについて • http://blogs.msdn.com/b/dsazurejp/archive/2011/06/29/windows-azurefault-domain-upgrade-domain.aspx – インプレース アップグレードの実行 • http://technet.microsoft.com/ja-jp/library/gg457922.aspx – ALTER INDEX (Windows Azure SQL データベース) • http://msdn.microsoft.com/ja-jp/library/windowsazure/ee336278.aspx – Test Lab: Create an AlwaysOn Availability Group in Windows Azure End-to-End • http://blogs.msdn.com/b/sqlalwayson/archive/2013/01/23/test-lab-createan-alwayson-availability-group-in-windows-azure-end-to-end.aspx – Tutorial: AlwaysOn Availability Groups in Windows Azure • http://msdn.microsoft.com/en-us/library/windowsazure/jj870963.aspx 51