金仓数据库
人大金仓(KING BASE)是一家拥有20多年数据库领域经验的公司,专注于数据库产品的研发和服务。公司曾参与多项国家级重大课题研究,如"863"计划、电子发展基金、信息安全专项等。其核心产品是金仓数据库管理系统KingbaseES,这是一个大型通用数据库,具有国际先进水平。
金仓数据库官方地址:https://www.kingbase.com.cn/gywm/index.htm
金仓数据库下载地址:https://www.kingbase.com.cn/xzzx/index.htm
在本篇文章中,我们将聚焦于快速认识并部署金仓数据库管理系统KingbaseES,以生产环境为基准,详细演示Linux服务器的安装和配置过程。我们的目标是帮助你快速上手,掌握金仓数据库的部署和管理。
Linux快速部署(docker)
让我们直接进入主题,不拐弯抹角。在本教程中,我将采取一种更为现代和高效的部署方式——利用Docker技术来部署金仓数据库管理系统KingbaseES。这种方式不仅能够简化安装过程,还能确保环境的一致性和可移植性。值得一提的是,为了进一步简化部署流程,我为大家精心封装了一个Docker Compose编排模板,相信能够为你的部署工作带来极大的便利。
首先,我们需要下载金仓数据库的镜像压缩包。请注意,由于目前金仓数据库并未直接在Docker Hub等公共镜像仓库上线,因此所有的安装包都需要从人大金仓的官方网站进行下载。下载过程中,你可能需要输入手机号码并接收验证码。
接下来,我将详细介绍如何使用Docker和Docker Compose来部署金仓数据库,包括下载导入镜像、配置Compose模板、启动服务等各个步骤。
下载安装包
在进行金仓数据库管理系统KingbaseES的下载和部署之前,有几点重要的注意事项需要强调。首先,确保你下载的数据库版本与你服务器的系统架构和操作系统完全兼容。选择正确的版本对于确保数据库能够顺利运行至关重要。
完成版本选择后,接下来是下载过程。为了方便和效率,建议你直接在服务器上进行下载操作。这样做的好处是可以避免在本地下载后再上传到服务器,减少了数据传输的复杂性和时间成本。在下载页面上找到下载链接后,你可以直接复制该链接
去自己的宝塔服务器的文件模块上通过URL下载
https://bbs.kingbase.com.cn/kingbase-html/v9/install-updata/install-docker/install-docker-2.html#docker
我已经为你准备好了下载链接。通过这个链接,你可以直接在服务器上进行高速下载,避免了传统下载方式中可能出现的缓慢和不稳定问题。
导入镜像
在成功下载金仓数据库管理系统KingbaseES的Docker镜像文件之后,接下来的步骤是将这个镜像导入到您的Docker环境中。以下是具体的操作步骤:
docker load -i /path/to/your/image-file.tar
请将/path/to/your/image-file.tar替换为你下载的镜像文件的实际路径和文件名。
导入镜像后,您可能会注意到镜像的名称和标签(Repository:Tag)可能会比较长,长名称可能会使得后续的容器管理和操作变得繁琐。为了简化这个过程,我们可以通过Docker的tag命令来为镜像重新设置一个更简短、更易于识别的名称。
docker tag 老镜像名称:老镜像版本:新镜像版本
这样就方便多了
容器编排
我们的下一步是利用Docker Compose来编排和启动金仓数据库管理系统KingbaseES,与传统的Docker命令行相比,Compose提供了一种更加简洁和高效的方式来管理容器化应用的生命周期。
为了帮助大家更轻松地使用Docker Compose,我已经为大家准备好了一个基础的Compose模板,直接复制粘贴改一改即可:
代码语言:yaml复制version: "2"
services:
kingbase:
image: kingbase:v1
container_name: kingbase
privileged: true # 注意这里的缩进与前面的键值对对齐
environment:
- ENABLE_CI=yes # yes(默认 大小写不敏感)/no 大小写敏感
- NEED_START=yes # yes(默认 启动数据库)/ no(不启动数据库)
- DB_USER= # 用户名
- DB_PASSWORD= # 密码
- DB_MODE=oracle # 支持oracle/pg/mysql
volumes:
- /mnt/kingbase/data:/home/kingbase/userdata/
ports:
- 4321:54321
restart: unless-stopped
command: /usr/sbin/init
各关键信息,我已经填写上了,根据你的服务器配置和应用需求,对模板中的配置项进行必要的修改,例如端口映射、环境变量设置、存储卷挂载等。然后我们创建启动。
启动数据库
不出意外的情况下,你应该能够顺利启动金仓数据库。
启动成功后记得替换许可文件。照样得去下载才行。
默认启动成功后,你只需要替换外边挂载的文件即可。
命令行工具——ksql
这里我们介绍下KSQL命令行工具的使用方法和特性。KSQL是金仓提供给数据库管理员(DBA)用于与KES数据库交互的命令行客户端程序,特别适用于无法使用图形界面工具的工作场景。通过熟练使用KSQL,DBA能够快速执行数据库操作和维护任务。
基本使用与常用命令
我们虽然是开发人员,而非数据库管理员,因此只需掌握金仓数据库的基本使用和常用命令即可。本章的目的在于让开发人员快速了解金仓数据库。鉴于我们是采用 Docker 部署的方式,因此需进入 Docker 容器才能执行相应命令。
查看帮助
无论是什么样的命令,每一个都会有相应的指导手册,也就是help命令,它也不例外。
ksql --help
连接数据库
连接system用户和test数据库,这个改成自己的配置的用户名即可。端口为54321
ksql -Usystem -d test -p54321
执行SQL
在数据库中,SQL语句的执行是至关重要的。让我们一起深入了解常用的增删改查操作。
create table test(id number(20),reg_dt date);insert into test(id,reg_dt) values(1,sysdate);select * from test;update test set id = 2;delete from test where id = 2;
实际上,我使用的是Oracle语句,因为我在启动时选择了Oracle模式进行创建,因此它也支持Oracle数据迁移。至于索引部分,暂时不进行演示。
KSQL实用小技巧
实际上,他这个工具拥有许多小技巧,使其在比较其他数据库的命令行工具时显得非常完美。
- Tab键智能提示和补全:使用Tab键可以进行多层级、持续的智能提示和补全,这在输入较长的命令或参数时非常有用,可以减少错误并提高输入速度。
- 历史命令查看和调用:利用上下箭头键可以方便地查看之前执行过的历史命令,快速调用或修改这些命令。或者使用's'命令查看历史
好的,关于命令的使用我们就讲到这里,接下来让我们来看一下服务器的配置。
服务器配置
在这里我们将详细讨论参数查看、修改和生效条件,以及主配置文件与辅助配置文件之间的关系处理。这是因为我们需要对KINGBASE数据库进行调优和维护,尤其是在当前普遍程序员都是DevOps的情况下。
查看参数
可以查看全部参数的方法是使用以下命令:
show all;
在进行数据库调优与维护时,通常需要关注一些关键参数。如果需要单独查看某个命令的使用方法和相关信息,可以使用以下命令:
show max_connections;
当前设置了最大连接数为10,这对个人使用可能足够了。但是如果希望对数据库进行更多的操作或者允许更多用户访问,可能需要调整这个参数。
修改参数
在进行参数修改时,有两种常见的方法可供选择。首先,可以通过直接编辑配置文件来进行修改。需要注意的是,配置文件通常包括主配置文件和辅助配置文件。另外一种方法是通过命令行工具来修改参数。
主配置文件与辅助配置文件的关系处理非常重要。主配置文件是启动时默认扫描的文件,其中包含了所有的参数设置。然而,如果将所有参数都写在一个文件里会显得非常臃肿。为了解决这个问题,可以在主配置文件中使用include命令来引入子配置文件,这样子配置文件中的参数也会被扫描并生效。这种方法类似于Nginx的配置文件结构,非常方便和模块化。通过这种方式,可以更清晰地管理配置文件,使其更易于维护和调整。
这里我们只演示下如何使用命令行修改,因为这样最方便。
例如,如果想要增加数据库的连接数限制,可以使用以下命令来修改:
alter system set max_connections = 100;
好吧,报错:max_connections should be less than or equal than 10 (restricted by license)
我们最初替换掉的是开发者许可证,人家不让超过10个链接。那我们就改小,为了演示下效果:
当修改了参数后,需要注意的是,并不是所有参数修改后都会立即生效,有些参数需要重启数据库服务才能生效。你可以使用以下命令来查看参数的重启生效状态:
select name,setting,pending_restart from sys_settings where name = 'max_connections';
pending_restart=t 意味着此参数修改后需要重启实例才能生效。确保重启数据库服务以使更改生效。一旦数据库服务重新启动,你可以重新连接数据库并检查是否显示正常。
优先级问题
在数据库系统中,确保主子配置文件之间的关系明确并正确处理是非常关键的。kingbase.auto.conf作为更高优先级的配置文件,确保其中的设置能够覆盖kingbase.conf中的设置,从而实现更灵活的参数配置和管理。
在实际操作中,用户可以通过修改kingbase.auto.conf文件来覆盖kingbase.conf中的设置,从而实现对数据库系统行为的精细控制。在修改完参数设置后,用户需要记得重启数据库服务,让新的参数配置生效。这样可以确保数据库系统按照最新的设置来运行,提高系统的性能和稳定性。
总结
通过本篇文章的学习和实践,我们深入了解了如何利用Docker技术快速部署KingbaseES数据库。从下载镜像到编写Docker Compose模板,再到容器的启动和管理,每一步都体现了现代化部署方式的便捷和高效。此外,我们还掌握了KSQL命令行工具的使用,这将极大地提升开发人员与数据库交互的效率。
在探索金仓数据库的配置和优化过程中,我们认识到了合理配置数据库参数的重要性。通过调整参数,我们能够根据实际需求优化数据库性能,确保系统的稳定运行。同时,我们也学习了如何处理主配置文件与辅助配置文件的关系,以及如何通过kingbase.auto.conf实现更灵活的参数配置。
总结而言,金仓数据库不仅以其卓越的性能和稳定性服务于众多关键行业,更为开发人员和数据库管理员提供了高效、易用的工具和方法。
我正在参与2024腾讯技术创作特训营最新征文,快来和我瓜分大奖!