前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >openGauss 6.0.0-LTS企业版在openEuler-20.03-LTS下的安装

openGauss 6.0.0-LTS企业版在openEuler-20.03-LTS下的安装

作者头像
授客
发布于 2025-05-07 06:10:22
发布于 2025-05-07 06:10:22
13600
代码可运行
举报
文章被收录于专栏:授客的专栏授客的专栏
运行总次数:0
代码可运行

实践环境

openGauss 6.0.0 LTS 企业版

下载地址:https://opengauss.org/zh/download/archive/

openEuler-22.03-LTS-SP4-x86_64-dvd.iso

下载地址:https://www.openeuler.org/zh/download/?archive=true

https://mirror-nist.isrc.ac.cn/openeuler/openEuler-20.03-LTS-SP4/ISO/x86_64/openEuler-20.03-LTS-SP4-x86_64-dvd.iso

安装模式

一主一备,root安装

准备硬件安装环境

参考

https://docs.opengauss.org/zh/docs/6.0.0/docs/InstallationGuide/准备软硬件安装环境.html

安装操作步骤

安装依赖软件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# yum install -y libaio-devel readline-devel expect tar net-tools

说明:安装net-tools 解决ifconfig命令找不到的问题

关闭操作系统防火墙

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# vi /etc/selinux/config

修改SELINUX的值为disabled

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
SELINUX=disabled
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# setenforce 0
# systemctl disable firewalld
# systemctl stop firewalld

设置字符集参数

将各数据库节点的字符集设置为相同的字符集,可以在/etc/profile文件中添加“export LANG=XXX”(XXX为Unicode编码)。

openEuler中默认配置export LANG=en_US.UTF-8,无需修改

设置时区和时间

使用如下命令将各数据库节点/usr/share/zoneinfo/目录下的时区文件拷贝为/etc/localtime文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
cp /usr/share/zoneinfo/$地区/$时区 /etc/localtime

说明:地区/时区为需要设置时区的信息,例如:Asia/Hong_Kong

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cp /usr/share/zoneinfo/Asia/Hong_Kong /etc/localtime

使用date -s命令将各数据库节点的时间设置为统一时间

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# date -s '2025-04-08 19:42:15'

关闭swap交换内存(可选)

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# swapoff -a

设置网卡MTU值

用如下命令将各数据库节点的网卡MTU值设置为相同大小。MTU值推荐8192,要求不小于1500。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# ifconfig
# ifconfig ens33 mtu 8192

关闭RemoveIPC

在各数据库节点上,关闭RemoveIPC。CentOS操作系统默认为关闭,可以跳过该步骤。

修改/etc/systemd/logind.conf文件,修改RemoveIPC值为no

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RemoveIPC=no

修改/usr/lib/systemd/system/systemd-logind.service文件中的RemoveIPC值为no

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
RemoveIPC=no

重新加载配置参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl daemon-reload
# systemctl restart systemd-logind

检查修改是否生效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# loginctl show-session | grep RemoveIPC
RemoveIPC=no
# systemctl show systemd-logind | grep RemoveIPC
RemoveIPC=no

在其他主机上重复步骤1到步骤4。

关闭HISTORY记录(可选)

说明: 为避免指令历史记录安全隐患,需关闭各主机的history指令

修改根目录下/etc/profile文件,设置HISTSIZE值为0。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
HISTSIZE=0

设置/etc/profile生效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# source /etc/profile

设置root用户远程登录

说明:openEuler-22.03-LTS-SP4-x86_64默认配置已满足下述要求,可跳过该步骤

在openGauss安装时需要root帐户远程登录访问权限

说明: 数据库需要root互信时才开启远程连接。在各主机操作完成并且验证完毕后请及时注销root用户,避免误操作。

修改PermitRootLogin配置,允许用户远程登录。

修改/etc/ssh/sshd_config文件,修改权限配置:

注释掉PermitRootLogin no

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#PermitRootLogin no

紧挨其后增加将PermitRootLogin yes

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
PermitRootLogin yes

修改Banner配置,去掉连接到系统时,系统提示的欢迎信息。欢迎信息会干扰安装时远程操作的返回结果,影响安装正常执行。

编辑/etc/ssh/sshd_config文件,修改Banner配置,注释掉“Banner”所在的行。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
#Banner XXXX

使用如下命令使设置生效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# systemctl restart sshd.service

以root用户身份重新登录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
ssh xxx.xxx.xxx.xxx

​ 说明:xxx.xxx.xxx.xxx为安装openGauss环境的IP地址。

创建XML配置文件

配置数据库名称及各项目录

script/gspylib/etc/conf/cluster_config_template.xml(OM安装包解压后才有)获取XML文件模板。以下配置内容为示例,可自行替换。每行信息均有注释进行说明。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
  <!-- 整体信息 -->
  <CLUSTER>
  <!-- 数据库名称 -->
    <PARAM name="clusterName" value="Cluster_template" />  
  <!-- 数据库节点名称(hostname) -->
    <PARAM name="nodeNames" value="node1_hostname,node2_hostname" />
  <!-- 数据库安装目录-->
    <PARAM name="gaussdbAppPath" value="/opt/huawei/install/app" />
  <!-- 日志目录-->
    <PARAM name="gaussdbLogPath" value="/var/log/omm" />
  <!-- 临时文件目录-->
    <PARAM name="tmpMppdbPath" value="/opt/huawei/tmp" />
  <!--数据库工具目录-->
    <PARAM name="gaussdbToolPath" value="/opt/huawei/install/om" />
  <!--数据库core文件目录-->
    <PARAM name="corePath" value="/opt/huawei/corefile"/>
  <!-- 节点IP,与nodeNames一一对应,所有节点ip类型要一致(ipv4或ipv6)-->
    <PARAM name="backIp1s" value="192.168.0.1,192.168.0.2"/>
    <!-- 是否开启数据库节点自选主 -->
    <PARAM name="enable_dcf" value="on"/>
    <!-- 开启开关后对应的节点IPPORT和角色信息 -->
    <PARAM name="dcf_config" value="[{&quot;stream_id&quot;:1,&quot;node_id&quot;:1,&quot;ip&quot;:&quot;8.92.1.85&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;LEADER&quot;},{&quot;stream_id&quot;:1,&quot;node_id&quot;:2,&quot;ip&quot;:&quot;8.92.1.86&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;FOLLOWER&quot;},{&quot;stream_id&quot;:1,&quot;node_id&quot;:3,&quot;ip&quot;:&quot;8.92.1.87&quot;,&quot;port&quot;:16683,&quot;role&quot;:&quot;FOLLOWER&quot;}]"/>
    <!-- 资源池化模式开关 -->
    <PARAM name="enable_dss" value="on"/>
    <!-- dss实例目录 -->
    <PARAM name="dss_home" value="/opt/huawei/install/data/dss"/>
    <!-- dss共享卷名 -->
    <PARAM name="ss_dss_vg_name" value="data"/>
    <!-- dss挂载卷组名和卷组信息,包含共享卷 -->
    <PARAM name="dss_vg_info" value="data:/dev/sdb,p0:/dev/sdc,p1:/dev/sdd"/>
    <!-- cm投票卷 -->
    <PARAM name="votingDiskPath" value="/dev/sde"/>
    <!-- cm共享卷 -->
    <PARAM name="shareDiskDir" value="/dev/sdf"/>
    <!-- dss开启ssl认证开关 -->
    <PARAM name="dss_ssl_enable" value="on"/>
    <!-- mes通信协议类型  -->
    <PARAM name="ss_interconnect_type" value="TCP"/>
    <!-- rdma绑定cpu序列  -->
    <PARAM name="ss_rdma_work_config" value="1 7"/>
    <!-- 是否开启uwal -->
    <PARAM name="enable_uwal" value="on"/>
    <!-- uwal文件大小 -->
    <PARAM name="uwal_disk_size" value="8589934592"/>
    <!-- uwal日志路径 -->
    <PARAM name="uwal_log_path" value="'/home/omm/data/log/omm/omm/pg_log'"/>
    <!-- uwal压缩开关 -->
    <PARAM name="uwal_rpc_compression_switch" value="false"/>
    <!-- uwal流控开关 -->
    <PARAM name="uwal_rpc_flowcontrol_switch" value="false"/>
    <!-- uwal流控值 -->
    <PARAM name="uwal_rpc_flowcontrol_value" value="128"/>
    <!-- uwal异步写开关 -->
    <PARAM name="uwal_async_append_switch" value="false"/>
    <!-- uwal挂载路径 -->
    <PARAM name="uwal_devices_path" value="'/home/omm/data/dn'"/>

    <!-- VIP信息  -->
    <PARAM name="floatIp1" value="10.10.10.100"/>
    <PARAM name="floatIp2" value="20.20.20.100"/>
    <PARAM name="floatIp3" value="30.30.30.100"/>
  
  </CLUSTER>

须知:

  • “/opt/huawei/install/om”存放互信等工具,为了避免权限问题,不要把实例数据目录放在此目录下。
  • 安装目录和数据目录需为空或者不存在,否则可能导致安装失败。
  • 在对数据库节点的实例进行具体配置时,需确保配置的目录之间不相互耦合。即各个配置目录不关联,删除其中任意一个目录,不会级联删除其它目录。如gaussdbAppPath为"/opt/huawei/install/app",gaussdbLogPath为"/opt/huawei/install/app/omm"。当gaussdbAppPath目录被删除时,会级联删除gaussdbLogPath目录,从而引起其它问题。
  • 若需要安装脚本自动创建安装用户时,各配置的目录需保证不与系统创建的默认用户目录耦合关联。
  • 配置openGauss路径和实例路径时,路径中不能包含"|",";","&","$","<",">","`","\","'",""","{","}","(",")","[","]","~","*","?“特殊字符。
  • 配置数据库节点名称时,请通过hostname命令获取数据库节点的主机名称,替换示例中的node1_hostname,node2_hostname。
  • 配置dcf_config时,角色的配置有leader,follower,passive,logger,其中可投票的角色有leader,follower,logger,配置角色组网时,可投票的角色不能少于3个,因此dcf模式下至少需要三个节点。
  • 资源池化中请谨慎配置所有包含磁盘信息的参数,安装时工具会低格所有参数中配置的磁盘,所有参数中的磁盘不能重复。
  • 资源池化中的ip和dn的数据ip保持一致,dss的端口是db端口+10,dms的端口是db端口+20。
  • om支持ipv6地址安装管理,所有节点的ip类型需一致(ipv4或者ipv6)。

表 1 参数说明

参数

说明

clusterName

openGauss名称。

nodeNames

openGauss中主机名称。

backIp1s

主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。

gaussdbAppPath

openGauss程序安装目录。此目录应满足如下要求:磁盘空间>1GB。与数据库所需其它路径相互独立,没有包含关系。

gaussdbLogPath

openGauss运行日志和操作日志存储目录。此目录应满足如下要求:磁盘空间建议根据主机上的数据库节点数规划。数据库节点预留1GB空间的基础上,再适当预留冗余空间。与openGauss所需其它路径相互独立,没有包含关系。此路径可选。不指定的情况下,openGauss安装时会默认指定“$GAUSSLOG/安装用户名”作为日志目录。

tmpMppdbPath

数据库临时文件存放目录。若不配置tmpMppdbPath,默认存放在/opt/huawei/wisequery/安装用户名_mppdb目录下,其中"opt/huawei/wisequery"是默认指定的数据库系统工具目录,数据库安装时unix_socket_directory默认配置使用了该路径。

gaussdbToolPath

openGauss系统工具目录,主要用于存放互信工具等。此目录应满足如下要求:磁盘空间>100MB。固定目录,与数据库所需其它目录相互独立,没有包含关系。此目录可选。不指定的情况下,openGauss安装时会默认指定“/opt/huawei/wisequery”作为数据库系统工具目录。

corePath

openGauss core文件的指定目录。

enable_dcf

是否开启DCF模式。资源池化不支持dcf模式。

dcf_config

开启DCF模式时配置,DCF启动节点信息。

enable_dss

资源池化模式开关,取值范围on/off,默认为off,

dss_home

dss实例目录,enable_dss为on时必选。

ss_dss_vg_name

dss共享卷名,enable_dss为on时必选。

dss_vg_info

dss挂载卷组信息,包含一个共享卷组,其余为日志卷组,日志卷组的数量和dn的数量保持一致,集中式每个节点最多有一个dn。卷组形如“data:/dev/sdb”,卷组和卷组之间以“,”隔开,enable_dss为on时必选。日志卷组磁盘大小需要大于dn参数max_size_for_xlog_prune的值

votingDiskPath

cm的投票卷,enable_dss为on时必选。

shareDiskDir

cm的共享卷,enable_dss为on时必选。

dss_ssl_enable

dss开启ssl认证开关,取值范围on/off,默认为on。

ss_interconnect_type

mes通信协议类型,默认值TCP,取值范围TCP/RDMA,默认为TCP。

ss_rdma_work_config

rdma用户态poll占用起止cpu,ss_interconnect_type为RDMA时有效,形如"10 15",中间以空格分隔。

floatIp1、floatIp2、floatIp3

虚拟ip。

配置Host基本信息

说明: 每台Host服务器都必须有如下信息,如下示例以node1为例。

内容为示例,可自行替换。每行信息均有注释进行说明。

Host配置以下信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 每台服务器上的节点部署信息 -->
<DEVICELIST>
<!-- 节点1上的部署信息 -->
<DEVICE sn="node1_hostname">
<!-- 节点1的主机名称 -->
<PARAM name="name" value="node1_hostname" />
<!-- 节点1所在的AZAZ优先级 -->
<PARAM name="azName" value="AZ1"/>
<PARAM name="azPriority" value="1"/>
<!-- 节点1IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
<PARAM name="backIp1" value="192.168.0.1"/>
<PARAM name="sshIp1" value="192.168.0.1"/>
<!-- node1是否为级联备, on表示该实例为级联备,另外级联备机在相同的AZ里需要配有备机 -->
<PARAM name="cascadeRole" value="on"/>

表 1 参数说明

参数

说明

name

主机名称。

azName

指定azName(Available Zone Name),字符串(不能含有特殊字符),例如AZ1、AZ2、AZ3。

azPriority

指定azPriority的优先级,azName值不同,azPriority的值也必须不同

backIp1

主机在后端存储网络中的IP地址(内网IP)。所有openGauss主机使用后端存储网络通讯。

sshIp1

设置SSH可信通道IP地址(外网IP)。若无外网,则可以不设置该选项或者同backIp1设置相同IP。

说明: 配置文件中所有IP参数(包含backIp、sshIp、listenIp等)均只支持配置一个IP。如果配置第二个IP参数,则不会读取第二个参数的配置值。 示例:xml配置文件中同时配置backIp1和backIp2参数: 在解析配置文件时仅读取backIp1参数的配置值,不会读取backIp2参数的配置值。 <PARAM name="backIp1" value="192.168.0.1"/> <PARAM name="backIp2" value="192.168.0.2"/>

配置数据库主节点信息

内容为示例,可自行替换。每行信息均有注释进行说明。

数据库主节点配置以下信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!--DBnode-->
<PARAM name="dataNum" value="1"/>
<!--数据库端口号-->
<PARAM name="dataPortBase" value=""/>
<!--DBnode侦听IP-->
<PARAM name="dataListenIp1" value="10.10.10.10,20.20.20.10,30.30.30.10"/>
<!--数据库主节点上的数据目录,及备机数据目录-->
<PARAM name="dataNode1" value="/opt/huawei/install/data/dn,node2_hostname,/opt/huawei/install/data/dn"/>
<!--数据库主节点上的xlog目录,及备机xlog目录-->
<PARAM name="dataNodeXlogPath1" value="/home/omm/gauss_xlog,/home/omm/gauss_xlog "/>
<!--数据库节点上设定同步模式的节点数-->
<PARAM name="dataNode1_syncNum" value="0"/>
<!--数据库节点上自定义设定同步模式的节点方式、数量及顺序,hostname根据主机名自行替换-->
<PARAM name="syncNode_hostname" value="ANY 1(node1_hostname,node2_hostname)"/>
<!--floatIp1、floatIp2为各节点或各az对应的VIP地址,用户需要保证VIP地址为可用VIP,即需要可对外提供服务的VIP(跟现有网卡处于同一网段中)dataListenIp1为各节点监听ip,该选项可以不配置,若不配置,则默认使用backIp1s的值,floatIpMap1表示floatIp与dataListenIp的对应关系,其顺序与dataListenIp1的顺序要相互对应-->
<PARAM name="floatIpMap1" value="floatIp1,floatIp2,floatIp3"/>

表 1 参数说明

参数

说明

dataNum

当前主机上需要部署的数据库节点个数。

dataPortBase

数据库节点的基础端口号,默认值40000。

dataListenIp1

侦听的IP地址。未设置时,使用对应主机上的backIp1生成。第一个IP是主节点所在主机IP,第二个IP是备节点所在主机IP。

dataNode1

用于指定当前主机上的数据库节点的数据存储目录。此目录为数据库的数据存储目录。应规划到数据盘上。

dataNodeXlogPath1

可选参数,用于指定当前数据库中xlog存储路径。此目录为数据库xlog日志存储目录,只支持绝对路径。如不指定,则默认存放在数据目录的pg_xlog目录下。

dataNode1_syncNum

可选参数,与syncNode_hostname参数二选一。如需配置,仅在主机节点下配置。用于指定当前数据库中同步模式的节点数目。取值范围为0~数据库备机节点数。

syncNode_hostname

可选参数,与dataNode1_syncNum参数二选一。如需配置,需要在所有的节点下同时配置。用于指定当前数据库中同步模式的备机节点方式、数量及顺序。syncNode_hostname中的hostname根据主机名自行替换。参数中指定同步备主机名存在且正确,同步备数量不能超过备选同步备主机个数。参数中FIRST与ANY不可以同时存在,ANY支持组合配置,FIRST不支持组合配置,具体见:一主四备配置文件(支持自定义利用FIRST、ANY设置同步备机)。

dataListenIp1

可选参数,各节点监听ip,若不配置,则默认使用backIp1s的值

floatIpMap1

可选参数,配置VIP时需要配置,表示floatIp与dataListenIp的对应关系,其顺序与dataListenIp1的顺序要相互对应

配置CM_SERVER(主、非主)信息

CM支持两节点部署模式

  • CM集群最小节点数限制由3节点减少为2节点,带来显著的成本优势
  • 通过引入第三方网关IP,有效解决CM集群两节点部署模式下自仲裁问题,同时支持动态配置CM集群故障切换策略和数据库集群脑裂故障恢复策略,从而能够尽可能确保集群数据的完整性和一致性。

非CMS主节点配置以下信息。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- cm --> 
<PARAM name="cmServerPortStandby" value="25500"/> 
<PARAM name="cmDir" value="/opt/huawei/data/cm"/>

表 1 参数说明

参数

说明

cmServerPortBase

主CM Server端口号,默认值5000。

cmServerPortStandby

备CM Server端口号,默认值5500。

cmServerListenIp1

CM Server用于侦听CM Agent连接请求或DBA管理请求的IP地址。

cmServerHaIp1

主、备CM Server间通信的IP地址。Value中左边为主CM Server的主机IP地址,右边为备CM Server的主机IP地址。未设置时,默认根据主、备CM Server所在主机的backIp1生成。

cmDir

CM数据文件路径。保存CM Server和CM Agent用到的数据文件,参数文件等。各集群主机上均需配置该参数。

表 2 目录说明

目录

说明

/opt/huawei/data

集群实例的数据存储总目录。此目录为数据库的数据存储目录。应规划到数据盘上。此目录应满足如下要求:磁盘空间请根据实际业务数据量大小规划。各实例间的数据路径相互独立,彼此间没有包含关系。例如本指南中各实例的数据目录规划如表3所示。

表 3 数据库实例数据目录

实例名称

实例数据目录

CM

/opt/huawei/data/cm

主DN

/opt/huawei/data/masterX其中,X为从1开始的连续正整数,用于标识当前主机上的第X个DN。

备DN

/opt/huawei/data/slaveX其中,X为从1开始的连续正整数,用X标识当前主机上的第X个备DN。

一主一备配置文件

cluster_config.xml

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<?xml version="1.0" encoding="UTF-8"?>
<ROOT>
    <!-- openGauss整体信息 -->
    <CLUSTER>
        <!-- 数据库名称 -->
        <PARAM name="clusterName" value="Cluster_template" />
        <!-- 数据库节点名称(hostname) -->
        <PARAM name="nodeNames" value="node1,node2" />
        <!-- 数据库安装目录-->
        <PARAM name="gaussdbAppPath" value="/opt/install/opengauss" />
        <!-- 日志目录-->
        <PARAM name="gaussdbLogPath" value="/var/log/omm" />
        <!-- 临时文件目录-->
        <PARAM name="tmpMppdbPath" value="/opt/tmp"/>
        <!-- 数据库工具目录-->
        <PARAM name="gaussdbToolPath" value="/opt/install/om" />
        <!-- 数据库core文件目录-->
        <PARAM name="corePath" value="/opt/corefile"/>
        <!-- 节点IP,与数据库节点名称列表一一对应 -->
        <PARAM name="backIp1s" value="192.168.88.139,192.168.88.140"/> 
    </CLUSTER>
    <!-- 每台服务器上的节点部署信息 -->
    <DEVICELIST>
        <!-- 节点1上的部署信息 -->
        <DEVICE sn="node1">
            <!-- 节点1的主机名称 -->
            <PARAM name="name" value="node1"/>
            <!-- 节点1所在的AZAZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点1IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.88.139"/>
            <PARAM name="sshIp1" value="192.168.88.139"/>
            
	    <!--dn-->
            <PARAM name="dataNum" value="1"/>
	    <PARAM name="dataPortBase" value="15400"/>
	    <PARAM name="dataNode1" value="/opt/install/data/dn,node2,/opt/install/data/dn"/>
            <PARAM name="dataNode1_syncNum" value="0"/>
        </DEVICE>

        <!-- 节点2上的节点部署信息,其中“name”的值配置为主机名称 -->
        <DEVICE sn="node2">
            <!-- 节点2的主机名称 -->
            <PARAM name="name" value="node2"/>
            <!-- 节点2所在的AZAZ优先级 -->
            <PARAM name="azName" value="AZ1"/>
            <PARAM name="azPriority" value="1"/>
            <!-- 节点2IP,如果服务器只有一个网卡可用,将backIP1和sshIP1配置成同一个IP -->
            <PARAM name="backIp1" value="192.168.88.140"/>
            <PARAM name="sshIp1" value="192.168.88.140"/>
	</DEVICE>
    </DEVICELIST>
</ROOT>

准备安装用户及环境

在集群每个主机上执行以下操作

创建用户组dbgroup。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# groupadd dbgroup

创建用户组dbgroup下的普通用户omm,并设置密码为Gauss*234 。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# useradd -g dbgroup omm
# passwd omm Gauss*234

以root用户在待安装openGauss的任意一台主机,并按规划创建存放安装包的目录。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# mkdir -p /opt/software/openGauss

说明:

  • 不建议把安装包的存放目录规划到openGauss用户的根目录或其子目录下,可能导致权限问题

将安装包openGauss-All-x.x.x-openEuler20.03-x86_64.tar.gz和配置文件cluster_config.xml都上传至上一步所创建的目录中。

进入上述目录,解压tar.gz安装包。解压后,会有OM安装包和Server安装包。继续解压OM安装包,会在/opt/software/openGauss路径下自动生成script子目录,并且在script目录下生成gs_preinstall等各种OM工具脚本。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cd /opt/software/openGauss
# tar -zxvf openGauss-All-x.x.x-openEuler20.03-x86_64.tar.gz
# tar -zxvf openGauss-OM-x.x.x-openEuler20.03-x86_64.tar.gz

说明:

  • 在执行前置脚本gs_preinstall前,需要规划好openGauss配置文件路径、安装包存放路径、程序安装目录、实例数据目录,后续普通用户使用过程中不能再更改这些路径。
  • 运行前置脚本gs_preinstall准备安装环境时,脚本内部会自动将openGauss配置文件、解压后的安装包同步拷贝到其余服务器的相同目录下。
  • 在执行前置脚本或者互信前,请检查/etc/profile文件中是否包含错误输出信息,如果存在错误输出,需手动处理。

修改安装包目录权限

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# chmod 755 -R /opt/software

说明:

openGauss用户须具有/opt/software/openGauss目录的读写权限。

每个节点上,执行hostname命令,确认输出和/etc/hostname保持一致,如果不一致,需要修改,此外,主机名必须和cluster_config.xml配置文件中nodeNames配置项配置的对应主机名保持一致,如果不一致,需要修改:编辑/etc/hostname,文件内容设置为主机名称,然后执行source /etc/profile让修改立即修改。

进入到工具脚本存放目录,使用gs_preinstall准备好安装环境。若为共用环境需加入--sep-env-file=ENVFILE参数分离环境变量,避免与其他用户相互影响,ENVFILE为用户自行指定的环境变量分离文件的路径,可以为一个空文件。

采用交互模式执行前置,并在执行过程中自动创建操作系统root用户互信和omm用户互信:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cd /opt/software/openGauss/script
# ./gs_preinstall -U omm -G dbgroup -X /opt/software/openGauss/cluster_config.xml [--sep-env-file=ENVFILE]
Parsing the configuration file.
Successfully parsed the configuration file.
Installing the tools on the local node.
Successfully installed the tools on the local node.
Setting host ip env
Successfully set host ip env.
Preparing SSH service.
Successfully prepared SSH service.
Checking OS software.
Successfully check OS software.
Checking OS version.
Successfully checked OS version.
Checking cpu instructions.
Successfully checked cpu instructions.
Creating cluster's path.
Successfully created cluster's path.
Set and check OS parameter.
Setting OS parameters.
Successfully set OS parameters.
Warning: Installation environment contains some warning messages.
Please get more details by "/opt/software/openGauss/script/gs_checkos -i A -h node1 -X /opt/software/openGauss/cluster_config.xml --detail".
Set and check OS parameter completed.
Preparing CRON service.
Successfully prepared CRON service.
Setting user environmental variables.
Successfully set user environmental variables.
Setting the dynamic link library.
Successfully set the dynamic link library.
Setting Core file
Successfully set core path.
Setting pssh path
Successfully set pssh path.
Setting Cgroup.
Successfully set Cgroup.
Set ARM Optimization.
No need to set ARM Optimization.
Fixing server package owner.
Setting finish flag.
Successfully set finish flag.
Preinstallation succeeded.

其中,omm数据库管理员(也是运行openGauss的操作系统用户),dbgroup为运行openGauss的操作系统用户的群组名称,/opt/software/openGauss/cluster_config.xml为openGauss配置文件路径。在执行过程中,用户根据提示选择是否创建互信,并输入操作系统root用户或omm用户的密码。

允许创建root用户互信时,预安装脚本在执行的时候会将各个主机的ip,hostname写入到/etc/hosts中,并在每个映射关系后边加入注释内容:#Gauss OM IP Hosts Mapping。

不允许创建root用户互信时,此时需要用户手动先建立互信(也就是将各个主机的ip,hostname写入到/etc/hosts中),然后执行预安装脚本

a.执行下面命令准备安装环境。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cd /opt/software/openGauss/script
# ./gs_preinstall -U omm -G dbgrp -L -X /opt/software/openGauss/cluster_config.xml

说明:此操作需要在每台主机上执行该命令。

采用非交互模式执行前置:

a.参考手工建立互信章节手工建立root用户互信和openGauss用户互信。

b.执行下面命令准备安装环境。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# cd /opt/software/openGauss/script
# ./gs_preinstall -U omm -G dbgrp -X /opt/software/openGauss/cluster_config.xml --non-interactive

说明:

  • 此模式要求用户确保在执行前,已经建立了各节点root用户互信和openGauss用户互信。
  • root用户互信可能会存在安全隐患,因此建议用户在执行完安装后,立即删除各主机上root用户的互信。

配置操作系统参数

openGauss要求各主机上的操作系统参数设置成一定的值,以满足系统运行的性能要求等。

这些参数有些会在openGauss安装环境准备阶段完成设置(参见下文 操作系统参数),且这些参数将直接影响openGauss的运行状态,请仅在确认必要时进行手动调整:

1.以root用户身份修改/etc/sysctl.conf,添加或者修改内核参数值:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
net.ipv4.tcp_retries1 = 5
net.ipv4.tcp_syn_retries = 5
net.ipv4.tcp_synack_retries = 5
net.ipv4.ip_local_port_range = 26000 65535
net.ipv4.tcp_fin_timeout = 60
net.ipv4.tcp_timestamps = 1
vm.extfrag_threshold = 500
vm.overcommit_ratio = 90

保存,执行如下命令使修改配置生效。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# sysctl -p

注意:个人理解,每个节点上都应该进行一样的配置,包括下文所述相关配置,非脚本自动设置参数,建议都手工配置下。

修改MTU网卡参数

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
vi /etc/sysconfig/network-scripts/ifcfg-ens33
# 增加以下配置
MTU=8192
# systemctl restart NetworkManager
# 检查
# ifconfig ens33
ens33: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 8192
...
操作系统参数

操作系统参数

参数名称

参数说明

预安装时是否由脚本自动设置

推荐取值

net.ipv4.tcp_max_tw_buckets

表示同时保持TIME_WAIT状态的TCP/IP连接最大数量。如果超过所配置的取值,TIME_WAIT将立刻被释放并打印警告信息。

10000

net.ipv4.tcp_tw_reuse

允许将TIME-WAIT状态的sockets重新用于新的TCP连接。0表示关闭。1表示开启。

1

net.ipv4.tcp_tw_recycle

表示开启TCP连接中TIME-WAIT状态sockets的快速回收。0表示关闭。1表示开启。

1

net.ipv4.tcp_keepalive_time

表示当keepalive启用的时候,TCP发送keepalive消息的频度。

30

net.ipv4.tcp_keepalive_probes

在认定连接失效之前,发送TCP的keepalive探测包数量。这个值乘以tcp_keepalive_intvl之后决定了一个连接发送了keepalive之后可以有多少时间没有回应。

9

net.ipv4.tcp_keepalive_intvl

当探测没有确认时,重新发送探测的频度。

30

net.ipv4.tcp_retries1

在连接建立过程中TCP协议最大重试次数。

5

net.ipv4.tcp_syn_retries

TCP协议SYN报文最大重试次数。

5

net.ipv4.tcp_synack_retries

TCP协议SYN应答报文最大重试次数。

5

net.ipv4.tcp_retries2

控制内核向已经建立连接的远程主机重新发送数据的次数,低值可以更早的检测到与远程主机失效的连接,因此服务器可以更快的释放该连接。发生“connection reset by peer”时可以尝试调大该值规避问题。

12

vm.overcommit_memory

控制在做内存分配的时候,内核的检查方式。0:表示系统会尽量精确计算当前可用的内存。1:表示不作检查直接返回成功。2:内存总量×vm.overcommit_ratio/100+SWAP的总量,如果申请空间超过此数值则返回失败。内核默认是2过于保守,推荐设置为0,如果系统压力大可以设置为1。

0

net.ipv4.tcp_rmem

TCP协议接收端缓冲区的可用内存大小。分无压力、有压力和压力大三个区间,单位为页面。

8192 250000 16777216

net.ipv4.tcp_wmem

TCP协议发送端缓冲区的可用内存大小。分无压力、有压力和压力大三个区间,单位为页面。

8192 250000 16777216

net.core.wmem_max

socket发送端缓冲区大小的最大值。

21299200

net.core.rmem_max

socket接收端缓冲区大小的最大值。

21299200

net.core.wmem_default

socket发送端缓冲区大小的默认值。

21299200

net.core.rmem_default

socket接收端缓冲区大小的默认值。

21299200

net.ipv4.ip_local_port_range

物理机可用临时端口范围。

26000-65535

kernel.sem

内核信号量参数设置大小。

250 6400000 1000 25600

vm.min_free_kbytes

保证物理内存有足够空闲空间,防止突发性换页。

系统总内存的5%

net.core.somaxconn

定义了系统中每一个端口最大的监听队列的长度,这是个全局的参数。

65535

net.ipv4.tcp_syncookies

当出现SYN等待队列溢出时,启用cookies来处理,可防范少量SYN攻击。0表示关闭SYN Cookies。1表示开启SYN Cookies。

1

net.core.netdev_max_backlog

在每个网络接口接收数据包的速率比内核处理这些包的速率快时,允许送到队列的数据包的最大数目。

65535

net.ipv4.tcp_max_syn_backlog

记录的那些尚未收到客户端确认信息的连接请求的最大值。

65535

net.ipv4.tcp_fin_timeout

系统默认的超时时间。

60

kernel.shmall

内核可用的共享内存总量。

1152921504606846720

kernel.shmmax

内核参数定义单个共享内存段的最大值。

18446744073709551615

net.ipv4.tcp_sack

启用有选择的应答,通过有选择地应答乱序接受到的报文来提高性能,让发送者只发送丢失的报文段(对于广域网来说)这个选项应该启用,但是会增加对CPU的占用。0表示关闭。1表示开启。

1

net.ipv4.tcp_timestamps

TCP时间戳(会在TCP包头增加12节),以一种比重发超时更精确的方式(参考RFC 1323)来启用对RTT的计算,启用可以实现更好的性能。0表示关闭。1表示开启。

1

vm.extfrag_threshold

系统内存不够用时,linux会为当前系统内存碎片情况打分,如果超过vm.extfrag_threshold的值,kswapd就会触发memory compaction。所以这个值设置的接近1000,说明系统在内存碎片的处理倾向于把旧的页换出,以符合申请的需要,而设置接近0,表示系统在内存碎片的处理倾向做memory compaction。

500

vm.overcommit_ratio

系统使用绝不过量分配内存的算法时,系统整个内存地址空间不得超过swap+RAM值的此参数百分比,当vm.overcommit_memory=2时此参数生效。

90

MTU

节点网卡最大传输单元。OS默认值为1500,调整为8192可以提升数据收发的性能。

8192

文件系统参数
  • soft nofile 说明:soft nofile表示软限制,软限制要小于等于硬限制,用户使用的文件句柄数量可以超过该限制,但是如果超过会有告警信息。 推荐取值:1000000
  • hard nofile 说明:hard nofile表示硬限制,是一个严格的限制,用户使用的文件句柄数量一定不能超过该设置。 推荐取值:1000000
  • stack size 说明:线程堆栈大小。 推荐值:3072

文件句柄数设置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

* soft nofile

soft nofile表示软限制,即表示任何用户能打开的最大文件数量为1000000,不管它开启多少个shell。

1000000

* hard nofile

hard nofile表示硬限制,软限制要小于等于硬限制。

1000000

需要对文件句柄数进行手动设置时,使用root用户执行如下命令进行参数修改:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
echo "* soft nofile 1000000" >> /etc/security/limits.conf
echo "* hard nofile 1000000" >> /etc/security/limits.conf

完成修改后,需重启操作系统使得设置的参数生效。

transparent_hugepage设置

openGauss默认关闭使用transparent_hugepage服务,并将关闭命令写入操作系统启动文件。

系统支持的最大进程数设置

需要对系统支持的最大进程数进行手动设置时,编辑/etc/security/limits.d/90-nproc.conf文件,修改* soft nproc参数。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
* soft nproc unlimited

完成修改后,需重启操作系统使得设置的参数生效。

注意:该配置项为用户级设置,非系统设置

系统支持的最大进程数设置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

* soft nproc

soft nproc参数用来限制每个用户的最大processes数量。

unlimited

网卡参数配置

表 4 网卡参数配置

参数名

说明

预安装时是否由脚本自动设置

推荐取值

rx

网卡接收队列长度设置

4096

tx

网卡传送队列长度设置

4096

须知:

  • 网卡参数配置功能只针对万兆及万兆以上级别的业务网卡,即backIp1所绑定的网卡。
  • 设置网卡参数的命令只有在设置成功后,才会被写入系统启动文件。执行失败的信息会被记入后台日志中。

执行安装

登录到openGauss的主机,并切换到omm用户。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# su - omm

说明:

  • omm指的是前置脚本gs_preinstall中-U参数指定的用户。
  • 安装脚本gs_install必须以前置脚本中指定的omm执行,否则,脚本执行会报错。

使用gs_install安装openGauss。若为环境变量分离的模式安装的数据库需要source环境变量分离文件ENVFILE

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ source ENVFILE # 若为环境变量分离的模式
$ cd /opt/software/openGauss/script
$ gs_install -X /opt/software/openGauss/cluster_config.xml

/opt/software/openGauss/cluster_config.xml为openGauss配置文件的路径。在执行过程中,用户需根据提示输入数据库的密码,密码具有一定的复杂度,为保证用户正常使用该数据库,请记住输入的数据库密码。

设置的密码要符合复杂度要求:

  • 最少包含8个字符,最多包含16个字符。
  • 不能和用户名、当前密码(ALTER)、或当前密码反序相同。
  • 至少包含大写字母(A-Z)、小写字母(a-z)、数字、非字母数字字符(限定为~!@#$%^&*()-_=+\|[{}];:,<.>/?)四类字符中的三类字符。

安装过程中会生成ssl证书,证书存放路径为{gaussdbAppPath}/share/sslcert/om,其中{gaussdbAppPath}为openGauss配置文件中指定的程序安装目录。

日志文件路径下会生成两个日志文件:“gs_install-YYYY-MMDD_HHMMSS.loggs_local-YYYY-MM-DD_HHMMSS.log

说明:

  • openGauss支持字符集的多种写法:gbk/GBK、UTF-8/UTF8/utf8/utf-8Latine1/latine1
  • 安装时若不指定字符集,默认字符集为SQL_ASCII,为简化和统一区域locale默认设置为C,若想指定其他字符集和区域,请在安装时使用参数--
  • gsinit-parameter="--locale=LOCALE"来指定,LOCALE为新数据库设置缺省的区域。

例如用户要将数据库编码格式初始化为UTF-8,可以采用如下步骤:

locale -a |grep utf8命令查看系统支持UTF-8编码的区域,如下:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ locale -a|grep utf8
C.utf8
en_AG.utf8
en_AU.utf8
en_BW.utf8
en_CA.utf8
en_DK.utf8
en_GB.utf8
en_HK.utf8
en_IE.utf8
en_IL.utf8
en_IN.utf8
en_NG.utf8
en_NZ.utf8
en_PH.utf8
en_SC.utf8
en_SG.utf8
en_US.utf8
en_ZA.utf8
en_ZM.utf8
en_ZW.utf8
zh_CN.utf8
zh_HK.utf8
zh_SG.utf8
zh_TW.utf8

其中en_US.utf8表示区域en_US支持UTF-8编码。

根据需要选择区域,如en\_US.utf8,初始化数据库时加入--locale=en\_US.utf8选项进行安装,示例如下

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gs_install -X /opt/software/openGauss/cluster_config.xml --gsinit-parameter="--locale=en_US.utf8"

安装执行成功后,如果预安装用root执行,那么默认会将数据库的最大连接数设置为5k;如果预安装用普通用户执行,那么当系统信号量小于640万,数据库最大连接数设置为1k,其他情况会将数据库的最大连接数设置为5k。

安装执行成功之后,需要手动删除主机root用户的互信,即删除openGauss数据库各节点上的互信文件。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# rm –rf ~/.ssh

安装验证

以omm用户身份登录服务器。

执行gs_om -t status命令检查数据库状态是否正常

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
$ gs_om -t status
-----------------------------------------------------------------------

cluster_name    : Cluster_template
cluster_state   : Normal
redistributing  : No

说明:cluster_state显示Normal表示数据库可正常使用。

执行gsql -d postgres -p 15400 连接数据库,查看能否连接成功。

说明:postgres为需要连接的数据库名称(数据库安装完成后,默认生成的数据库)。15400为数据库主节点的端口号,即XML配置文件中的dataPortBase`的值。请根据实际情况替换。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
# gsql -d postgres -p 15400
gsql ((openGauss 6.0.0 build aee4abd5) compiled at 2024-09-29 19:14:27 commit 0 last mr  )
Non-SSL connection (SSL connection is recommended when requiring high-security)
Type "help" for help.

openGauss=# CREATE DATABASE testdb WITH ENCODING 'GBK' template = template0;
CREATE DATABASE
openGauss=# \q

说明:如上,连接成功后,输入CREATE DATABASE ...,回车,创建一个名为testdb数据库,并指定数据库的字符集为GBK,最后输出\q回车退出。

参考链接

https://docs.opengauss.org/zh/docs/6.0.0/docs/InstallationGuide/企业版安装.html

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2025-05-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
linux中的awk命令详解
关于awk脚本,我们需要注意两个关键词BEGIN和END。 BEGIN{ 这里面放的是执行前的语句 } END {这里面放的是处理完所有的行后要执行的语句 } {这里面放的是处理每一行时要执行的语句} 假设有这么一个文件(学生成绩表):
全栈程序员站长
2022/09/08
1.6K0
linux中的awk命令详解
Linux awk命令详细教程
AI摘要:本文详细介绍了Linux下的文本处理工具awk的使用方法,包括其语法、选项参数、内置变量、常用操作(如打印、条件判断、循环等)以及一些实用的示例。awk通过将文本按行读取并以指定的分隔符分割成多个字段,使得对文本的处理变得灵活高效。文章还提供了如何打印指定列、过滤日志、按条件统计、指定多个分隔符、日志切割、匹配指定列和统计文件大小等实际应用示例,以及一个统计nginx日志数据的awk脚本示例。通过这些内容,读者可以全面掌握awk命令的强大功能,有效地应用于日志分析、数据处理等场景。
曈曈too
2024/03/16
4700
linux awk命令详解
简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。 awk有3个不同版本: awk、nawk和gawk,未作特别说明,一般指gawk,gawk 是 AWK 的 GNU 版本。 awk其名称得自于它的创始人 Alfred Aho 、Peter Weinberger 和 Brian Kernighan 姓氏的首个字母。实际上 AWK 的确拥有自己
千往
2018/01/24
3K0
一天一个 Linux 命令(21):awk 命令
本文为joshua317原创文章,转载请注明:转载自joshua317博客 https://www.joshua317.com/article/151
joshua317
2021/10/09
2.1K0
linux实战(6)linux核心数据处理查找命令之find,cut,awk, sed命令用法
cut应用场景:通常对数据进行列的提取 (在工作中,我们通常会对数据库或者查出来的日志进行列的提取)
大数据小禅
2021/08/16
1.3K0
linux实战(6)linux核心数据处理查找命令之find,cut,awk, sed命令用法
【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法
cut应用场景:通常对数据进行列的提取 (在工作中,我们通常会对数据库或者查出来的日志进行列的提取)
大数据小禅
2022/04/13
1.4K0
【精通Linux系列】inux核心数据处理查找命令之find,cut,awk, sed命令用法
Linux awk 命令
AWK是一种处理文本文件的语言,是一个强大的文本分析工具。之所以叫AWK是因为其取了三位创始人Alfred Aho,Peter Weinberger, 和 Brian Kernighan 的 Family Name 的首字符。
狼啸风云
2019/11/03
4.4K0
Linux命令(36)——awk命令
AWK是一个优良的文本处理工具,Linux及Unix环境中现有的功能最强大的数据处理引擎之一。数据可以来自标准输入(stdin)、一个或多个文件,或其它命令的输出。它支持用户自定义函数和动态正则表达式等先进功能,是linux/unix下的一个强大编程工具。它在命令行中使用,但更多是作为脚本来使用。awk有很多内建的功能,比如数组、函数等,这是它和C语言的相同之处,灵活性是awk最大的优势。简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再进行各种分析处理。
恋喵大鲤鱼
2018/08/03
2.4K0
Linux生产环境上,最常用的一套“AWK“技巧
awk的命名得自于它的三个创始人姓别的首字母,都是80来岁的老爷爷了。当然也有四个人的组合:流行的GoF设计模式。但对于我这游戏爱好者来说,想到的竟然是三位一体,果然是不争气啊。
xjjdog
2019/07/10
9030
Linux生产环境上,最常用的一套“AWK“技巧
Linux之awk命令详解(一)
awk是一个报告生成器,拥有强大的文本格式化能力。它的命名方式也是由三位大佬,分别叫Aho,Weinberger,Kernighan,的三个人,awk命令取得他们的名字首字母。
AsiaYe
2019/11/06
11.6K0
生信人的自我修养:Linux 命令速查手册
精心整理了生物信息学中常用的 Linux 命令,很不容易。所有命令的用法都经本人亲自测试。掌握这些命令,是每一个生信人基本的自我修养。
简说基因
2020/12/14
7.5K0
Linux常用命令面试题(1)
tail -n 2000 表示的是显示文件最后2000行,差别很大,注意灵活使用。
小萌哥
2020/07/20
1.5K0
Linux之awk命令详解(二)
上一篇文章我们简单举了几个例子了解了一下awk命令的基本语法,这里,再次贴出来这个命令的基本语法,如下:
AsiaYe
2019/11/06
2.7K1
linux运维中的命令梳理(三)
----------文本操作命令---------- sed命令:文本编辑工具 sed是一个很好的文件处理工具,本身是一个管道命令,主要是以行为单位进行处理,可以将数据行进行替换、删除、新增、选取等特定工作,下面先了解一下sed的用法 sed命令行格式为: sed [-nefri] ‘command’ 输入文本 常用选项: -n∶使用安静(silent)模式。在一般 sed 的用法中,所有来自 STDIN的资料一般都会被列出到萤幕上。但如果加上 -n 参数
洗尽了浮华
2018/01/23
8.2K0
简明AWK实战教程
AWK是一个强大的格式化文本处理工具,一般在类Unix操作系统中都是必带的工具(Linux、Mac OS),因此,使用无需安装,非常的方便与便捷。
流川枫
2018/09/12
1.8K0
简明AWK实战教程
Linux的文本处理工具浅谈-awk sed grep
日志样子举例如下: http://youku.com 200 http://youku.com 302 http://youku.com 403 http://youku.com 502 http://baidu.com 302 http://baidu.com 404 现想使用awk命令按域名统计 返回码大于等于400的百分比,假如优酷总共有4行,大于等于400的返回码有两行,那占比就为50%
sunsky
2020/08/20
3.6K0
Linux下find、awk、sed、grep命令的例子
Global Regular Expression Print(全局正则表达式打印)
wuweixiang
2019/04/09
1.9K0
五分钟入门文本处理三剑客grep awk sed
grep awk sed是Linux下文本处理常用的命令,能完成很多神奇的操作,今天就分享一下这三个命令最常见的用法
Java识堂
2020/05/27
7030
linux 的一些脑洞操作
把当前文件夹的文件名用","连接成一行,或者将多行转变为一行 ls | paste -s -d "," # -s 选项将输入进行一次性粘贴 ls | xargs | sed 's/ /,/g' #xargs 将输入作为参数(空格分隔)传入 ls | awk '{printf "%s,",$0}' 将行逆序输出 sed '1!G;h;$!d'file # 1!G 第一行不执行G命令,从第二行开始执行;$!d 最后一行不删除;第一行自动存入模式空间,将模式空间内容(第一行)放到保持空间(h),然后删除模式
用户1680321
2018/04/27
1.3K0
linux 的一些脑洞操作
Shell常用命令使用说明
chattr 命令用于改变文件属性 这项指令可改变存放在ext2文件系统上的文件或目录属性,这些属性共有以下8种模式:
mikelLam
2022/10/31
4.8K0
推荐阅读
相关推荐
linux中的awk命令详解
更多 >
LV.0
YY大数据开发
目录
  • 实践环境
  • 安装模式
  • 准备硬件安装环境
  • 安装操作步骤
    • 安装依赖软件
    • 关闭操作系统防火墙
    • 设置字符集参数
    • 设置时区和时间
    • 关闭swap交换内存(可选)
    • 设置网卡MTU值
    • 关闭RemoveIPC
    • 关闭HISTORY记录(可选)
    • 设置root用户远程登录
    • 创建XML配置文件
      • 配置数据库名称及各项目录
      • 配置Host基本信息
      • 配置数据库主节点信息
      • 配置CM_SERVER(主、非主)信息
      • 一主一备配置文件
    • 准备安装用户及环境
    • 配置操作系统参数
      • 操作系统参数
      • 文件系统参数
      • transparent_hugepage设置
      • 系统支持的最大进程数设置
      • 网卡参数配置
    • 执行安装
    • 安装验证
  • 参考链接
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档