mysqldumpを使用したリストア

mysqldumpを使用してデータをリストアする方法を説明します。
リストア中は、ユーザーはGaroonにアクセスできません。ユーザーがGaroonにアクセスしない時間帯にデータをリストアしてください。
補足
  • ユーザーにメールの自動転送を許可していると、バックアップデータに未処理の自動転送データが含まれている場合があります。リストア時に未処理の自動転送データが処理されるため、メールが二重に転送される可能性があります。

リストア前の確認事項

mysqldumpを使用してリストアする前に、次の事項を確認します。

バックアップモードを使用可能にする

mysqldumpを使用したリストアは、データベースを起動した状態で行います。
ただし、filesディレクトリーは、OSのコマンドを使用して別途リストアする必要があります。データの整合性を保つために、リストア中はデータベースの更新を禁止する必要があります。
バックアップモードを使用して、リストア中はユーザーがGaroonにアクセスできないようにします。

初期設定では、バックアップモードを使用できません。
リストアを開始する前に、設定ファイル「common.ini」の内容を変更し、バックアップモードを使用可能にします。
「common.ini」のファイルパス
(CGIディレクトリー)/(インストール識別子)/common.ini
例:
  • Windows環境:
    C:¥inetpub¥scripts¥cbgrn¥common.ini
  • Linux環境:
    /var/www/cgi-bin/cbgrn/common.ini
「common.ini」で変更する内容
[BackupMode]の下の「disable = "1"」の行を削除します。
変更前:

[BackupMode]
disable = "1"
driver = “xxxxx”
変更後:

[BackupMode]
driver = “xxxxx”

mysqldumpの速度

mysqldumpは、データ量に比例してバックアップとリストアの時間が長くなります。
リストアはバックアップより時間がかかります。
mysqldumpを使用したリストアは、OSのコマンドを使用したリストアより時間がかかります。

リストア後のディスク使用量

mysqldumpを使ってリストアすると、バックアップ前よりディスク使用量が少ない場合があります。バックアップしたデータに未使用領域が含まれていないためです。データが欠落しているわけではありません。

Windows環境の場合

Windows環境で、mysqldumpを使用してデータをリストアします。
インストーラーに同梱されているMySQLを使用している場合を例に説明します。
  • インストール識別子:cbgrn
  • CGIディレクトリー:C:¥inetpub¥scripts
  • MySQLのインストールディレクトリー:C:¥Program Files¥Cybozu
  • バックアップデータの保存先:C:¥backup¥YYYYMMDD
補足
  • お使いの環境に合わせて読み替えてください。
    インストール済みのMySQLを使用している場合、MySQLのサービス名が異なります。
    詳細は、バックアップの対象を参照してください。
操作手順:
  1. Webサーバーサービスを停止します。
  2. スケジューリングサービスを停止します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを停止します。
    • Cybozu_Scheduling_Service_cbgrn
  3. スケジューリングサービスが停止していることを確認します。
    1. タスクマネージャーを起動します。
    2. Windowsタスクマネージャーで、[プロセス]のタブをクリックします。
    3. sched.exeが表示されないことを確認します。
  4. コマンドプロンプトを起動します。
  5. Garoonをバックアップモードに設定します。
    cd C:¥inetpub¥scripts¥cbgrn
    .\grn.exe -C -q code¥command¥backupmode_start.csp
  6. データベース管理ユーザーで、バックアップしたデータを読み込みます。
    "C:¥Program Files¥Cybozu¥mysql-5.0¥bin¥mysql" --defaults-file="C:¥Program Files¥Cybozu¥mysql-5.0¥etc¥my.ini" -u cbroot -p < C:¥backup¥YYYYMMDD¥full.sql
  7. データベース管理ユーザーのパスワードを入力します。
  8. 既存の添付ファイル領域を削除します。
    rmdir /s /q "C:¥Program Files¥Cybozu¥mysql-5.0¥files"
  9. OSのコマンドを使用して、添付ファイルをリストアします。
    xcopy C:¥backup¥YYYYMMDD¥files "C:¥Program Files¥Cybozu¥mysql-5.0¥files" /e /i
  10. 手順6と手順9でリストアしたディレクトリーで、Everyoneにフルコントロール権限が付与されていることを確認します。
    付与されていない場合は、Everyoneにフルコントロールの許可を設定します。
  11. MySQLサービスを再起動します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを再起動します。
    • Cybozu_Database_Engine_5_0
  12. バックアップモードを解除します。
    cd C:¥inetpub¥scripts¥cbgrn
    .\grn.exe -C -q code¥command¥backupmode_end.csp
  13. スケジューリングサービスを起動します。
    Windowsのスタートメニューから、[管理ツール] > [サービス]を選択し、次のサービスを起動します。
    • Cybozu_Scheduling_Service_cbgrn
  14. Webサーバーサービスを起動します。
  15. Garoonに正常にアクセスできることを確認します。
補足
  • バックアップモードを使用不可にする場合は、「common.ini」の内容を元に戻します。

Linux環境の場合

Linux環境で、mysqldumpを使用してデータをリストアします。
インストーラーに同梱されているMySQLを使用している場合を例に説明します。
  • インストール識別子:cbgrn
  • CGIディレクトリー:/var/www/cgi-bin
  • MySQLのインストールディレクトリー:/usr/local/cybozu
  • バックアップデータの保存先:/backup/YYYYMMDD
補足
  • お使いの環境に合わせて読み替えてください。
    インストール済みのMySQLを使用している場合、MySQLのサービス名が異なります。
    詳細は、バックアップの対象を参照してください。
操作手順:
  1. Webサーバーサービスを停止します。
    • Red Hat Enterprise Linux 6以前の場合:
      /etc/init.d/httpd stop
    • Red Hat Enterprise Linux 7以降の場合:
      systemctl stop httpd.service
  2. スケジューリングサービスを停止します。
    /etc/init.d/cyss_cbgrn stop
  3. スケジューリングサービスが停止していることを確認します。
    次のコマンドを実行し、スケジューリングサービスが表示されないことを確認します。
    ps -aux | grep cyss
  4. Garoonをバックアップモードに設定します。
    cd /var/www/cgi-bin/cbgrn
    ./grn.cgi -C -q code/command/backupmode_start.csp
  5. データベース管理ユーザーで、バックアップしたデータを読み込みます。
    /usr/local/cybozu/mysql-5.0/bin/mysql --defaults-file=/usr/local/cybozu/mysql-5.0/etc/my.ini -u cbroot -p < /backup/YYYYMMDD/full.sql
  6. データベース管理ユーザーのパスワードを入力します。
  7. 既存の添付ファイル領域を削除します。
    rm -rf /usr/local/cybozu/mysql-5.0/files
  8. OSのコマンドを使用して、添付ファイルをリストアします。
    cp -rp /backup/YYYYMMDD/files /usr/local/cybozu/mysql-5.0/
  9. リストアしたデータのアクセス権が適切に設定されていることを確認します。
    Garoonを利用するために必要なアクセス権の設定は、次のとおりです。
    • /usr/local/cybozu/mysql-5.0/dataのデータ
      所有者:CGI実行ユーザー(例:apache)
      ディレクトリーおよびサブディレクトリーのアクセス権:755
      ディレクトリー内のファイルのアクセス権:755
    • /usr/local/cybozu/mysql-5.0/filesのデータ
      所有者:CGI実行ユーザー(例:apache)
      ディレクトリーおよびサブディレクトリーのアクセス権:755
      ディレクトリー内のファイルのアクセス権:644

    アクセス権を変更する場合は、次のコマンドを実行してください。
    chmod -R 755 /usr/local/cybozu/mysql-5.0/data
    chown -R (CGI実行ユーザー):root /usr/local/cybozu/mysql-5.0/data
    find /usr/local/cybozu/mysql-5.0/files/ -type d | xargs chmod 755
    find /usr/local/cybozu/mysql-5.0/files/ -type f | xargs chmod 644
    find /usr/local/cybozu/mysql-5.0/files/ -type d | xargs chown (CGI実行ユーザー):root
  10. MySQLサービスを再起動します。
    /etc/init.d/cyde_5_0 restart
  11. バックアップモードを解除します。
    cd /var/www/cgi-bin/cbgrn
    ./grn.cgi -C -q code/command/backupmode_end.csp
  12. スケジューリングサービスを起動します。
    /etc/init.d/cyss_cbgrn start
  13. Webサーバーサービスを起動します。
    • Red Hat Enterprise Linux 6以前の場合:
      /etc/init.d/httpd start
    • Red Hat Enterprise Linux 7以降の場合:
      systemctl start httpd.service
  14. Garoonに正常にアクセスできることを確認します。
補足
  • バックアップモードを使用不可にする場合は、「common.ini」の内容を元に戻します。