使用 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
操作步骤:
  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。

Linux环境

在 Linux 环境中,使用 mysqldump 还原数据。
以使用安装包中附带的 MySQL为例进行说明。

  • 安装标识符:cbgrn
  • CGI 目录: /var/www/cgi-bin
  • MySQL 安装目录:/usr/local/cybozu
  • 保存备份数据的位置: /backup/YYYYMMDD
操作步骤:
  1. 停止 Web 服务器服务。

    systemctl stop httpd.service

  2. 停止调度服务。

    systemctl stop cyss_cbgrn.service

  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 服务。

    systemctl restart cyde_5_0.service

  11. 解除备份模式。

    cd /var/www/cgi-bin/cbgrn
    ./grn.cgi -C -q code/command/backupmode_end.csp

  12. 启动调度服务。

    systemctl start cyss_cbgrn.service

  13. 启动 Web 服务器服务。

    systemctl start httpd.service

  14. 确保能够正常访问 Garoon。