本次练习主要学习和掌握gs_dump的用法。
gs_dump支持导出单个数据库或其内的对象。
gs_dump是openGauss用于导出数据库相关信息的工具,用户可以自定义导出一个数据库或其中的对象(模式、表、视图等),回收站对象除外。支持导出的数据库可以是默认数据库postgres,也可以是自定义数据库。
gs_dump工具由操作系统用户omm执行。
gs_dump工具在进行数据导出时,其他用户可以访问openGauss数据库(读或写)。
gs_dump工具支持导出完整一致的数据。例如,T1时刻启动gs_dump导出A数据库,那么导出数据结果将会是T1时刻A数据库的数据状态,T1时刻之后对A数据库的修改不会被导出。
gs_dump支持将数据库信息导出至纯文本格式的SQL脚本文件或其他归档文件中。
- 纯文本格式的SQL脚本文件:包含将数据库恢复为其保存时的状态所需的SQL语句。通过gsql运行该SQL脚本文件,可以恢复数据库。即使在其他主机和其他数据库产品上,只要对SQL脚本文件稍作修改,也可以用来重建数据库。
- 归档格式文件:包含将数据库恢复为其保存时的状态所需的数据,可以是tar格式、目录归档格式或自定义归档格式,详见表1。该导出结果必须与gs_restore配合使用来恢复数据库,gs_restore工具在导入时,系统允许用户选择需要导入的内容,甚至可以在导入之前对等待导入的内容进行排序。
导出格式:gs_dump可以创建四种不同的导出文件格式。
- p|plain:输出一个文本SQL脚本文件(默认)。
- c|custom:输出一个自定义格式的归档,并且以目录形式输出,作为gs_restore输入信息。该格式是最灵活的输出格式,因为能手动选择,而且能在恢复过程中将归档项重新排序。该格式默认状态下会被压缩。
- d|directory:该格式会创建一个目录,该目录包含两类文件,一类是目录文件,另一类是每个表和blob对象对应的数据文件。
t|tar:输出一个tar格式的归档形式,作为gs_restore输入信息。tar格式与目录格式兼容;tar格式归档形式在提取过程中会生成一个有效的目录格式归档形式。但是,tar格式不支持压缩且对于单独表有8GB的大小限制。此外,表数据项的相应排序在恢复过程中不能更改。
输出一个tar格式的归档形式,也可以作为gsql输入信息。
导出数据库:
openGauss支持使用gs_dump工具导出某个数据库级的内容,包含数据库的数据和所有对象定义。可根据需要自定义导出如下信息:
导出数据库全量信息,包含数据和所有对象定义。
使用导出的全量信息可以创建一个与当前库相同的数据库,且库中数据也与当前库相同。
仅导出所有对象定义,包括:库定义、函数定义、模式定义、表定义、索引定义和存储过程定义等。
使用导出的对象定义,可以快速创建一个相同的数据库,但是库中并无原数据库的数据。
仅导出数据,不包含所有对象定义。
–以sql文本格式导出backup数据库全量信息
gs_dump -f /home/omm/backup_database_all.sql backup -F p
–以sql文本格式导出backup数据库中的数据,不包含数据库对象定义
gs_dump -f /home/omm/backup_database_data.sql backup -a -F p
–以sql文本格式导出backup数据库中对象的定义
gs_dump -f /home/omm/backup_database_define.sql backup -s -F p
导出模式:
openGauss目前支持使用gs_dump工具导出模式级的内容,包含模式的数据和定义。用户可通过灵活的自定义方式导出模式内容,不仅支持选定一个模式或多个模式的导出,还支持排除一个模式或者多个模式的导出。可根据需要自定义导出如下信息:
- 导出模式全量信息,包含数据和对象定义。
- 仅导出数据,即模式包含表中的数据,不包含对象定义。
- 仅导出模式对象定义,包括:表定义、存储过程定义和索引定义等。
–以sql文本格式导出backup数据库中ds模式的全量信息
gs_dump -f /home/omm/backup_schema_all.sql backup -n ds -F p
–以sql文本格式导出backup数据库中ds模式的数据
gs_dump -f /home/omm/backup_schema_data.sql backup -n ds -a -F p
–以sql文本格式导出backup数据库中ds模式的定义
gs_dump -f /home/omm/backup_schema_define.sql backup -n ds -s -F p
导出表:
openGauss支持使用gs_dump工具导出表级的内容,包含表定义和表数据。视图、序列和外表属于特殊的表。用户可通过灵活的自定义方式导出表内容,不仅支持选定一个表或多个表的导出,还支持排除一个表或者多个表的导出。可根据需要自定义导出如下信息:
- 导出表全量信息,包含表数据和表定义。
- 仅导出数据,不包含表定义。
- 仅导出表定义。
–以sql文本格式导出backup数据库中表customer_t的全量信息
gs_dump -f /home/omm/backup_table_all.sql backup -t customer_t -F p
–以sql文本格式导出backup数据库中表customer_t的数据
gs_dump -f /home/omm/backup_table_data.sql backup -t customer_t -a -F p
–以sql文本格式导出backup数据库中表customer_t的定义
gs_dump -f /home/omm/backup_table_define.sql backup -t customer_t -s -F p
命令参考地址:
https://opengauss.org/zh/docs/2.0.0/docs/Toolreference/gs_dump.html




