HTTP経由でキューブにアクセスする方法

ネットワークが特殊な環境で2383ポートが使用できず、80(または443)ポートが使用可能な場合、HTTP経由でキューブにアクセスする方法があります。

詳しくは公式サイトに載っていますので手順通りに設定すれば問題ないかと思います。

※SQL Server 2012 へのリンクページですが、デフォルトのページが一部英語であったため、すべて日本語になっている上記のリンクに飛ばしています。

 

上記のリンク先の説明で気をつける点があります。

まず「msmdpump.dll」「msmdpump.ini」「Resources」の配置先が「C:inetpubwwwrootolap」と「C:inetpubwwwrootolapisapi」の2パターンが書いてありますが、isapiフォルダはなくても問題ありません。接続先のURLを短くしたいのであれば olap フォルダの直下に上記の3つを入れてしまった方がいいでしょう。

もう一点「msmdpump.ini」ファイル内の「ServerName」のサーバー名は「IISから見たキューブ(Anarysis Services)があるサーバーの名前」です。ですので、IISとキューブが同じサーバーにある場合はそのまま「localhost」で問題ありません。勘違いして外から見たIISサーバー名を指定するとつながらなくなってしまう場合があります。私はこれで結構はまってしまいました。

]]>

Windows 認証、または SQL Server 認証 sa ユーザー以外のユーザーに SQL Server エージェントのジョブ実行権限を付与する方法

メモ書きです。

  1. SQL Server Management Studio から「セキュリティ」-「ログイン」を開き、対象ユーザーのプロパティを開く
  2. 「ユーザーマッピング」を選択し、「msdb」にチェックを入れる。
  3. さらに msdb を選択した状態でメンバーシップから以下のメンバーシップにチェックを入れる
    • SQLAgentUserRole
    • SQLAgentReaderRole
    • SQLAgentOperatorRole
  4. 後はプログラムなどから対象ユーザーの接続文字列を使用してジョブが実行されるかチェックする
]]>

Windows Server バックアップで共有保護ポイントの作成のタイムアウトを防ぐ

  • Windows Server 2008 R2 SP1 DataCenter (Windows Server 2008 系列であればどれも同じだと思います)
  • 【手順】
    1. スタートメニューの「プログラムとファイルの検索」の入力欄に「regedit」と入力してレジストリエディタを起動する。
    2. 「コンピューターHKEY_LOCAL_MACHINESOFTWAREMicrosoftWindows NTCurrentVersionSPP」のフォルダを選択
    3. 「SPP」フォルダを右クリックして「新規」-「DWORD (32 ビット) 値」を選択
    4. 右のレジストリ一覧に DWORD が追加されるので名前を「CreateTimeout」に変更する
    5. 「CreateTimeout」をダブルクリックして編集を開始する
    6. 表記から「10 進数」をチェック (16進数でも構いませんが入力する値が大きいのでわかりにくいです)
    7. 値のデータにタイム時間を「ミリ秒(ms)」で入力する。たとえばタイムアウト時間を 10 分にしたい場合は「600000」と入力します。
    8. OKボタンを押して確定する
    ]]>

    ワークグループでネイティブモードの Reporting Services がインストール済みの環境に対して SharePoint Server をインストールして統合モードにする方法

    下記のリンク先の手順で統合はできました。リンク先ではドメイン環境前提で説明されていますが、ワークグループ環境でスタンドアロンインストールでも大丈夫みたいです。その場合、途中の操作手順がいくつか異なります。

    ]]>

    SSRS でグラフのサイズを動的に変更する

    SSRS やレポートビルダーでグラスのサイズを指定する場合 Size プロパティの Width や Height を変更することになると思います。デザイナ上でドラッグして変更した場合もこの値が変更されます。

    しかし、Size プロパティには「式」を設定することができないため、このプロパティではパラメータやフィールドを使って動的にグラフのサイズを変更させることができません。

    Size を動的に変更するには「DynamicWidth」と「DynamicHeight」プロパティを使用します。こちらはデータの型に「ReportExpression<ReportSize>」が適用されているので式を埋め込むことができます。

    ]]>

    IISにASP.NETアプリケーションのインポートメニューを追加する

    【環境】

    • Windows Server 2008 R2 SP1
    • IIS 7.5

    【内容】

    ASP.NETアプリケーションをIISに配置する際にIISの「アプリケーションのインポート」を使えば余計なファイルをコピーせずに配置できるのですが、既定ではこのメニューはついていなかったんですね。

    「アプリケーションのインポート」その他展開メニューを追加するには「Web配置ツール」をインストールする必要があります。Web配置ツールは以下のリンク先からダウンロードできます。また、Web PI からもインストールすることもできます。

    ]]>

    Reporting Services をインストール後、サーバー名を変更したときの対処法

    Reporting Services をインストールした時にいくつかの設定はインストール時のサーバー名を使用しているため、後でサーバー名を変更するとReporting Services が正常に動作しなくなります。

    ここではサーバー名を変更した後に Reporting Services の設定を変更すべき個所を説明します。

    【環境】

    • SQL Server 2008 R2

    ■参照データベースのサーバー名

    Reporting Services インストール時は参照データベースのサーバー名がインストール時のサーバー名になっているのでそれを変更後サーバー名、または localhost に変更します。

    1. スタートメニューから「Microsoft SQL Server 2008 R2」⇒「構成ツール」⇒「Reporting Services 構成マネージャー」を選択
    2. 左のメニューから「データベース」を選択
    3. 右のビューから「データベースの変更」をクリック
    4. 「既存のレポート サーバー データベースを選択する」にチェック
    5. 「サーバー名」を新しいサーバー名にするか「localhost」に変更。正常に接続できるかテストする。
    6. レポート サーバー データベースの選択で「ReportServer」を選択
    7. 後はそのままウィザードをすすめる (構成に数分かかる場合があります)

     

    他にはユーザーがデータソースなどでサーバー名を直接指定している場合はそれらをすべて変更する必要があります。

    ]]>

    SQL Server データベースの自動バックアップ

    今まで SQL Server のデータベースのバックアップは SSIS や Windows タスクを使用したバックアップ SQL でやってたのですが、SQL Server Management Studio を使えば簡単にバックアップスケジュールを組めたんですね。

    せっかくなのでその手順を簡単に書いておきます。

    【環境】

    • SQL Server 2008 R2
    • Windows Server 2008 R2

    【手順】

    1. SQL Server Management Studio を起動
    2. 対象データベースエンジンを開き、「管理」フォルダを展開
    3. 「メンテナンス プラン」を右クリックし、「新しい メンテナンス プラン」を選択
    4. 新しいメンテナンス プランで任意の名前を指定
    5. デザイン画面が表示されるので、ツールボックスから「データベースのバックアップ タスク」をデザイナー画面にドラッグ&ドロップ
    6. 配置したデータベースのバックアップ タスクをダブルクリック
    7. ダイアログが開くので、バックアップするデータベースの選択、バックアップファイルの出力先、追加、上書きなどを指定して OK をクリック。
    8. ビューの上にあるサブプランからカレンダーアイコンをクリック。
    9. ジョブ スケジュールのプロパティが開くので、バックアップを行うタイミングを任意に設定して OK をクリック

    後は指定した時間に自動的にデータベースがバックアップされます。

    ちなみにこのメンテナンスは内部では SQL Server エージェントのジョブを作成しており単にそれを実行しているので、ジョブを見てみると作成したバックアップ タスクが追加されていることがわかります。

    ]]>