---
title: "데이터베이스 마이그레이션: 덤프 변환"
description: "MySQL, MariaDB, PostgreSQL, SQL Server, SQLite, Oracle 간 마이그레이션. 덤프를 같은 테이블, 키, 데이터의 스크립트로 바꾸고 모든 변경을 보고해요."
canonical: https://intosql.com/ko/database-migration
last_updated: 2026-10-15
---

# 데이터베이스 마이그레이션: 덤프 변환

mysqldump, mariadb-dump, pg_dump, SSMS, SQL Developer, SQLcl 덤프나 SQLite .db 파일을 놓으면, 같은 테이블, 키, 인덱스, 데이터를 담은 PostgreSQL, MySQL, MariaDB, SQLite, SQL Server, Oracle 스크립트를 받아요. 모든 변경은 보고서에 나오고, 덤프는 컴퓨터 밖으로 나가지 않아요.

## 모든 데이터베이스 조합

행은 덤프의 원본, 열은 스크립트의 대상 데이터베이스예요. 조합마다 설정된 변환기, 적용 규칙, 스크립트 불러오는 법을 담은 페이지가 있어요.

- MySQL: [MySQL에서 PostgreSQL로](https://intosql.com/ko/mysql-to-postgresql), [MySQL에서 MySQL로](https://intosql.com/ko/mysql-to-mysql), [MySQL에서 MariaDB로](https://intosql.com/ko/mysql-to-mariadb), [MySQL에서 SQLite로](https://intosql.com/ko/mysql-to-sqlite), [MySQL에서 SQL Server로](https://intosql.com/ko/mysql-to-sql-server), [MySQL에서 Oracle로](https://intosql.com/ko/mysql-to-oracle)
- MariaDB: [MariaDB에서 PostgreSQL로](https://intosql.com/ko/mariadb-to-postgresql), [MariaDB에서 MySQL로](https://intosql.com/ko/mariadb-to-mysql), [MariaDB에서 MariaDB로](https://intosql.com/ko/mariadb-to-mariadb), [MariaDB에서 SQLite로](https://intosql.com/ko/mariadb-to-sqlite), [MariaDB에서 SQL Server로](https://intosql.com/ko/mariadb-to-sql-server), [MariaDB에서 Oracle로](https://intosql.com/ko/mariadb-to-oracle)
- PostgreSQL: [PostgreSQL에서 PostgreSQL로](https://intosql.com/ko/postgresql-to-postgresql), [PostgreSQL에서 MySQL로](https://intosql.com/ko/postgresql-to-mysql), [PostgreSQL에서 MariaDB로](https://intosql.com/ko/postgresql-to-mariadb), [PostgreSQL에서 SQLite로](https://intosql.com/ko/postgresql-to-sqlite), [PostgreSQL에서 SQL Server로](https://intosql.com/ko/postgresql-to-sql-server), [PostgreSQL에서 Oracle로](https://intosql.com/ko/postgresql-to-oracle)
- SQL Server: [SQL Server에서 PostgreSQL로](https://intosql.com/ko/sql-server-to-postgresql), [SQL Server에서 MySQL로](https://intosql.com/ko/sql-server-to-mysql), [SQL Server에서 MariaDB로](https://intosql.com/ko/sql-server-to-mariadb), [SQL Server에서 SQLite로](https://intosql.com/ko/sql-server-to-sqlite), [SQL Server에서 SQL Server로](https://intosql.com/ko/sql-server-to-sql-server), [SQL Server에서 Oracle로](https://intosql.com/ko/sql-server-to-oracle)
- SQLite: [SQLite에서 PostgreSQL로](https://intosql.com/ko/sqlite-to-postgresql), [SQLite에서 MySQL로](https://intosql.com/ko/sqlite-to-mysql), [SQLite에서 MariaDB로](https://intosql.com/ko/sqlite-to-mariadb), [SQLite에서 SQLite로](https://intosql.com/ko/sqlite-to-sqlite), [SQLite에서 SQL Server로](https://intosql.com/ko/sqlite-to-sql-server), [SQLite에서 Oracle로](https://intosql.com/ko/sqlite-to-oracle)
- Oracle: [Oracle에서 PostgreSQL로](https://intosql.com/ko/oracle-to-postgresql), [Oracle에서 MySQL로](https://intosql.com/ko/oracle-to-mysql), [Oracle에서 MariaDB로](https://intosql.com/ko/oracle-to-mariadb), [Oracle에서 SQLite로](https://intosql.com/ko/oracle-to-sqlite), [Oracle에서 SQL Server로](https://intosql.com/ko/oracle-to-sql-server), [Oracle에서 Oracle로](https://intosql.com/ko/oracle-to-oracle)

[모든 조합의 데이터 타입](https://intosql.com/docs/types#from-one-database-to-another)

## 유지되는 것과 보고되는 것

변환기는 데이터베이스 서버 없이 덤프를 직접 읽고 그 내용으로 스크립트를 써요. 조합 페이지마다 적용 규칙(25~67개)과 각 규칙이 보고서에 쓰는 줄이 나와요.

### 스크립트에 유지

- 테이블과 열, 각각 대상의 가장 가까운 타입과 길이, 정밀도로.
- 기본 키, 고유 키, 외래 키, 인덱스, 기본값.
- AUTO_INCREMENT, IDENTITY, serial 열. 행 ID를 유지하고 카운터는 덤프가 멈춘 곳부터 이어져요.
- 모든 행. 날짜, 소수, 텍스트, 바이너리 값은 덤프 그대로예요.

### 보고서에 기록

- 대상이 그대로 담을 수 없는 값(PostgreSQL의 0000-00-00 날짜 등)과 열, 개수. (`invalid_date_null`)
- 대상에 없는 타입(ENUM, INET6 등)과 각각 바뀐 타입. (`type_replaced`)
- 뷰, 트리거, 프로시저, 함수, 이벤트를 이름으로. DB마다 자체 언어라 변환하지 않아요. (`not_converted_objects`)
- 문자 집합에서 유효하지 않은 텍스트와 이미 4바이트 문자를 잃은 덤프. (`invalid_utf8_replaced`)

## pgloader와 비교한 측정 결과

같은 덤프를 2026년 10월에 한 컴퓨터(SATA SSD를 단 10코어 i9-10900K)에서 IntoSQL과 pgloader 3.6.7로 변환하고 불러왔어요.

- 2, -1, -5를 담은 TINYINT(1) 열: pgloader는 경고 없이 모두 true로 불러와요. IntoSQL은 숫자를 유지하고 보고서에 이유가 나와요.
- 기본값이 'it's'인 열, 백틱이 들어간 이름의 테이블, 빈 값을 담은 ENUM, 24시간이 넘는 TIME이 있는 덤프: pgloader는 멈춰요. IntoSQL은 변환하고 불러와요.
- pgloader로 불러온 결과에는 기본 키, 고유 키, 외래 키와 IDENTITY가 사라져요. IntoSQL은 모두 유지해요.
- 3,000만 행이 담긴 5.3 GB 덤프: pgloader는 먼저 실행 중인 MySQL에 복원해야 해서 18분이 걸리고, 그 뒤 기본 설정으로는 메모리가 부족해져요. IntoSQL은 덤프를 10초 만에 변환하고, psql은 약 3분 만에 스크립트를 불러와요.
- MySQL 5.5부터 9까지, MariaDB 10.3부터 12까지의 덤프 476개를 PostgreSQL 13과 18에 불러온 결과: 불러오기 오류는 없었고, 보고서에 기록 없이 바뀐 값도 없었어요.

[MySQL에서 PostgreSQL로 페이지](https://intosql.com/ko/mysql-to-postgresql)

## 지금 쓰는 데이터베이스 내보내기

변환기는 실행 중인 서버가 아니라 파일을 읽어요. 각 데이터베이스는 자체 도구로 파일을 써요.

### MySQL

mysqldump, mysqlpump, phpMyAdmin, Adminer 덤프(.sql 또는 .sql.gz). --default-character-set=utf8mb4 --hex-blob --routines --triggers --events로 가장 많이 유지돼요. [MySQL에서 PostgreSQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/mysql-to-postgresql)

### MariaDB

mariadb-dump, mysqldump, phpMyAdmin, Adminer 덤프(.sql 또는 .sql.gz), MySQL과 같은 옵션으로. [MariaDB에서 PostgreSQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/mariadb-to-postgresql)

### PostgreSQL

pg_dump나 pg_dumpall의 일반 덤프. 사용자 지정 아카이브(-Fc)는 서버 없이 pg_restore -f dump.sql로 바꿀 수 있어요. [PostgreSQL에서 MySQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/postgresql-to-mysql)

### SQL Server

SSMS 스크립트 생성에서 스크립팅할 데이터 형식을 스키마 및 데이터로 정해 쓴 스크립트. dbatools와 mssql-scripter도 같아요. [SQL Server에서 PostgreSQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/sql-server-to-postgresql)

### SQLite

데이터베이스 파일 자체(.db, .sqlite, .sqlite3) 또는 sqlite3 app.db .dump가 쓰는 SQL. [SQLite에서 PostgreSQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/sqlite-to-postgresql)

### Oracle

SQL Developer 데이터베이스 내보내기나 SQLcl이 쓰는 DDL과 Insert 문이 담긴 .sql 파일. exp나 expdp의 .dmp 파일은 먼저 가져온 뒤 다시 내보내야 해요. [Oracle에서 PostgreSQL로 마이그레이션 가이드](https://intosql.com/docs/migrations/oracle-to-postgresql)

## 데이터베이스 마이그레이션 질문

### 덤프가 업로드되나요?

아니요. 변환기는 브라우저에서 실행되고 디스크의 덤프를 조각조각 읽으므로, 덤프가 컴퓨터 밖으로 나가지 않아요. 데스크톱 앱과 명령줄도 컴퓨터에서 변환해요.

### 덤프는 얼마나 커도 되나요?

변환기는 덤프 전체를 메모리에 올리지 않아요. 파일을 범위별로 두 번 읽고, 읽는 대로 스크립트를 써요. 수 GB 덤프도 브라우저, 데스크톱 앱, 명령줄에서 변환돼요.

### 어떤 버전의 덤프를 쓸 수 있나요?

MySQL 5.5~9, MariaDB 10.3~12, PostgreSQL 10 이상, SQL Server 2017 이상, SQLite 3.0 이상, Oracle 11g 이상이에요. 스크립트가 불러와지는 버전은 각 조합 페이지에 나와요.

### 실행 중인 데이터베이스 서버가 필요한가요?

아니요. 변환기가 덤프 파일을 직접 읽으므로 원본 데이터베이스는 실행될 필요가 없어요. 스크립트는 psql, mysql, sqlcmd 같은 대상의 클라이언트로 불러와요.

### 변환되지 않는 것은요?

뷰, 트리거, 저장 프로시저, 함수, 이벤트는 DB마다 자체 언어로 작성되어 보고서에 이름으로 나와요. 테이블, 키, 인덱스, 행은 모두 스크립트에 있어요.

### 스크립트를 데이터베이스에 바로 불러올 수 있나요?

데스크톱 앱과 intosql load 명령은 SQLite에 무료로, PostgreSQL, MySQL, MariaDB에는 IntoSQL Pro로 바로 써요. SQL Server와 Oracle은 sqlcmd나 sqlplus로 실행하세요.
