SQL Database から Microsoft Azure 仮想マシン + SQL Server 環境 へのデータ移行方法について

  皆さん、こんにちは。SQL Server/Microsoft Azure SQL Database サポートチームです。今回のテーマは SQL Database から IaaS 環境へのデータ移行方法についてです。 Microsoft Azure SQL Database (以下 MASD) /Microsoft Azure 仮想マシン + SQL Server  (以下 SQL VM) をご利用いただいているお客様からよく頂くご質問の一つに、MASD から SQL VM へのデータ移行方法に関するものがあります。 当初は、MASD の使用した開発を検討していたが、SQL Server のフル機能を使用したいなど、開発途中で要件変更が発生し、別の環境にデータ移行を行う必要が出てくる可能性があると思います。 今回は、このような状況で役立つ、MASD から SQL VM へのデータ移行方法をご紹介します。   [前提条件] データ移行先の Microsoft Azure 仮想マシンに SQL Server がインストールされていることを前提にしています。   [事前準備] 1) Microsoft Azure…


[SQL Database] SQL Server – Windows Azure SQL Database (WASD) 間のデータ同期方法について

皆さん、こんにちは。 SQL Server/Windows Azure SQL Database サポートチームの高原です。 今回は、Windows Azure SQL Database (以下 WASD) に関するお問い合わせの中で、よくあるお問い合わせの一つを紹介します。 [質問] オンプレミス上の SQL Server と WASD 間のデータの同期を実施したいが、同期する方法について知りたい。 [回答] オンプレミス上の SQL Server と WASD 間のデータの同期(差分同期) を自動的に行える機能は、2014年2月 時点にてございません。 しかしながら、毎回 全データの同期となりますが、代替案として、以下のツールを使用することにより、データの同期を行うことができます。 A) SqlPackage.exe メリット : リトライロジックが実装されているため、何らかの要因により Export/Import 処理が失敗したとしても、失敗した処理から再処理を行うことが可能となります。 B) SQL Azure へのデータベースの配置 (SQL Server Management Studio 以下 SSMS) メリット : SSMS から 簡単に処理を実行することが可能となります。 C)…


SQL Server 2012 BCP ユーティリティ 使用時の警告 “フォーマット ファイルを使用して BCP インポートを行うと、区切り列内の空の文字列が NULL に変換されます。” について

    皆さん、こんにちは。 SQL Server/Windows Azure SQL Database サポート チームです。 今回は、SQL Server 2012 に関するお問い合わせの中で、よくあるお問い合わせの一つを紹介したいと思います。   [質問] SQL Server 2012 の BCP ユーティリティ を使用し、テーブル上のデータをエクスポートした場合、 以下の警告が毎回 発生する。 フォーマット ファイルを使用して BCP インポートを行うと、区切り列内の空の文字列が NULL に変換されます。 コマンドプロンプト から BCP ユーティリティ で テーブル上のデータをエクスポートする際、 –o オプション や –e オプション を使用し、エラーや警告の発生有無により、処理が正常に完了しているかを判断しているが、毎回 警告が発生するため、処理の正常有無を判断することができない状態となっている。 この警告を出さないようにする方法があるか?  [回答] この警告を出力させないようにする方法はありません。 SQL Server 2012 BCP ユーティリティでは、テーブル列に NULL 値を含む テーブルをエクスポートした場合、この警告が出力されるようになりました。…


osql での DBCC CHECKDB 結果に "SQLGetDiagRec failed" が大量に出力される

山田 浩史 SQL Engine Support Engineer みなさん、こんにちは。今回は、osql を使用していると直面しうるエラーについて紹介します。 現象 osql ユーティリティにて DBCC CHECKDB を実行した場合、出力結果内に “SQLGetDiagRec failed” のメッセージが大量に出力される。 -o オプションを使用して、結果をファイルに出力した場合も、コマンドプロンプトの標準出力に結果を出力した場合も同様に “SQLGetDiagRec failed” のメッセージが出力されます。 本現象の特徴は、出力結果内の 32768 行目から “SQLGetDiagRec failed” のメッセージが連続して出力される事です。     出力例:     —–     32766 行目 ‘test_table’ の DBCC 結果。     32767 行目 オブジェクト “test_table” の 0 ページには 0 行あります。     32768 行目 SQLGetDiagRec failed    …


Kerberos Configuration Manager for SQL Server

  神谷 雅紀 SQL Server Escalation Engineer       リンクサーバーなど複数のサーバー間で資格情報の受け渡しが必要となる処理を行おうとした場合、Kerberos を用いた認証が必須になります。しかし、Kerberos 認証を行うためには、いくつかの設定が必要です。それらの設定が正しく行われていない場合には、資格情報の受け渡しが行えず、正常に機能しません。 先日、Kerberos の設定に関わるトラブルシューティングを行うためのツールを公開しました。 ツールは、以下の URL よりダウンロードすることができます。   Microsoft® Kerberos Configuration Manager for SQL Server® http://www.microsoft.com/en-us/download/details.aspx?id=39046   使い方は非常に簡単で、KerberosConfigMgr.exe を実行した後、Connect メニューで対象サーバーへ接続します。サーバー名やユーザー名を指定せずに接続すると、ローカルサーバーに接続します。設定の確認に必要な操作はこれだけです。 接続すると、以下のように、そのサーバー上の SQL Server インスタンスとサービスアカウントに関して、SPN の登録状態や委任 (Delegation) の設定状態が表示されます。       表示されている内容を確認し、不足していたり、誤った設定が報告されている場合には、それを正します。 委任の設定については手動で行う必要がありますが、SPN に関しては、ツール実行者に権限があれば、ボタン一つで必要な SPN 設定を行うことができます。          


[SQL Troubleshooting] 第5回 サーバートレースの解析方法 – (2)

  福原 宗稚 SQL Server Support Engineer   第4回 サーバートレースの解析方法 – (1) では、サーバートレースの出力をテーブルに格納し、CPU Time の値が大きいクエリや、reads や writes の値が大きいクエリを、簡単に見つける方法をご案内しました。今回は、さらにサーバートレースとパフォーマンスログの結果を簡単に関連付けて確認する方法をご紹介します。 例えば、CPU 使用率の値が大きいクエリやreads や writes の値が大きいクエリがあったが、その時サーバー全体として負荷は高かったのか、逆に CPU 使用率が高い時間帯があったが、その時どのようなクエリが実行されていたのかということを SQL Server Profiler を使用して確認できます。 a. サーバートレースとパフォーマンスログの準備 b. サーバートレースとパフォーマンスログの関連付け c. サーバートレースからの確認 d. パフォーマンスログからの確認 e. まとめ       ※ Books Online では、下記のトピックとしてご紹介しています。 トレースと Windows パフォーマンス ログ データの関連付け (SQL Server Profiler)    a. サーバートレースとパフォーマンスログの準備…


SQL Server Profiler ツールの LoginName 列に無効化している“sa” ログインが出力される

  高原 伸城 SQL Server Support Engineer                                                                                                                               皆さん、こんにちは。 SQL Server/SQL Database サポートを担当しております 高原 です。 今回は、SQL Server に関するお問い合わせの中から、SQL Server Profiler ツールに関する内容を紹介したいと思います。                                                                                                                                [質問] セキュリティの観点により、”sa” ログインを無効にしているが、SQL Server Profiler ツールで採取したトレース情報の “LoginName” 列に “sa” が出力されている。  ”sa” ログインを無効にした状態においても、“LoginName” 列に “sa” が出力されることがあるのか知りたい。                                                                                                                      [回答] “sa” ログインの権限は、SQL Server のシステム スレッド (セッション ID が 50 以下のスレッド) などにより使用されているため、”sa” ログインを無効にしている場合でも、SQL Server Profiler ツールで採取したトレース情報の “LoginName”…


[SSRS] Response.Redirect でページ遷移すると画像が見えなくなる(deleteAfterServicing パラメーター)

横井 羽衣子(よこい ういこ) SQL Developer Support Engineer 皆様ごきげんよう。今日は、Chart コントロールの再表示の問題と、簡単な切り分け方法についてご案内いたします。 【今日のお題】 ASP.NET Web アプリケーションで、chart コントロールを利用し、レポートからデータを取得している。 chart 表示ページから別のページに遷移し、Response.Redirect で遷移元のページに移動すると、複数ある chart の画像のうち、いくつかがランダムに表示されない状態 [x] になることがある。 ← こんな感じ ただし、例外は発生しておらず、イベント ハンドラに渡されたパスも NULL ではなく、データがあるように見える。 なお、静的リンクや、Server.Transfer などを使うと問題なく表示される。また F5 を押し、リフレッシュなどすると表示される。なぜこうした状況になるか。     1. 対処 : deleteAfterServicing パラメーターを明示的に False にする Chart コントロールを追加すると、Web.config ファイルに "ChartImageHandler" として自動的に ChartHttpHandler が登録されます。対処としては、このChartHttpHandler のvalue 属性で deleteAfterServicing パラメーターを false にしてあげることになります。 例)  <add key="ChartImageHandler"…


クエリ ビルダーで作られたクエリを実行すると構文エラーが発生する

福原 宗稚 SQL Developer Support Engineer   Visual Studio 2008、 Visual Studio 2010のクエリビルダーで、珍しい現象ではありますが、遭遇してしまうと不便だと思われる現象がありましたので、ご紹介します。 クエリ ビルダーとは まず、クエリ ビルダーとは、SQL Server 等データベースへのクエリを GUI を使って定義できる便利なツールです。(Visual Studio で一例としては、データセット デザイナーでTableAdapter 構成ウィザードを使用する際に使用されます。) TableAdapter 構成ウィザードでは、「SQL ステートメントの入力」画面から、「クエリ ビルダー」ボタンをクリックすることで、「クエリ ビルダー」画面が起動します。ここで、結合するテーブルを追加したり、列を追加したり、絞り込み条件を追加するという操作を GUI で操作することができます。   現象 「SQL ステートメントの入力」画面でクエリを記述した後、追加で修正等行う際、クエリ ビルダーを使用することがあります。 クエリ ビルダーの動作の一つとして、必ずしも必要ではない、列名につけている [ ] や “ “ を削除し、クエリを整形するという操作があります。下図のクエリは SQL Server 2008 や SQL Server 2008 R2 に接続している場合、通常 […


DO’s&DONT’s #15: やってはいけないこと – クラスタ SQL Server をサービスとして操作すること

神谷 雅紀 Escalation Engineer   MSCS または MSFC クラスタリソースとして動作している SQL Server や SQL Server Agent を net コマンドや sc コマンド、コントロールパネルの「サービス」 (services.msc MMC スナップイン) から停止したり、開始したりしてはいけません。   なぜ? クラスタリソースとして動作している SQL Server や SQL Server Agent は、その実体はサービスであっても、クラスタサービスの管理下にあります。例えば、SQL Server クラスタリソースをオンラインまたはオフラインにしようとすると、その要求は、以下の図のように伝播します。SQL Server Agent の場合にはクラスタリソース DLL が SQL Server Agent 用になりますが、要求の伝播の仕方は全く同じです。要求の処理結果は、この経路を逆にたどって要求元に返されます。 では、net stop や sc stop で SQL Server サービスを停止した場合、どのようなことが起こるでしょうか? その要求は、クラスタサービスを経由せず、直接サービスコントロールマネージャに送られます。そのような停止要求があったことは、クラスタリソース…