

本指南提供 Wickr Enterprise 的文件。如果您使用的是 AWS Wickr，請參閱 [AWS Wickr 管理指南](https://docs.aws.amazon.com/wickr/latest/adminguide/what-is-wickr.html)或 [AWS 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 叢集內部署**內部** MySQL 資料庫做為安裝的一部分。

## 外部資料庫設定
<a name="external-database-settings"></a>
+ **主機名稱**：資料庫伺服器的主機名稱或 IP 地址。
+ **讀取器主機名稱**：資料庫伺服器的唯讀端點的主機名稱或 IP 地址 （如果可用）。
+ **連接埠**：將存取 MySQL 的連接埠。
+ **資料庫名稱**：在伺服器上建立的資料庫名稱。
+ **使用者名稱**：具有資料庫存取許可的使用者。
+ **密碼**：該使用者的密碼。
+ **CA 憑證**：透過 TLS 連線至資料庫的 PEM 憑證。

**注意**  
確保您的 MySQL 安裝使用預設的 latin1 字元集搭配 latin1\$1swedish\$1ci 定序。這可以透過驗證您的 MySQL 伺服器是否以下列旗標啟動來完成：  
`"--character-set-server latin1", "--collation-server latin1_swedish_ci"`

## 內部資料庫設定
<a name="internal-database-settings"></a>

對於具有二進位複寫的 MySQL 主要和次要資料庫類型，內部資料庫類型會將兩個 StatefulSets 部署到您的叢集。次要 不會接收任何流量，且僅適用於災難復原和備份。

**儲存大小**：資料庫 Pod 的持久性磁碟區大小 （以 GB 為單位）。

**增加 MySQL 儲存體大小**

**注意**  
StorageClass 的磁碟區類型必須支援磁碟區擴展，才能增加儲存體大小。如需詳細資訊，請參閱[磁碟區擴展](https://kubernetes.io/docs/concepts/storage/storage-classes/#allow-volume-expansion)。

Wickr Enterprise 中使用的 MySQL 服務會部署為 Kubernetes 中的 StatefulSet 資源。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. 刪除現有的 StatefulSets，但傳遞 `--cascade=orphan`旗標以離開 Pod。

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

1. 在 KOTS UI 中，更新儲存大小設定，以符合您在步驟 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`

**內部資料庫**

如需詳細資訊，請參閱[備份和還原 MySQL](https://github.com/aws-samples/sample-packages-for-aws-wickr/blob/main/docs/mysql-backup.md)。