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

KingbaseES v9数据库Docker安装-青学会&金仓专栏(2)


想学会更多实用技巧,欢联系小助手,迎加入青学会MOP技术社区(实名社区)。
同时欢迎大家在评论区留言互动交流!社区会不定期举行相关的抽奖、公开分享活动。
如果你有想了解的知识点希望我们发文可以后台私信。



随着容器化技术的发展,Docker已成为构建、发布及运行应用程序的标准方式之一。它通过提供一种轻量级且高效的虚拟化解决方案,使得开发人员能够在一致的环境中快速地部署应用。本文将指导您如何使用Docker来搭建Kingbase数据库环境。

安装部署docker:

实验环境:

操作系统:redhat7.6,CPU 2核,内存2G

关闭防火墙:systemctl stop firewalld && systemctl disable firewalld

配置yum源(使用Vault镜像):对于已达到EOL的操作系统版本,Red Hat通常会将其存档在Vault中:

1.编辑/etc/yum.repos.d/CentOS-Base.repo
文件:

vi etc/yum.repos.d/CentOS-Base.repo

[base]
name=CentOS-$releasever - Base
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os&infra=$infra
baseurl=http://vault.centos.org/7.9.2009/os/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[updates]
name=CentOS-$releasever - Updates
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=updates&infra=$infra
baseurl=http://vault.centos.org/7.9.2009/updates/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

[extras]
name=CentOS-$releasever - Extras
#mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=extras&infra=$infra
baseurl=http://vault.centos.org/7.9.2009/extras/$basearch/
gpgcheck=1
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7

2.更新yum缓存:

[root@wykbase ~]# yum clean all
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Cleaning repos: base extras updates

[root@wykbase ~]#  yum makecache
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
base                                                                                                                                                                                      | 3.6 kB  00:00:00
extras                                                                                                                                                                                    | 2.9 kB  00:00:00
updates                                                                                                                                                                                   | 2.9 kB  00:00:00
(1/10): base/x86_64/group_gz                                                                                                                                                              | 153 kB  00:00:01
(2/10): base/x86_64/primary_db                                                                                                                                                            | 6.1 MB  00:00:24
(3/10): extras/x86_64/primary_db                                                                                                                                                          | 253 kB  00:00:00
(4/10): extras/x86_64/other_db                                                                                                                                                            | 154 kB  00:00:00
(5/10): extras/x86_64/filelists_db                                                                                                                                                        | 305 kB  00:00:01
(6/10): base/x86_64/filelists_db                                                                                                                                                          | 7.2 MB  00:00:28
(7/10): base/x86_64/other_db                                                                                                                                                              | 2.6 MB  00:00:09
(8/10): updates/x86_64/filelists_db                                                                                                                                                       |  15 MB  00:00:59
(9/10): updates/x86_64/other_db                                                                                                                                                           | 1.6 MB  00:00:06
(10/10): updates/x86_64/primary_db                                                                                                                                                        |  27 MB  00:01:49
Metadata Cache Created



安装与禁用iptables,安装出现错误:

[root@wykbase ~]# yum install iptables-services -y
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
base                                                                                                                                                                                      | 3.6 kB  00:00:00
extras                                                                                                                                                                                    | 2.9 kB  00:00:00
updates                                                                                                                                                                                   | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package iptables-services.x86_64 0:1.4.21-35.el7 will be installed
--> Processing Dependency: iptables = 1.4.21-35.el7 for package: iptables-services-1.4.21-35.el7.x86_64
--> Running transaction check
---> Package iptables.x86_64 0:1.4.21-28.el7 will be updated
---> Package iptables.x86_64 0:1.4.21-35.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================================================
 Package                                                  Arch                                          Version                                                Repository                                   Size
=================================================================================================================================================================================================================
Installing:
 iptables-services                                        x86_64                                        1.4.21-35.el7                                          base                                         52 k
Updating for dependencies:
 iptables                                                 x86_64                                        1.4.21-35.el7                                          base                                        432 k

Transaction Summary
=================================================================================================================================================================================================================
Install  1 Package
Upgrade             ( 1 Dependent package)

Total download size: 485 k
Downloading packages:
No Presto metadata available for base
warning: /var/cache/yum/x86_64/7Server/base/packages/iptables-services-1.4.21-35.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY                        ]  0.0 B/s |    0 B  --:--:-- ETA
Public key for iptables-services-1.4.21-35.el7.x86_64.rpm is not installed
(1/2): iptables-services-1.4.21-35.el7.x86_64.rpm                                                                                                                                         |  52 kB  00:00:00
(2/2): iptables-1.4.21-35.el7.x86_64.rpm                                                                                                                                                  | 432 kB  00:00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                            245 kB/s | 485 kB  00:00:01
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7


GPG key retrieval failed: [Errno 14] curl#37 - "Couldn't open file /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7"



报错处理方法:

首先,创建目录

sudo mkdir -p /etc/pki/rpm-gpg

然后,使用curl,下载GPG密钥并将其放置在正确的路径下:

[root@wykbase ~]# curl -o /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7 https://www.centos.org/keys/RPM-GPG-KEY-CentOS-7
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100  1690  100  1690    0     0   1307      0  0:00:01  0:00:01 --:--:--  1307


更新Yum缓存后,重新安装iptables:

[root@wykbase ~]# yum install iptables-services -y
Loaded plugins: langpacks, product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
base                                                                                                                                                                                      | 3.6 kB  00:00:00
extras                                                                                                                                                                                    | 2.9 kB  00:00:00
updates                                                                                                                                                                                   | 2.9 kB  00:00:00
Resolving Dependencies
--> Running transaction check
---> Package iptables-services.x86_64 0:1.4.21-35.el7 will be installed
--> Processing Dependency: iptables = 1.4.21-35.el7 for package: iptables-services-1.4.21-35.el7.x86_64
--> Running transaction check
---> Package iptables.x86_64 0:1.4.21-28.el7 will be updated
---> Package iptables.x86_64 0:1.4.21-35.el7 will be an update
--> Finished Dependency Resolution

Dependencies Resolved

=================================================================================================================================================================================================================
 Package                                                  Arch                                          Version                                                Repository                                   Size
=================================================================================================================================================================================================================
Installing:
 iptables-services                                        x86_64                                        1.4.21-35.el7                                          base                                         52 k
Updating for dependencies:
 iptables                                                 x86_64                                        1.4.21-35.el7                                          base                                        432 k

Transaction Summary
=================================================================================================================================================================================================================
Install  1 Package
Upgrade             ( 1 Dependent package)

Total download size: 485 k
Downloading packages:
No Presto metadata available for base
warning: /var/cache/yum/x86_64/7Server/base/packages/iptables-services-1.4.21-35.el7.x86_64.rpm: Header V3 RSA/SHA256 Signature, key ID f4a80eb5: NOKEY                        ]  0.0 B/s |    0 B  --:--:-- ETA
Public key for iptables-services-1.4.21-35.el7.x86_64.rpm is not installed
(1/2): iptables-services-1.4.21-35.el7.x86_64.rpm                                                                                                                                         |  52 kB  00:00:01
(2/2): iptables-1.4.21-35.el7.x86_64.rpm                                                                                                                                                  | 432 kB  00:00:02
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total                                                                                                                                                                            237 kB/s | 485 kB  00:00:02
Retrieving key from file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Importing GPG key 0xF4A80EB5:
 Userid     : "CentOS-7 Key (CentOS 7 Official Signing Key) <security@centos.org>"
 Fingerprint: 6341 ab27 53d7 8a78 a7c2 7bb1 24c6 a8a7 f4a8 0eb5
 From       : /etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-7
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
  Updating   : iptables-1.4.21-35.el7.x86_64                                                                                                                                                                 1/3
  Installing : iptables-services-1.4.21-35.el7.x86_64                                                                                                                                                        2/3
  Cleanup    : iptables-1.4.21-28.el7.x86_64                                                                                                                                                                 3/3
  Verifying  : iptables-services-1.4.21-35.el7.x86_64                                                                                                                                                        1/3
  Verifying  : iptables-1.4.21-35.el7.x86_64                                                                                                                                                                 2/3
  Verifying  : iptables-1.4.21-28.el7.x86_64                                                                                                                                                                 3/3

Installed:
  iptables-services.x86_64 0:1.4.21-35.el7

Dependency Updated:
  iptables.x86_64 0:1.4.21-35.el7

Complete!



禁用 iptables:

[root@wykbase ~]# service iptables stop && systemctl disable iptables
Redirecting to /bin/systemctl stop iptables.service
--清空防火墙规则
[root@wykbase ~]# iptables -F


接下来关闭selinux:

--此命令临时禁用
sudo setenforce 0
--使用命令
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
--校验是否关闭(需重启系统),状态为disabled表示关闭成功
getenforce

安装依赖软件包:

yum install -y wget net-tools nfs-utils lrzsz gcc gcc-c++ make cmake libxml2-devel openssl-devel curl curl-devel unzip sudo ntp libaio-devel wget vim ncurses-devel autoconf automake zlib-devel python-devel epel-release openssh-server socat ipvsadm conntrac

依赖包安装完毕后,开始使用Yum安装docker:

[root@wykbase ~]# yum install docker

docker安装完毕后,使用docker --version命令进行校验:

[root@wykbase ~]# docker --version

准备工作与docker容器的安装已经完毕,接下来进入正式的环节,也就是在docker容器中部署安装金仓系统。

在docker中部署安装金仓系统:

进入金仓社区下载地址:https://www.kingbase.com.cn/xzzx/index.htm

下载完毕后,将文件上传拷贝至/opt目录中,修改文件名(可选)

[root@wykbase opt]# ll
total 718500
-rw-r--r--. 1 root root 735744000 Oct  6 22:57 kdb_x86_64_V009R001C001B0030.tar
drwxr-xr-x. 2 root root         6 Jun 18  2018 rh
[root@wykbase opt]# mv kdb_x86_64_V009R001C001B0030.tar kdb.tar


启动docker并导入镜像文件:

[root@wykbase opt]# systemctl start docker
[root@wykbase opt]# docker load -i kdb.tar
96723fcc60ed: Loading layer [==================================================>] 309.9 MB/309.9 MB
0b5ff42cb923: Loading layer [==================================================>] 22.53 kB/22.53 kB
0e4164e0b4de: Loading layer [==================================================>] 7.168 kB/7.168 kB
9992fad87280: Loading layer [==================================================>] 8.192 kB/8.192 kB
948689666f76: Loading layer [==================================================>] 8.704 kB/8.704 kB
2cf6ca41c8ba: Loading layer [==================================================>] 425.8 MB/425.8 MB
4b603a3ab443: Loading layer [==================================================>] 8.192 kB/8.192 kB
9c91b23f9b28: Loading layer [==================================================>] 5.632 kB/5.632 kB
afb78b4e1207: Loading layer [==================================================>] 3.072 kB/3.072 kB
f263200dae6c: Loading layer [==================================================>]  5.12 kB/5.12 kB
Loaded image: kingbase_v009r001c001b0030_single_x86:v1



运行镜像,下面出现长串字符,表示运行成功:

[root@wykbase opt]# docker run -tid --privileged \
-p 5432:54321 \
-v /data:/home/kingbase/userdata/ \
-e ENABLE_CI=yes \
-e NEED_START=yes \
-e DB_USER=kingbase \
-e DB_PASSWORD=123456 \
-e DB_MODE=oracle \
--name kingbase_wy \
kingbase_v009r001c001b0030_single_x86:v1 /usr/sbin/init

--735b4674a48f24598aa7d7b59dbfad6f50dc71fe048610285da573005deb6c06



选项说明:

-p 绑定宿主机端口

-v 可以将容器内数据目录(/home/kingbase/userdata/)挂载到宿主机进行持久化

DB_USER: 数据库用户

DB_PASSWORD: 数据库初始密码

DB_MODE: 数据库模式

NEED_START: 进入容器后是否启动数据库

ENABLE_CI: 是否需要配置大小写敏感

进入容器:

--查看
[root@wykbase opt]# docker ps
CONTAINER ID        IMAGE                                      COMMAND                  CREATED             STATUS              PORTS                     NAMES
735b4674a48f        kingbase_v009r001c001b0030_single_x86:v1   "/bin/bash /home/k..."   3 minutes ago       Up 3 minutes        0.0.0.0:4321->54321/tcp   kingbase_wy
[root@wykbase opt]# docker exec -it kingbase_wy /bin/bash


Welcome to 3.10.0-957.el7.x86_64

System information as of time:  Sun 06 Oct 2024 03:07:18 PM UTC

System load:    0.00
Processes:      19
Memory used:    53.7%
Swap used:      0.5%
Usage On:       16%
Users online:   0



测试:

使用ksql登录数据库:

[kingbase@04791d050560 ~]$ ksql
Type "help" for help.
kingbase=# select version();
                                                       version
----------------------------------------------------------------------------------------------------------------------
 KingbaseES V009R001C001B0030 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-28), 64-bit


容器外通过kstudio工具访问数据库:

通过以上步骤,我们已经顺利地在Docker环境中完成了Kingbase数据库的部署。这不仅为您的项目提供了一个快速启动、易于维护的数据存储解决方案,也为团队成员间共享一致的工作环境打下了坚实基础。希望这次实战经验分享能帮助您更高效地利用Docker容器技术的优势,在未来的开发工作中更加得心应手。

此外,如果您对kingbase数据库感兴趣,请继续关注我们的专栏。



END

往期文章回顾

MOP社区新闻

  青学会MOP技术社区成立了!

  青学会专家顾问团成员介绍

金仓专栏

  告别繁琐!KingbaseES v9数据库一键安装-青学会&金仓专栏(1)

DBA实战小技巧

  推荐一款超实用的openGauss数据库安装工具!

  实战:记一次RAC故障排查
  DBA实战运维小技巧安装篇(一)Oracle 主流版本不同架构下的静默安装指南
  DBA实战运维小技巧存储篇(一)根目录满了如何处理
  DBA实战运维小技巧存储篇(二)打包迁移单机数据库至新存储

MOP社区投稿-内核开发

  浅谈 PostgreSQL GUC 模块原理

  简单解析 IvorySQL 增强 Oracle xml 兼容能力的原理

  简单讨论 PostgreSQL C语言拓展函数返回数据表的方式

  简单分析 pg_config 程序的作用与原理
  Redis 日志机制简介(一):SlowLog
  Redis 日志机制简介(二):AOF 日志
  Redis 日志机制简介(三):RDB 日志
  pg_cron插件使用介绍
  Redis 的指令表实现机制简介
  pg几款源码工具介绍
  Redis 事务功能简介

MOP顾问说

   MOP顾问说:MOP 三种主流数据库常用 SQL(一)

  MOP顾问说:服务器内存

  MOP 顾问说:Linux Nice 值与 CPU 优先级揭秘


文章转载自青年数据库学习互助会,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论