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
也可以使用墨天輪在線實訓平臺在線體驗,鏈接如下:http://www.sunline.cc/market/162869。
Q3.為什么提示初始用戶不能遠程登錄?
使用初始用戶遠程登錄數據庫會提示如下錯誤
Forbid remote connection with initial user.
客戶端登錄的方式請參考下面這張圖

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;
/
調用接口截圖如下:





