Gbase 8c备份与恢复
说明:
-U指定的数据库用户名
-W指定用户的密码
-f 指定的备份文件名
-p指定数据库的端口号
postgres 为数据库名称
-n 指定模式的名称(多个模式可以指定多个-n)
-F指定备份文件的格式,后面的p代表纯文本格式
-N 排除指定模式(指定下的模式不会导出)
- 整库备份
说明:1、gs_dump:导出postgres数据库所有信息
2、支持格式:纯文本、自定义归档、目录文档、tar归档
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/MPPDB_backup.sql -p 5432 postgres -s -F p
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/MPPDB_backup.sql -p 5432 postgres -s -F p
gs_dump[port='5432'][postgres][2024-04-21 00:46:46]: The total objects number is 419.
gs_dump[port='5432'][postgres][2024-04-21 00:46:47]: [100.00%] 419 objects have been dumped.
gs_dump: [port='5432'] [postgres] [archiver] [2024-04-21 00:46:47] WARNING: archive items not in correct section order
gs_dump[port='5432'][postgres][2024-04-21 00:46:47]: dump database postgres successfully
gs_dump[port='5432'][postgres][2024-04-21 00:46:47]: total time: 3009 ms
[gbase@Gbase8CNode2 /]$
- 备份schema模式
2.1、导出所有schema(包含数据)
说明:1、gs_dump:导出所有schema(包含该模式下的数据)
2、支持格式:纯文本、自定义归档、目录文档、tar归档
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup_nodata.sql -p 5432 postgres -F p
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.sql -p 5432 postgres -F p
gs_dump[port='5432'][postgres][2024-04-21 00:13:24]: The total objects number is 403.
gs_dump[port='5432'][postgres][2024-04-21 00:13:24]: [100.00%] 403 objects have been dumped.
gs_dump[port='5432'][postgres][2024-04-21 00:13:24]: dump database postgres successfully
gs_dump[port='5432'][postgres][2024-04-21 00:13:24]: total time: 7829 ms
2.2、导出指定schema(包含数据)
说明:1、gs_dump:导出指定schema(包含数据)
2、支持格式:纯文本、自定义归档、目录文档、tar归档
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup_scheam_server.sql -p 5432 postgres -n schema_server -F p
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup_scheam_server.sql -p 5432 postgres -n schema_server -F p
gs_dump[port='5432'][postgres][2024-04-21 14:05:03]: no matching schemas were found for pattern "schema_server"
gs_dump[port='5432'][postgres][2024-04-21 14:05:03]: No matching schemas were found
[gbase@Gbase8CNode2 /]$
3、导出指定表
说明:1、gs_dump:导出指定表
2、-t指定表名,多张表,可以指定多个-t
3、-T 代表不导出表的表名,多张表可以指定多个-T
4、--include-table-file=FILENAME 代表需要备份的表文件
5、--exclude-table-file=FILENAME 代表不需要备份的表文件
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.sql -p 5432 postgres -t test_use1.ora_alter_table -F p
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.sql -p 5432 postgres -t test_use1.ora_alter_table -F p
gs_dump[port='5432'][postgres][2024-04-21 00:16:02]: The total objects number is 402.
gs_dump[port='5432'][postgres][2024-04-21 00:16:02]: [100.00%] 402 objects have been dumped.
gs_dump[port='5432'][postgres][2024-04-21 00:16:02]: dump database postgres successfully
gs_dump[port='5432'][postgres][2024-04-21 00:16:02]: total time: 6036 ms
[gbase@Gbase8CNode2 /]$
4、只导出表定义,不导出数据
说明:1、gs_dump:只导出表定义,不导出数据
2、-t指定表名,多张表,可以指定多个-t
3、-s只导出表定义,不导出数据。
方式1:
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.sql -p 5432 postgres -t test_use1.ora_alter_table -s -F p
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.sql -p 5432 postgres -t test_use1.ora_alter_table -s -F p
gs_dump[port='5432'][postgres][2024-04-21 00:18:50]: The total objects number is 401.
gs_dump[port='5432'][postgres][2024-04-21 00:18:50]: [100.00%] 401 objects have been dumped.
gs_dump[port='5432'][postgres][2024-04-21 00:18:50]: dump database postgres successfully
gs_dump[port='5432'][postgres][2024-04-21 00:18:50]: total time: 5055 ms
方式2:
语句:
gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.dmp -p 5432 postgres -t test_use1.ora_alter_table -s -F c
执行过程:
[gbase@Gbase8CNode2 /]$ gs_dump -U gbase -W Gbase_123 -f /home/gbase/backup/test_use1_backup.dmp -p 5432 postgres -t test_use1.ora_alter_table -s -F c
gs_dump[port='5432'][postgres][2024-04-21 00:20:03]: The total objects number is 401.
gs_dump[port='5432'][postgres][2024-04-21 00:20:03]: [100.00%] 401 objects have been dumped.
gs_dump[port='5432'][postgres][2024-04-21 00:20:03]: dump database postgres successfully
gs_dump[port='5432'][postgres][2024-04-21 00:20:03]: total time: 4734 ms
数据库恢复
1、gsql -f方式恢复
说明:1、gsql -f:指定备份文件执行
2、备份文件的格式仅支持纯文本格式。
语句:gsql -U gbase -W Gbase_123 -f /home/gbase/backup/MPPDB_backup.sql -p 5432 postgres
执行过程:
[gbase@Gbase8CNode2 /]$ gsql -U gbase -W Gbase_123 -f /home/gbase/backup/MPPDB_backup.sql -p 5432 postgres
2、gs_restore方式恢复
说明:1、gs_restore:指定备份文件执行
2、备份文件的格式支持:纯文本格式、dump二进制格式。
语句:
gs_restore /home/gbase/backup/test_use1_backup.dmp -p 5432 -d postgres
执行过程:
[gbase@Gbase8CNode2 /]$ gs_restore /home/gbase/backup/test_use1_backup.dmp -p 5432 -d postgres
2、数据导出
说明:1、GBase 8C通过COPY TO把指定表的数据拷贝到文件
2、备份文件的格式支持:纯文本格式csv。
语句:COPY public.customer_t2 TO '/home/gbase/backup/customer_t2.csv';
执行过程:
postgres=# \d
List of relations
Schema | Name | Type | Owner | Storage
--------+-------------+-------+-------+----------------------------------
public | customer_t1 | table | gbase | {orientation=row,compression=no}
public | customer_t2 | table | gbase | {orientation=row,compression=no}
public | customer_t3 | table | gbase | {orientation=row,compression=no}
public | dual | view | gbase |
public | t1 | table | gbase | {orientation=row,compression=no}
public | t2 | table | gbase | {orientation=row,compression=no}
public | t3 | table | gbase | {orientation=row,compression=no}
(7 rows)
postgres=# COPY public.customer_t2 TO '/home/gbase/backup/customer_t2.csv';
COPY 3
postgres=#
3、数据导入
说明:1、GBase 8C通过COPY FROM把指定文件的数据导入到指定表。
2、备份文件的格式支持:纯文本格式csv。
语句:
COPY customer_t2 FROM '/home/gbase/backup/customer_t2.csv';
执行过程:
postgres=# \d+
List of relations
Schema | Name | Type | Owner | Size | Storage | Description
--------+-------------+-------+-------+---------+----------------------------------+-------------
public | customer_t1 | table | gbase | 16 kB | {orientation=row,compression=no} |
public | customer_t2 | table | gbase | 16 kB | {orientation=row,compression=no} |
public | customer_t3 | table | gbase | 16 kB | {orientation=row,compression=no} |
public | dual | view | gbase | 0 bytes | |
public | t1 | table | gbase | 0 bytes | {orientation=row,compression=no} |
public | t2 | table | gbase | 0 bytes | {orientation=row,compression=no} |
public | t3 | table | gbase | 0 bytes | {orientation=row,compression=no} |
(7 rows)
postgres=# COPY customer_t2 FROM '/home/gbase/backup/customer_t2.csv';
COPY 3
postgres=#




