

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 最佳實務和疑難排解
<a name="sql-server-best-practices"></a>

在現代化過程中的最佳實務、常見問題及其解決方案。

## ECS 應用程式日誌
<a name="sql-server-ecs-application-logs"></a>

### CloudWatch 日誌
<a name="sql-server-cloudwatch-logs"></a>
+ 所有 ECS 容器日誌都會自動傳送至 CloudWatch Logs
+ 在 CloudWatch 主控台的日誌群組下存取日誌
+ 日誌群組命名格式：/aws/ecs/{application-name}
+ 每個容器執行個體都會在群組中建立新的日誌串流

### 檢視日誌
<a name="sql-server-viewing-logs"></a>

**透過 AWS 主控台：**
+ 導覽至 CloudWatch > 日誌群組
+ 選取應用程式的日誌群組
+ 選擇相關的日誌串流以檢視容器日誌

**使用 AWS CLI：**

```
aws logs get-log-events --log-group-name /aws/ecs/your-app-name --log-stream-name your-stream-name
```

### 常見日誌位置
<a name="sql-server-common-log-locations"></a>
+ 應用程式日誌：CloudWatch Logs
+ ECS 服務事件：ECS 主控台 > 叢集 > 服務 > 事件索引標籤
+ 容器運作狀態/狀態：ECS 主控台 > 叢集 > 服務 > 任務索引標籤

## 資料庫連線管理
<a name="sql-server-database-connection-management"></a>

應用程式使用環境變數進行資料庫連線設定

如果您遇到連線問題：
+ 驗證您環境變數中的目前連線設定
+ 更新環境變數以視需要修改資料庫連線字串
+ 連線字串變更可以透過環境變數更新進行，無需重新部署應用程式

## 資料庫連線問題
<a name="database-connection-issues"></a>

**問題：**無法將 AWS 轉換連線至 SQL Server

解決方案：
+ 驗證 AWS Transform 與 SQL Server 之間的網路連線
+ 檢查安全群組規則是否有適當的連接埠存取 (1433)
+ 在 Secrets Manager 中確認資料庫登入資料
+ 使用建立的使用者測試資料庫許可
+ 確保 SQL Server 已設定為混合模式身分驗證
+ 確認秘密具有必要的標籤 （專案：atx-db-modernization、擁有者：資料庫連接器）

## 防火牆和安全群組問題
<a name="firewall-security-group-issues"></a>

**問題：**連線逾時或「無法連線資料庫」錯誤

**根本原因：**封鎖流量的安全群組或網路 ACLs 

解決方案：

1. 驗證安全群組組態：
   + 確認您的 SQL Server 安全群組具有傳入規則，允許來自 DMS 結構描述轉換安全群組的連接埠 1433
   + 檢查來源是否為安全群組 ID （例如 sg-0123456789abcdef0)，而非 IP 地址
   + 確認執行個體設定檔中已正確指定 DMS 結構描述轉換安全群組
   + 確保沒有衝突的拒絕規則

1. 檢查網路 ACLs：
   + 驗證子網路層級網路 ACLs連接埠 1433 上的傳入流量
   + 確保網路 ACLs 允許傳回流量的傳出暫時性連接埠
   + 檢查資料庫子網路和 DMS 子網路網路 ACLs

1. 驗證 VPC 組態：
   + 確認 DMS 結構描述轉換執行個體和 SQL Server 位於相同的 VPC 中或具有適當的 VPC 對等互連
   + 檢查路由表允許子網路之間的流量
   + 確認沒有防火牆設備封鎖流量

1. 測試連線：
   + 在與 DMS 結構描述轉換相同的子網路中啟動測試 EC2 執行個體
   + 連接與 DMS 結構描述轉換相同的安全群組
   + 使用 telnet 或 SQL Server Management Studio 測試 SQL Server 的連線
   + 如果測試成功，問題是 AWS 轉換組態；如果失敗，問題是網路/防火牆

**常見錯誤：**開啟連接埠 1433 至 0.0.0.0/0 （所有來源） 是安全風險。一律使用安全群組型存取控制，將存取權限制為僅限 DMS 結構描述轉換安全群組。

## 結構描述轉換問題
<a name="schema-conversion-issues"></a>

**問題：**結構描述轉換顯示許多動作項目

解決方案：
+ 檢閱轉換報告中的動作項目
+ 根據影響排定優先順序
+ 使用 Amazon Q Developer 進行複雜的 SQL 轉換
+ 如需指引，請參閱 AWS 支援
+ 考慮複雜資料庫的分階段方法

## 應用程式轉換問題
<a name="application-transformation-issues"></a>

**問題：**應用程式轉換無法建置

解決方案：
+ 檢閱轉換報告中的建置錯誤
+ 視需要設定私有 NuGet 饋送
+ 視需要更新套件參考
+ 檢查 Windows 特定的相依性
+ 檢閱轉換日誌以取得詳細錯誤

## 資料遷移問題
<a name="data-migration-issues"></a>

**問題：**資料遷移驗證失敗

解決方案：
+ 檢閱特定失敗的驗證報告
+ 檢查資料類型映射
+ 驗證身分資料欄組態 （由預設產生與一律產生）
+ 檢閱運算的資料欄表達式
+ 請聯絡 AWS Support 了解複雜的資料問題

## 資源清除問題
<a name="resource-cleanup-issues"></a>

**問題：**轉換任務失敗，發生資源錯誤

解決方案：
+ 檢查現有的 DMS 資源 （遷移專案、資料提供者、執行個體描述檔）
+ 清除先前嘗試失敗或不完整的資源
+ 確認未排定刪除秘密
+ 檢查 DMS 和 Aurora PostgreSQL 的服務配額
+ 如果清除無法解決問題，請聯絡 AWS Support

## 部署問題
<a name="deployment-issues"></a>

**問題：**轉換的應用程式無法連線至 Aurora PostgreSQL

解決方案：
+ 驗證 PostgreSQL 的連線字串格式
+ 檢查安全群組規則
+ 驗證 Secrets Manager 中的資料庫登入資料
+ 確保 SSL/TLS 已正確設定
+ 使用 psql 或 pgAdmin 測試連線

## 取得其他協助
<a name="getting-additional-help"></a>

聯絡 AWS Support 時，請提供：
+ 轉換任務 ID
+ AWS 帳戶 ID
+ 區域
+ 錯誤訊息和螢幕擷取畫面
+ 轉換日誌 （可在 AWS 轉換主控台中使用）