

本指南提供了 Wickr Enterprise 的文档。如果您使用的是 AWS Wickr，请参阅 [AWS Wickr 管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html)或 AW [S Wickr 用户](https://docs.aws.amazon.com/wickr/latest/userguide/what-is-wickr.html)指南。

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# 数据库设置
<a name="database-settings"></a>

Wickr Enterprise 需要 MySQL 8.0 数据库。如果您使用的是 MySQL 5.7，请参阅[升级到 MySQL 8.0](#upgrade-database)进行升级。我们建议使用 Kubernetes 集群外部的数据库，例如 Amazon RDS，但作为安装的一部分，您也可以选择在 Kubernetes 集群内部署 MyS **Q** L 内部 MySQL 数据库。

## 外部数据库设置
<a name="external-database-settings"></a>
+ **主机名**：数据库服务器的主机名或 IP 地址。
+ **读取器主机**名：数据库服务器只读端点的主机名或 IP 地址（如果有）。
+ **端口**：用于访问 MySQL 的端口。
+ **数据库名称**：在服务器上创建的数据库的名称。
+ **用户名**：有权访问数据库的用户。
+ **密码**：该用户的密码。
+ **CA 证书**：用于通过 TLS 连接到数据库的 PEM 证书。

**注意**  
确保你的 MySQL 安装使用带有 latin1\$1swedish\$1ci 排序规则的默认 latin1 字符集。这可以通过验证您的 MySQL 服务器是否使用以下标志启动来实现：  
`"--character-set-server latin1", "--collation-server latin1_swedish_ci"`

## 内部数据库设置
<a name="internal-database-settings"></a>

内部数据库类型将在您的集群中部署两个 StatefulSets 用于二进制复制的 MySQL 主数据库和辅助数据库。辅助服务器不接收任何流量，只能用于灾难恢复和备份。

**存储大小**：数据库 Pod 的永久卷的大小（以 Gibibytes 为单位）。

**增加 MySQL 存储大小**

**注意**  
您的卷类型 StorageClass 必须支持卷扩展，才能增加存储大小。有关更多信息，请参阅[卷扩展](https://kubernetes.io/docs/concepts/storage/storage-classes/#allow-volume-expansion)。

Wickr Enterprise 中使用的 MySQL 服务作为 StatefulSet 资源部署在 Kubernetes 中。 StatefulSets 使资源的许多属性不可变，包括永久卷声明模板。作为不可变性的解决方法 StatefulSets，必须执行以下操作来增加 MySQL 使用的卷的大小。

1. 编辑`data-mysql-primary-0`和的永久卷声明`data-mysql-secondary-0`。

   1. `kubectl -n wickr edit pvc data-mysql-primary-0. Set spec.resources.requests.storage`到所需的存储大小。

   1. `kubectl -n wickr edit pvc data-mysql-secondary-0. Set spec.resources.requests.storage`到所需的存储大小。

1. 删除现有的 Pod StatefulSets，但通过传递`--cascade=orphan`标志来保留 Pod。

   `kubectl -n wickr delete statefulset --cascade=orphan mysql-primary mysql-secondary`.

1. 在 KOTS 用户界面中，更新存储大小设置以匹配您在步骤 1 中设置的值。保存并部署此配置。

1. 重启 StatefulSets 以扩展卷并使 MySQL 服务恢复联机。

   `kubectl -n wickr rollout restart statefulset mysql-primary mysql-secondary`.

## 升级到 MySQL 8.0
<a name="upgrade-database"></a>

**外部数据库 (RDS)**

要让 Wickr 后端离线，请完成以下步骤。

1. 找到入口的命名空间 `kubectl get deployments --all-namespaces`

   在下面的示例中，命名空间为 Wickr，副本为 3。

   ```
   NAMESPACE     NAME                       READY   UP-TO-DATE   AVAILABLE   AGE
   ...
   wickr         ingress-nginx-controller   3/3     3            3           43h
   ...
   ```

1. 缩小入口规模 `kubectl scale deployment/ingress-nginx-controller --replicas=0 -n wickr`

1. 拍摄快照以备份数据库。有关更多信息，请参阅 *Amazon Relational Database Service 用户指南*中的[管理手动备份](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_ManagingManualBackups.html)。

1. 将引擎版本升级到 MySQL 8.0.x（不支持 MySQL 8.4）。有关更多信息，请参阅 *Amazon Relational Database Service 用户指南中的升级数据库*[实例引擎版本](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_UpgradeDBInstance.Upgrading.html)。

要让 Wickr 后端上线，请缩小入口规模 `kubectl scale deployment/ingress-nginx-controller --replicas=3 -n wickr`

**内部数据库**

有关更多信息，请参阅 [Backup 和恢复 MySQL](https://github.com/aws-samples/sample-packages-for-aws-wickr/blob/main/docs/mysql-backup.md)。