Microsoft SQL Serverデータベースのバックアップとリストア
データベースバックアップは、Incentivesデータベース内のすべてのデータを複製し、完全なデータベースのコピーを作成します。
その後、restoreコマンドを使用して、データベース全体を1ステップで再作成できます。リストアされたデータベースは、バックアップが完了した時点のデータベースと完全に一致しています。
データベースのバックアップ
SQL Server Enterprise Managerを使用してIncentivesデータベースをバックアップできます。
SQL Server Enterprise Managerで、
→ をクリックします。次のバックアップタイプのいずれかを選択します。
- 完全バックアップ
データベースのフルバックアップを作成します。データベースのフルバックアップでバックアッププロセスを開始します。
- 差分バックアップ
前回のフルバックアップ以降にデータベースに対して発生したすべての変更が保存されます。
ファイルのバックアップ先を編集できます。デフォルトでは、バックアップファイルは次の場所に保存されます:
C:\Program Files\Microsoft SQL Server\MSSQL\BACKUP\
ヒント
データベースは、バックアップの実行中もオンライン状態で、ユーザーはアクセスすることができます。
データベースバックアップのリストア
SQL Serverは、Incentivesデータベースで使用されるファイルの名前と場所をバックアップファイルに保存します。データベースを復元すると、SQL Serverは必要なすべてのファイルを再作成し、バックアップが完了した時点のデータベースが復元されます。
SQL Server Enterprise Managerで、
→ をクリックします。[データベースとしてリストア]フィールドは、新しくリストアしたデータベースの名前です。元の(バックアップされた)データベースの名前と同じである必要はありません。
リストアのパラメーターを定義するには、元のデータベース名とリストアする保存されたバックアップを選択します。
リストアされたデータベースの追加
データベースを復元した後、Incentivesテナントサービスを呼び出し、復元されたデータベースを追加する必要があります。
このリクエストを行う前に、ヘッダーのキーと値が設定されていることを確認してください。
Postmanなどのツールで、次の呼び出しを使用してリストアされたデータベースを追加します。
リクエスト
POST /tenants/1/models/externalRestore
サンプル呼び出し
Path: http://localhost:9100/services/tenants/1/models/externalRestore Method: Post Body: { "model_name":"string", "server":"1", "isOverwrite":false, "isUnicode":true }
model_name
これはモデルの名前です。モデル名には、スペース、アンダースコア、句読点は使用できません。
isOverwrite
この値を
true
に設定すると、モデルはテナントサービスにすでに存在する必要があり、すべてのユーザーを含めて削除され、新規モデルとして再度追加されます。この値がfalse
に設定されている場合、モデルは新規のものと見なされます。値をfalse
に設定すると、テナントサービスにすでにこの名前のモデルがある場合、呼び出しは失敗します。同様に、この値をtrue
に設定し、モデルがテナントサービスに存在しない場合、呼び出しも失敗します。
isUnicode
データベース タイプがMicrosoft SQL Server 2014 Unicodeの場合は、この値を
true
に設定します。それ以外の場合は、この値をfalse
に設定します。
サンプルレスポンス
{ "model_id":0, "model_name":"string", "tenant_id":0, "server":"1", "database_name":"string", "created_at":"2016-03-01T23:59:29.305Z" }
データベースのリストア後のユーザー読み込み
Incentivesテナントサービスを呼び出して復元されたデータベースを追加した後、モデルからテナントサービスにユーザーを読み込むための呼び出しも必要です。
ヒント
このリクエストを行う前に、ヘッダーのキーと値が設定されていることを確認してください。
GET呼び出しを実行して、外部でリストアされたモデル内のすべてのユーザーを取得します。
Path: http://localhost:9101/services/admin/tenants/:tenantID/models/:modelID/getmodelusers Method: GET
サンプルレスポンス
{ "ignoredUsers": [ "scheduler", "admin" ], "newUsers": [], "validUsers": [ "user1", "user2", "user3" ]
POST呼び出しを実行して、テナントへの以前のレスポンスからpostgresデータベースに「validUsers」をロードします。
Path: http://localhost:9100/services/admin/tenants/1/models/<ID of model>/addmodelusers Method: Post Body:{ "users": ["user1", "user2", "user3"] }
バックアップとリストアを使用したサーバ間のデータベース転送
データベースのバックアップを作成し、復元を実行するサーバーからアクセスできる場所に保存することで、新しいサーバー上にIncentivesデータベースのバックアップを復元できます。
データベースを転送するサーバーから、Enterprise Managerを開きます。
→ をクリックします。
データベースのリストアに使用する名前を[データベースとしてリストア]フィールドに入力します。
[デバイスから]オプションを選択します。
[ファイル名]を選択し、バックアップファイルの場所を入力します。