遷移到Databases for PostgreSQL
有多種選項可將資料從現有PostgreSQL資料庫遷移到IBM Cloud® Databases for PostgreSQL。 我們專注於最簡單、最有效的。 首先,您需要在本機安裝PostgreSQL,以便擁有 psql
和 pg_dump
工具。 雖然不是嚴格要求,但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_dump
的結果輸出可以上傳到新的Databases for PostgreSQL部署。 由於輸出是SQL,因此可以簡單地透過 psql
命令將其發送到資料庫。 我們建議使用管理員使用者執行導入。
有關如何使用 psql
以管理員身份進行連接的詳細信息,請參閱 連接 psql
。 要使用 psql
命令連接,您需要管理員使用者的連接字串和 TLS 憑證。 憑證需要從base64解碼並儲存為任意本機檔案。 若要將先前建立的
dump.sql
匯入到名為 example-psql
資料庫部署中,可以使用 -f dump.sql
作為參數來呼叫 psql
命令。 此參數告訴 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 憑證。 一旦從 API 建立了詳細信息,-s
就會啟動 psql
(或任何已配置的命令)。 --
之後的任何內容都會傳遞給命令。
當復原過程運行時,它會發出許多有關對資料庫部署所做的變更的訊息。
使用 pg_restore 的附加遷移選項
對於擁有單獨包含 sql 和資料的 TAR 檔案的用戶,除了前面提到的 psql
命令之外,還可以使用命令 pg_restore
來遷移資料。 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