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
The pg_dump
command has many options and it is recommended that you 공식 문서를 참조하세요 and 명령 참조 for a fuller view of its capabilities.
pg_dump의 출력 복원
pg_dump
의 결과 출력을 새 Databases for PostgreSQL 배치로 업로드할 수 있습니다. 출력은 SQL이므로 간단하게 psql
명령을 통해 데이터베이스로 전송할 수 있습니다. admin 사용자로 가져오기를 수행하는 것이 좋습니다.
See the 로 연결 psql
for details on how to connect as admin by using 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