[資格] DP-300 Azure Database Administrator対策

DP-300について

Azure Database Administrator試験は、オンプレミスのSQL Server、Azure SQL Database、Azure Managed Instanceの構築、設計に関する専門知識を問われる試験です。データベース管理者として認定されます。

https://learn.microsoft.com/en-us/certifications/azure-database-administrator-associate/

試験について

試験情報

試験コード DP-300
試験名 Microsoft Certified: Azure Database Administrator Associate
合格ライン 700点
問題数 45問
試験時間 100分

※確認中です。

試験問題の構成

試験問題は以下の4つのパートに分かれていて、それぞれ解答を終えると後戻りはできません。

シナリオに対する問題 10問
データベースを運用する1つのシナリオが提示されて、それに対する様々な質問に回答する問題
独立した問題 33問
データベースの運用、保守、開発に関する様々な問題
ケーススタディ① 1問
あるシナリオに対する対応が適しているか・または可能かをYes/Noで答える問題(対応方法が3パターンある)
ケーススタディ② 1問
上に同じ

学習方法

現時点でAZ-300の日本語版の問題集や参考書などは存在しません。

対策方法としては、冒頭の試験についてのページにあるラーニングパスが有効なのでこちらで学習を進めていきます。

なおこのページから練習問題を無料で受けれますが、すべて英語です。英語に抵抗がなければこれも非常に有効だと思います。少しやってみましたが、私には無理でした。

参考書

DP-300についての参考書ではありませんが、SQL Server関連書籍はいくつか参考になりそうなものがあるので紹介しておきます。

SQL Server Transact-SQLプログラミング 実践開発ガイド
  • オンプレミスのSQL Serverの運用、開発、保守のためのノウハウ
  • Transact-SQL、ストアドプロシージャ、ストアドファンクションなどの知識

対策

仮想マシン内のSQL Server

仮想マシン(IaaS)上で実行されるSQL Serverは、オンプレミスのSQL Serverと同じ機能を提供する。Azure Marketplaceでサポートされているすべてのバージョンが使用できる。

アプリケーションが仮想マシン上で実行されるSQL Serverが必要な理由には次のものがある。

  • 一般的なアプリケーションのサポートと非互換性
    古いバージョンのSQL Serverを必要とするアプリケーションのサポートのため。
  • その他のSQL Serverサービスの使用
    ライセンスを最大限に活用するには、データベースエンジンと同じマシン上で関連サービスを実行する必要があるため。

バックアップソリューション

  • URLにバックアップする
    標準のバックアップ構文を使用してデータベースをAzure Blob Storageにバックアップする。
  • Azure Backup
    Azure Backup for SQL Server Virtual Machinesにより、インフラストラクチャ全体でバックアップを自動的に処理する。

仮想マシンのストレージ

  • Standard(/SSD)
    ほとんどのバックアップと復元のワークロードについて、パフォーマンスが適切に設計されている。
  • Premium SSD
    SQL Serverのデータとトランザクションログファイルをサポートする。待機時間が少ない。
  • Ultra Disk
    SQL Serverのデータとトランザクションログファイルをサポートする。最大のスループットでの運用を提供する。

Azure SQL Database

Azure SQL Databaseは、サービスとしてのプラットフォーム(PaaS)で、SQL Database環境を提供する。

購入モデル

仮想コア (vCore) ベース コンピューティングリソースとストレージリソースが独立しているため、それぞれ単独でスケーリングできる。以下のサービスレベルが選択できる。
  1. General Purpose
  2. Business Critical
  3. Hyperscale
DTU ベース リソースは DTU レベルに依存し、固定のストレージ制限、バックアップ保有期間、コストで、さまざまなパフォーマンス機能を提供する。以下のサービスレベルが選択できる。
  1. Basic
  2. Standard
  3. Premium
  • DTUベースはAzure SQL Databaseでのみサポートされる。

Hyperscaleサービスレベルの特徴

  • 最大100TBのデータベースまたはエラスティックプールサイズをサポートするストレージの自動スケーリングが可能
  • データボリュームに関係なく、高いトランザクションログスループットと速いトランザクションコミット時間による、全体的に高いパフォーマンスを提供する
  • ファイルスナップショットに基づく高速バックアップ、また数分で復元・コピーができる
  • 一度Azure SQL DatabaseをHyperscaleに切り替えると、それを他のサービスレベルに変更することはできない

デプロイメントモデル

単一データベース 各データベースを、スケールとデータ サイズの観点から、個別に管理する。このモデルで展開された各データベースには、同じ論理サーバーに展開されている場合でも、それぞれに専用のリソースがある。
エラスティックプール データベースごとにリソースを個別に管理するのではなく、データベースのグループにストレージリソースとコンピューティングリソースを割り当てることができる。
また、エラスティック プールに加えた変更によって個々のデータベースのスケーリングが不要になるので、単一データベースよりもスケーリングが容易にできる。

サーバーレスオプション

ワークロードの需要に基づいて所定のデータベースのリソースを自動的にスケールアップ/ダウンし、コンピューティングリソースが必要でなくなったら、データベースは一時停止状態になる。

営業時間の間しか使用されない場合など、データベースのコストを大幅に削減できる。

Azure SQL Managed Instance

Azure SQL Databaseとほぼ同等の機能を提供する。単一のデータベース構造を中心に設計されたAzure SQL Databaseとは異なり、複数データベースにまたがるクエリ、共通言語ランタイム、システムデータベースへのアクセス、SQLエージェントなど、いくつかの機能が用意されている。

接続のアーキテクチャ

Azure SQL Managed Instanceへの接続は、TDSエンドポイントを介して行われる。

バックアップと復元

自動データベースバックアップは、完全バックアップ、差分バックアップ、ログバックアップを定期的に実行する。

Azure SQL Managed Instanceでバックアップ操作と復元を操作を実行するにはいくつかの制限がある。

  • 復元操作により既存のデータベースを上書きすることはできない
    データベースを復元する前に、同じ名前のデータベースが存在しないことを確認する必要がある。
  • バックアップは別のManaged Instanceにのみ復元することができる
    Managed Instanceのバックアップを、仮想マシン、またはAzure SQL Databaseで実行されているSQL Serverに復元することはできない。
  • Blob Storageへのバックアップは、Managed Instanceのみで使用できる
    Azure SQL Databaseではこの機能はサポートされていない。

データベースのバックアップは自動的に構成され、以下のスケジュールで行われる。

  • 完全バックアップ
    週に1回
  • 差分バックアップ
    12時間ごと
  • トランザクションログ
    トランザクションログに応じて5分から10分ごと

移行オプション

Azure SQL Managed Instanceでは、オンプレミスデータベースのバックアップをAzure上に以下の方法で復元することができる。

  • バックアップの復元
    バックアップと復元では、 NORECOVERY オプションを指定して復元することはできず、ログバックアップの適用があるため、より多くのダウンタイムが発生する。
  • Database Migration Service(DMS)の使用
    DMSは、オンプレミスまたは仮想マシンのSQL ServerをSQL Managed Instanceへ接続するサービスで、ダウンタイムがほぼ発生しない。

Machine Learningサービス

リレーショナルデータベース構造内において機械学習操作を提供する。この機能は、SQL Managed Instance、仮想マシン上のSQL Server、オンプレミスのSQL Serverで使用できる。

  • Azure SQL Databaseでは、Machine Learningサービスをサポートしていない。

認証とID

オンプレミスのSQL ServerとAzure仮想マシンのSQL Serveの認証モード

SQL Server認証 SQL Server内に作成された固有のログインIDとパスワードにより認証を行う。
Windows認証 自分のPCにログインしたのと同じアクティブディレクトリADアカウントでSQL Serverに接続される。ログイン情報がプレーンテキストでやり取りされるSQL Server認証よりセキュリティは高い。また、ユーザーの入れ替わりの際の管理もしやすい。

Azure SQL Databaseの認証モード

SQL Server認証 SQL Server内に作成された固有のログインIDとパスワードにより認証を行う。
Azure AD認証 Azure portalのアカウントを使用してAzure SQL Database接続する。これにより、多要素認証などを簡単に構成できるので、セキュリティを高めることができる。

動的管理ビュー

  • sys.dm_db_wait_stats
    データベース内で発生したすべての待機に関する情報を返す。これにより、ベースラインのパフォーマンス データを確認できる。
  • sys.dm_os_waiting_tasks
    現在の接続とセッションに関連している。。このビューには待機の履歴が保存されないため、パフォーマンスのベースラインの作成には使用できない。
  • sys.dm_exec_sessions_wait_stats
    特定のセッションの待機統計を見つけるために使用される。
  • sys.dm_exec_query_stats
    Microsoft SQL Server のキャッシュされたクエリ プランの集計パフォーマンス統計を返す。
  • sys.dm_exec_requests
    ブロッキング セッション ID 情報を取得できる。このビューは、Microsoft SQL Server で実行されている各リクエストに関する情報を返す。
  • sys.dm_geo_replication_link_status
    geo レプリケーションの遅延を監視する。
  • sys.dm_db_index_physical_stats
    指定されたテーブルまたはビューのデータとインデックスのサイズと断片化情報を返す。sys.dm_db_column_store_row_group_physical_statsを組み合わせて使用する。

拡張イベント監視

拡張イベント監視を構成することで、クエリに関する様々な情報を収集することができる。例えば、パフォーマンスの問題の調査とトラブルシューティングに使用できるブロッキングメトリックとデッドロックメトリックをキャプチャすることができる。

拡張イベントのカテゴリ

action イベントに対するプログラムによる応答または一連の応答を返す。アクションはイベントにバインドされており、各イベントには固有のアクションのセットが含まれる場合がある。
target キャプチャしたイベントからの出力データを受信する。
predocate イベントの処理時に評価するために使用される一連の論理ルールを示す。
package Microsoft SQL Server拡張イベントオブジェクトのコンテナを示す。
operational 問題や発生の分析と診断に使用されます。これらを使用して、問題や発生に基づいてツールやタスクをトリガーできる。
admin 管理者が実行できる明確に定義された一連のアクション内の問題を示す。
analytic プログラムの操作を記述し、通常はパフォーマンス調査に使用される。
debug 開発者がデバッグ用の問題を診断するためにのみ使用する。

監視ソリューション

  • SQL Insights
    Azure SQL ファミリのあらゆる製品を監視するための包括的なソリューション
    SQL Serverの状態を監視し、パフォーマンスの問題を診断する。
  • Query Performance Insight
    単一データベースおよびプールされたデータベースに対するインテリジェントなクエリ分析を提供する。
  • SQL Database Advisor
    パフォーマンスに関する推奨事項を提供する。
  • Intelligent Insights
    組み込みのインテリジェンスを使用して、人工知能 (AI) を通じてデータベースの使用状況を継続的に監視し、パフォーマンス低下の原因となる破壊的なイベントを検出する。

コメント

このブログの人気の投稿

docker-compose up で proxyconnect tcp: dial tcp: lookup proxy.example.com: no such host

docker-compose で起動したweb、MySQLに接続できない事象

【PHP】PHP_CodeSnifferを使う(コーディングルールのカスタマイズ)