gaussdb 逻辑备份恢复【gs

tech2022-07-30  128

背景原理

       有些操作系统有文件大小的限制,当使用gs_dump对大型数据库进行导出时,可能会出现文件写入溢出问题。由于gs_dump可以将数据导出到标准输出,所以我们可以用标准的Linux工具绕开此问题。

一. 使用压缩工具进行转储,比如gzip

以gaussdba用户身份登录GaussDB服务器。在命令终端中执行如下命令进行转储压缩。 gs_dump dbname | gzip > filename.gz 恢复过程如下,首先从模板数据库中创建数据库。 gsql -d postgres CREATE DATABASE dbname TEMPLATE template0; 从压缩过的转储文件进行恢复。 gunzip -c filename.gz | gsql dbname

        或者:

cat filename.gz | gunzip | gsql dbname

二. 使用split工具进行转储压缩

split 允许用下面的方法把输出分解成操作系统可以接受的大小。

示例:设置每个块大小为 1MB。

以gaussdba用户身份登录GaussDB服务器。在命令终端中执行如下命令对转储文件进行分割。

gs_dump dbname | split -b 1m - filename 恢复过程如下,首先从模板数据库中创建数据库。 gsql -d postgres CREATE DATABASE dbname TEMPLATE template0; 从压缩过的转储文件进行恢复。 cat filename* | gsql dbname

       说明: 对于非常大型的数据库,结合多种方法进行备份是一种非常高效的策略 (例如 gs_rman)。

最新回复(0)