- eパウダ〜とは - New! - おべんきょう - おしゃべり - メンバーページ - お茶会(オフ情報) - ショッピング - リンク -
 

 Microsoft SQL Desktop Engine について

  ● いやー、使い方分からずかなり悶えました。覚え書きとして残しておこうと思います。

   ● 目次 ●

  ・ Microsoft SQL Desktop Engine (MSDE) でデータベースの設定をするには

  ・ まず、MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

  ・ ASPNET にMSDEへのアクセスを与える(Windows統合でSQLログインを与える場合)

  ・ データベース に入る

  ・ ASPNET アカウントにDBアクセスを許可する

  ・ DBへのSELECT,DELETE,INSERTのpublicでのアクセスを許可する

  ・ データベース を作成する

  ・ データベース を削除する

  ・ *.sqlファイルを実行し、DBを生成する

  ・ MSDEをASP.NETで使用する場合

  ・ データベースのバックアップを取る場合

  ・ データベースの差分バックアップを取る場合

  ・ データベースをバックアップファイルから復元する場合

  ・ データベースを差分バックアップファイルから復元する場合

  ・ 途中で取ったバックアップログファイルから復元する場合

  ・ あとがき


 

  Microsoft SQL Desktop Engine (MSDE) でデータベースの設定をするには

   MSDEでデータベースやユーザーログインを作成・削除などの設定をするには、コマンドプロンプトで

  osqlと言うコマンドを使います。以下に、それぞれの操作のコマンドを書いていきます。

  間違いなどございましたら、ご指摘ください。

 

  ご注意

  ※ 私が実行している環境は、オプションなしインストール時デフォルトの、Windows統合認証環境です。

  ※ 私が実行している環境は、WindowsXPですので、コマンド中に出てくる「""](ダブルクォーテーション)

     を使用していますが、 「''」(シングルクォーテーション)と置き換わる環境もあります。

 


 

  まず、MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

    すべての作業はここから

   > osql -E

 


 

  ASPNET にMSDEへのアクセスを与える(Windows統合でSQLログインを与える場合)

    1> sp_grantlogon "<computername>\ASPNET"
    2> go

 


 

  データベース に入る

    準備: osqlに入っているときは一度exitで抜ける

    1. 入りたいデータベースのあるフォルダに移動する。

      > cd "C:\Program Files\Microsoft SQL Server\MSSQL\Data"

    2. MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

      > osql -E

    3 「1>」と言うプロンプトが出たたら、以下のコマンドを実行

      1> use <database name>
      2> go

 


 

  ASPNET アカウントにDBアクセスを許可する

    1. MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

      > osql -E

    2. 「1>」と言うプロンプトが出たたら、以下のコマンドを実行

      1> sp_grantdbaccess "<computer name>\ASPNET"
      2> go

     # <computer name> はコンピュータ名に置換する

 


 

  DBへのSELECT,DELETE,INSERTのpublicでのアクセスを許可する

    1. MSDEが起動しているのを確認して以下のコマンドを実行してデータベースに入る

      > osql -E -d <database name>

    2. 「1>」と言うプロンプトが出たたら、以下のコマンドを実行

      1> grant SELECT,DELETE,INSERT on <Table name> to public
      2> go

     # <Table name> は使用したいテーブルの名前に置換する


 

  データベース を作成する

    準備: osqlに入っているときは一度exitで抜ける

    1. データベースを作成するフォルダに移動する。

      > cd "C:\Program Files\Microsoft SQL Server\MSSQL\Data"

    2. MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

      > osql -E

    3 「1>」と言うプロンプトが出たたら、以下のコマンドを実行

.
      1> create database <database name>
      2> go

 


 

  データベース を削除する

    準備: osqlに入っているときは一度exitで抜ける

    1. 削除したいデータベースのあるフォルダに移動する。

      > cd "C:\Program Files\Microsoft SQL Server\MSSQL\Data"

    2. MSDEが起動しているのを確認して「osql -E」を実行してプロンプトモードに入る

      > osql -E

    3 「1>」と言うプロンプトが出たたら、以下のコマンドを実行

     1> drop database <database name>
      2
> go

 


 

  *.sqlファイルを実行し、DB (NEWDBと言う名前にした) を生成する

    1. MSDEが起動しているのを確認して以下のコマンドを実行して生成する

      > osql -E -d NEWDB -i <filename>.sql

      (オプション:-E trusted connection -d use database name -i inputfile)

 


 

  MSDEをASP.NETで使用する場合

    1. ASPNET にMSDEへのアクセスを与える

    2. データベース に入る

    3. DBへのSELECT,DELETE,INSERTのpublicでのアクセスを許可する

 


 

  データベースのバックアップを取る場合

    準備: コマンドラインから、osql -E

    1. バックアップを取りたいデータベースとバックアップ先を指定する

      1> backup database <database name> to disk="<full path filename>"

        例) 1> backup database master to disk="c:\master_bak"

      2> go

    2. 以下のようなメッセージが出て完了。

     ファイル 1 で、データベース 'master'、ファイル 'master' の 104 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     BACKUP DATABASE は 105 ページを 0.537 秒で正常に処理しました (1.590 MB/秒)。

 


 

  データベースの差分バックアップを取る場合

    準備: コマンドラインから、osql -E

    1. バックアップを取りたいデータベースとバックアップ先を指定する

      1> backup database <database name> to disk="<full path filename>" with differential

        例) 1> backup database master to disk="c:\master_Difference_bak" with differential

      2> go

    2. 以下のようなメッセージが出て完了。

     ファイル 1 で、データベース 'master'、ファイル 'master_dat' の 16 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     BACKUP DATABASE WITH DIFFERENTIAL は 17 ページを 0.434 秒で正常に処理しました (0.304 MB/秒)。

 


 

  データベースをバックアップファイルから復元する場合

    準備: コマンドラインから、osql -E

    1. 最後に取ったバックアップファイルからデータベースを復元する

      1> restore database <database name> from disk="<full path filename>" with norecovery

        例) 1> restore database master from disk="master_bak" with norecovery

      2> restore log master from disk="<full path filename>" with recovery

        例) 2> restore log master from disk="c\maste_logr_bak" with recovery

      3> go

    2. 以下のようなメッセージが出て完了。

     ファイル 1 で、データベース 'master'、ファイル 'master_Data' の 112 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     RESTORE DATABASE は 113 ページを 0.298 秒で正常に処理しました (3.085 MB/秒)。
     RESTORE LOG は 1 ページを 0.004 秒で正常に処理しました (0.896 MB/秒)。

 


 

  データベースを差分バックアップファイルから復元する場合

    準備: コマンドラインから、osql -E

    1. 最後に取ったバックアップファイルからデータベースを復元する

      1> restore database <database name> from disk="<full path filename>" with norecovery
        例) 1> restore database master from disk="master_bak" with norecovery

      2> restore database <database name> from disk="<full path filename>" with norecovery
        例) 1> restore database master from disk="master_difference_bak" with norecovery

      3> restore log master from disk="<full path filename>" with recovery

        例) 2> restore log master from disk="c\maste_logr_bak" with recovery

      4> go

    2. 以下のようなメッセージが出て完了。

     ファイル 1 で、データベース 'master'、ファイル 'master_Data' の 112 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     RESTORE DATABASE は 113 ページを 0.298 秒で正常に処理しました (3.085 MB/秒)。
     ファイル 1 で、データベース 'master'、ファイル 'master_Data' の 32 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     RESTORE DATABASE は 33 ページを 0.198 秒で正常に処理しました (3.085 MB/秒)。
     ファイル 1 で、データベース 'master'、ファイル 'master_Log' の 2 ページが処理されました。
     RESTORE LOG は 2 ページを 0.004 秒で正常に処理しました (2.304 MB/秒)。

 


 

  途中で取ったバックアップログファイルから復元する場合

    準備: コマンドラインから、osql -E

    1. 最後に取ったバックアップファイルからデータベースを復元する

      1> restore database <database name> from disk="<full path filename>" with norecovery

        例) 1> restore database master from disk="master_bak" with norecovery

      2> restore log <database name> from disk="<full path filename>" with norecovery

        例) 1> restore log master from disk="master_difference_bak" with norecovery

      3> restore log master from disk="<full path filename2>" with recovery

        例) 2> restore log master from disk="c\maste_log2_bak" with recovery

      4> go

    2. 以下のようなメッセージが出て完了。

     ファイル 1 で、データベース 'master'、ファイル 'master_Data' の 112 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     RESTORE DATABASE は 113 ページを 0.298 秒で正常に処理しました (3.085 MB/秒)。
     ファイル 1 で、データベース 'master'、ファイル 'master_Data' の 32 ページが処理されました。
     ファイル 1 で、データベース 'master'、ファイル 'master_log'' の 1 ページが処理されました。
     RESTORE LOG は 2 ページを 0.005 秒で正常に処理しました (1.843 MB/秒)。
     ファイル 1 で、データベース 'master'、ファイル 'master_Log' の 2 ページが処理されました。
     RESTORE LOG は 1 ページを 0.023 秒で正常に処理しました (0.244 MB/秒)。

 


 

  あとがき

   参考 : AILightと言う.NET関連サイトの掲示板での質問に、アイライト様、菊池様、小野様に丁寧にお答えいただきました。

   アイライトさんのサイト 「AILight 〜.NET Control Vender & .NET Laboratory〜」 http://www.ailight.jp/

   小野さんのサイト 「どっとねっとふぁん」  http://www.dotnetfan.com/

   記事作成日 : 2003/11/13

   記事更新日 :

   2004/01/26 データベースのバックアップと復元を書き足してみました。

   2003/11/14 少しだけ詳しく書き直してみました。

 

   内容的におかしいところ、見づらい個所(色使い)などございましたらご指摘ください。

   同じようにMSDEを利用されている方からの苦労話も大歓迎です。

 

     モンドリィの自習室 - トップへ - SQL関連Tipsへ