Nextcloudサーバのデータを引越すには

ファイルの変更履歴やカレンダー等、Nextcloudサーバのデータを丸ごと、他のNextcloudサーバに引越す手順を記録したいと思います。

引越し前サーバは、こちらの記事のRaspberry Piの専用OS、Nextcloudpiになります。

引越し先サーバは、こちらの記事のx86_64版Fedora 28、Snap版になります。

データベースはMariaDBまたはMySQLが対象となります。


Nextcloudサーバのバックアップ・リストア手順

基本的にこちらの記事の手順に沿うかたちです。

全体的な流れはこのようになります。

  1. 引越し前サーバでデータをバックアップ
    1. メンテナンスモードON
    2. dataフォルダ
    3. mysqlデータベース
    4. configフォルダ
    5. nextcloudフォルダ(テーマ、追加アプリケーション)
  2. 引越し先サーバへコピー
  3. 引越し先サーバでデータをリストア
    1. メンテナンスモードON
    2. dataフォルダ(必須)
    3. mysqlデータベース(必須)
    4. config.php(必要がある場合)
    5. nextcloudフォルダ(必要がある場合)
  4. メンテナンスモードOFF、動作確認

データのバックアップ Nextcloudpi

メンテナンスモードON

まずは、バックアップ中にデータが変わらないように、Nextcloudをメンテナンスモードに移行します。

NextcloudPiでメンテナンスモードをONにする場合、次のコマンドのようです。

dataフォルダのバックアップ

バックアップの保存先は、外付けUSB HDDのマウントポイント、/media/myCloudDriveになります。

最初、tarで書庫化・bzip2で圧縮してみたのですが・・・お勧め致しません。

圧縮に時間がかかること、リストア時にエラーが出たことから、この方法は使いませんでした。Raspberry Pi 2 + USB HDDの場合、1時間に4GB程度の処理速度のようです。110GBのデータの圧縮に27時間くらいかかりました。

一時ファイルは作成せずに、あとで引越し先サーバへ直接コピーしたいと思います。

mysqlデータベースのバックアップ

mysqldumpコマンドでnextcloudデータベースをバックアップします。

nc_mysqldump_<日付>.bak.bz2ファイルができていると思います。

configフォルダのバックアップ

rsyncでコピー後、書庫化・圧縮してみました。

nc_config_<日付>.tar.bz2ファイルができていると思います。

nextcloudフォルダのバックアップ

nextcloudフォルダをバックアップします。テーマ、追加アプリケーションのバックアップが目的です。

以上でバックアップ完了です。

サーバを引き続き利用する場合、メンテナンスモードを解除します。


引越し先サーバへデータをコピー

コピー方法は、SCP、SFTP、NFS等があります。

データフォルダは書庫化・圧縮していませんので、NFSで引越し前サーバのUSB HDDを、引越し後サーバにマウントしてコピーしようと思います。

NFSについての詳細はこちらの記事になります。

NFSサーバ設定 Raspbian

nfs-serverインストール後、/etc/exportsに設定を追加、nfsサービスを起動します。

外付けUSB HDDのマウントポイント/media/myCloudDriveを、192.168.○.○のネットワークに公開する設定になります。

192.168.○.0の部分は、公開するネットワークアドレスを入力します。

NFSマウント Fedora 28

引越し先サーバで、/media/myCloudDriveをマウントします。/mntにマウントしようと思います。

nfs-utilsをインストール、ファイアウォールの設定を変更、/etc/fstabに設定を追加する流れです。

うまくマウントされましたでしょうか?

バックアップデータのコピー

書庫化・圧縮済みのbz2ファイル(dataフォルダ、mysqlデータベース、configフォルダ、nextcloudフォルダ)をコピーしますが・・・・nfsでマウントしたため、bz2ファイル展開時に直接ファイルを指定しても良いかもしれません。


データのリストア snap版Nextcloud

引越し先のNextcloudサーバは、初期設定を行い、nextcloudデータベース、config.phpファイル、dataフォルダが作成済みの状態にしました。

メンテナンスモードON

snap版のNextcloudは、次のコマンドでメンテナンスモードを変更できるようです。

snap run nextcloud.occでも同様の動作のようです

dataフォルダのリストア・コピー

既定のdataディレクトリはdata.origにリネームしました。

書庫化・圧縮した場合は、リストアします。

直接コピーする場合、アーカイブ属性やACL等も含めてrsyncでコピーします。

mysqlデータベースのリストア

念のため、既定のデータベースをダンプしてから。

nextcloudデータベースを一度削除して、顔文字対応(utf8mb4)で作成してみました。

内容をリストアします。

テーブルが作成されているか確認してみました。

oc_storagesテーブルにdataディレクトリのパスが入っているようです。書き換える必要がありそうです。

“/media/USBdrive/ncdata/”を”/var/snap/nextcloud/common/nextcloud/data/”に変更したいと思います。numeric_id=3が書換え対象行になります。

データベースのリストアは以上で完了です。

config.php(必要がある場合)

バックアップ済みのconfig.php(/mnt/nc_config_*.tar.bz2)を、/var/snap/nextcloud/current/nextcloud/config/config.phpにコピー・・・はせずに、様子を見てみました。

nextcloudフォルダ(必要がある場合)

nextcloudフォルダも同様に、コピーせず様子を見てみました。


メンテナンスモードOFF、動作確認

引越し先サーバのメンテナンスモードを解除して、Webブラウザでアクセスしてみます。

引越し前のサーバで作成したユーザで、問題なくログインできました。

カレンダーやアドレス帳など、インストール済みのアプリケーションのアイコンが表示されませんでしたが。

アプリケーション→アプリバンドル→Calendar→1.6.1にアップデートをクリックすると、表示されるようになりました。引越し前サーバで作成したカレンダーデータも、ちゃんと引越し後サーバで表示されました。


以上でお引越しが完了しました。

お疲れ様でした。

次は、夜間の自動バックアップでデータの消失に備える設定を行ってみたいと思います。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする

スポンサーリンク