返回首页

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

更新日期:2024年09月11日

背景信息
在ANALYZE | ANALYSE 和VACUUM 语句执行过程中,系统维护一个内部的记数器,
跟踪所执行的各种I/O 操作的近似开销。
如果积累的开销达到了vacuum_cost_limit 声明的限
制,则执行这个操作的进程将睡眠vacuum_cost_delay 指定的时间。然后它会重置记数器然
后继续执行。
这个特性是缺省关闭的。
如需开启,
需要把vacuum_cost_delay 变量设置为一个非零值。

使用gcdump 指定参数ignore-table 不导出指定
的表或视图
问题现象
use testdb;
create table t2(id int,name varchar(20),type int);
create view v2 as select * from t2;
create table t1(id int,name varchar(20),type int);
create view v1 as select * from t1;
alter table t1 drop column type;
alter table t2 drop column type;
create table t3(id int,name varchar(20),type int);
gcdump导出报错
# /opt/gcluster/server/bin/gcdump -B testdb
DROP DATABASE IF EXISTS `testdb`;
CREATE DATABASE
IF NOT EXISTS `testdb` DEFAULT CHARACTER
SET utf8;
USE `testdb`;
...
use testdb;
DROP TABLE IF EXISTS `t3`;
CREATE TABLE `t3` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,

GBase 8a MPP Cluster 最佳实践
5 FAQ
文档版本(2022-02-11)
南大通用数据技术股份有限公司
135
`type` int(11) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tables
pace';
2017-11-23 14:51:04.086
gcdump: Couldn't execute 'show create table `v1`':
View 'testdb.v1' references invalid table(s) or column(s) or function(s) or de
finer/invoker of view lack rights to use them (1356)
解决方法
如果需要忽略报错,不导出有问题的视图,可以加--ignore-table 参数。
$$GCLUSTER_BASE/server/bin/gcdump -B testdb --ignore-table=testdb.v
1 --ignore-table=testdb.v2
DROP DATABASE IF EXISTS `testdb`;
CREATE DATABASE
IF NOT EXISTS `testdb` DEFAULT CHARACTER
SET utf8;
...
use testdb;
DROP TABLE IF EXISTS `t3`;
CREATE TABLE `t3` (
`id` int(11) DEFAULT NULL,
`name` varchar(20) DEFAULT NULL,
`type` int(11) DEFAULT NULL
) ENGINE=EXPRESS DEFAULT CHARSET=utf8 TABLESPACE='sys_tables
pace';
前提是需要事先知道哪些表或视图不需要导出,并且一个--ignore-table 参数后面
只能设置一个表。

支持场景

通常全量物化视图所支持的查询范围与CREATE TABLE AS 语句一致。

全量物化视图上支持创建索引。

支持analyze、explain。
不支持场景
物化视图不支持增删改操作,只支持查询语句。
约束
全量物化视图的刷新、
删除过程中会给基表加高级别锁,
若物化视图的定义涉及多张表,
需要注意业务逻辑,避免死锁产生。

GBase 8c V5 开发者手册
南大通用数据技术股份有限公司
1147