> For the complete documentation index, see [llms.txt](https://docs-epc.gitbook.io/ncs-documents/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs-epc.gitbook.io/ncs-documents/migration/migrate-mysql-database-for-feature-enhancement.md).

# 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) ข้อมูลได้ตามปกติ
