MSDE FunClub
Microsoft Data Engine FunClub
現在までのアクセスカウント数
Since 2005.08.20
最終更新日:2005/09/29
 
 [MSDE FunClub TOP]  > [MSDE 技術サポート情報]   > [MSDE / SQL Server バックアップ ツール] 
 
【 MSDE SQLServer バックアップ ツール】
 
 

 
 
MSDE FunClub
メニュー
■ MSDE 2000
技術情報一覧に
戻る
■ MSDE 2000
初心者向け
メーリングリスト
ご案内
■ MSDE 2000
技術者向け
メーリングリスト
ご案内
■ MSDE FunClub
HOME へ戻る
 
マイクロソフト
関連ページ
■ 文書番号:241397
Transact-SQL を使用した MSDE データベースのバックアップ方法
■ 文書番号:319930
Microsoft Desktop
Engine
に接続する方法
■ BACKUP命令
■ RESTORE命令
■ RESTORE HEADERONLY命令
 
 
MSDE SQL Server バックアップ ツール
 
MSDE SQL Server バックアップ ツール:0010]
私は、SQLServerの初心者です。MSDE 2000 データベースのバックアップで解説された「auto_backup」ストアドプロシージャを使ったバックアップ方法が、何となく難しく感じます。 私は、SQL Server のSQL文が苦手です。こんな私でも、SQLServerのデータベースをバックアップする方法はありますか?
SQLServerのSQL文が苦手というのは、データベース管理者にとって良いことではありません。毎日が忙しいとは思いますが、SQL ServerのSQL文、特に、バックアップとリストアに関係する部分は重要です。 バックアップとリストア作業は、データベース管理者の作業内容では非常に大事です。この部分に関係する、SQLServerのSQL文を覚えることをおすすめします。
しかしながら、SQL Serverの学習を進めている間でも、データベースサーバーのバックアップ作業をしなければいけません。そこでそのような人のための、バックアップツールを作りました。ぜひご利用下さい。
 
 
MSDE SQL Server バックアップ ツール:0020]
私は、SQL Serverの初心者です。どうも、Enterprise Manager を使ったSQLServerのバックアップが、何だか難しく感じて、正しくバックアップができているのか不安に駆られます。ボタンを押すだけで、SQLServerのデータベースのバックアップを行なうことはできないのでしょうか?
SQL ServerのEnterprise Managerは、SQLServerが持っている機能をすべて生かすために、様々なオプション機能の設定をすることができます。そのことが逆に、SQL Server初心者の人には難しい操作だと感じることがあります。
SQLServer初心者の人には、SQL Server初心者なりの使い方があっても良いと私は思います。Enterprise Managerを使わずに、シンプルで簡単なプログラムを使って、SQLServerのデータベースのバックアップを実行しましょう。そこでそのような人のために、バックアップツールを作りました。ぜひ、ご利用下さい。
 
 
MSDE SQL Server バックアップ ツール:0030]
私は、MSDE 2000初心者です。OSQLコマンドの使い方がわからなくて、MSDE 2000 データベースのバックアップの「auto_backup」ストアドプロシージャの登録ができませんでした。何か他の方法で、MSDE2000 データベースのバックアップを行なうことはできませんか?
MSDE2000 ユーザにとって、MSDE と互換性のある SQLServer が持っているSQL言語(Transact-SQLと言う)の文法を覚えて、それをOSQLコマンドを使って実際に MSDE2000 データベースサーバーに実行させる作業はとても大事なことです。
しかし MSDE2000 初心者が、OSQLコマンドを覚えることは、時間や労力もかかり、なかなかすぐに習得できるものではありません。けれども、MSDE2000 データベースサーバーのバックアップは、勉強途中でもやらなければいけない大事な作業です。
そこで、ボタンを押すだけで、 MSDE2000 データベースサーバーのバックアップを実行するプログラムを作りました。ぜひ、ご利用下さい。
 
 
MSDE SQL Server バックアップ ツール:0040]
「MSDE SQL Server バックアップツール」は、どこから、入手できますか?また費用はいくらですか?
「MSDE SQLServer バックアップツール」は、

ダウンロード
msde_backup_tool.vbs.txt

(保存するときに.txt拡張子を除いて下さい)

をクリックして下さい。上記リンクの上で、マウスの右クリックメニューで表示される「対象をファイルに保存」で保存することができます(IEの場合)。保存時にファイルの拡張子.txtを取り除いて下さい

VBScriptの簡単なプログラムです。もちろん、費用は無償です。

 
 
MSDE SQL Server バックアップ ツール:0050]
「MSDE SQLServer バックアップツール」は、どのようなプログラムなのでしょうか?また、どのような、バックアップを行なうのですか?
「MSDE SQLServer バックアップツール」は、VBScript(VisualBasic Script)で作られたプログラムです。
プログラムの中で定義された、MSDE SQLServer データベースサーバーに接続を行なって、データベースサーバー上に存在するすべてのデータベース(システムデータベースも含む)の全体バックアップを実施するものです。
 
 
MSDE SQL Server バックアップ ツール:0060]
「MSDE SQLServer バックアップツール」の実行には、何が必要になりますか?
VBScriptのプログラムなので、このプログラムを実行するコンピュータ上では、VBScriptの実行が許可になっている必要があります。
VBScriptは、IEのインストールで一緒に組み込まれているはずです。
しかしコンピュータのセキュリティを強化するため、ファイル拡張子.vbsの実行を禁止したり、あるいは、そのファイルを開いたり実行したりすると、メモ帳が起動するような設定にしているコンピュータもあります。そのようなセキュリティが強化されたコンピュータでは、このプログラムの実行はできません。
 
 
MSDE SQL Server バックアップ ツール:0070]
VBScriptが実行できるかどうか、簡単に調べる方法はありますか?
「MSDE SQLServer バックアップツール」は、ファイル拡張子.vbsのプログラムです。エクスプローラーで、ファイル拡張子.vbsに関連付けられたプログラムの調査を行ないます。
拡張子.vbsが登録され、しかも、「開く」操作で起動するプログラムが、WScript.exe になっていれば大丈夫です。

 メモ帳で、「test.vbs」というファイルを作り、そのファイルに、

MSGBOX "こんにちは"

と書きます。
そのファイルをマウスでダブルクリックして、メッセージボックスが表示できれば、VBScriptのプログラムの実行ができます。
 
 
MSDE SQL Server バックアップ ツール:0080]
「MSDE SQLServer バックアップツール」を実行するためには、VBScriptの他に何か必要ですか?
「MSDE SQLServer バックアップツール」は、VBScriptの実行環境の他に、MSDE や SQLServer へ接続するために、データベース接続オブジェクトADO(ActiveX Data Object)を使います。
また、ADOの中で、MSDE/SQLServer接続用のOLE-DBプロバイダ(SQLOLEDB)を使います。

「MSDE SQLServer バックアップツール」は、ADOとSQLOLEDBプロバイダの両方が組み込まれているコンピュータで実行します。

WindowsXPなど、最新のコンピュータでは、元々から標準でこれらは、組み込まれています。また、マイクロソフト社のホームページから、Microsoft Data Access Components (MDAC) 2.8 SP1などをインストールすると、ADOやSQLOLEDBなどが組み込まれます。

基本的に、MDACは、WindowsのセキュリティUpdate等で、すでに組み込まれていると考えることができますので、わざわざインストールすることはありません。「MSDE SQLServer バックアップツール」の実行を試して、実行できなかったときに、これらのインストールを検討して下さい。

 
 
MSDE SQL Server バックアップ ツール:0090]
「MSDE SQLServer バックアップツール」は、MSDE や SQLServer のデータベースサーバーから、ネットワーク的に離れたクライアントコンピュータから実行するものですか?
「MSDE SQLServer バックアップツール」は、MSDE や SQLServer のデータベースサーバーコンピュータからネットワーク的に離れたクライアントコンピュータの上で実行することもできます。
また、MSDE や SQLServer が稼働しているデータベースサーバー上で、実行することもできます。
両方の運用形体が可能です。
 
 
MSDE SQL Server バックアップ ツール:0100]
「MSDE SQLServer バックアップツール」を、ネットワーク越しのクライアントコンピュータで実行する方法と、MSDE SQLServer のデータベースサーバー上で実行する方法の、選択基準を教えて下さい。
「MSDE SQLServer バックアップツール」を、MSDE SQLServer のデータベースサーバー上で実行するか、クライアント側コンピュータから実行するかの選択の基準は、MSDE SQLServer のデータベースサーバーが、どの場所で稼働しているかによります。

MSDE SQLServer のデータベースサーバーのコンピュータがネットワーク的に離れた場所で鍵の掛かっているサーバーラック内で動いているとか、MSDE SQLServer のデータベースサーバーは常にログオフされており、すぐに使うことができないような環境であれば、クライアントコンピュータから、データベースのバックアップを実行するのが良いでしょう。

一方、MSDE SQLServer のデータベースサーバーは、クライアントコンピュータのすぐ近くに存在するとか、常時ログオンされ、使用したいときに使える状態になっているとか、常時ログオフ状態でもログオンしてそのサーバーを使うことができるような場合は、MSDE SQLServer のデータベースサーバー上で、「MSDE SQLServer バックアップツール」を実行するのが良いと思います。

「MSDE SQLServer バックアップツール」をネットワーク越しのクライアントコンピュータから実行する場合は、ネットワーク的な問題や、Windowsのログオン認証の問題など、余計なトラブルが発生します。これらのトラブルに対処できる力量が備わっているチームであれば問題ありませんが、初心者が、MSDE SQLServer のデータベースサーバーを管理している環境では、トラブル防止のために、「MSDE SQLServer バックアップツール」は、データベースサーバー上で実行してください。

 
 
MSDE SQL Server バックアップ ツール:0110]
「MSDE SQLServer バックアップツール」のプログラムの、DBServerName変数には、どのような値を設定しますか?
「MSDE SQLServer バックアップツール」の、DBServerName変数には、MSDE SQLServer データベースサーバーが動いている接続先の名前を代入します。バックアップを行なうデータベースサーバーの名前です。
インスタンス形式で動いているのであれば、サーバー名\インスタンス名 の書式になります。
 
 
MSDE SQL Server バックアップ ツール:0120]
「MSDE SQLServer バックアップツール」の、DBServerName変数に代入する内容を、初心者の私でもわかるように教えて下さい
MSDE SQLServer データベースサーバーが動いているデータベースサーバー上のコンピュータで、サービスマネージャを開いてください。

左の図のように、表示された場合は、接続先サーバー名は、ASTAR2 です。
この MSDE SQLServer データベースサーバーのバックアップを実行するときは、
DBServerName="ASTAR2"
とします。
 

左の図のように、表示された場合は、接続先サーバー名は、ASTAR2\DBSRV2 です。
名前の付いたインスタンス形式で動いています。
この MSDE SQLServer データベースサーバーのバックアップを実行するときは、
DBServerName="ASTAR2\DBSRV2"
とします。
 

サービスマネージャで表示された、サーバーの名前を代入します。

 
 
MSDE SQL Server バックアップ ツール:0130]
「MSDE SQLServer バックアップツール」のプログラムの、IsTrustedLogin変数には、どのような値を代入したらよろしいですか?
「MSDE SQLServer バックアップツール」の、IsTrustedLogin変数は、 MSDE SQLServer データベースサーバーへ接続するときのログイン認証の方法を定義します。

=0のときは、saログイン名を使って接続を行ないます。

=1のときは、Windows信頼接続(通称WindowsNT認証)で、ログイン接続を試みます。

 
 
MSDE SQL Server バックアップ ツール:0140]
私は、MSDE SQLServer 初心者です。「MSDE SQLServer バックアップツール」のプログラムの、IsTrustedLogin変数には、どのような値を定義したらよいですか?
初心者の方が、「MSDE SQLServer バックアップツール」を使われる場合は、=0のsaログイン接続を使う方法が良いと思います。但し、MSDE SQLServer データベースサーバー自身が、saログイン接続を拒否する設定をすることができます。拒否されたサーバーでは、Windows信頼接続だけが認められています。

「MSDE SQLServer バックアップツール」では、saログイン接続が認められているデータベースサーバーだと仮定しています。
MSDE 2000 をインストールしたときに、SECURITYMODE=SQL スイッチを付けてインストールしているものとします。このスイッチを付けなければ、saログイン接続は拒否されます。

 
 
MSDE SQL Server バックアップ ツール:0150]
「MSDE SQLServer バックアップツール」のプログラムの、IsTrustedLogin変数を =1 にして、Windows信頼接続で接続をしようと思います。どのような点に注意したらよいですか?
ドメインネットワークやActiveDirectoryで運用している場合は、システム管理者にご相談下さい。ここでは、小規模なワークグループネットワークだとします。

MSDE SQLServer データベースサーバーが稼働しているWindows上のシステム管理者権限(Administrator権限)で、ネットワーク経由で接続が行なわれないといけません。

一番簡単な方法は、ネットワーク経由で接続するのではなく、「MSDE SQLServer バックアップツール」プログラムは、MSDE SQLServer データベースサーバーが稼働しているWindows上で直接実行します。しかもデータベースサーバーにログオンする際は、Administrator権限者でログインしてプログラムを実行します。
この方法であれば、問題は発生しません。

ネットワーク的に離れたクライアントコンピュータから、「MSDE SQLServer バックアップツール」のプログラムを実行する場合は、 そのクライアントコンピュータを起動するときに使用したログオンユーザ名とパスワードが、MSDE SQLServer データベースサーバーが 稼働しているWindows上で、Administrator権限者として登録されている必要があります。

 
 
MSDE SQL Server バックアップ ツール:0160]
「MSDE SQLServer バックアップツール」プログラムの、IsTrustedLogin変数を =1 にした場合、なぜ、Administrator権限者としてネットワーク接続をしなければいけないのでしょうか?普通のユーザとして接続してはいけませんか?
Windows信頼関係接続で一般ユーザとして接続をするときは、MSDE SQLServer データベースサーバーの中で、その一般ユーザを接続許可の設定をしなければいけません。また、すべてのデータベースのバックアップを実行するために、そのユーザに、MSDE SQLServer の sysadmin権限を付与しなければいけません。
このような一連の作業をしているのであれば、Windowsの一般ユーザとして、MSDE SQLServer データベースサーバーへ接続することができます。

しかしこのような作業は、通常は、行なわれておりません。

そこで、MSDE SQLServer データベースサーバーでは、そのサーバー上のAdministratorsグループの接続が無条件に許可されていることを利用します(通常はAdministratorユーザ)。しかもそのユーザは、自動的にsysadmin権限者に割り当てられています。このような設定を利用して、MSDE SQLServer に接続を行なって、バックアップ作業を行ないます。

 
 
MSDE SQL Server バックアップ ツール:0170]
「MSDE SQLServer バックアップツール」プログラムの、BackupDir変数に設定をする内容は何ですか?
「MSDE SQLServer バックアップツール」プログラムの、BackupDir変数は、バックアップ作業で作成されるファイルを格納するディレクトリ名を定義します。このディレクトリの中に、バックアップファイルが作成されます。

BackupDir="D:\BackupDir"

とすると、MSDE SQLServer データベースサーバー上のドライブD:のフォルダBackupDirの中に、バックアップファイルが作成されます。

注意するのは、このドライブ名は、MSDE SQLServer データベースサーバーが稼働しているサーバーコンピュータを基準に見たドライブ名となります(SQL文の命令が実行されるのは、データベースサーバー上です)。

ネットワーク経由で「MSDE SQLServer バックアップツール」を実行するときに、クライアント側コンピュータから見たドライブ名やフォルダ名を記述するミスを犯すことがあります。注意して下さい。

 
 
MSDE SQL Server バックアップ ツール:0180]
「MSDE SQLServer バックアップツール」プログラムの、BackupDir変数に

BackupDir="D:\BackupSave"

と設定してプログラムを実行したら、

D:\BackupSave\MSDEBackup-20050820-134057.bak

のファイルが作成されました。これは何ですか?

MSDE SQLServer データベースサーバーに接続を行い、すべてのデータベースの全体バックアップを実行し、1つのファイルにまとめたものです。このファイルの中に、MSDE SQLServer のmasterなどのシステムデータベースやユーザデータベースなどを全部バックアップしました(tempdbデータベースはバックアップする必要が無いのでバックアップから除かれます)。

ファイル名には、バックアップを実行した日付けと時間が含まれます。20050820とは、2005年8月20日です。134057は、13時40分57秒です。

「MSDE SQLServer バックアップツール」で作成されたMSDE SQLServer データベースサーバーのバックアップファイルを、ハードディスク内で管理すれば、必要な日時のデータベースを復元することができます。

 
 
MSDE SQL Server バックアップ ツール:0190]
私が運営する、MSDE SQLServer データベースサーバー上には、ユーザデータベースが現在5個あります。なぜバックアップファイルは1個なのですか?何か特殊な方法でバックアップしたのですか?
特殊なバックアップ方法を使ったのではなく、MSDE SQLServer が提供する標準的な方法でバックアップをしました。

バックアップを実行する BACKUP DATABASE 命令では、バックアップ先に指定されたバックアップファイルが存在すると、そのバックアップファイルの内容を消去するのではなく、後ろへ後ろへと追記形式でバックアップデータを書き込みます。
このため、バックアップ命令で同じバックアップファイル名を指定すれば、1本のバックアップファイルに複数のデータベースのバックアップが作成されます。

この方法を使っているので、MSDE SQLServer データベースサーバー上に複数のデータベースが存在しても、バックアップファイルは1個になります。

 
 
MSDE SQL Server バックアップ ツール:0200]
「MSDE SQLServer バックアップツール」プログラムを実行しました。

画面のタイトルバーに表示される数字の意味を教えて下さい。

「MSDE SQLServer バックアップツール」プログラムは、MSDE SQLServerデータベースサーバーに接続を行なって、データベースサーバー上に存在するデータベースの名前と総数の情報を入手します。

分母の数字(この例では、16)は、データベースサーバー上に存在するデータベースの総数を表します。この総数の中にはtempdbデータベースが含まれるので、バックアップ対象のデータベースは、この(数字-1)個となります。この例では、15個のデータベースをバックアップします。この数字の中には、masterなどのシステムデータベースを含めてバックアップします

分子の数字は、これからバックアップを行なうデータベースの番号を表します。

OKボタンを押すと、バックアップ命令を、MSDE SQLServer データベースサーバーに依頼します。

 
 
MSDE SQL Server バックアップ ツール:0210]
「MSDE SQLServer バックアップツール」プログラムで作成されたバックアップファイルの中に、どのデータベースが何番目に存在するのか、簡単に調べる方法はありますか?
MSDE SQLServer データベースサーバーでは、バックアップファイルからデータベースを復元するときに、バックアップファイルの何番目(先頭が1番)のバックアップデータを使用するのか、指定しなければいけません。

データベースの名前ではなく、バックアップファイルの中の位置番号が重要になります。このため、バックアップファイルの何番目に、どのようなデータベースのバックアップが書かれているのかを把握することは非常に大事な作業です。

近日中には、そのような調査を行なうプログラムを提供する予定ですが、現在は、次のSQL文で調査を行なって下さい。

RESTORE HEADERONLY
    FROM DISK = 'バックアップファイル名'

 
 
MSDE SQL Server バックアップ ツール:0220]
「MSDE SQLServer バックアップツール」プログラムで作成されたバックアップファイルから、データベースを復元(リストア)する簡単な方法はありますか?
現在のところ復元(リストア)をおこなうためのプログラムはありません。近日中には提供する予定ですが、現在のところは、次のSQL文で復元(リストア)を行って下さい。

RESTORE DATABASE データベース名
 FROM DISK='バックアップファイル名'
 WITH
  FILE=バックアップファイル内の位置番号

 
 
 
 
MSDE FunClubに関するご意見・ご要望等ございましたら、
msdefun@horikawa.ne.jp までご連絡下さい。
MSDE や SQL Server を始めとする各種データベースシステムの開発や、
システムコンサルタントに関するご要望は、
msdedev@horikawa.ne.jp までご連絡下さい。