en
지원하는 언어
  • en
  • cs
  • hu
  • it
  • es
  • fr
  • de
  • ru
기계 번역
  • bg
  • dk
  • nl
  • gr
  • il
  • jp
  • kr
  • 아니
  • pl
  • tr

Postgres에서 MySQL로 마이그레이션

개요

Easy Project 서버 관리자를 위해 Postgres에서 MySQL 로의 DB 마이그레이션을위한 몇 가지 도구를 테스트했습니다.

하나는 무료 오픈 소스이지만 오래되고 심각한 단점이 있습니다. 다른 것들은 프리미엄 도구 였고, 우리의 의견으로는 구매할 가치가있는 결과를 얻었습니다.

무료 옵션-pg2mysql PHP 스크립트

부인 성명: 이 도구는 타사에 의해 개발되었습니다 => Easy Software의 제품이 아니므로 보증되지 않습니다.
테스트 된 도구는 다음에서 사용할 수 있습니다.
http://www.lightbox.ca/pg2mysql.php
우리는 PHP 7.4에서 작동하도록 도구를 직접 수정했습니다. 그러나 사용은 여전히 ​​자신의 책임이며 당사는 어떠한 보증도 제공하지 않습니다.

마이그레이션 단계

1. 스크립트를 다운로드하고 아카이브의 압축을 풉니 다.

wget http://www.lightbox.ca/pg2mysql/pg2mysql-1.9.tar.bz2  (저자의 원본 스크립트 포함)
wget https://www.easyredmine.com/ER/media/knowledge-base/pg2mysql-1.9.zip (php 버전 7.4 용으로 수정 된 스크립트 포함)

tar -xvf pg2mysql-1.9.tar.bz2(저자 원본의 경우)
pg2mysql-1.9.zip의 압축을 풉니 다 (php 버전 7.4 용으로 수정 된 스크립트의 경우)

2. PHP 설치

sudo apt 설치 php7.4-cli (수정 된 스크립트의 경우)

3. .sql 형식으로 PostgreSQL 데이터베이스 덤프를 생성하고 "--format p --inserts"를 사용해야합니다.

sudo -u postgres pg_dump --format p --inserts DBNAME_HERE> /path/to/file.sql

4. pg2mysql-1.9 폴더로 전환합니다.

cd pg2mysql-1.9 /

5. 실행

PHP pg2mysql_cli.php /path/to/pd/dump/file.sql /path/where/to/save/mysql/file.sql

다음과 같은 일부 라인이 표시됩니다.

완료되었습니다! 30820 라인 5539 SQL 청크

배송 시 요청 사항:
 -아니 완벽하지 않아
 -예, 모든 저장 프로 시저를 삭제합니다.
 -예, CREATE TABLE 및 INSERT INTO를 제외한 모든 쿼리를 삭제합니다. 
 -예 : info [AT] lightbox.org에서 제안 사항을 이메일로 보낼 수 있습니다.
    -이메일에 Postgres 코드와 예상되는 MySQL 코드를 포함하세요.
 -postgres 덤프를 만드는 데 문제가있는 경우 "--format p --inserts"를 사용해야합니다.
 -지정되지 않은 경우 기본 출력 엔진은 MyISAM입니다. "

6. 이제 SQL 덤프가 수정 된 파일이 생성됩니다. 이를 통해 모든 곳에서 MyISAM을 InnoDB로 교체하는 것이 좋습니다.

7. 이제이 덤프를 깨끗한 mysql 데이터베이스로 복원 할 수 있습니다.

8. (저자가 알려준대로) 스크립트는 인덱스를 저장하지 않기 때문에 모든 테이블에 인덱스를 수동으로 추가해야합니다 (인덱스없이 작동하지만 심각한 성능 문제를 일으킬 수 있음). 일반 Easy Project 애플리케이션에서 생성 한 MySQL 테이블에 존재해야하는 모든 인덱스 목록이 있습니다. 수동으로 또는 사용자 지정 스크립트를 통해 추가해야합니다.

웹에서 사용할 수있는 다른 무료 도구가 있습니다. 그러나 우리의 테스트 결과는 이들에 대해 만족스럽지 않았습니다.

프리미엄 도구-MySQL 및 PostgreSQL v. 4.3.5 용 DB 변환

우리는 3 가지 프리미엄 도구를 모두 테스트했습니다. DBConvert가 가장 적합하다고 느꼈으므로 이에 대한 자세한 단계를 설명합니다.

준비 :

1. MySQL 및 PostgreSQL 데이터베이스 모두 외부에서 액세스 할 수 있는지 확인합니다 (임시적으로 허용 할 수 있음).

2. 사용자와 암호로 DB에 로그인 할 수 있는지 확인하십시오.

3. 다음에서 도구를 설치합니다. https://dbconvert.com/postgresql/mysql/

변환 시작 :

1. 마법사를 시작합니다.

2. 소스 데이터베이스를 선택합니다.
PostgreSQL
호스트 이름 : postgres db가 설치된 서버의 IP 또는 도메인 이름입니다.
포트 : 기본값과 다른 경우
사용자 이름 : 변환하려는 db에 액세스 할 수있는 사용자 이름
비밀번호 : 위 사용자의 비밀번호입니다.

연결 테스트 버튼을 클릭합니다. 앱은 선택한 사용자와 비밀번호로 소스 DB 서버에 연결할 수 있는지 확인합니다. 가능하면 데이터베이스 목록이 업로드됩니다. 올바른 데이터베이스를 선택하십시오.

3. "다음"을 클릭합니다. 앱은 postgres에 연결되고 데이터베이스에서 사용 가능한 테이블 목록을 수신합니다. 변환 할 모든 항목을 선택하거나 하나 / 몇 개만 선택할 수 있습니다.

4. 잠시 기다리면 다음 단계 인 MySQL 연결 설정으로 이동합니다.
호스트 이름 : mysql db가 설치된 서버의 IP 또는 도메인 이름입니다.
포트 : 기본값과 다른 경우
사용자 이름 : 변환하려는 db에 액세스 할 수있는 사용자 이름
비밀번호 : 위 사용자의 비밀번호입니다.

연결 테스트 버튼을 클릭합니다. 앱은 선택한 사용자와 비밀번호로 소스 DB 서버에 연결할 수 있는지 확인합니다. 가능하면 데이터베이스 목록이 업로드됩니다. 올바른 데이터베이스를 선택하십시오.

5. 다음 단계에서 애플리케이션은 소스 데이터베이스를 확인하고 가능한 문제를 해결하는 방법에 대한 몇 가지 권장 사항을 제공합니다.

우리는 다음 문제를 만났습니다.

테이블 "변경"필드 "작업". 원래 DB에서는 "CHAR (1)"유형이었습니다. 그러나 기본값은 ''이므로 Mysql은 유효하지 않다고 가정했습니다. 새로운 유형을 선택할 수 있습니다. CHAR (2)를 선택하고 다음을 클릭합니다. 문제가 해결되었습니다.

문제가있는 다른 필드에 대해 유사한 작업을 반복합니다.

6. 다음을 한 번 더 클릭합니다. 응용 프로그램은 전체 및 현재 진행 상황을 보여주는 변환을 시작합니다. 변환이 완료 될 때까지 기다리십시오.

7. "종료"를 클릭합니다. 변환이 완료되었습니다.

이 도구의 작성자는 유료 고객을 지원합니다.

가격 : $ 149 (XNUMX 회)

기타 프리미엄 옵션

또한 이러한 도구의 평가판도 테스트했습니다. 이에 대한 일반적인 의견은 다음과 같습니다.

  • pgs2scld (https://www.convert-in.com/pgs2sql.htm)
    데이터베이스 연결에 문제가 없습니다 (추가 드라이버를 설치하거나 어떤 식 으로든 설정할 필요가 없음). 평가판 있음 (평가판 모드에서는 테이블 당 50 개의 레코드 만 복사하지만 모든 행을 확인하고 전체 데이터베이스가 복사 된 것처럼 동일한 진행률을 표시 함). 내부 디버거가 있으며 마이그레이션과 관련된 가능한 문제를 보여줍니다. 마이그레이션 중에 적용 할 수있는 다양한 옵션이 있습니다. 유료 고객을위한 연중 무휴 지원을 제공합니다. UI 만, Windows 로 작성되어야 합니다.
    가격 $ 49 (XNUMX 회).
  • ESF 데이터베이스 마이그레이션 툴킷 (https://www.dbsofts.com/articles/postgresql_to_mysql/)
    데이터베이스 연결에 문제가 없습니다 (추가 드라이버를 설치하거나 어떤 식 으로든 설정할 필요가 없음). 평가판이 있습니다 (평가판 모드에서는 50000 개의 레코드 만 복사합니다). 내부 디버거가 있으며 마이그레이션과 관련된 가능한 문제를 보여줍니다. 마이그레이션 중에 적용 할 수있는 다양한 옵션이 있습니다. 유료 고객을위한 연중 무휴 지원을 제공합니다. UI 만, Windows 로 작성되어야 합니다.
    가격 $ 322 (XNUMX 회).

30일 무료 평가판으로 Easy Project를 사용해 보세요.

지리적 위치에서 모든 기능, SSL 보호, 일일 백업