---
title: "Di chuyển cơ sở dữ liệu: chuyển đổi bản dump"
description: "Di chuyển giữa MySQL, MariaDB, PostgreSQL, SQL Server, SQLite và Oracle: chuyển bản dump thành tập lệnh cùng bảng, khóa, dữ liệu, kèm báo cáo mọi thay đổi."
canonical: https://intosql.com/vi/chuyen-co-so-du-lieu
last_updated: 2026-10-15
---

# Di chuyển cơ sở dữ liệu: chuyển đổi bản dump

Thả bản dump từ mysqldump, mariadb-dump, pg_dump, SSMS, SQL Developer hoặc SQLcl, hoặc tệp SQLite .db, và tải xuống một tập lệnh cho PostgreSQL, MySQL, MariaDB, SQLite, SQL Server hoặc Oracle với cùng bảng, khóa, chỉ mục và dữ liệu. Mọi thay đổi được liệt kê trong báo cáo, và bản dump không bao giờ rời khỏi máy tính của bạn.

## Mọi cặp cơ sở dữ liệu

Hàng là cơ sở dữ liệu nguồn của bản dump, cột là cơ sở dữ liệu đích của tập lệnh. Mỗi cặp có trang riêng với trình chuyển đổi đã thiết lập, các quy tắc áp dụng và cách nạp tập lệnh.

- MySQL: [MySQL sang PostgreSQL](https://intosql.com/vi/mysql-sang-postgresql), [MySQL sang MySQL](https://intosql.com/vi/mysql-sang-mysql), [MySQL sang MariaDB](https://intosql.com/vi/mysql-sang-mariadb), [MySQL sang SQLite](https://intosql.com/vi/mysql-sang-sqlite), [MySQL sang SQL Server](https://intosql.com/vi/mysql-sang-sql-server), [MySQL sang Oracle](https://intosql.com/vi/mysql-sang-oracle)
- MariaDB: [MariaDB sang PostgreSQL](https://intosql.com/vi/mariadb-sang-postgresql), [MariaDB sang MySQL](https://intosql.com/vi/mariadb-sang-mysql), [MariaDB sang MariaDB](https://intosql.com/vi/mariadb-sang-mariadb), [MariaDB sang SQLite](https://intosql.com/vi/mariadb-sang-sqlite), [MariaDB sang SQL Server](https://intosql.com/vi/mariadb-sang-sql-server), [MariaDB sang Oracle](https://intosql.com/vi/mariadb-sang-oracle)
- PostgreSQL: [PostgreSQL sang PostgreSQL](https://intosql.com/vi/postgresql-sang-postgresql), [PostgreSQL sang MySQL](https://intosql.com/vi/postgresql-sang-mysql), [PostgreSQL sang MariaDB](https://intosql.com/vi/postgresql-sang-mariadb), [PostgreSQL sang SQLite](https://intosql.com/vi/postgresql-sang-sqlite), [PostgreSQL sang SQL Server](https://intosql.com/vi/postgresql-sang-sql-server), [PostgreSQL sang Oracle](https://intosql.com/vi/postgresql-sang-oracle)
- SQL Server: [SQL Server sang PostgreSQL](https://intosql.com/vi/sql-server-sang-postgresql), [SQL Server sang MySQL](https://intosql.com/vi/sql-server-sang-mysql), [SQL Server sang MariaDB](https://intosql.com/vi/sql-server-sang-mariadb), [SQL Server sang SQLite](https://intosql.com/vi/sql-server-sang-sqlite), [SQL Server sang SQL Server](https://intosql.com/vi/sql-server-sang-sql-server), [SQL Server sang Oracle](https://intosql.com/vi/sql-server-sang-oracle)
- SQLite: [SQLite sang PostgreSQL](https://intosql.com/vi/sqlite-sang-postgresql), [SQLite sang MySQL](https://intosql.com/vi/sqlite-sang-mysql), [SQLite sang MariaDB](https://intosql.com/vi/sqlite-sang-mariadb), [SQLite sang SQLite](https://intosql.com/vi/sqlite-sang-sqlite), [SQLite sang SQL Server](https://intosql.com/vi/sqlite-sang-sql-server), [SQLite sang Oracle](https://intosql.com/vi/sqlite-sang-oracle)
- Oracle: [Oracle sang PostgreSQL](https://intosql.com/vi/oracle-sang-postgresql), [Oracle sang MySQL](https://intosql.com/vi/oracle-sang-mysql), [Oracle sang MariaDB](https://intosql.com/vi/oracle-sang-mariadb), [Oracle sang SQLite](https://intosql.com/vi/oracle-sang-sqlite), [Oracle sang SQL Server](https://intosql.com/vi/oracle-sang-sql-server), [Oracle sang Oracle](https://intosql.com/vi/oracle-sang-oracle)

[Kiểu dữ liệu của mọi cặp](https://intosql.com/docs/types#from-one-database-to-another)

## Những gì được giữ và những gì được báo cáo

Trình chuyển đổi đọc trực tiếp bản dump, không cần máy chủ cơ sở dữ liệu, và viết tập lệnh từ nội dung của nó. Trang của mỗi cặp liệt kê các quy tắc áp dụng, từ 25 đến 67 mỗi cặp, cùng dòng báo cáo mà mỗi quy tắc viết.

### Giữ trong tập lệnh

- Bảng và cột, mỗi cột với kiểu gần nhất mà đích có, cùng độ dài và độ chính xác.
- Khóa chính, khóa duy nhất, khóa ngoại, chỉ mục và giá trị mặc định.
- Cột AUTO_INCREMENT, identity và serial, giữ id của từng hàng và bộ đếm tiếp tục từ chỗ bản dump dừng lại.
- Mọi hàng, với ngày, số thập phân, văn bản và giá trị nhị phân đúng như bản dump.

### Liệt kê trong báo cáo

- Giá trị đích không chứa được nguyên trạng, như ngày 0000-00-00 trong PostgreSQL, kèm cột và số lượng. (`invalid_date_null`)
- Kiểu đích không có, như ENUM hoặc INET6, cùng kiểu mà mỗi kiểu đã thành. (`type_replaced`)
- View, trigger, thủ tục, hàm và sự kiện, theo tên: chúng được viết bằng ngôn ngữ riêng của từng cơ sở dữ liệu nên không được chuyển đổi. (`not_converted_objects`)
- Văn bản không hợp lệ trong bộ ký tự của nó, và bản dump đã mất ký tự 4 byte. (`invalid_utf8_replaced`)

## Đo đối chiếu với pgloader

Cùng các bản dump, được IntoSQL và pgloader 3.6.7 chuyển đổi và nạp trên cùng một máy (i9-10900K 10 nhân với SATA SSD), vào tháng 10 năm 2026.

- Cột TINYINT(1) chứa 2, -1 và -5: pgloader nạp true cho từng giá trị, không có cảnh báo. IntoSQL giữ các số và báo cáo giải thích lý do.
- Bản dump có giá trị mặc định 'it's', bảng có tên chứa dấu backtick, ENUM chứa giá trị rỗng và TIME trên 24 giờ: pgloader dừng lại. IntoSQL chuyển đổi và nạp được.
- Dữ liệu pgloader nạp đã mất khóa chính, khóa duy nhất, khóa ngoại và identity. IntoSQL giữ tất cả.
- Bản dump 5.3 GB với 30 triệu hàng: pgloader cần khôi phục nó vào một MySQL đang chạy trước, mất 18 phút, rồi hết bộ nhớ với cấu hình mặc định. IntoSQL chuyển đổi bản dump trong 10 giây, và psql nạp tập lệnh trong khoảng 3 phút.
- Trên 476 bản dump từ MySQL 5.5 đến 9 và MariaDB 10.3 đến 12, nạp vào PostgreSQL 13 và 18: không có lỗi nạp, và không giá trị nào thay đổi mà không có dòng trong báo cáo.

[Trang MySQL sang PostgreSQL](https://intosql.com/vi/mysql-sang-postgresql)

## Xuất cơ sở dữ liệu bạn đang có

Trình chuyển đổi đọc một tệp, không phải máy chủ đang chạy. Mỗi cơ sở dữ liệu viết tệp bằng công cụ riêng:

### MySQL

Bản dump từ mysqldump, mysqlpump, phpMyAdmin hoặc Adminer, dạng .sql hoặc .sql.gz. --default-character-set=utf8mb4 --hex-blob --routines --triggers --events giữ được nhiều nhất. [Hướng dẫn di chuyển MySQL sang PostgreSQL](https://intosql.com/docs/migrations/mysql-to-postgresql)

### MariaDB

Bản dump từ mariadb-dump, mysqldump, phpMyAdmin hoặc Adminer, dạng .sql hoặc .sql.gz, với cùng tùy chọn như MySQL. [Hướng dẫn di chuyển MariaDB sang PostgreSQL](https://intosql.com/docs/migrations/mariadb-to-postgresql)

### PostgreSQL

Bản dump thuần từ pg_dump hoặc pg_dumpall. Bản lưu trữ tùy chỉnh (-Fc) chuyển thành bản thuần bằng pg_restore -f dump.sql, không cần máy chủ. [Hướng dẫn di chuyển PostgreSQL sang MySQL](https://intosql.com/docs/migrations/postgresql-to-mysql)

### SQL Server

Tập lệnh mà Generate Scripts của SSMS viết, với Types of data to script đặt là Schema and data. dbatools và mssql-scripter viết ra giống vậy. [Hướng dẫn di chuyển SQL Server sang PostgreSQL](https://intosql.com/docs/migrations/sql-server-to-postgresql)

### SQLite

Chính tệp cơ sở dữ liệu (.db, .sqlite, .sqlite3), hoặc SQL mà sqlite3 app.db .dump viết. [Hướng dẫn di chuyển SQLite sang PostgreSQL](https://intosql.com/docs/migrations/sqlite-to-postgresql)

### Oracle

Tệp .sql mà Database Export của SQL Developer hoặc SQLcl viết, với DDL và câu lệnh Insert. Tệp .dmp từ exp hoặc expdp phải được nhập rồi xuất lại trước. [Hướng dẫn di chuyển Oracle sang PostgreSQL](https://intosql.com/docs/migrations/oracle-to-postgresql)

## Câu hỏi về di chuyển cơ sở dữ liệu

### Bản dump của tôi có bị tải lên không?

Không. Trình chuyển đổi chạy trong trình duyệt và đọc bản dump từ ổ đĩa theo từng phần, nên nó không bao giờ rời khỏi máy tính của bạn. Ứng dụng máy tính và dòng lệnh cũng chuyển đổi ngay trên máy tính của bạn.

### Bản dump có thể lớn đến đâu?

Trình chuyển đổi không bao giờ giữ toàn bộ bản dump trong bộ nhớ: nó đọc tệp hai lần, theo từng đoạn, và ghi tập lệnh trong lúc đọc. Bản dump nhiều gigabyte vẫn chuyển đổi được trong trình duyệt, trong ứng dụng máy tính và bằng dòng lệnh.

### Bản dump có thể đến từ những phiên bản nào?

MySQL 5.5 đến 9, MariaDB 10.3 đến 12, PostgreSQL 10 trở lên, SQL Server 2017 trở lên, SQLite 3.0 trở lên và Oracle 11g trở lên. Trang của mỗi cặp cho biết tập lệnh nạp được trên những phiên bản nào.

### Tôi có cần máy chủ cơ sở dữ liệu đang chạy không?

Không. Trình chuyển đổi đọc trực tiếp tệp dump, nên cơ sở dữ liệu nguồn không cần chạy ở đâu cả. Tập lệnh được nạp bằng client của đích, như psql, mysql hoặc sqlcmd.

### Những gì không được chuyển đổi?

View, trigger, thủ tục lưu trữ, hàm và sự kiện được viết bằng ngôn ngữ riêng của từng cơ sở dữ liệu, nên chúng được liệt kê theo tên trong báo cáo. Bảng, khóa, chỉ mục và hàng đều có trong tập lệnh.

### Có thể nạp tập lệnh thẳng vào cơ sở dữ liệu của tôi không?

Ứng dụng máy tính và lệnh intosql load ghi thẳng vào SQLite miễn phí, và vào PostgreSQL, MySQL, MariaDB với IntoSQL Pro. Với SQL Server và Oracle, hãy chạy tập lệnh bằng sqlcmd hoặc sqlplus.
