在 AWS 建完 PostgreSQL 之後,今天就來嘗試在地端連線到雲端的 PostgreSQL ,並且把原本在 local 環境的資料匯到雲端吧!
要連到雲端的 PostgreSQL ,一樣可以透過 pgAdmin 連線,只要 register 一個 server ,把雲端資料庫的 endpoint 填到 host name 那個欄位,就可以連線了。
連線成功即可在左邊看到資料庫。
準備好雲端資料庫後,就可以開始把資料搬家囉!一般來說, PostgreSQL 可以用 pg_dump
和 pg_restore
做資料遷移,但如果資料量太大,就得用其他方法,像是 AWS Database Migration Service (DMS) ,這邊先介紹如何透過 pgAdmin 使用 pg_dump
和 pg_restore
做遷移。
首先,需要把地端資料庫的資料先備份出來,選擇資料庫並點選 Backup…
就可以讓 pgAdmin 使用 pg_dump
匯出資料庫的結構和資料。
這邊 format 要選 Custom
,不然等一下 restore 的時候,可能會失敗。
接著選擇雲端資料庫,並選擇 Restore…
。
選擇剛剛備份好的 SQL 檔。
然後就可以開始還原囉!
還原成功或失敗的相關 log 和狀態,都可以到 Processes
查詢。
還原過程中到 AWS RDS 的監控圖表觀看,可以發現資料庫的 CPU 和 commit 的數量都有向上提升的趨勢,代表資料真的有開始匯進去。
資料遷移完成後,可以查詢確認一下是否真的有把資料匯進去,查詢兩個資料庫的同一張 table ,結果發現在地端的資料庫查詢速度居然比雲端少了 3 秒XDDDD 我猜應該是我把雲端資料庫開在 us-east-1 ,而且規格又是最低的,所以速度才差這麼多。