[Greenplum DB] PostGIS - 공간지리 테이블 백업하기, 백업 다시 불러오기 (Backup and Restore geospatial table using pg_dump, pg_restore)
Greenplum and PostgreSQL Database 2019. 4. 27. 18:59앞의 포스팅에서는 공간지리 형태의 데이터셋을 import 하는 방법들을 소개하였습니다.
이번 포스팅에서는 PostgreSQL, Greenplum DB의 PostGIS 에서 테이블(Table) 형태로 있는 공간지리 데이터에 대해서 (1) pg_dump로 공간지리 테이블을 백업하기(Backup), (2) pg_restore 로백업한 공간지리 테이블을 다시 불러오기 (Restore) 를 해보겠습니다.
(* Reference: https://github.com/PacktPublishing/Mastering-PostGIS)
(1) pg_dump로 공간지리 데이터 테이블 백업하기 (Create a Backup table) |
명령 프롬프트 창에서 docker로 Greenplum DB를 실행한 후에, gpadmin 계정으로 들어가서 이미 geometry 포맷으로 만들어두었던 data_import.earthquakes_subset_with_geom 테이블을 pg_dump 를 사용하여 백업해보았습니다. (host, port, user 부분은 각자의 database 설정을 입력하면 됨)
[gpadmin@mdw tmp]$ pg_dump -h localhost -p 5432 -U gpadmin -t data_import.earthquakes_subset_with_geom -c -F c -v -b -f earthquakes_subset_with_geom.backup gpadmin pg_dump: reading extensions pg_dump: identifying extension members 20190417:04:24:25|pg_dump-[INFO]:-reading schemas pg_dump: reading user-defined tables 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined functions 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined types 20190417:04:24:25|pg_dump-[INFO]:-reading type storage options 20190417:04:24:25|pg_dump-[INFO]:-reading procedural languages 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined aggregate functions 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined operators 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined external protocols 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined operator classes 20190417:04:24:25|pg_dump-[INFO]:-reading user-defined operator families pg_dump: reading user-defined text search parsers pg_dump: reading user-defined text search templates pg_dump: reading user-defined text search dictionaries pg_dump: reading user-defined text search configurations 20190417:04:24:26|pg_dump-[INFO]:-reading user-defined conversions 20190417:04:24:26|pg_dump-[INFO]:-reading type casts 20190417:04:24:26|pg_dump-[INFO]:-reading table inheritance information pg_dump: finding extension tables 20190417:04:24:26|pg_dump-[INFO]:-reading rewrite rules 20190417:04:24:26|pg_dump-[INFO]:-finding inheritance relationships 20190417:04:24:26|pg_dump-[INFO]:-reading column info for interesting tables pg_dump: finding the columns and types of table "earthquakes_subset_with_geom" 20190417:04:24:26|pg_dump-[INFO]:-flagging inherited columns in subtables 20190417:04:24:26|pg_dump-[INFO]:-reading indexes 20190417:04:24:26|pg_dump-[INFO]:-reading constraints 20190417:04:24:26|pg_dump-[INFO]:-reading triggers pg_dump: reading dependency data pg_dump: saving encoding = UTF8 pg_dump: saving standard_conforming_strings = on pg_dump: dumping contents of table earthquakes_subset_with_geom [gpadmin@mdw tmp]$ |
(2) pg_restore 로 백업 테이블 다시 불러오기 |
이미 테이블로 만들어져 있는 data_import.earthquakes_subset_with_geom 테이블을 삭제한 후에, (1)번에서 백업해둔 데이터를 불러오겠습니다.
테이블을 먼저 삭제해볼께요.
-- (2) (DBeaver db tool 에서) drop table DROP TABLE data_import.earthquakes_subset_with_geom; |
테이블을 삭제하였으니, 이제 다시 (1)번에서 백업해두었던 데이터를 다시 불러와서 테이블을 생성(Restore a Backup table)해보겠습니다.
-- (3) (명령 프롬프트 창에서) Restore using pg_restore [gpadmin@mdw tmp]$ pg_restore -h localhost -p 5432 -U gpadmin -v -d gpadmin earthquakes_subset_with_geom.backup pg_restore: connecting to database for restore pg_restore: creating TABLE earthquakes_subset_with_geom pg_restore: restoring data for table "earthquakes_subset_with_geom" pg_restore: setting owner and privileges for TABLE earthquakes_subset_with_geom [gpadmin@mdw tmp]$ |
DBeaver db tool에서 백업 테이블을 잘 불어와서 테이블이 생성이 되었는지 확인해보겠습니다.
-- (4) (DBeaver db tool 에서) 백업 되었는지 조회 확인 SELECT * FROM data_import.earthquakes_subset_with_geom LIMIT 10; |
백업 테이블 불어오기(restore)가 잘 되었네요.
많은 도움이 되었기를 바랍니다.