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

循序渐进 |MogDB 如何在windows下快速构建MogDB开发测试环境

原创 由迪 2024-05-27
347

MogDB简介

MogDB是EnMotech openGauss DataBase Enterprise Edition的缩写,是云和恩墨基于openGauss开源数据库进行定制、推出的企业发行版。它将围绕高可用、安全、自动化运维、数据库一体机和SQL审核优化等企业需求,解决企业用户落地。其核心价值是易用性、高性能、高可用等和全天候的企业支持。学习MogDB 有几大好处:1. MogDB是基于openGauss开源数据库的企业版本,学习MogDB 等于掌握了openGauss。2. openGauss 又基于PostgreSQL的改良。MogDB提供了PG接口兼容,兼容PSQL客户端,兼容PostgreSQL标准接口。学习MogDB约等于学习PostgreSQL。3. MogDB提供了 Compat-tools 兼容工具。可以提供Oracle数据库兼容性数据字典及视图, 兼容性函数, 管理包兼容。同时也提供了MySQL数据库兼容性数据字典及视图和兼容性函数。还有提供了DB2数据库兼容性函数。MogDB还有提供了很多的兼容特性。使其兼容能力要优于其它数据库。MogDB可以运行大多数的Oracle应用和MySQL应用以及PostgreSQL应用。

下面以初学角度和应用开发者的角度手把手的教你如何快速的构建开发测试环境。

方式一:MogDB实训环境

MogDB实训环境是由墨天轮提供的MogDB数据库线上学习与实训平台,同时提供Oracle/MySQL兼容包,以及Mogila样本数据集。您可以通过浏览器的命令行终端一键连接数据库,方便快速地体验MogDB的各项功能,无需自备环境进行安装。是快速体验测试的最佳途径。

首先打开墨天轮首页,点击工具,再点击数据库在线实训平台,如下图红框所示:

img

img

点击进入实训环境:

切换用户并使用gsql命令行工具进入MogDB中:

root@modb:~# su - omm

omm@modb:~$ gsql -d postgres

gsql ((MogDB 5.0.0 build 503a9ef7) compiled at 2023-06-26 16:30:46 commit 0 last mr 1804 )

Non-SSL connection (SSL connection is recommended when requiring high-security)

Type “help” for help

我们使用样本数据集Mogila,进行演示:

MogDB提供了一个样本数据集Mogila, Mogila数据集是一个关于DVD出租店信息的数据库,包含有关电影(如标题、类别、女演员)、出租店(如地址、工作人员、客户)和出租的信息。

创建OMM数据库:

MogDB=#create database omm;

CREATE DATABASE

创建mogila数据库:

MogDB=#create database mogila DBCOMPATIBILITY='PG';

CREATE DATABASE

MogDB=#\q

omm@modb:~$

omm@modb:~$ cd mogila-v1.0.0/

omm@modb:~/mogila-v1.0.0$ ls

LICENSE.txt README.md mogila-data.sql mogila-insert-data.sql mogila-schema.sql

omm@modb:~/mogila-v1.0.0$

创建mogila shema;

omm@modb:~/mogila-v1.0.0$ gsql -d mogila -f mogila-schema.sql

……

ALTER TABLE

ALTER TABLE

total time: 722 ms

插入所有数据:

omm@modb:~/mogila-v1.0.0$ gsql -d mogila -f mogila-data.sql

…………

total time: 4105 ms

创建所有模式对象(表等)并插入所有数据:

#使用mogila数据库:

omm@modb:~/mogila-v1.0.0$ gsql -d mogila

#查看有哪些表:

MogDB=#\dt List of relations

Schema | Name | Type | Owner | Storage

--------±--------------±------±------±---------------------------------

public | actor | table | mogdb | {orientation=row,compression=no}

………

public | store | table | mogdb | {orientation=row,compression=no}

(15 rows)

现在可以使用MogDB实训环境右边的提示进行mogila相关的查询了:

#例如:按长度排序列出前十电影

MogDB=#select film_id, title, length

from

film

order by

length desc limit 10;

####### film_id | title | length

---------±-------------------±-------

解释 690 | POND SEATTLE       |    185

 872 | SWEET BROTHERHOOD  |    185

 349 | GANGS PRIDE        |    185

 609 | MUSCLE BRIGHT      |    185

 426 | HOME PITY          |    185

 817 | SOLDIERS EVOLUTION |    185

 141 | CHICAGO NORTH      |    185

 182 | CONTROL ANTHEM     |    185

 212 | DARN FORRESTER     |    185

 991 | WORST BANGER       |    185

(10 rows)

MogDB实训环境其本质是基于docker,因为安全等因素影响,不能对外连接。所以只能在浏览器中使用。对于一般的体验用户是不存在问题,而且于对墨天轮的注册用户来说,退出MogDB实训环境,数据依然会保留的。如果是想从事MogDB 开发工作或者更深入的测试,就需要使用方式二了。

方式二 使用Docker方式:

Docker容器技术目前应用已经非常普遍,下面以windows 为例简单的讲解一下Docker的安装,Docker与您使用操作系统没有关系,只要安装Docker都可以运行Docker MogDB 镜像文件。通过以下网址下载Docker并完成安装,

https://www.docker.com/products/docker-desktop

Docker环境准备

由于笔者的windows安装有VMvare WorkStation 其它测试环境,所以这里选择WSL2 代替Hyper-V. Hyper-V 可能会导致VMvare WorkStation 虚拟机端口被占用导致虚拟机无法使用的问题。

img

创建目录:

笔者这里使用的是D盘的docker 目录并设置docker资源镜像定位:

img

应用并重启Docker desktop

创建一个volume 命名为mogdb

img

查看创建的volume:

img

安装并运行MogDB 的docker镜像

运行下以下命令运行MogDB 的docker:

docker run --name mogdb --privileged=true -d -e GS_PASSWORD=Enmo@123 -v d:\docker\mxogdb:/var/lib/mogdb -p 15432:5432 swr.cn-north-4.myhuaweicloud.com/mogdb/mogdb:5.0.0

img

使用Docker中的MogDB

MogDB 映像已经被下载并且已经运行起来。

运行容器内部的bash

docker exec -it mogdb bash

img

MogDB的映像文件是基于ubuntu 20.4 创建的

首先运行

apt-get update

再运行

apt install git

安装git

把之前compat-tools 删除掉 重新clone 最新版的compat-tools

解释omm@e76e8bf07e75:~$ git clone https://gitee.com/enmotech/compat-tools.git Cloning into 'compat-tools'... …… Resolving deltas: 100% (925/925), done. gsql -d postgres

创建omm数据库

create database omm;

在这里有一个知识点,compat_tools 默认使用的是omm 数据库。 也就是说如果一个数据库没有运行compat tools 的工具,就无法使用compat-tools.

安装compat tools

解释gsql -f runMe.sql omm@e76e8bf07e75:~/compat-tools$ gsql -r gsql ((MogDB 5.0.0 build 503a9ef7) compiled at 2023-06-26 16:30:48 commit 0 last mr 1804 ) MogDB=#select * from v$version; banner ------------------------------------------------- MogDB 5.0.0 build 503a9ef7 compiled at 2023-06-26 16:30:48 Platform architecture: x86_64-unknown-linux-gnu (3 rows)

#创建用户

MogDB=#create user youdi identified by 'youdi@mogdb123';

CREATE ROLE

#授权

MogDB=#grant all privileges to youdi;

ALTER ROLE

#创建表空间

MogDB=# CREATE TABLESPACE youdi OWNER youdi relative location 'tablespace/youdi';

CREATE TABLESPACE

#创建数据库

MogDB=#create database youdi with tablespace youdi;

CREATE DATABASE

#创建schema

MogDB=>create schema youdi;

CREATE SCHEMA

#这里需要再一次跑一下compat tools 安装脚本给youdi库使用。

omm@e76e8bf07e75:~/compat-tools$ gsql -U youdi -d youdi -f runMe.sql

Password for user youdi:

omm@e76e8bf07e75:~/compat-tools$ gsql -U youdi -d youdi

Password for user youdi:

gsql ((MogDB 5.0.0 build 503a9ef7) compiled at 2023-06-26 16:30:48 commit 0 last mr 1804 )

#验证

MogDB=>select * from v$version; banner

MogDB 5.0.0 build 503a9ef7

compiled at 2023-06-26 16:30:48

Platform architecture: x86_64-unknown-linux-gnu

(3 rows)

MogDB=>select * from v$tablespace;

ts# | tablespace_name

-------±----------------

1663 | PG_DEFAULT

1664 | PG_GLOBAL

18129 | YOUDI

(3 rows)

#Oracle 的v$动态视图现在可以用了。

MogDB=>select sysdate from dual; sysdate

2024-04-29 13:56:54

(1 row)

#Oracle 的dual也可以用了

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

文章被以下合辑收录

评论