当前位置: 首页 > news >正文

K8s: Helm搭建mongodb集群(1)

mongodb 集群搭建

  • mongdb 部署前 需要创建 pvc, pv 和 sc,如果在云上会自动创建
  • helm 应用中心: https://artifacthub.io

1 )Helm 安装 mongodb

A. 无本地存储配置,重启数据消失

  • 在 https://artifacthub.io/packages/helm/bitnami/mongodb?modal=install 这个界面弹出的窗口中
    • $ helm repo add bitnami https://charts.bitnami.com/bitnami
      • 这样就添加了这个源,通过 $ helm repo ls
    • $ helm install my-mongodb bitnami/mongodb --version 13.8.1
  • 上面的 helm install 命令是官网提供的最简单的,在安装的时候可以配置一些参数
    • 如:$ helm install my-mongo bitnami/mongodb --version 13.8.1 --set persistence.enabled=false,auth.rootPassword="123456_mongodb"
    • 文档:https://artifacthub.io/packages/helm/bitnami/mongodb#mongodb-parameters
    • 不同的参数,使用 , 分隔
  • 注意,低版本的 helm 的安装命令可能安装会报错,请使用 helm-v3.11.1 以上版本
  • 执行 install 命令后,会输出以下命令
    NAME: my-mongo
    LAST DEPLOYED: Wed May  1 15:32:14 2024
    NAMESPACE: default
    STATUS: deployed
    REVISION: 1
    TEST SUITE: None
    NOTES:
    CHART NAME: mongodb
    CHART VERSION: 13.8.1
    APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb.default.svc.cluster.localTo get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORDTo connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 &mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
    
  • 上面提示中,让我们把密码设置成当前节点的环境变量
    • export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)
      • 执行上面一行写入环境变量
      • 其中这里 kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d
      • 可以看到密码是上面设置的: 123456_mongodb
    • $ printenv | grep MON 这样也可以看到环境变量中设置的密码
      MONGODB_ROOT_PASSWORD=123456_mongodb
      
  • 通过上面给的这个命令
    • $ kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image bitnami/mongodb:6.0.4-debian-11-r10 --command -- bash
      If you don't see a command prompt, try pressing enter.
      I have no name!@my-mongo-mongodb-client:/$
      
    • 这里,可以开启一个mongodb的客户端
    • 注意,这里的镜像 docker.io/bitnami/mongodb:6.0.4-debian-11-r10 需要提前pull下
    • 这个 docker.io 可能会有网络问题,参考 $ docker pull bitnami/mongodb:6.0.4-debian-11-r10
  • 通过上面的命令来进入数据库,注意这里, -p 后面基本没用,还得重新输入密码,因为安全性问题被高版本禁了
    • $ mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
    • 输入密码,这时候就已经连接进入 mongodb 数据库了,可以进行操作了
    • 注意,这个pod如果一段时间不操作,会自动退出
  • $ kubectl get all | grep my-mongo 从这里可以看出,它是一个 deployment 而不是 StatefulSets
    • 因此,它不会存储任何状态,退出后,数据就丢了
  • 从外部访问它,上面也提示了命令,进行转发
    • $ kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 --address 0.0.0.0
      Forwarding from 0.0.0.0:27017 -> 27017
      
    • 注意,如果是云上转发,安全组需要配置入站规则
    • 这时候,外部即可访问,通过node节点的ip加端口加用户名和密码
    • 当然此作为简单示例,没有接入 Ingress 网络
  • 查看 deployment $ kubectl get deployment
    NAME               READY   UP-TO-DATE   AVAILABLE   AGE
    my-mongo-mongodb   1/1     1            1           3h55m
    
  • 重新部署 $ kubectl rollout restart deployment my-mongo-mongodb
    deployment.apps/my-mongo-mongodb restarted
    
  • 并且重新 port-forward 转发 $ kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 --address 0.0.0.0
  • 发现数据丢失了 …
  • 查看密码 $ kubectl get secret | grep my-mongo-mongodb
    my-mongo-mongodb                 Opaque                                1      4h9m
    my-mongo-mongodb-token-89wcr     kubernetes.io/service-account-token   3      4h9m
    
  • $ kubectl get secret my-mongo-mongodb -o yaml
    apiVersion: v1
    data:mongodb-root-password: MTIzNDU2X21vbmdvZGI=
    kind: Secret
    metadata:annotations:meta.helm.sh/release-name: my-mongometa.helm.sh/release-namespace: defaultcreationTimestamp: "2024-05-01T07:32:16Z"labels:app.kubernetes.io/component: mongodbapp.kubernetes.io/instance: my-mongoapp.kubernetes.io/managed-by: Helmapp.kubernetes.io/name: mongodbhelm.sh/chart: mongodb-13.8.1name: my-mongo-mongodbnamespace: defaultresourceVersion: "307736"uid: b0ef31fe-60cc-46a3-8bc6-510692b96d8d
    type: Opaque
    
    • 可以看到,密码被base64加密了
  • 现在需要重新安装有存储的,把之前的卸载了
    • $ kubectl uninstall my-mongo
    • 这样会同步删除其他相关的附带配置, 使用 delete 是删不干净的
  • 无本地存储配置,重启数据消失

B.搭建 mongodb 有本地存储,重启数据保留

  • 在安装的时候和上述有区别, 直接安装是不会成功的,需要配置 PVC
  • persistence.size 默认是8Gi, 如果在云上可能是10的倍数
  • $ helm install my-mongo bitnami/mongodb --version 13.8.1 --set persistence.size=10Gi,auth.rootPassword="123456_mongodb"
    • 这时候会自动创建 pvc
      NAME: my-mongo
      LAST DEPLOYED: Thu May  2 08:59:53 2024
      NAMESPACE: default
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      CHART NAME: mongodb
      CHART VERSION: 13.8.1
      APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb.default.svc.cluster.localTo get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORDTo connect to your database from outside the cluster execute the following commands:kubectl port-forward --namespace default svc/my-mongo-mongodb 27017:27017 &mongosh --host 127.0.0.1 --authenticationDatabase admin -p $MONGODB_ROOT_PASSWORD
      
    • 注意,这里如果在云上,会自动创建 pvc, pv, storage class, 以及云硬盘, 在本地的话,需要自己处理
    • 参考: https://blog.csdn.net/Tyro_java/article/details/138157501
  • $ kubectl get pvc 验证获取 pvc
  • 上面提示的命令,都执行以下,进行开启终端和进行连接
  • 以及参考上面无存储的进行转发处理,在外部进行客户端的连接, 以及重启后验证数据是否丢失
    • 如果在云上,端口这块,要配置安全组规则
  • 注意,uninstall 执行的时候,存储也会丢失,注意提前备份
  • 更多的配置,参考文档

2 )Helm 搭建mongodb集群

  • $ helm install my-mongo bitnami/mongodb --version 13.8.1 --set architecture="replicaset",persistence.size=10Gi,auth.rootPassword="123456_mongodb"
    • 注意, 这里添加了 architecture="replicaset", 默认值是 standalone
    • 这样就可以设置成主从数据库了
      NAME: my-mongo
      LAST DEPLOYED: Thu May  2 13:46:04 2024
      NAMESPACE: default
      STATUS: deployed
      REVISION: 1
      TEST SUITE: None
      NOTES:
      CHART NAME: mongodb
      CHART VERSION: 13.8.1
      APP VERSION: 6.0.4** Please be patient while the chart is being deployed **MongoDB® can be accessed on the following DNS name(s) and ports from within your cluster:my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017To get the root password run:export MONGODB_ROOT_PASSWORD=$(kubectl get secret --namespace default my-mongo-mongodb -o jsonpath="{.data.mongodb-root-password}" | base64 -d)To connect to your database, create a MongoDB® client container:kubectl run --namespace default my-mongo-mongodb-client --rm --tty -i --restart='Never' --env="MONGODB_ROOT_PASSWORD=$MONGODB_ROOT_PASSWORD" --image docker.io/bitnami/mongodb:6.0.4-debian-11-r10 --command -- bashThen, run the following command:mongosh admin --host "my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017,my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
      
  • $ kubectl get all
    NAME                             READY   STATUS    RESTARTS   AGE
    pod/my-mongo-mongodb-0           1/1     Running   0          2m18s
    pod/my-mongo-mongodb-arbiter-0   1/1     Running   0          2m18sNAME                                        TYPE        CLUSTER-IP   EXTERNAL-IP   PORT(S)     AGE
    service/kubernetes                          ClusterIP   10.1.0.1     <none>        443/TCP     6d2h
    service/my-mongo-mongodb-arbiter-headless   ClusterIP   None         <none>        27017/TCP   2m18s
    service/my-mongo-mongodb-headless           ClusterIP   None         <none>        27017/TCP   2m18sNAME                                        READY   AGE
    statefulset.apps/my-mongo-mongodb           2/2     2m18s
    statefulset.apps/my-mongo-mongodb-arbiter   1/1     2m18s
    
    • 可以看到是 statefulset 而非 deployment
    • 这里 Arbiter永远是Arbiter,Arbiter 节点只参与投票,不能被选为 Primary,并且不从 Primary 同步数据
    • 而Primary可能退下来成为Secondary,而Secondary可能在选举期间成为Primary
  • 过一会儿 $ kubectl get po -o wide
    NAME                         READY   STATUS    RESTARTS      AGE     IP            NODE        NOMINATED NODE   READINESS GATES
    my-mongo-mongodb-0           1/1     Running   0             7m15s   10.244.1.90   node1.k8s   <none>           <none>
    my-mongo-mongodb-1           1/1     Running   0             7m05s   10.244.1.91   node1.k8s   <none>           <none>
    my-mongo-mongodb-arbiter-0   1/1     Running   0             7m15s   10.244.1.89   node1.k8s   <none>           <none>
    
    • 可以看到,现在已经有2个节点,以及一个选举节点
  • 按照上面提示给出的命令进行配置环境变量,以及客户端不再赘述
  • 要连接这个集群上面也给出了命令提示
    mongosh admin --host "my-mongo-mongodb-0.my-mongo-mongodb-headless.default.svc.cluster.local:27017,my-mongo-mongodb-1.my-mongo-mongodb-headless.default.svc.cluster.local:27017" --authenticationDatabase admin -u root -p $MONGODB_ROOT_PASSWORD
    
    • 这里是主从的集群,有2个库,my-mongo-mongodb-0 和 my-mongo-mongodb-1
    • 如果一台挂掉,另一台还会继续提供服务
    • 如果想要连接一台,就把其中的一台给去掉
    • 选择其中之一进行连接,你就会知道,连接的是主节点还是从节点
    • 如果在从节点执行查询前,还需要设置查询的权限, 执行 $ rs.secondaryOk()
    • 关于扩容和缩容
      • 扩容 $ kubectl scale statefulset <statefulset-name> --replicas=<new-replica-count> -n <namespace>
      • 缩容 $ kubectl scale statefulset <statefulset-name> --replicas=<new-replica-count> -n <namespace>
      • 如果扩容缩容操作在云上,可以直接调整

相关文章:

K8s: Helm搭建mongodb集群(1)

mongodb 集群搭建 mongdb 部署前 需要创建 pvc, pv 和 sc&#xff0c;如果在云上会自动创建helm 应用中心: https://artifacthub.io 1 &#xff09;Helm 安装 mongodb A. 无本地存储配置&#xff0c;重启数据消失 在 https://artifacthub.io/packages/helm/bitnami/mongodb…...

应用分层和企业规范

目录 一、应用分层 1、介绍 &#xff08;1&#xff09;为什么需要应用分层&#xff1f; &#xff08;2&#xff09;如何分层&#xff1f;&#xff08;三层架构&#xff09; MVC 和 三层架构的区别和联系 高内聚&#xff1a; 低耦合&#xff1a; 2、代码重构 controlle…...

Flutter笔记:Widgets Easier组件库(1)使用各式边框

Flutter笔记 Widgets Easier组件库&#xff08;1&#xff09;&#xff1a;使用边框 - 文章信息 - Author: 李俊才 (jcLee95) Visit me at CSDN: https://jclee95.blog.csdn.netMy WebSite&#xff1a;http://thispage.tech/Email: 291148484163.com. Shenzhen ChinaAddress o…...

OpenHarmony实战开发-上传文件

Web组件支持前端页面选择文件上传功能&#xff0c;应用开发者可以使用onShowFileSelector()接口来处理前端页面文件上传的请求。 下面的示例中&#xff0c;当用户在前端页面点击文件上传按钮&#xff0c;应用侧在onShowFileSelector()接口中收到文件上传请求&#xff0c;在此接…...

外贸企业邮箱是什么?做外贸企业邮箱哪个好?

外贸企业邮箱是什么&#xff1f;外贸企业在进行跨国沟通时必不可少的工具就是外贸企业邮箱&#xff0c;外贸企业邮箱需要具备的条件就是海外邮件抵达率高、安全稳定、多语言沟通。而我们又怎么选择一个适合的外贸企业邮箱呢&#xff1f;小编今天带您一起了解。 一、外贸企业邮…...

写一个简单的程序

思路分析&#xff1a; 1. 导入必要的库 首先&#xff0c;确保你的项目中包含了AWT或Swing库&#xff0c;因为我们将使用它们来创建图形界面。 import javax.swing.*; import java.awt.*; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import j…...

CentOS安装Docker指南

Docker安装与配置教程 Docker作为一种轻量级的虚拟化技术&#xff0c;在现代软件开发和运维中扮演着重要的角色。下面&#xff0c;我将以技术博主的身份&#xff0c;向大家详细介绍如何在Linux系统上安装和配置Docker&#xff0c;特别是如何设置Docker的监听地址和端口&#x…...

python绘图(pandas)

matplotlib绘图 import pandas as pd abs_path rF:\Python\learn\python附件\pythonCsv\data.csv df pd.read_csv(abs_path, encodinggbk) # apply根据多列生成新的一个列的操作&#xff0c;用apply df[new_score] df.apply(lambda x : x.数学 x.语文, axis1)# 最后几行 …...

Android(Java)项目支持Kotlin语言开发

Android&#xff08;Java&#xff09;项目通过相关Kotlin设置后&#xff0c;允许同时使用Java语言和Kotlin语言进行开发代码的。 示例环境&#xff1a; Android Studio Giraffe | 2022.3.1 Patch 3 Java 8 Kotlin 1.9.20 设置Kotlin选项&#xff1a; 第一步&#xff1a;在项…...

Terraform创建模块

模块就是包含一组Terraform代码的文件夹&#xff0c;可以通过模块直接使用别人编写好的Terraform代码来创建资源。 Terraform模块是编写高质量Terraform代码&#xff0c;提升代码复用性的重要手段&#xff0c;可以说&#xff0c;一个成熟的生产环境应该是由数个可信成熟的模块组…...

《华为鸿蒙:从备胎到主角的崛起之路》

华为鸿蒙操作系统的发展历程可以追溯到 2012 年&#xff0c;当时华为开始规划自有操作系统鸿蒙 OS。然而&#xff0c;直到 2019 年 5 月&#xff0c;鸿蒙才正式进入开发阶段。 2019 年 8 月 9 日&#xff0c;华为正式发布了鸿蒙操作系统。 鸿蒙系统的首个版本是于 2019 年推出…...

FPGA学习笔记(2)——Verilog语法及ModelSim使用

1.1 语法 1、赋值语句 和 < 为阻塞赋值&#xff0c;当该语句结束时&#xff0c;下一个语句才开始执行&#xff0c;串行执行 < 为非阻塞幅值&#xff0c;该语句和整个语句块同时执行&#xff0c;并行执行 1.2 ModelSim使用 1、修改源文件路径&#xff1a;File -> …...

2024年十大AI工具,让你的工作学习效率飞跃

在这个迅速变化的数字时代&#xff0c;人工智能技术正在以前所未有的速度发展和革新。AI技术不仅深入科研、医疗和教育等领域&#xff0c;还广泛应用于日常生活和商业活动中。本文梳理了2024年十款最好用的AI工具&#xff0c;它们各有特色&#xff0c;能极大提升工作效率和生活…...

linux之NAMP

linux之NAMP Nmap&#xff08;Network Mapper&#xff09;是一个开源的网络扫描和安全审计工具。它被设计用来快速地扫描大型网络&#xff0c;尽管它也可以对单个主机进行有效的扫描。Nmap利用原始IP数据包以多种方式探测目标网络上的主机、服务&#xff08;应用程序名称和版本…...

uniapp 禁止截屏(应用内,保护隐私)插件 Ba-ScreenShot

禁止截屏&#xff08;应用内&#xff0c;保护隐私&#xff09; Ba-ScreenShot 简介&#xff08;下载地址&#xff09; Ba-ScreenShot 是一款uniapp禁止应用内截屏的插件&#xff0c;保护隐私&#xff0c;支持禁止截屏、放开截屏 截图展示 也可关注博客&#xff0c;实时更新最…...

数字电路-5路呼叫显示电路和8路抢答器电路

本内容涉及两个电路&#xff0c;分别为5路呼叫显示电路和8路抢答器电路&#xff0c;包含Multisim仿真原文件&#xff0c;为掌握FPGA做个铺垫。紫色文字是超链接&#xff0c;点击自动跳转至相关博文。持续更新&#xff0c;原创不易&#xff01; 目录&#xff1a; 一、5路呼叫显…...

C++中的函数签名

前言&#xff1a; 很多C初学者会发现函数签名这一概念在C的学习过程中经常出现&#xff0c;然而很多人往往不太了解函数签名包括些什么&#xff0c;本文章将从一个初学者的角度出发&#xff0c;详细解释函数签名这一概念。 在C中&#xff0c;函数签名用于唯一地识别函数重载。…...

Mac brew安装Redis之后更新配置文件的方法

安装命令 brew install redis 查看安装位置命令 brew list redis #查看redis安装的位置 % brew list redis /usr/local/Cellar/redis/6.2.5/.bottle/etc/ (2 files) /usr/local/Cellar/redis/6.2.5/bin/redis-benchmark /usr/local/Cellar/redis/6.2.5/bin/redis-check-ao…...

安卓应用开发(一):工具与环境

开发工具 Android Studio&#xff0c;用于开发 Android 应用的官方集成开发环境 (IDE)。包括以下功能&#xff1a; 基于Gradle的构建系统 gradle是一个项目构建工具&#xff0c;将源工程打包构建为apk 安卓模拟器统一环境代码编辑模拟器实时更新Github集成Lint功能&#xff0…...

基于springboot+vue+Mysql的在线动漫信息平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

visual studio 2022更改主题为深色

visual studio 2022更改主题为深色 点击visual studio 上方的 工具-> 选项 在选项窗口中&#xff0c;选择 环境 -> 常规 &#xff0c;将其中的颜色主题改成深色 点击确定&#xff0c;更改完成...

FastAPI 教程:从入门到实践

FastAPI 是一个现代、快速&#xff08;高性能&#xff09;的 Web 框架&#xff0c;用于构建 API&#xff0c;支持 Python 3.6。它基于标准 Python 类型提示&#xff0c;易于学习且功能强大。以下是一个完整的 FastAPI 入门教程&#xff0c;涵盖从环境搭建到创建并运行一个简单的…...

OkHttp 中实现断点续传 demo

在 OkHttp 中实现断点续传主要通过以下步骤完成&#xff0c;核心是利用 HTTP 协议的 Range 请求头指定下载范围&#xff1a; 实现原理 Range 请求头&#xff1a;向服务器请求文件的特定字节范围&#xff08;如 Range: bytes1024-&#xff09; 本地文件记录&#xff1a;保存已…...

【配置 YOLOX 用于按目录分类的图片数据集】

现在的图标点选越来越多&#xff0c;如何一步解决&#xff0c;采用 YOLOX 目标检测模式则可以轻松解决 要在 YOLOX 中使用按目录分类的图片数据集&#xff08;每个目录代表一个类别&#xff0c;目录下是该类别的所有图片&#xff09;&#xff0c;你需要进行以下配置步骤&#x…...

Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)

参考官方文档&#xff1a;https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java&#xff08;供 Kotlin 使用&#xff09; 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...

嵌入式学习笔记DAY33(网络编程——TCP)

一、网络架构 C/S &#xff08;client/server 客户端/服务器&#xff09;&#xff1a;由客户端和服务器端两个部分组成。客户端通常是用户使用的应用程序&#xff0c;负责提供用户界面和交互逻辑 &#xff0c;接收用户输入&#xff0c;向服务器发送请求&#xff0c;并展示服务…...

LINUX 69 FTP 客服管理系统 man 5 /etc/vsftpd/vsftpd.conf

FTP 客服管理系统 实现kefu123登录&#xff0c;不允许匿名访问&#xff0c;kefu只能访问/data/kefu目录&#xff0c;不能查看其他目录 创建账号密码 useradd kefu echo 123|passwd -stdin kefu [rootcode caozx26420]# echo 123|passwd --stdin kefu 更改用户 kefu 的密码…...

SQL慢可能是触发了ring buffer

简介 最近在进行 postgresql 性能排查的时候,发现 PG 在某一个时间并行执行的 SQL 变得特别慢。最后通过监控监观察到并行发起得时间 buffers_alloc 就急速上升,且低水位伴随在整个慢 SQL,一直是 buferIO 的等待事件,此时也没有其他会话的争抢。SQL 虽然不是高效 SQL ,但…...

【Elasticsearch】Elasticsearch 在大数据生态圈的地位 实践经验

Elasticsearch 在大数据生态圈的地位 & 实践经验 1.Elasticsearch 的优势1.1 Elasticsearch 解决的核心问题1.1.1 传统方案的短板1.1.2 Elasticsearch 的解决方案 1.2 与大数据组件的对比优势1.3 关键优势技术支撑1.4 Elasticsearch 的竞品1.4.1 全文搜索领域1.4.2 日志分析…...