次の方法で共有


SharePoint Foundation のバックアップ/復元オブジェクト モデルを使用したプログラミング

最終更新日: 2010年11月4日

適用対象: SharePoint Foundation 2010

この記事の内容
バックアップと復元オブジェクト モデル
プログラミングのアドバイス
サイト コレクションのバックアップと復元

ここでは、SharePoint Foundation におけるバックアップと復元のオブジェクト モデルのアーキテクチャについて説明します。また、このアーキテクチャに対してプログラムを作成する方法について、いくつかの推奨事項を紹介します。バックアップ アプリケーションには、独立したアプリケーションを使用することも、カスタム Powershell コマンドレットを使用することもできます。SharePoint のカスタム Powershell コマンドレットを作成する方法の詳細については、「SharePoint 管理シェルにおける Windows PowerShell」を参照してください。

注意

Service Application Framework を実装するカスタム Web サービスの場合は、バックアップと復元のオブジェクト モデルが異なります。このトピックでは、そのオブジェクト モデルについては説明しません。詳細については、「Backing Up and Restoring in the Service Application Framework」を参照してください。

バックアップと復元オブジェクト モデル

オブジェクト モデルの最上位には、SPBackupRestoreConsole クラスがあります (図 1 の 1 を参照)。このクラスは、バックアップと復元のジョブをキューに挿入したり、ジョブを開始したり、ジョブ履歴を .xml ファイル形式で保持するといった操作を全体的に管理するための枠組みを提供します。このクラスのオブジェクトは、バックアップ アプリケーションの UI の "表示の直下部分" にあたり、そのメンバーは主に、バックアップ アプリケーションの UI のフックを提供する静的なメソッドやプロパティです。サーバーの全体管理アプリケーション、PowerShell、および stsadm.exe command-line tool では、このフックが使用されます。

このクラスのオブジェクトはファームに 1 つだけ存在します。オブジェクトはメンバーの 1 つが呼び出されたときに初めて作成され、Internet Information Server (IIS) が次にリセットされるまでメモリに保持されます。ただし、メモリ内でのフットプリントはわずかです。

図 1. バックアップと復元の階層における主なオブジェクト

バックアップ オブジェクト モデルの主要なクラス

バックアップまたは復元に関する特定の操作はそれぞれ、クラス SPBackupRestoreConsoleObject のオブジェクトで表されます。このオブジェクトは、コンソール オブジェクトの CreateBackupRestore(SPBackupRestoreSettings) メソッドによって作成されます (図 1 の 2 (キューに挿入されたバックアップと復元の操作) を参照)。これらの軽量オブジェクトのうち 1 つのオブジェクトのプロパティに、その操作に関する情報 (バックアップと復元のどちらを行うか、バックアップ ファイルの場所、バックアップまたは復元の方法、操作の現在の段階、バックアップまたは復元するコンテンツ コンポーネントのツリーなど) が保持されます。それぞれのオブジェクトでは、Id プロパティも使用されます。このプロパティの種類は Guid で、このプロパティをオブジェクトのハンドルとして、SPBackupRestoreConsole のメソッドに渡すことができます。たとえば Run(Guid, SPBackupRestoreObject) に対して、操作 (SPBackupRestoreConsoleObject オブジェクト) の ID を渡し、コンソールの次の実行操作とすることができます。また、それぞれの SPBackupRestoreConsoleObject では、Settings プロパティも使用されます。このプロパティには、バックアップまたは復元の再利用可能な設定パターンを含む永続オブジェクトが保持されます。このオブジェクトは、バックアップまたは復元操作の対象となるコンテンツ コンポーネントを識別する役割も果たします。設定のオブジェクトの詳細については、このセクションの後半で説明します。

操作は SPBackupRestoreConsoleObject オブジェクトで表されますが、コンテンツ コンポーネント自体は SPBackupRestoreObject オブジェクトで表されます (図 1 の 3 を参照)。これらのオブジェクトは、Children プロパティを使用して入れ子にできます。したがって、各オブジェクトが表すものは、1 つ以上のコンテンツ コンポーネントを含むツリーです。たとえば、Web アプリケーションは SPBackupRestoreObject オブジェクトで表すことができ、Web アプリケーションの各コンテンツ データベースは子の SPBackupRestoreObject オブジェクトとして表すことができます。特定のバックアップまたは復元操作の対象となるコンポーネントのツリーは、その操作を表す SPBackupRestoreConsoleObject オブジェクトに内部的にリンクされます。ツリーの最上位の SPBackupRestoreObject オブジェクトを参照するには、SPBackupRestoreConsoleObject オブジェクトの ID を GetRoot(Guid) メソッドに渡します。

SPBackupRestoreObject オブジェクトは、次に示す 2 種類の重要なオブジェクトのコンテナーとなります。

SPBackupRestoreObject は、コンテナーとして機能するほか、ヘルパー クラスとしても機能します。このクラスを使用すると、操作オブジェクト (SPBackupRestoreConsoleObject) 間の操作やコンポーネント情報オブジェクト (SPBackupRestoreInformationIBackupRestore、および IBackupRestoreConfiguration) 間の操作が簡単になります。

最後に説明する主なクラスは SPBackupSettings および SPRestoreSettings です。このどちらかの種類に属するオブジェクトは、操作の作成時に CreateBackupRestore(SPBackupRestoreSettings) メソッドに渡されます (図 1 の 5 を参照)。これらのオブジェクトはそれぞれ、操作に使用される設定を保持します。最も重要なこととして、これらのオブジェクトは、IndividualItem プロパティにより、バックアップまたは復元操作の対象となるコンテンツ コンポーネント (または構成設定コンポーネント) を識別します (図 1 の 6 を参照)。

プログラミングのアドバイス

バックアップと復元のソリューションの開発には、以下の情報が役に立つことがあります。

カスタマイズの方法

バックアップと復元のオブジェクト モデルに含まれる重要なクラスは、ほとんどがシールされます (Microsoft Visual Basic の NotInheritable)。さらに、次のクラスはシールされませんが、ここからの派生はサポートされません。どの場合も、既存の派生クラスを使用する必要があります。

したがって、カスタマイズの主なポイントは 2 つだけです。

ヒントヒント

この 2 つはメインの SharePoint Foundation オブジェクト モデルに対して開発を行う場合の主要な方法ですが、データベースのスナップショットと接続されていないデータベースからの復元を使用して、プログラムで操作することもできます。その詳細については、「データベース スナップショットのプログラムによる管理」、「接続されていないデータベースからの詳細なデータ復元」、および「[方法] スナップショットから復元できるデータベース クラスを作成する」を参照してください。

権限

コンテンツをバックアップするコードは、ファーム管理者のユーザー コンテキストで実行する必要があります。復元するコードは、ファーム管理者であり、すべてのフロントエンド サーバーの管理者でもあるユーザーのコンテキストで実行する必要があります。バックアップの場所に対する読み取りおよび書き込み権限も必要です。

エラーのログ

バックアップまたは復元操作に失敗した場合は、その詳細がバックアップ場所の spbackup.log または sprestore.log に記録されます。

サイト コレクションのバックアップと復元

IBackupRestore を実装して作成するカスタム コンテンツ タイプを除き、Microsoft.SharePoint.Administration.Backup 名前空間内のクラスを使用してバックアップおよび復元できる最小のコンテンツ オブジェクトは、コンテンツ データベースです。個々のサイト コレクションをプログラムによってバックアップまたは復元するには、SPSiteCollection.Backup および SPSiteCollection.Restore を使用します。サイト コレクションのバックアップと復元の詳細については、「[方法] プログラムを使用して単一のサイト コレクションのバックアップと復元を行う」を参照してください。

関連項目

タスク

[方法] プログラムを使用してコンテンツをバックアップする

[方法] プログラムを使用してコンテンツを復元する

[方法] プログラムを使用して単一のサイト コレクションのバックアップと復元を行う

[方法] バックアップと復元を実行できるコンテンツ クラスを作成する

[方法] スナップショットから復元できるデータベース クラスを作成する

コード サンプル: バックアップできるコンテンツ クラスを作成する

参照

Microsoft.SharePoint.Administration.Backup

Backup

Restore

その他の技術情報

Stsadm.exe コマンド ライン ツール (Office SharePoint Server)