50 openEuler搭建PostgreSQL数据库服务器-配置环境

news/2024/7/9 19:45:39 标签: 服务器, 数据库, postgresql, 开源软件, linux

文章目录

    • 50 openEuler搭建PostgreSQL数据库服务器-配置环境
      • 50.1 关闭防火墙并取消开机自启动
      • 50.2 修改SELINUX为disabled
      • 50.3 创建组和用户
      • 50.4 创建数据盘
        • 50.4.1 方法一:在root权限下使用fdisk进行磁盘管理
        • 50.4.2 方法二:在root权限下使用LVM进行磁盘管理
      • 50.5 数据目录授权

50 openEuler搭建PostgreSQL数据库服务器-配置环境

image-20221219190513462 说明:
以下环境配置仅为参考示例,具体配置视实际需求做配置

50.1 关闭防火墙并取消开机自启动

image-20221219190513462 说明:
测试环境下通常会关闭防火墙以避免部分网络因素影响,视实际需求做配置。

  1. 在root权限下停止防火墙。

    # systemctl stop firewalld
    

    例如示例命令如下:

    [root@superman-21 ~]# systemctl stop firewalld  
    [root@superman-21 ~]# 
    
  2. 在root权限下关闭防火墙。

    # systemctl disable firewalld
    

    image-20221219190513462 说明:
    执行disable命令关闭防火墙的同时,也取消了开机自启动。

    例如示例命令如下:

    [root@superman-21 ~]# systemctl disable firewalld
    Removed /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service.
    Removed /etc/systemd/system/multi-user.target.wants/firewalld.service.
    [root@superman-21 ~]# 
    

50.2 修改SELINUX为disabled

  1. 永久关闭,在root权限下修改配置文件。

    # sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    

    image-20221219190513462 说明:

    重启后生效。

    例如示例命令如下:

    [root@superman-21 ~]# sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/sysconfig/selinux
    [root@superman-21 ~]# 
    [root@superman-21 ~]# cat /etc/sysconfig/selinux 
    
    # This file controls the state of SELinux on the system.
    # SELINUX= can take one of these three values:
    #     enforcing - SELinux security policy is enforced.
    #     permissive - SELinux prints warnings instead of enforcing.
    #     disabled - No SELinux policy is loaded.
    SELINUX=disabled
    # SELINUXTYPE= can take one of these three values:
    #     targeted - Targeted processes are protected,
    #     minimum - Modification of targeted policy. Only selected processes are protected. 
    #     mls - Multi Level Security protection.
    SELINUXTYPE=targeted
    
    
    [root@superman-21 ~]#
    
  2. 临时关闭

    # setenforce 0
    

    image-20221219190513462 说明:

    即时生效,但重启后会自动开启。

    例如示例命令如下:

    [root@superman-21 ~]# setenforce 0
    setenforce: SELinux is permissive
    [root@superman-21 ~]# 
    

50.3 创建组和用户

image-20221219190513462 说明:
服务器环境下,为了系统安全,通常会为进程分配单独的用户,以实现权限隔离。本章节创建的组和用户都是操作系统层面的,不是数据库层面的。

  1. 在root权限下创建MySQL用户(组)。

    # groupadd postgres
    # useradd -g postgres postgres
    

    例如示例命令如下:

    [root@superman-21 ~]# groupadd postgres
    [root@superman-21 ~]# 
    [root@superman-21 ~]# useradd -g postgres postgres
    [root@superman-21 ~]# 
    
  2. 在root权限下设置MySQL用户密码。

    # passwd postgres
    

    需要重复输入密码(根据实际需求设置密码)。

    例如示例命令如下:

    [root@superman-21 ~]# passwd postgres
    更改用户 postgres 的密码 。
    新的密码: 
    重新输入新的密码: 
    passwd:所有的身份验证令牌已经成功更新。
    [root@superman-21 ~]# 
    

50.4 创建数据盘

image-20221219190513462 说明:

  • 进行性能测试时,数据目录使用单独硬盘,需要对硬盘进行格式化并挂载,参考方法一或者方法二
  • 非性能测试时,在root权限下执行以下命令,创建数据目录即可。然后跳过本小节:
    # mkdir /data

50.4.1 方法一:在root权限下使用fdisk进行磁盘管理

  1. 创建分区(以/dev/sdb为例,根据实际情况创建)

    # fdisk /dev/sdb
    
  2. 输入n,按回车确认。

  3. 输入p,按回车确认。

  4. 输入1,按回车确认。

  5. 采用默认配置,按回车确认。

  6. 采用默认配置,按回车确认。

  7. 输入w,按回车保存。

    例如示例命令如下:

    [root@superman-21 ~]# fdisk /dev/sdb
    
    欢迎使用 fdisk (util-linux 2.37.2)。
    更改将停留在内存中,直到您决定将更改写入磁盘。
    使用写入命令前请三思。
    
    设备不包含可识别的分区表。
    创建了一个磁盘标识符为 0x9ac1f07b 的新 DOS 磁盘标签。
    
    命令(输入 m 获取帮助):n
    分区类型
       p   主分区 (0 primary, 0 extended, 4 free)
       e   扩展分区 (逻辑分区容器)
    选择 (默认 p):p
    分区号 (1-4, 默认  1): 1
    第一个扇区 (2048-41943039, 默认 2048): 
    最后一个扇区,+/-sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): 
    
    创建了一个新分区 1,类型为“Linux”,大小为 20 GiB。
    
    命令(输入 m 获取帮助):w
    分区表已调整。
    将调用 ioctl() 来重新读分区表。
    正在同步磁盘。
    
    [root@superman-21 ~]# 
    
  8. 创建文件系统(以xfs为例,根据实际需求创建文件系统)

    # mkfs.xfs /dev/sdb1
    

    例如示例命令如下:

    [root@superman-21 ~]# mkfs.xfs /dev/sdb1
    meta-data=/dev/sdb1              isize=512    agcount=4, agsize=1310656 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=1, sparse=1, rmapbt=0
             =                       reflink=1    bigtime=0 inobtcount=0
    data     =                       bsize=4096   blocks=5242624, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@superman-21 ~]# 
    
  9. 创建“/data”文件夹以供操作系统挂载分区使用。

    # mkdir /data
    

    例如示例命令如下:

    [root@superman-21 ~]# mkdir /data    
    [root@superman-21 ~]# 
    
  10. 执行命令编辑“/etc/fstab”使重启后自动挂载数据盘。

    # echo "/dev/sdb1 /data                       xfs    defaults        1 1" >> /etc/fstab
    

    例如示例命令如下:

    [root@superman-21 ~]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Nov 28 13:29:03 2022
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk/'.
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
    #
    # After editing this file, run 'systemctl daemon-reload' to update systemd
    # units generated from this file.
    #
    /dev/mapper/vg00-lv_root /                       ext4    defaults        1 1
    UUID=70c4f6e0-20be-46f8-93ba-97c8083bc37a /boot                   ext4    defaults        1 2
    /dev/mapper/vg00-lv_swap none                    swap    defaults        0 0
    [root@superman-21 ~]# 
    [root@superman-21 ~]# echo "/dev/sdb1 /data                       xfs    defaults        1 1" >> /etc/fstab
    [root@superman-21 ~]# 
    [root@superman-21 ~]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Nov 28 13:29:03 2022
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk/'.
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
    #
    # After editing this file, run 'systemctl daemon-reload' to update systemd
    # units generated from this file.
    #
    /dev/mapper/vg00-lv_root /                       ext4    defaults        1 1
    UUID=70c4f6e0-20be-46f8-93ba-97c8083bc37a /boot                   ext4    defaults        1 2
    /dev/mapper/vg00-lv_swap none                    swap    defaults        0 0
    /dev/sdb1 /data                       xfs    defaults        1 1
    [root@superman-21 ~]# 
    
  11. 挂载数据盘。

    # mount -a
    

    例如示例命令如下:

    [root@superman-21 ~]# df -h
    文件系统                  容量  已用  可用 已用% 挂载点
    devtmpfs                  4.0M     0  4.0M    0% /dev
    tmpfs                     1.7G   12K  1.7G    1% /dev/shm
    tmpfs                     677M  9.1M  668M    2% /run
    tmpfs                     4.0M     0  4.0M    0% /sys/fs/cgroup
    /dev/mapper/vg00-lv_root   41G  2.9G   36G    8% /
    tmpfs                     1.7G     0  1.7G    0% /tmp
    /dev/sda1                 974M  249M  659M   28% /boot
    [root@superman-21 ~]# 
    [root@superman-21 ~]# mount -a
    [root@superman-21 ~]# 
    [root@superman-21 ~]# df -h
    文件系统                  容量  已用  可用 已用% 挂载点
    devtmpfs                  4.0M     0  4.0M    0% /dev
    tmpfs                     1.7G   12K  1.7G    1% /dev/shm
    tmpfs                     677M  9.1M  668M    2% /run
    tmpfs                     4.0M     0  4.0M    0% /sys/fs/cgroup
    /dev/mapper/vg00-lv_root   41G  2.9G   36G    8% /
    tmpfs                     1.7G     0  1.7G    0% /tmp
    /dev/sda1                 974M  249M  659M   28% /boot
    /dev/sdb1                  20G  175M   20G    1% /data
    [root@superman-21 ~]#
    

50.4.2 方法二:在root权限下使用LVM进行磁盘管理

image-20221219190513462 说明:
此步骤需要安装镜像中的lvm2相关包,步骤如下:

  1. 配置本地yum源,详细信息请参考《openEuler 22.03-LTS 搭建repo服务器》。如果已经执行,则可跳过此步。
  2. 在root权限下执行命令安装lvm2。
    # yum install lvm2
  1. 创建物理卷(sdb为硬盘名称,具体名字以实际为准)。

    # pvcreate /dev/sdb
    

    例如示例命令如下:

    [root@superman-21 ~]# pvcreate /dev/sdb
      Physical volume "/dev/sdb" successfully created.
    [root@superman-21 ~]# 
    
  2. 创建物理卷组(其中vg_data为创建的卷组名称,具体名字以实际规划为准)。

    # vgcreate vg_data /dev/sdb
    

    例如示例命令如下:

    [root@superman-21 ~]# vgcreate vg_data /dev/sdb
      Volume group "vg_data" successfully created
    [root@superman-21 ~]# 
    
  3. 创建逻辑卷(其中20G为规划的逻辑卷大小,具体大小以实际情况为准;lv_data为创建的逻辑卷的名字,具体名称以实际规划为准。)。

    # lvcreate -L 20476M -n lv_data vg_data
    

    例如示例命令如下:

    [root@superman-21 ~]# lvcreate -L 20476M -n lv_data vg_data 
      Logical volume "lv_data" created.
    [root@superman-21 ~]# 
    
  4. 创建文件系统。

    # mkfs.xfs /dev/vg_data/lv_data
    

    例如示例命令如下:

    [root@superman-21 ~]# mkfs.xfs /dev/vg_data/lv_data
    meta-data=/dev/vg_data/lv_data   isize=512    agcount=4, agsize=1310464 blks
             =                       sectsz=512   attr=2, projid32bit=1
             =                       crc=1        finobt=1, sparse=1, rmapbt=0
             =                       reflink=1    bigtime=0 inobtcount=0
    data     =                       bsize=4096   blocks=5241856, imaxpct=25
             =                       sunit=0      swidth=0 blks
    naming   =version 2              bsize=4096   ascii-ci=0, ftype=1
    log      =internal log           bsize=4096   blocks=2560, version=2
             =                       sectsz=512   sunit=0 blks, lazy-count=1
    realtime =none                   extsz=4096   blocks=0, rtextents=0
    [root@superman-21 ~]# 
    
  5. 创建“/data”文件夹以供操作系统挂载分区使用。

    # mkdir /data
    

    例如示例命令如下:

    [root@superman-21 ~]# mkdir /data    
    [root@superman-21 ~]# 
    
  6. 执行命令编辑“/etc/fstab”使重启后自动挂载数据盘。

    # echo "/dev/vg_data/lv_data /data                       xfs    defaults        1 1" >> /etc/fstab
    

    例如示例命令如下:

    [root@superman-21 ~]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Nov 28 13:29:03 2022
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk/'.
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
    #
    # After editing this file, run 'systemctl daemon-reload' to update systemd
    # units generated from this file.
    #
    /dev/mapper/vg00-lv_root /                       ext4    defaults        1 1
    UUID=70c4f6e0-20be-46f8-93ba-97c8083bc37a /boot                   ext4    defaults        1 2
    /dev/mapper/vg00-lv_swap none                    swap    defaults        0 0
    [root@superman-21 ~]# 
    [root@superman-21 ~]# echo "/dev/vg_data/lv_data /data                       xfs    defaults        1 1" >> /etc/fstab
    [root@superman-21 ~]# 
    [root@superman-21 ~]# cat /etc/fstab 
    
    #
    # /etc/fstab
    # Created by anaconda on Mon Nov 28 13:29:03 2022
    #
    # Accessible filesystems, by reference, are maintained under '/dev/disk/'.
    # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info.
    #
    # After editing this file, run 'systemctl daemon-reload' to update systemd
    # units generated from this file.
    #
    /dev/mapper/vg00-lv_root /                       ext4    defaults        1 1
    UUID=70c4f6e0-20be-46f8-93ba-97c8083bc37a /boot                   ext4    defaults        1 2
    /dev/mapper/vg00-lv_swap none                    swap    defaults        0 0
    /dev/vg_data/lv_data /data                       xfs    defaults        1 1
    [root@superman-21 ~]# 
    
  7. 挂载数据盘。

    # mount -a
    

    例如示例命令如下:

    [root@superman-21 ~]# df -h
    文件系统                  容量  已用  可用 已用% 挂载点
    devtmpfs                  4.0M     0  4.0M    0% /dev
    tmpfs                     1.7G   12K  1.7G    1% /dev/shm
    tmpfs                     677M  9.1M  668M    2% /run
    tmpfs                     4.0M     0  4.0M    0% /sys/fs/cgroup
    /dev/mapper/vg00-lv_root   41G  2.9G   36G    8% /
    tmpfs                     1.7G     0  1.7G    0% /tmp
    /dev/sda1                 974M  249M  659M   28% /boot
    [root@superman-21 ~]# 
    [root@superman-21 ~]# mount -a
    [root@superman-21 ~]# 
    [root@superman-21 ~]# df -h
    文件系统                     容量  已用  可用 已用% 挂载点
    devtmpfs                     4.0M     0  4.0M    0% /dev
    tmpfs                        1.7G   12K  1.7G    1% /dev/shm
    tmpfs                        677M  9.1M  668M    2% /run
    tmpfs                        4.0M     0  4.0M    0% /sys/fs/cgroup
    /dev/mapper/vg00-lv_root      41G  2.9G   36G    8% /
    tmpfs                        1.7G     0  1.7G    0% /tmp
    /dev/sda1                    974M  249M  659M   28% /boot
    /dev/mapper/vg_data-lv_data   20G  175M   20G    1% /data
    [root@superman-21 ~]#
    

50.5 数据目录授权

在root权限下修改目录权限。

# chown -R postgres:postgres /data

例如示例命令如下:

[root@superman-21 ~]# chown -R postgres:postgres /data
[root@superman-21 ~]# 

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

image-20230409101719462


http://www.niftyadmin.cn/n/214655.html

相关文章

代码版本M、RC、GA、Release等标识的区别

引言 最近听说spring framework有了重大版本调整,出了6.0的GA版本了 那GA是啥意思呢? 看了下spring 官网和代码仓库,除了GA,还有M、RC、Release等 Spring FrameworkLevel up your Java code and explore what Spring can do f…

数字化转型的避坑指南:细说数字化转型十二大坑

随着信息技术的快速发展,数字化转型已经成为许多企业发展的必经之路。然而,数字化转型过程中也存在许多坑,如果不谨慎处理,就可能导致企业陷入困境。本文将细说数字化转型的十二大坑,并提供相应的避坑指南。 1、不了解…

VS for Qt 向MySql 数据库中插入中文

问题: 今天我想向数据库中插入中文,但是,插入的时候会报错: 首先先看报错: QSqlError("1054", "QMYSQL: Unable to execute query", "Unknown column 韩红 in field list")如果错误码…

协程启动 GlobalScope.launch和runBlocking的区别

协程启动 如果想在协程非作用域中启动协程,有两种方法 runBlocking和GlobalScope.launch{}.start() 其中runBlocking会阻塞主线程,直到回调代码执行完毕,该方法不能用来异步启动,只能用来从非协程作用域切换到协程作用域(比如执…

kafaka学习

kafaka 消息队列:通常用来解决一个进程内,多线程环境下,资源竞争的问题;但是消息队列的锁的粒度太大了,需要进行拆分 消息队列中间组件 一个进程中,同时存在生产者、消费者、消息队列,在分布…

C#基础复习

目录 格式字符串 多重标记和值 预定义类型 用户定义类型 值类型和引用类型 存储引用类型对象的成员 C#类型的分类 静态类型和dynamic关键字 类的基本概念 类成员的类型 为数据分配内存 访问修饰符 格式字符串 多重标记和值 C#程序就是一组类型声明,学习C#就是学习…

WebSocket详解-02

一、背景 Websocket是html5提出的一个协议规范,是为解决客户端与服务端实时通信。 WebSocket在连接关闭时会触发onclose事件, 在连接异常时会触发onerror事件。但在弱网环境下, 它们的触发灵敏度不高, 往往延迟很久才触发, 前端再去进行重连操作, 这样很不友…

目标检测——YOLOv7(十三)

简介: 继美团发布YOLOV6之后,YOLO系列原作者也发布了YOLOV7。主要从两点进行模型的优化:模型结构重参化和动态标签分配。 YOLOv7的特点是快!相同体量下比YOLOv5精度更高,速度快120%,比YOLOX快180%。 Github…