返回首页

gbase数据、南大通用产品文档:GBase8a

更新日期:2024年09月11日

GBase Python 架构
GBase Python 接口提供了统一的客户端访问数据库、获取数据、管理数据的方式,
使用如下介绍的核心类完成所有数据库操作。

与服务器建立连接,完成握手、初始化

执行SQL 语句、访问存储过程、使用事务

对结果集的快速读取

快速获取下一个结果集

输出定位准确的日志内容
下图展示了GBase Python 的整体结构。
图6-9 GBase Python 结构

GBase UP 产品手册 6 应用开发指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 1273
GBase Python Connector
GBase
GBaseConnection
GBaseCursor
GBaseConstants
GBaseError


GBaseConnection :GBase 数据库的连接。

GBaseCursor :执行GBase 数据库操作的游标类,可以执行SQL 语句、存储
过程、获取结果集。

GBaseError :异常处理类,定义接口抛出的异常。

GBaseConstants :常量类,定义客户端标记、字符集等。

示例
使用gs_dump 转储数据库为SQL 文本文件或其它格式的操作,如下所示。
其中,用户密码为Bigdata@123;/home/gbase/data/backup/MPPDB_backup.sql 表示导出
的文件;5432 表示数据库服务器端口;postgres 表示要访问的数据库名。

导出操作时,请确保该目录存在并且当前的操作系统用户对其具有读写权限。
示例1:执行gs_dump,导出postgres 数据库全量信息,导出的MPPDB_backup.sql 文
件格式为纯文本格式。
[gbase@gbasehot ~]$ gs_dump -U gbase -W Bigdata@123 -f
/home/gbase/data/backup/MPPDB_backup.sql -p 5432 postgres -F p
gs_dump[port='5432'][postgres][2018-06-27 09:49:17]: The total objects number is
356.
gs_dump[port='5432'][postgres][2018-06-27 09:49:17]: [100.00%] 356 objects have
been dumped.
gs_dump[port='5432'][postgres][2018-06-27 09:49:17]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-27 09:49:17]: total time: 1274
ms
使用gsql 程序从纯文本导出文件中导入数据。
示例2:执行gs_dump,导出postgres 数据库全量信息,导出的MPPDB_backup.tar 文
件格式为tar 格式。
[gbase@gbasehot ~]$ gs_dump -U gbase -W Bigdata@123 -f
/home/gbase/data/backup/MPPDB_backup.tar -p 5432 postgres -F t
gs_dump[port='5432'][postgres][2018-06-27 10:02:24]: The total objects number is
1369.
gs_dump[port='5432'][postgres][2018-06-27 10:02:53]: [100.00%] 1369 objects
have been dumped.
gs_dump[port='5432'][postgres][2018-06-27 10:02:53]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-27 10:02:53]: total time: 50086
ms

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
143
示例3:执行gs_dump,导出postgres 数据库全量信息,导出的MPPDB_backup.dmp 文
件格式为自定义归档格式。
[gbase@gbasehot ~]$ gs_dump -U gbase -W Bigdata@123 -f
/home/gbase/data/backup/MPPDB_backup.dmp -p 5432 postgres -F c
gs_dump[port='5432'][postgres][2018-06-27 10:05:40]: The total objects number is
1369.
gs_dump[port='5432'][postgres][2018-06-27 10:06:03]: [100.00%] 1369 objects
have been dumped.
gs_dump[port='5432'][postgres][2018-06-27 10:06:03]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-27 10:06:03]: total time: 36620
ms
示例4:执行gs_dump,导出postgres 数据库全量信息,导出的MPPDB_backup 文件格
式为目录格式。
[gbase@gbasehot ~]$ gs_dump -U gbase -W Bigdata@123 -f
/home/gbase/data/backup/MPPDB_backup -p 5432
postgres -F d
gs_dump[port='5432'][postgres][2018-06-27 10:16:04]: The total objects number is
1369.
gs_dump[port='5432'][postgres][2018-06-27 10:16:23]: [100.00%] 1369 objects
have been dumped.
gs_dump[port='5432'][postgres][2018-06-27 10:16:23]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-27 10:16:23]: total time: 33977
ms
示例5:执行gs_dump,导出postgres 数据库信息,但不导出/home/MPPDB_temp.sql
中指定的表信息。导出的MPPDB_backup.sql 文件格式为纯文本格式。
[gbase@gbasehot ~]$ gs_dump -U gbase -W Bigdata@123 -p 5432 postgres
--exclude-table-file=/home/gbase/data/MPPDB_temp.sql -f
/home/gbase/data/backup/MPPDB_backup.sql
gs_dump[port='5432'][postgres][2018-06-27 10:37:01]: The total objects number is
1367.
gs_dump[port='5432'][postgres][2018-06-27 10:37:22]: [100.00%] 1367 objects
have been dumped.
gs_dump[port='5432'][postgres][2018-06-27 10:37:22]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-27 10:37:22]: total time: 37017
ms
示例6:
执行gs_dump,
仅导出依赖于指定表testtable 的视图信息。
然后创建新的testtable

GBase 8c 工具参考手册
南大通用数据技术股份有限公司
144
表,再恢复依赖其上的视图。
备份仅依赖于testtable 的视图。
[gbase@gbasehot ~]$ gs_dump -s -p 5432 postgres -t PUBLIC.testtable
--include-depend-objs --exclude-self -f
/home/gbase/data/backup/MPPDB_backup.sql -F p
gs_dump[port='5432'][postgres][2018-06-15 14:12:54]: The total objects number is
331.
gs_dump[port='5432'][postgres][2018-06-15 14:12:54]: [100.00%] 331 objects have
been dumped.
gs_dump[port='5432'][postgres][2018-06-15 14:12:54]: dump database postgres
successfully
gs_dump[port='5432'][postgres][2018-06-15 14:12:54]: total time: 327
ms
修改testtable 名称。
[gbase@gbasehot ~]$ gsql -p 5432 postgres -r -c "ALTER TABLE PUBLIC.testtable
RENAME TO testtable_bak;"
创建新的testtable 表。
gbase=# CREATE TABLE PUBLIC.testtable(a int, b int, c int);
还原依赖于testtable 的视图。
[gbase@gbasehot ~]$ gsql -p 5432 postgres -r -f
/home/gbase/data/backup/MPPDB_backup.sql

使用 RESIDENT 配置参数来指定共享内存的常驻段和虚拟段是否保持驻留在操作系统物理
内存中。
onconfig.std 值
RESIDENT 0

-1 - 99
0 = 关
1 = 仅锁定常驻段
-1 = 锁定所有常驻段和虚拟段
n = 锁定常驻段和接下来的 n -1 个虚拟段。例如,如果您指定值为 99,则锁定常驻段并
锁定接下来的 98 个虚拟段。
有些平台有不同的值。要了解信息,请参阅您的 machine notes。
生效
编辑 onconfig 文件并重启数据库服务器之后。
当您通过运行 onmode -wf 命令在 onconfig 文件中动态地重置该值时。
当您通过运行 onmode -wm 命令重置内存中的该值时。

GBase 8s 管理员参考
南大通用数据技术股份有限公司 - 123 -

用法
一些系统允许您指定共享内存的常驻部分必须在所有时间都常驻内存。如果您的操作系统
支持强制的常驻,则您可指定共享内存的常驻段和虚拟段不交换到磁盘。
警告: 在您决定强制驻留之前,请确保可用的物理内存量足以执行所有需要的操作系统和
应用进程。如果可用的内存不足,则系统挂起可能导致需要 reboot。
在支持大型内存页的 AIX®、Solaris 或 Linux™ 系统上,DBSA 可使用操作系统命令来配
置一个大型页的池。
如果您执行下列步骤,GBase 8s 可在这些大型页上存储非消息虚拟内存段:
l 通过设置 IFX_LARGE_PAGES 环境变量启用大型页大小。
l 对于您打算存储在大型页上的虚拟内存段,请设置 RESIDENT 参数来锁定物理内存
中的那些段,以便不可将它们交换到磁盘。
在大型页上存储虚拟内存段可在大型内存配置中提供非常出色的性能帮助。