# Migrate MySQL Database for Feature Enhancement

เนื่องจากการเพิ่มฟีเจอร์ Replication และ [Monitoring User](/ncs-documents/database-as-a-service/sql-database/manage-monitoring-user.md) จะใช้ได้กับ Database Instance ใหม่ ที่สร้างหลังการเพิ่มฟีเจอร์ดังกล่าว

เพื่อความสะดวกในการใช้งาน จึงแนะนำให้สร้าง Backup จาก Database Instance แล้วนำ Backup ไปสร้างเป็น Database Instance ใหม่ ซึ่งเป็นวิธีการ Migrate ที่ไม่ซับซ้อนและสามารถทำได้ผ่าน NCS ทั้งหมด

## Prerequisite

* มี MySQL Database Instance ใน Project บน NCS ที่สร้างก่อนการเพิ่มฟีเจอร์นั้น
* มี Quota ของ Backup เหลืออย่างน้อย 1 Backup
* ยกเลิกการเชื่อมต่อ Database กับระบบที่ใช้งานอยู่

{% hint style="warning" %}
ช่วงเวลาที่ทำตาม Document นี้ ควรอยู่ในช่วงการปรับปรุงระบบ (Maintenance Phase)
{% endhint %}

## Instruction

วิธีการทำให้ Database Instance เดิมในระบบ สามารถใช้งานฟีเจอร์เพิ่มเติมได้ มีดังนี้

### 1. เตรียมความพร้อมของข้อมูล

เข้าไปที่ MySQL Database Instance เดิม และรันคำสั่ง:

```sql
SET GLOBAL read_only = 1;
SET GLOBAL super_read_only = 1;
```

จากนั้นรันคำสั่งเพื่อตรวจสอบค่า Position

```sql
SHOW MASTER STATUS;
```

{% hint style="info" %}
ตรวจสอบซ้ำเพื่อให้แน่ใจว่าค่า Position ไม่มีการเปลี่ยนแปลง (หากคงที่ แสดงว่าไม่มีการเขียนข้อมูลเข้ามาแล้ว)
{% endhint %}

### 2. สั่งสร้าง Backup จาก Database Instance

เข้าคำสั่ง Create Backup และเลือก Database Instance ที่ต้องการ

สามารถดูรายละเอียดเพิ่มเติมได้ที่ [Create Backup](/ncs-documents/database-as-a-service/sql-database/manage-sql-database-backup/create-backup.md)

<figure><img src="/files/9jrkr7bZc8rJCp9xZ57F" alt=""><figcaption></figcaption></figure>

รอจนกว่า Backup Status เป็น Available แสดงว่าคำสั่งสำเร็จ

<figure><img src="/files/vTHEgIqEG5IzlaZcQU0J" alt=""><figcaption></figcaption></figure>

### 3. นำ Backup ที่ได้ มาสร้างเป็น Database Instance ใหม่

เข้าคำสั่ง Create SQL Database From Backup และตั้งค่าทั้งหมดตามต้องการ

สามารถดูรายละเอียดเพิ่มเติมได้ที่ [Create SQL Database From Backup](/ncs-documents/database-as-a-service/sql-database/manage-sql-database-backup/create-a-new-sql-database-instance-from-backup.md)

<figure><img src="/files/dXfQ2zKUHiuMXFzaloXZ" alt=""><figcaption></figcaption></figure>

รอจนกว่า Database Service Status เป็น Healthy และ Database Instance Status เป็น Active แสดงว่าคำสั่งสำเร็จ

<figure><img src="/files/SQ9QPsWfcslA5AotGK7x" alt=""><figcaption></figcaption></figure>

### 4. สามารถใช้งานฟีเจอร์ใหม่ได้ตามต้องการ

ตรวจสอบความเรียบร้อยของข้อมูลก่อนเปิดใช้งานจริง

* เข้าใช้งาน Database บน NCS ผ่าน CLI หรือ [MySQL Workbench](/ncs-documents/database-as-a-service/access-mysql-database-with-mysql-workbench.md) เพื่อตรวจสอบจำนวนตารางและข้อมูล
* ตรวจสอบฟีเจอร์ใหม่ เช่น การสร้าง Replica หรือการจัดการ Monitoring User

### 5. เชื่อมต่อระบบเดิมกับ Database ใหม่

ปรับการตั้งค่าของ Application ให้มาชี้ที่ Database ใหม่

* อัปเดต Connection String ใน Application (Host, Database User, Password)
* ตรวจสอบการทำงานของระบบว่าสามารถ อ่าน-เขียน (Read-Write) ข้อมูลได้ตามปกติ


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs-epc.gitbook.io/ncs-documents/migration/migrate-mysql-database-for-feature-enhancement.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
