炫“库”行动-人大金仓有奖征文-金仓分析型数据库KADB的备份和恢复(一)-串行备份和恢复

本文介绍了KADB分布式关系型数据库的备份工具pg_dump和恢复工具pg_restore的使用方法及参数详细说明。pg_dump是通过MASTER节点串行备份,而pg_restore用于数据恢复。尽管适合数据迁移,但对海量数据的备份恢复效率有限。KADB提供的gpbackup和gprestore能并行备份恢复,提高了效率。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

KADB 是北京人大金仓信息技术股份有限公司基于开源的greenplum数据库研发的一款分布式关系型数据库,全称是KingbaseAnalyticsDataBase。

作为一款分布式关系型数据库KADB提供了两种备份工具:一种是pg_dump,另一种是gpbackup。

pg_dump是从postgresql继承过来的工具,它只能通过MASTER节点采用串行方式备份数据库。

 

具体的参数说明可以通过执行
pg_dump --help获取
用法:
pg_dump [OPTION]... [DBNAME]

常用选项:
-f, --file=FILENAME 备份文件的名称
-F, --format=c|t|p 输出文件的格式,c表示二进制文件,t表示tar,p表示文本
-i, --ignore-version 当服务版本不匹配时,忽略服务版本。
-v, --verbose verbose模式
-Z, --compress=0-9 采用压缩模式存放备份结果,并指定压缩级别
--help 显示帮助
--version 显示版本,然后退出

控制输出内容的选项
-a, --data-only 备份中只含有数据,而没有schema信息。
-b, --blobs 在备份中包含大对象。
-c, --clean 在创建前,删除schema
-C, --create 在备份文件中含有创建数据库的命令。
-d, --inserts 备份数据使用insert命令模式
-D, --column-inserts 备份数据使用insert命令模式,并提供列名。
-E, --encoding=ENCODING 备份文件使用的字符集
-n, --schema=SCHEMA 只备份特定的SCHEMA
-N, --exclude-schema=SCHEMA 备份中排除特定的SCHEMA
-o, --oids 在备份中包含oid
-O, --no-owner 如果采用文本格式备份,越过对象所有者的还原信息。
-s, --schema-only 只备份SCHEMA的信息,而不备份它们的数据。
-S, --superuser=NAME 如果使用文本格式,指定超级用户的名称

-t, --table=TABLE 只备份特定的表,视图,或者序列
-T, --exclude-table=TABLE 备份中排除特定的表,视图或者序列。
-x, --no-privileges 不备份权限(grant/revoke)
--disable-dollar-quoting 只使用表中SQL的"",不需使用$$处理文本分割

--use-set-session-authorization 使用SESSION AUTHORIZATION命令替代
ALTER OWNER commands设置所有权
--gp-syntax 备份中的SQL使用KADB句法,默认选项
--no-gp-syntax 备份中的SQL不使用KADB句法

连接选项
-h, --host=HOSTNAME 数据库主机名,或者socket目录
-p, --port=PORT 数据库服务端口
-U, --username=NAME 指定用户名
-W, --password 强制口令提示

pg_dump备份样例:

  •  创建备份数据库
drop database if exists restore;
create database restore;

  • 登陆备份库,创建备份表
CREATE TABLE t1(i int, j int) with(appendonly=true,orientation=row);
INSERT INTO t1 SELECT a , a from generate_series(1,10000) as a;

  • ​​​​​​执行备份
 pg_dump -d restore -Fc -t t1  -f dbbackup/t1.dmp

对应pg_dump备份的结果,如果数据库出现故障,或者要进行数据移植,需要进行数据恢复,要使用工具pg_restore。

具体参数说明可以通过pg_restore --help获取。
具体用法:
pg_restore [OPTION]... [FILE]

常见选项:
-d, --dbname=NAME 指定连接数据库的名称。
-f, --file=FILENAME 输出文件名称
-F, --format=c|t 指定备份文件格式,c表示自定义,t表示tar
-i, --ignore-version 如果版本不匹配,忽略版本
-l, --list 打印归档TOC的汇总信息
-v, --verbose 使用verbose模式
--help 显示帮助,然后退出
--version 显示版本,然后退出

控制还原的选项
-a, --data-only 只还原数据
-c, --clean 在创建之前删除schema
-C, --create 创建目标数据库
-I, --index=NAME 还原索引
-L, --use-list=FILENAME 按照文件指定顺序还原表
-n, --schema=NAME 只还原特定SCHEMA的对象
-O, --no-owner 跳过特定所有者对象的还原
-P, --function='NAME(args)' 还原特定的函数,函数的名字必须与TOC中的一致,并且使用单引号括起。

-s, --schema-only 只还原SCHEMA,不还原相关数据。
-t, --table=NAME 只还原特定的表
-x, --no-privileges 跳过特定权限的还原 (grant/revoke)
--use-set-session-authorization 使用SESSION AUTHORIZATION替代 ALTER OWNER TO命令
--no-data-for-failed-tables 不还原创建表失败的数据
-1, --single-transaction 还原作为一个单一事务进行。

连接选项:
-h, --host=HOSTNAME 指定数据库服务的主机名或者socket目录
-p, --port=PORT 数据库服务端口号
-U, --username=NAME 指定连接的数据库用户
-W, --password 强制口令提示
-e, --exit-on-error 遇到错误退出,默认模式是继续。
 

 对刚才的备份进行恢复测试。

  • 删除备份的表。
drop table t1;

  • 恢复备份的表
pg_restore -d restore  -Fc  dbbackup/t1.dmp   -t t1

 pg_dump是一种逻辑备份方式。它有两个主要的限制。一方面备份速度受MASTER节点数据吞吐能力的限制。另外,MASTER用来存放备份文件的空间必须足够大,能够存放所有segment节点的备份数据。所以这种方式更适合用在数据迁移的场景中.比如把postgre数据库(或者netezza)的数据迁移到greenplum中,或者在不同架构的KADB数据库间进行数据迁移,比如4节点的服务的数据,向8节点的服务迁移。

对于海量数据仓库来而言,通过pg_dump/pg_restore进行备份/恢复,一方面在性能上无法满足业务对备份/恢复时间窗口要求,另外对MASTER可以访问的存储容积和性能也有比较高的要求。为了解决这两点问题,KADB在POSTGRESQL的基础上提供了自己的备份/恢复工具gpbackup/gprestore 。它们不需要通过master进行数据库的备份恢复,每个segment和master并行备份/恢复自己的数据,这样master就不会再成为瓶颈,从而大幅提高备份/恢复的速度。gpbackup和gprestore在下一章介绍。

【本文正在参与炫“库”行动-人大金仓有奖征文】人大金仓有奖征文

### 神通数据库中 `geometry` 类型的使用说明与定义 神通数据库(KingbaseES)是种支持多模型数据管理的关系型数据库系统,其功能类似于引用中提到的金仓数据库KADB)。在神通数据库中,`geometry` 类型通常用于存储操作地理空间数据[^1]。以下是对该类型的具体使用说明定义: #### 1. `geometry` 类型的定义 `geometry` 是种用于表示地理空间对象的数据类型,它可以存储点、线、多边形等几何图形。这种类型通常与 GIS(地理信息系统)相关联,能够支持矢量数据的存储计算。在神通数据库中,`geometry` 类型可能基于开源如 GEOS 或 PostGIS 的实现,允许用户对地理空间数据进行复杂的查询分析。 例如,在神通数据库中创建个包含 `geometry` 类型字段的表时,可以使用以下 SQL 语句: ```sql CREATE TABLE spatial_data ( id SERIAL PRIMARY KEY, name VARCHAR(100), geom GEOMETRY ); ``` 上述代码中,`geom` 字段被定义为 `GEOMETRY` 类型,用于存储地理空间对象。 #### 2. `geometry` 类型的操作 神通数据库提供了丰富的函数操作符来处理 `geometry` 类型的数据。这些操作包括但不限于以下内容: - **几何构造**:通过特定的函数生成几何对象,例如 `ST_GeomFromText` 或 `ST_Point`。 - **几何分析**:执行几何对象之间的关系分析,例如 `ST_Contains`、`ST_Intersects` `ST_Distance`。 - **几何转换**:将几何对象从种格式转换为另种格式,例如 `ST_AsText` 或 `ST_AsBinary`。 以下是几个常见的操作示例: - 创建个点对象: ```sql INSERT INTO spatial_data (name, geom) VALUES ('Point A', ST_GeomFromText('POINT(120.123456 30.654321)', 4326)); ``` - 查询两个几何对象是否相交: ```sql SELECT ST_Intersects( ST_GeomFromText('LINESTRING(0 0, 2 2)'), ST_GeomFromText('POINT(1 1)') ) AS intersects; ``` - 计算两个几何对象之间的距离: ```sql SELECT ST_Distance( ST_GeomFromText('POINT(120.123456 30.654321)', 4326), ST_GeomFromText('POINT(120.987654 30.123456)', 4326) ) AS distance; ``` #### 3. 配置与初始化 在神通数据库中启用 `geometry` 类型的支持,可能需要额外配置 GIS 扩展或插件。例如,在 ArcGIS 中配置地理数据库时,可以通过 ArcCatalog 软件完成相关设置,并确保授权文件为 `.ecp` 格式[^2]。尽管神通数据库的配置方式可能有所不同,但其核心理念是相似的。 #### 4. 应用场景 `geometry` 类型广泛应用于地理信息系统(GIS)、城市规划、交通运输等领域。它可以帮助用户解决以下问题: - 地理位置的存储与查询。 - 地理对象之间的空间关系分析。 - 复杂的空间计算,例如缓冲区分析、叠加分析等。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值