返回首页

gbase数据、南大通用产品文档:GBase8a初始化hashmap 并进行数据重分布

更新日期:2024年09月11日

操作步骤
步骤1:初始化hashmap:
$ gccli -uroot
GBase client 9.5.3.17.117651. Copyright (c) 2004-2020, GBase.
All Rights
Reserved.
gbase> use vc vc1;
Query OK, 0 rows affected (Elapsed: 00:00:00.00)
gbase> initnodedatamap;
Query OK, 0 rows affected, 5 warnings (Elapsed: 00:00:01.45)
步骤2:执行数据重分布:
gbase> show variables like '%rebalanc%';
+-------------------------------------------------------+-----------+
| Variable_name
| Value
|
+-------------------------------------------------------+-----------+
| _t_gcluster_rebalance_mirror_node
| 0
|
| gcluster_load_rebalance_seed
| 5
|
| gcluster_rebalancing_concurrent_count
| 5
|
| gcluster_rebalancing_ignore_mirror
| OFF
|
| gcluster_rebalancing_immediate_recover_internal_table | OFF
|
| gcluster_rebalancing_parallel_degree
| 4
|
| gcluster_rebalancing_random_table_quick_mode
| 1
|
| gcluster_rebalancing_step
| 100000000 |
| gcluster_rebalancing_update_status_on_drop_table
| ON
|
+-------------------------------------------------------+-----------+
9 rows in set (Elapsed: 00:00:00.24)
gbase> rebalance instance;
Query OK, 2 rows affected (Elapsed: 00:00:01.45)
查看rebalance 状态:
gbase> select index_name, status, percentage
from
gclusterdb.rebalancing_status;
+------------+-----------+------------+
| index_name | status
| percentage |
+------------+-----------+------------+
| demo.t
| COMPLETED |
100 |
| demo.tt
| COMPLETED |
100 |
+------------+-----------+------------+
2 rows in set (Elapsed: 00:00:00.04)
gbase> quit
Bye

执行查询,并返回一个GBaseDataReader 对象,可读取一行的所有列数据。


重载列表
1) 使GBaseConnection 执行CommandText 属性指定的SQL 语句,并用返
回值构建GBaseDataReader。
ExecuteReader()
2) 使GBaseConnection 执行CommandText 属性指定的SQL 语句,并使用
CommandBehavior 的一个值构建GBaseDataReader。
ExecuteReader(CommandBehavior)

使用 DROP DATABASE 语句删除整个数据库,包括系统目录表、对象和数据。
该语句是 SQL ANSI/ISO 标准的扩展。
语法


GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 567
用法
DROP DATABASE 语句是 ANSI/ISO 标准的扩展,该标准没有提供毁坏数据库
的语法。
以下语句删除 stores_demo 数据库:
DROP DATABASE stores_demo
您必须拥有 DBA 特权,或者您是用户 gbasedbt 才可成功运行 DROP
DATABASE 语句。否则,数据库服务器会发出一条错误消息,并且不会删除数
据库。
不能删除当前数据库或当前正由其它用户使用的数据库。数据库的所有当前用户
必须先执行 CLOSE DATABASE 语句,这样 DROP DATABASE 才会成功。
DROP DATABASE 语句试图创建到您的想要删除的数据库的隐式连接。如果前面
的 CONNECT 语句已经建立了到另一个数据库的显式连接,而且该连接仍然是您
的当前连接,则 DROP DATABASE 语句失败,错误为 -1811。在这种情况下,
您必须首先使用 DISCONNECT 语句关闭显式连接后,才能执行 DROP
DATABASE 语句。
如果您包含可选的 IF EXISTS 关键字,则如果没有指定名称的数据库由所连接的
数据库服务器实例管理,则数据库服务器不采取任何操作(而不是向应用程序返
回错误)。
DROP DATABASE 语句不可以出现在多语句 PREPARE 中,也不可以出现在
SPL 例程中。
在 DROP DATABASE 操作中,数据库服务器对数据库中的每个表都获取一个
锁,并保留这些锁直至整个操作完成。请给您的数据库服务器配置足够的锁以满
足这一事实的发生。
例如,如果要删除的数据库有 2500 个表,但是为您的数据库服务器配置的锁定
少于 2500 个,则 DROP DATABASE 语句失败。有关如何配置可用于数据库服
务器的锁的数目的更多信息,请参阅 GBase 8s 管理员参考手册 中对 LOCKS 配
置参数的讨论。
在 DB-Access 中,使用 DROP DATABASE 语句时要小心。DB-Access 不会提
示您验证是否想要删除整个数据库。

GBase 8s SQL 指南:语法
南大通用数据技术股份有限公司 568
在 ESQL/C 中,您可以在程序或主变量中使用未限定的数据库名称,或可以指定
标准的 database@server 格式。例如,以下语句删除了名为 gibson95 的数据库
服务器的 stores_demo 数据库:
EXEC SQL DROP DATABASE stores_demo@gibson95;
如果此语句执行成功,则 gibson95 数据库服务器实例继续存在,但该数据库服
务器的 stores_demo 数据库不再存在。有关更多信息,请参阅数据库名。