> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ABBYY FlexiCapture のバックアップを作成する

> データベースとファイルストレージの同期を維持しながら、手動の手順と PowerShell スクリプトを使用して ABBYY FlexiCapture システムをバックアップおよび復元します。

FC は、データをデータベースとファイルストレージに保存します。データベースに保存されているデータは、常にファイルストレージに保存されているデータと一致している必要があります。そうでないと、予期しないクラッシュが発生した後に正常に復旧できない場合があります。データの不一致によって生じる可能性がある影響は次のとおりです。

* データの一部損失
* 停止した時点から処理を再開できない

<Frame>
  <img src="https://mintcdn.com/abbyy/39LtOHLEp1q7pm1x/images/flexi-capture/Backup.jpg?fit=max&auto=format&n=39LtOHLEp1q7pm1x&q=85&s=1c7bb9229bcfa67f75cf65b334b3170e" alt="Application Server が File Store と Database に接続され、その両方がバックアップに含まれていることを示す ABBYY FlexiCapture バックアップの図。" width="1129" height="825" data-path="images/flexi-capture/Backup.jpg" />
</Frame>

これらの問題は、以下で説明する方法でシステムのバックアップを作成することで回避できます。

<div id="back-up-your-system">
  ## システムのバックアップ
</div>

<Warning>
  以下の手順は完了までに時間がかかるため、システム負荷が高いときには実行しないでください。
</Warning>

システムをバックアップするには、次の手順を実行します。

1. Application Server で、`FileRemovingDisabled` キーを `true` に設定します。これにより、古いファイルがファイルストレージから削除されなくなります。変更が反映されるまで、少なくとも 5 分待ちます。
2. ベンダーが推奨するバックアップツールを使用して、データベースのバックアップコピーを作成します。
3. [nnBackup](https://www.nncron.ru/index.shtml) などのバックアップユーティリティを使用して、ファイルストレージに保存されているデータのバックアップコピーを作成します。
4. `FileRemovingDisabled` キーを `false` に設定します。これで、バッチが削除されると、システムは古いファイルを削除するようになります。

<div id="automate-the-backup-with-a-windows-powershell-script">
  ### Windows PowerShell スクリプトでバックアップを自動化する
</div>

```powershell theme={null}
# ファイルストレージから古いファイルが削除されないように、Application Server の設定を変更します
Add-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server'  -filter "appSettings" -name "." -value @{key='FileRemovingDisabled';value='false'}
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server'  -filter "appSettings/add[@key='FileRemovingDisabled']" -name "value" -value "true"

# 設定を反映させるまで待機
Start-Sleep 5 # 秒

# SQL データベースをバックアップ
$backupFolder = 'D:\SQLBackUps'
$user = 'user'
$pass = 'password'
$inst = 'SQL_Server_Instance_Name'
$db   = 'DB_Name'
$file = "$backupFolder\${db}.bak"
$secpasswd = ConvertTo-SecureString $pass -AsPlainText -Force
$cred = New-Object System.Management.Automation.PSCredential ($user, $secpasswd)
Backup-SqlDatabase -ServerInstance $inst -Database $db -Credential $cred -BackupFile $file -Initialize

# ファイルストレージをバックアップ
C:\Windows\System32\wbadmin.exe start backup -backuptarget:f: -include:d:\filestorage -quiet -vssCopy

# ファイルストレージから古いファイルを再び削除するように、Application Server の設定を変更します
Set-WebConfigurationProperty -pspath 'MACHINE/WEBROOT/APPHOST/Default Web Site/FlexiCapture12/Server'  -filter "appSettings/add[@key='FileRemovingDisabled']" -name "value" -value "false"
```

<Note>
  この例では、ファイルストレージのバックアップに Windows の [wbadmin](https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/wbadmin) コマンドを使用しています。
</Note>

## <a id="restore" />システムの復元

クラッシュ後にシステムを復元するには、次の手順に従います。

1. インストールできるよう各コンピューターを準備し、システムをインストールします。まず外部コンポーネントをインストールし、次にサーバーとステーションをインストールします。
2. ライセンスキーを接続するか、ソフトウェアライセンスをアクティブ化します。
3. サーバー上のデータベースを復元します。
4. ファイルストレージを復元します。
5. 管理および監視コンソールを開き、既存のデータベースへの接続を確立します。次に、復元したデータベースのパスと復元したファイルストレージのパスを指定します。

<Note>
  システムを移行するには、管理者権限が必要です。システムの移行作業は、データベースを作成した担当者がすべて実施することを推奨します。別の担当者が移行作業を行う場合は、その担当者に新しいサーバーに接続する権限と、サーバー上のデータベースにアクセスする権限があることを確認してください。
</Note>
