对于客户托管的实例,您只需复制 Looker 用户的主目录(包括所有普通目录和隐藏目录),即可创建基本 Looker 安装的备份。这可以通过 scp
、rsync
或任何标准备份应用来实现。同样,恢复基本的 Looker 安装只需恢复文件并启动即可
Looker。
在某些配置(包括集群环境)中,Looker 会使用外部 MySQL 数据库来存储应用设置、用户账号和其他数据。在这种情况下,我们建议您除了 Looker 主目录之外,还要备份 MySQL 数据库。
我们强烈建议您每天创建这些备份。我们还建议每季度执行一次测试恢复。
目录结构
下面介绍了 Looker 用户主目录(通常为 /home/looker)下的标准子目录。
- folder首页
- folder Looker
- folder .ssh
- folder 查看器
- 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 | 是 | 罕见 | 用于对使用 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,则可以使用此过程为其 Looker 实例创建独立于本地客户主密钥 (CMK) 的备份。这样,自托管客户便可以无需提供其 CMK 即可迁移到 Looker 托管的安装,或者将客户托管的安装迁移到无法访问同一本地密钥库的新主机。
如需创建独立于密钥库的备份,请执行以下操作:
停止 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 可以访问必要的服务。