如果您的 Looker 实例由 Looker 托管,Looker 会自动定期备份您的实例。如需了解详情,请参阅Looker 托管实例的自动备份部分。
如果您的实例是客户托管的,则需要自行创建备份。如需了解详情,请参阅客户托管型实例的备份策略部分。
Looker 托管型实例的自动备份
Looker 托管的实例每 24 小时自动备份一次。每个备份都包含实例内部数据库和实例文件服务器中所有数据的记录,这些数据是 Looker 实例的大部分运营数据。不过,精英系统活动的数据不会备份。
备份会保留 30 天。如需访问和恢复备份,请与支持团队联系。
客户托管型实例的备份策略
对于客户托管的实例,您只需复制 Looker 用户的 home 目录(包括所有常规子目录和隐藏子目录),即可创建基本 Looker 安装的备份。您可以使用 scp
、rsync
或任何标准备份应用。同样,恢复基本 Looker 安装只需恢复文件并启动 Looker 即可。
在某些配置(包括集群环境)中,Looker 使用外部 MySQL 数据库来存储应用设置、用户账号和其他数据。在这种情况下,我们建议您除了备份 Looker 主目录之外,还要备份 MySQL 数据库。
我们强烈建议您每天创建这些备份。我们还建议每季度执行一次测试性恢复。
目录结构
下面介绍了 Looker 用户主目录(通常为 /home/looker)下的标准子目录。
- folder 首页
- folder Looker
- folder .ssh
- folder Looker
- folder .cache
- folder .db
- folder .ssl
- folder .tmp
- folder deploy_keys
- folder 日志
- folder 个模型
- folder models-user-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 | 是 | 罕见 | 用于向 Git 进行身份验证的 SSH 密钥(适用于使用 Looker 4.8 或更高版本创建的 LookML 项目) |
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
文件,就会出现问题。如有必要,您可以放心地排除此文件。
创建备份
您可以使用任何标准备份应用以及 rsync 等命令行工具来创建 Looker 实例的备份。
最好在应用使用率尽可能低时运行备份进程。除了正常的用户互动之外,还要考虑计划的 Look 可能正在运行、派生表可能正在重建等情况。
集群环境
集群式 Looker 实例将其应用配置、用户账号和其他数据存储在外部 MySQL 数据库中。建议您在备份 Looker 应用的同时备份此数据库。如需详细了解如何备份 MySQL 数据库,请参阅 MySQL 文档。
生成独立于密钥库的备份
已迁移到 AES-256 GCM 加密且未使用 AWS KMS 的客户托管型安装可以使用此程序创建独立于本地客户主密钥 (CMK) 的 Looker 实例备份。此过程提供了一种将客户托管型实例迁移到 Looker 托管型实例的方法,无需提供 CMK,或者将客户托管型实例迁移到无法访问同一本地密钥库的新主机。
如需创建独立于密钥库的备份,请执行以下操作:
停止 Looker:
cd looker ./looker stop
如果您的 Looker 实例是集群,请务必先停止每个节点,然后再继续操作。
确保您的 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>
生成将用于重新加密密钥加密密钥 (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
是将密钥保存到数据库时使用的唯一名称。使用新密钥文件在 Looker 的内部数据库中创建新的密钥条目:
./looker keystore_independent_recrypt <key_file_name>
其中,
<key_file_name>
是之前创建的密钥文件。此过程使用 CMK 对内部数据库中的 KEK 进行解密,然后使用新密钥对 KEK 重新加密,并将加密后的值持久保存到数据库中。
使用常规备份方法创建 Looker 实例的备份。
如需恢复此独立于密钥库的备份,您需要使用之前创建的新密钥文件。
恢复备份
如需恢复 Looker 实例的备份,请参阅恢复备份文档页面。
后续步骤
设置备份后,您就可以确保 Looker 实例可以访问必要的服务了。