暂无图片
暂无图片
5
暂无图片
暂无图片
暂无图片

新赛年首篇:MogDB数据库问答集萃

原创 多米爸比 2022-01-01
1132

Q1.MogDB数据库支持哪些操作系统平台?

目前已经测试适配过Redhat7/Centos7/openEuler。

Q2.如何快速搭建MogDB测试环境?

可以使用docker命令一键搭建并启动

docker run --name mogdb \
--privileged=true \
--detach \
--env GS_PASSWORD=Admin@1234 \
--publish 15400:5432 \
swr.cn-east-3.myhuaweicloud.com/enmotech/mogdb:2.0.1_amd

也可以使用墨天轮在线实训平台在线体验,链接如下:https://www.modb.pro/market/162869。

Q3.为什么提示初始用户不能远程登录?

使用初始用户远程登录数据库会提示如下错误

Forbid remote connection with initial user.

客户端登录的方式请参考下面这张图
image.png

Q4.独立设置xlog目录分区有几种方式?

有三种方式可以进行设置,分别是在clusterconfig.xml文件设置、gs_initdb参数设置、手工调整。详细设置请参考<<openGauss/MogDB数据库安装部署之xlog目录设置>>

Q5.MogDB是否支持IPv6,如何使用?

支持IPv6,配置使用请参考:<<openGauss/MogDB配置IPv6>>

Q6.如果不使用VIP,应用层是否支持主备自动连接呢?

可以通过JDBC连接参数loadBalanceHosts和targetServerType来自动连接,测试过程可参考:openGauss/MogDB/PostgreSQL数据库高可用及负载均衡JDBC参数测试

Q7.MogDB开源监控方案有哪些?

zabbix和prometheus是两种使用较多的方案,也可以组合使用。
参考文章如下:
<<openGauss/MogDB数据库完美适配Grafana及Prometheus>>
<<zabbix 监控 MogDB/openGauss 之 采集prometheus数据>>

Q8.MogDB声明式表分区与PostgreSQL有什么差异呢?

MogDB语法更精简,不需要像PostgreSQL分成两步来创建,但不支持子分区,同时比PostgreSQL多增加支持自动扩展间隔分区。更多详细测试请参考:<<openGauss/MogDB与PostgreSQL表分区语法测试>>

Q9.MogDB使用全局临时表需要像PostgreSQL那样安装pgtt插件吗?

不需要,MogDB数据库可以直接全局临时表。

数据会话级可见语法如下

CREATE GLOBAL  TEMPORARY TABLE test_gtt_table (
	id integer,
	lbl text
) ON COMMIT PRESERVE ROWS;

数据事务级可见语法如下

CREATE GLOBAL  TEMPORARY TABLE test_gtt_table (
	id integer,
	lbl text
) ON COMMIT DELETE ROWS;

Q10.表的单个字段超过1GB,该如何处理?

可以使用large object扩展类型,测试过程可以参考:<<openGauss/MogDB大对象LargeObject存取测试>>

Q11.存储过程中commit与exception能同时使用吗?

在PostgreSQL里,不能在有exception子句的存储过程使用commit或者rollback语句,MogDB数据库里可以兼容这两种操作,测试过程可以参考:<<openGauss/MogDB存储过程事务控制与异常块>>

Q12.Oracle数据库迁移支持package吗?

2.1.0版本开始支持package语法,示例如下:
先创建包接口

create package employee_management as
    c_empno numeric = 9999;	
    function hire_emp (name varchar, job varchar,
                       mgr numeric, hiredate timestamp,
                       sal numeric, comm numeric,
                       deptno numeric) return numeric;		
    procedure fire_emp (emp_id numeric);			   
end employee_management;
/

再创建包实现

create package body employee_management as
                  function hire_emp (name varchar, job varchar,   mgr numeric, hiredate timestamp, sal numeric, comm numeric,  deptno numeric) return numeric  as 
	declare
		new_empno numeric;
	begin
		select nextval('emp_empno_seq') into new_empno;
                                      insert into emp values (new_empno, name, job, mgr,hiredate, sal, comm, deptno);
		return new_empno;
	end;
	
	procedure fire_emp(emp_id in number) 
	as
                  begin
                          delete from emp where empno = emp_id;
                   end;	
end employee_management;
/

调用接口截图如下:
image.png

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
1人已赞赏
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论