金仓数据库全攻略:简化部署,优化管理的全流程指南

· 浏览次数 : 0

小编点评

金仓数据库管理系统KingbaseES是一款具有国际先进水平的数据库产品。本文将介绍如何使用Docker技术快速部署KingbaseES数据库,并提供相关教程。 1. 下载安装包 请访问金仓数据库官方网站下载对应版本的Docker镜像压缩包,并在服务器上进行安装。 2. 导入镜像 使用Docker load命令导入镜像,并可通过修改镜像名称和标签来简化操作。 3. 容器编排 使用Docker Compose模板来编排和启动金仓数据库,包括配置文件和命令行工具的使用。 4. KSQL命令行工具 KSQL是金仓提供的命令行客户端程序,适用于无法使用图形界面工具的工作场景。 5. 服务器配置 讨论了参数查看、修改和生效条件,以及主配置文件与辅助配置文件之间的关系处理。 通过本教程,您应已快速上手并掌握了金仓数据库管理系统的部署和管理。

正文

金仓数据库

人大金仓(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模板、启动服务等各个步骤。

下载安装包

image

在进行金仓数据库管理系统KingbaseES的下载和部署之前,有几点重要的注意事项需要强调。首先,确保你下载的数据库版本与你服务器的系统架构和操作系统完全兼容。选择正确的版本对于确保数据库能够顺利运行至关重要。

完成版本选择后,接下来是下载过程。为了方便和效率,建议你直接在服务器上进行下载操作。这样做的好处是可以避免在本地下载后再上传到服务器,减少了数据传输的复杂性和时间成本。在下载页面上找到下载链接后,你可以直接复制该链接

去自己的宝塔服务器的文件模块上通过URL下载

image

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 [老镜像名称]:[老镜像版本] [新镜像名称]:[新镜像版本]

image

这样就方便多了

容器编排

我们的下一步是利用Docker Compose来编排和启动金仓数据库管理系统KingbaseES,与传统的Docker命令行相比,Compose提供了一种更加简洁和高效的方式来管理容器化应用的生命周期。

为了帮助大家更轻松地使用Docker Compose,我已经为大家准备好了一个基础的Compose模板,直接复制粘贴改一改即可:

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

各关键信息,我已经填写上了,根据你的服务器配置和应用需求,对模板中的配置项进行必要的修改,例如端口映射、环境变量设置、存储卷挂载等。然后我们创建启动。

启动数据库

image

不出意外的情况下,你应该能够顺利启动金仓数据库。

image

启动成功后记得替换许可文件。照样得去下载才行。

image

默认启动成功后,你只需要替换外边挂载的文件即可。

image

命令行工具——ksql

这里我们介绍下KSQL命令行工具的使用方法和特性。KSQL是金仓提供给数据库管理员(DBA)用于与KES数据库交互的命令行客户端程序,特别适用于无法使用图形界面工具的工作场景。通过熟练使用KSQL,DBA能够快速执行数据库操作和维护任务。

基本使用与常用命令

我们虽然是开发人员,而非数据库管理员,因此只需掌握金仓数据库的基本使用和常用命令即可。本章的目的在于让开发人员快速了解金仓数据库。鉴于我们是采用 Docker 部署的方式,因此需进入 Docker 容器才能执行相应命令。

查看帮助

无论是什么样的命令,每一个都会有相应的指导手册,也就是help命令,它也不例外。

ksql --help

image

连接数据库

连接system用户和test数据库,这个改成自己的配置的用户名即可。端口为54321

ksql -Usystem -d test -p54321

image

执行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;

image

实际上,我使用的是Oracle语句,因为我在启动时选择了Oracle模式进行创建,因此它也支持Oracle数据迁移。至于索引部分,暂时不进行演示。

KSQL实用小技巧

实际上,他这个工具拥有许多小技巧,使其在比较其他数据库的命令行工具时显得非常完美。

  • Tab键智能提示和补全:使用Tab键可以进行多层级、持续的智能提示和补全,这在输入较长的命令或参数时非常有用,可以减少错误并提高输入速度。
  • 历史命令查看和调用:利用上下箭头键可以方便地查看之前执行过的历史命令,快速调用或修改这些命令。或者使用'\s'命令查看历史

image

好的,关于命令的使用我们就讲到这里,接下来让我们来看一下服务器的配置。

服务器配置

在这里我们将详细讨论参数查看、修改和生效条件,以及主配置文件与辅助配置文件之间的关系处理。这是因为我们需要对KINGBASE数据库进行调优和维护,尤其是在当前普遍程序员都是DevOps的情况下。

查看参数

可以查看全部参数的方法是使用以下命令:

show all;

在进行数据库调优与维护时,通常需要关注一些关键参数。如果需要单独查看某个命令的使用方法和相关信息,可以使用以下命令:

show max_connections;

image

当前设置了最大连接数为10,这对个人使用可能足够了。但是如果希望对数据库进行更多的操作或者允许更多用户访问,可能需要调整这个参数。

修改参数

在进行参数修改时,有两种常见的方法可供选择。首先,可以通过直接编辑配置文件来进行修改。需要注意的是,配置文件通常包括主配置文件和辅助配置文件。另外一种方法是通过命令行工具来修改参数。

主配置文件与辅助配置文件的关系处理非常重要。主配置文件是启动时默认扫描的文件,其中包含了所有的参数设置。然而,如果将所有参数都写在一个文件里会显得非常臃肿。为了解决这个问题,可以在主配置文件中使用include命令来引入子配置文件,这样子配置文件中的参数也会被扫描并生效。这种方法类似于Nginx的配置文件结构,非常方便和模块化。通过这种方式,可以更清晰地管理配置文件,使其更易于维护和调整。

这里我们只演示下如何使用命令行修改,因为这样最方便。

例如,如果想要增加数据库的连接数限制,可以使用以下命令来修改:

alter system set max_connections = 100;

image

好吧,报错:max_connections should be less than or equal than 10 (restricted by license)

我们最初替换掉的是开发者许可证,人家不让超过10个链接。那我们就改小,为了演示下效果:

image

当修改了参数后,需要注意的是,并不是所有参数修改后都会立即生效,有些参数需要重启数据库服务才能生效。你可以使用以下命令来查看参数的重启生效状态:

select name,setting,pending_restart from sys_settings where name = 'max_connections';

image

pending_restart=t 意味着此参数修改后需要重启实例才能生效。确保重启数据库服务以使更改生效。一旦数据库服务重新启动,你可以重新连接数据库并检查是否显示正常。

image

优先级问题

在数据库系统中,确保主子配置文件之间的关系明确并正确处理是非常关键的。kingbase.auto.conf作为更高优先级的配置文件,确保其中的设置能够覆盖kingbase.conf中的设置,从而实现更灵活的参数配置和管理。

在实际操作中,用户可以通过修改kingbase.auto.conf文件来覆盖kingbase.conf中的设置,从而实现对数据库系统行为的精细控制。在修改完参数设置后,用户需要记得重启数据库服务,让新的参数配置生效。这样可以确保数据库系统按照最新的设置来运行,提高系统的性能和稳定性。

总结

通过本篇文章的学习和实践,我们深入了解了如何利用Docker技术快速部署KingbaseES数据库。从下载镜像到编写Docker Compose模板,再到容器的启动和管理,每一步都体现了现代化部署方式的便捷和高效。此外,我们还掌握了KSQL命令行工具的使用,这将极大地提升开发人员与数据库交互的效率。

在探索金仓数据库的配置和优化过程中,我们认识到了合理配置数据库参数的重要性。通过调整参数,我们能够根据实际需求优化数据库性能,确保系统的稳定运行。同时,我们也学习了如何处理主配置文件与辅助配置文件的关系,以及如何通过kingbase.auto.conf实现更灵活的参数配置。

总结而言,金仓数据库不仅以其卓越的性能和稳定性服务于众多关键行业,更为开发人员和数据库管理员提供了高效、易用的工具和方法。

与金仓数据库全攻略:简化部署,优化管理的全流程指南相似的内容:

金仓数据库全攻略:简化部署,优化管理的全流程指南

通过本篇文章的学习和实践,我们深入了解了如何利用Docker技术快速部署KingbaseES数据库。从下载镜像到编写Docker Compose模板,再到容器的启动和管理,每一步都体现了现代化部署方式的便捷和高效。此外,我们还掌握了KSQL命令行工具的使用,这将极大地提升开发人员与数据库交互的效率。

[转帖]金仓数据库KWR使用说明

金仓数据库KWR使用说明 1.KWR性能报告介绍2.部署KWR性能报告功能2.1.修改配置文件2.2.使配置文件中参数生效2.3.创建KWR扩展 3.使用KWR快照功能3.1.创建KWR快照3.2.管理快照3.2.1.快照查询3.2.2.手动创建快照3.2.3.自动快照3.2.4.清理快照3.2.5

[转帖]金仓数据库KingbaseES表空间(tablespace)知多少

金仓数据库KingbaseES表空间定义 金仓数据库KingbaseES中的表空间允许在文件系统里定义那些代表数据库对象的文件存放位置,比如表和索引等。一旦表空间被创建,那么就可以在创建数据库对象时通过名称来引用他。 一个数据库可以有一个或多个表空间,创建数据库时自动创建系统表空间sys_defau

[转帖]人大金仓数据库的备份与还原

人大金仓数据库的备份与还原 文章目录 人大金仓数据库的备份与还原前言备份sys_dump 命令 还原ksql 命令sys_restore 一. 从人大金仓数据库备份还原到人大金仓数据库二 从postgresql数据库备份还原到人大金仓数据库 后记 前言 本文记录一次使用人大金仓数据库(Kingbas

人大金仓数据库连接异常简单分析查看的方法

# 人大金仓数据库连接异常简单分析查看的方法 ## 背景 ``` 这边一个测试环境,人大金仓4000的连接池 最近出现多次 连接池用光的问题. 想着简单分析一下. 给研发同事进行问题定位. 这里简单记录一下 ``` ## 问题流程 ``` 研发反馈数据库无法连接. 我这边之前部署了一套 kmonit

[转帖]人大金仓数据库的用户与角色

数据库的表、索引、视图等,在数据库中的一切都可以称为数据库对象。 对象分为以下两类 模式(SCHEMA)对象:可视为一个表的集合,可以理解为一个存储目录,包含视图、索引、数据类型、函数和操作符等。非模式对象:其他的数据库对象。如数据库、表空间、用户、权限。 查看当前用户在数据库中拥有的权限 \l 查

[转帖]金仓数据库KingbaseES数据目录结构

KingbaseES数据库结构 [kingbase@postgresV8]$ tree -LP2data/.├── data│ ├── base # 存储用户创建的数据库文件及隶属于用户数据库的所有关系.比如表、索引...│ ├── current_logfiles. # 记录当前被日志收集器写入的

[转帖]人大金仓数据库分区表

分区表 声明式创建分区 按列创建分区(PARTITION BY LIST) 将学员表student按所在城市使用partition by list创建分区 创建分区表(基表) 创建格式 create table 表名(字段名 数据类型)PARTITION BY LIST(要分区的字段名) 创建子分区

[转帖]金仓数据库KingbaseES 数据库参数优化

目录 一、数据库应用类型 二、主要参数 max_connections shared_buffers effective_cache_size maintenance_work_mem checkpoint_completion_target wal_buffers default_statisti

[转帖]金仓数据库KingbaseES V8R6 中unlogged表

KingbaseESV8R6有一种表称为unlogged,在该表新建的索引也属于unlogged。和普通表的区别是,对该表进行DML操作时候不将该表的变更记录变更写入到wal文件中。在数据库异常关机或者异常崩溃后该表的数据会被truncate掉,但是在写入性能上会比普通表快几倍。 这个特性类似于or