Databases for PostgreSQL로 마이그레이션
기존 PostgreSQL 데이터베이스에서 IBM Cloud® Databases for PostgreSQL로 데이터를 마이그레이션하는 다양한 옵션이 있습니다. 여기서는 가장 단순하고 효과적인 옵션에 집중합니다. 시작하려면 psql 및 pg_dump 도구가 있도록 PostgreSQL이 로컬에 설치되어 있어야 합니다. 또한 꼭 필요한 것은 아니지만 Cloud Databases CLI를 사용하면
더 쉽게 연결하고 새 Databases for PostgreSQL 배치에 복원할 수 있습니다.
pg_dump
소스 데이터베이스에서 pg_dump 실행을 통해 데이터베이스를 재작성하는 데 사용할 수 있는 SQL 파일을 작성하십시오. 최소한 pg_dump는 호스트 이름(-h 플래그), 포트 번호(-p 플래그), 데이터베이스 이름(-d 플래그), 사용자 이름(-U 플래그) 및 덤프를 기록할 파일(또는 디렉토리
이름)(-f 플래그)을 가져옵니다.
예를 들어, 다음 명령은 admin 사용자를 사용하여 sl-eu-lon-2-portal.4.dblayer.com, 포트 17980에서 호스팅되는 PostgreSQL "compose" 데이터베이스를 덤프하고 결과를 dump.sql에 저장합니다.
pg_dump -h sl-eu-lon-2-portal.4.dblayer.com -p 17980 -d compose -U admin -f dump.sql
pg_dump 명령에는 다양한 옵션이 있으므로 공식 문서와 명령 참조를 참조 하여 기능을 자세히
살펴보는 것이 좋습니다.
Pg_dumpall을 사용하면 지원되지 않는 시스템 테이블을 작업에 포함하려고 하기 때문에 권한 문제가 발생할 수 있습니다. 문서에 설명된 대로 pg_dump를 사용하여 사용자별 테이블을 지정합니다.
pg_dump의 출력 복원
pg_dump의 결과 출력을 새 Databases for PostgreSQL 배치로 업로드할 수 있습니다. 출력은 SQL이므로 간단하게 psql 명령을 통해 데이터베이스로 전송할 수 있습니다. admin 사용자로 가져오기를 수행하는 것이 좋습니다.
psql 을 사용하여 관리자로 연결하는 방법에 대한 자세한 내용은 psql 으로 연결하기 문서를 참조하세요. psql 명령을 사용하여 연결하려면 admin 사용자의 연결 문자열과 TLS 인증서가 필요합니다.
인증서가 base64에서 디코딩되고 임의 로컬 파일로 저장되어야 합니다. 이전에 작성된 dump.sql 항목을 이름이 example-psql인 데이터베이스 배치에 가져오려면 psql 명령을 매개변수로 -f dump.sql에 함께 호출할 수 있습니다. 매개변수는 psql에 파일의 SQL문을 읽고 실행하도록 지시합니다.
이 명령은 다음과 유사합니다.
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt psql 'host=c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32484 dbname=ibmclouddb user=admin sslmode=verify-full' -f dump.sql
psql을 사용하여 연결 문서에 설명된 대로 Cloud Databases CLI 플러그인은 연결을 단순화합니다. 다음과 같이 이전 psql 가져오기를 수행할 수 있습니다.
ibmcloud cdb deployment-connections example-psql -s -- -f dump.sql
사용자가 지정되지 않으면 이 명령이 자동으로 admin 사용자를 사용합니다. 또한 대화식으로 비밀번호에 대한 프롬프트를 표시합니다. TLS 인증서가 자동으로 검색되고 사용됩니다. -s는 API에서 세부사항이 설정된 후 psql(또는 구성된 명령)을 시작합니다. -- 다음의 항목이 명령에 전달됩니다.
복원 프로세스가 실행되는 동안 데이터베이스 배치에 작성하는 변경사항에 대한 여러 메시지를 생성합니다.
Pg_restore를 사용한 추가 마이그레이션 옵션
sql 및 데이터를 별도로 포함하는 tar 파일이 있는 사용자의 경우 이전에 언급된 pg_restore 명령 이외에 psql 명령을 사용하여 데이터를 마이그레이션할 수 있습니다. pg_restore 명령의 예제는 다음과 같습니다.
PGPASSWORD=yourpasswordhere PGSSLROOTCERT=cert.crt pg_restore -h c7798cf6-e5d2-4513-b17f-3d3fa67d8291.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud -p 32484 -U admin -F t -d ibmclouddb tarfile.tar