创建备份

对于客户托管的实例,只需创建 Looker 用户的主目录(包括所有常规子目录和隐藏子目录)的副本,即可创建 Looker 基本安装的备份。这可以通过 scprsync 或任何标准备份应用来实现。同样,恢复基本的 Looker 安装只需恢复文件并启动 Looker。

在某些配置(包括集群环境)中,Looker 使用外部 MySQL 数据库来存储应用设置、用户帐号和其他数据。在这种情况下,除了 Looker 主目录之外,我们还建议您创建 MySQL 数据库的备份。

我们强烈建议您每天创建这些备份。我们还建议每季度执行一次测试恢复。

目录结构

此处介绍了 Looker 用户主目录(通常为 /home/looker)下的标准子目录。

  • 首页
    • 个 Looker
    • .ssh
    • Looker
      • .cache
      • .db
      • .ssl
      • .tmp
      • deploy_keys
      • 条记录
      • 个模型
      • 个模型用户 1
目录 需要备份 更改频率 说明
.ssh 很少 用于为使用 Looker 4.6 或更低版本创建的 LookML 项目向 Git 进行身份验证的 SSH 密钥
looker/.cache 常用 临时缓存文件
looker/.db 是,除非后端数据库已迁移到 MySQL 常用 Looker 内部数据库
looker/.snapshots 更新时 更新期间,Looker jar 和 .db 目录的备份副本会存储在此处
looker/.ssl 不确定 很少 自签名 SSL 证书(请参阅注意
looker/.tmp 常用 临时文件
looker/deploy_keys 很少 用于为使用 Looker 4.8 或更高版本创建的 LookML 项目向 Git 进行身份验证的 SSH 密钥
looker/log 不确定 常用 日志文件;仅在保留政策需要时才需要
looker/models 变量 从源代码库(通常是 GitHub)复制的生产环境模型
looker/models-user-* 变量 每位用户的开发模型都与用户的 ID 编号存储在不同的目录中。

SSL 注意:默认情况下,SSL 目录仅包含自签名 SSL 证书,无需保留。但是,如果您将任何其他文件(例如由证书授权机构签名的 SSL 证书)存储在此目录中,则应将此目录添加到备份中。

Looker 主目录之外的文件(应添加到您的备份中)包括:

目录 需要备份 更改频率 说明
/etc/init.d/looker 很少 Looker 的系统启动脚本
SSL 证书 很少 如果您使用的是 SSL 证书,请确保包含所有必需的文件

虽然这通常不会造成问题,但有些客户报告了他们在备份中包含 looker/.db/looker.lck 文件的问题。如有必要,您可以放心地排除此文件。

创建 Looker 备份

您可以使用任何标准备份应用以及 rsync 等命令行工具创建 Looker 备份。

备份进程最好在应用程序使用较少时运行。除了正常的用户互动之外,还应考虑预定 Look 的运行时间、可能重新构建派生表的时间等。

集群环境

集群 Looker 将其应用配置、用户帐号和其他数据存储在外部 MySQL 数据库中。我们建议您在创建 Looker 应用的同时创建此数据库的备份。如需详细了解如何备份 MySQL 数据库,请参阅 MySQL 文档

生成独立于密钥库的备份

如果客户托管的安装已改用 AES-256 GCM 加密且未使用 AWS KMS,则可以使用此过程创建独立于其本地客户主密钥 (CMK) 的 Looker 实例的备份。通过这种方式,自主托管的客户无需提供其 CMK 即可迁移到 Looker 托管的安装,也可以将客户托管的安装移动到无权访问同一本地密钥库的新主机。

如需创建独立于密钥库的备份,请执行以下操作:

  1. 停止 Looker:

    cd looker
    ./looker stop
    

    如果 Looker 已进行聚类,请务必先停止每个节点,然后再继续操作。

  2. 确保 Looker 可以访问您的 CMK。如果您的 CMK 存储在文件中,则可以使用环境变量 LKR_MASTER_KEY_FILE 指向 CMK 文件的路径:

    export LKR_MASTER_KEY_FILE=<path_to_CMK_file>
    

    或者,如需直接在环境变量中提供 CMK,您可以使用 LKR_MASTER_KEY_ENV 环境变量:

    export LKR_MASTER_KEY_ENV=<CMK_value>
    
  3. 生成一个将用于重新加密密钥加密密钥 (KEK) 的新密钥文件:

    ./looker generate_keyfile_for_backup <key_file_name>
    

    其中,<key_file_name> 是要为 Looker 将创建的文件用于写入新键的名称。

    新密钥文件的内容将如下所示:

    {"dbmk":"vr1LUwO3q6weY8iS3JykVljSjiD4m6eGk227Cs7Qu9Q=\n","backup_uid":"XCXvRa38mNeqT6+HRBCo2Q=="}
    

    其中 dbmk 的值是一个采用 Base64 编码的 256 位加密密钥,backup_uid 是将密钥保存到数据库时使用的唯一名称。

  4. 使用新的密钥文件在 Looker 的内部数据库中创建新的密钥条目:

    ./looker keystore_independent_recrypt <key_file_name>
    

    其中 <key_file_name> 是之前创建的密钥文件。

    此操作会使用 CMK 解密内部数据库中的 KEK,然后使用新密钥重新加密该 KEK,并将加密后的值保留在数据库中。

  5. 使用常规备份方法创建 Looker 的备份。

恢复此独立于密钥库的备份,您需要之前创建的新密钥文件。

恢复备份

如需恢复 Looker 备份,请参阅恢复备份文档页面。

后续步骤

设置备份后,您就可以确保 Looker 可以访问必要的服务了。