RedHat搭建Web运用之PostgreSQL数据库安装(一)

开心一笑

【男:问你个问题,你喜欢猫还是狗?
女:狗狗。
男:汪汪汪!
女:……
男:我太幸福了,你竟然喜欢我!】

提出问题

如何一步一步搭建web服务器???

解决问题

RedHat搭建Web运用之PostgreSQL数据库安装(一)_第1张图片
励志图片

最近在给一家银行部署公司的产品,觉得蛮有意思的,特意整理下,分享给大家:

软件环境需求

本文章主要分享如何安装postgresql数据库以及如何如何搭建离线yum和安装相关的依赖。

数据库是安装到一台RedHat6.7服务器上,redis,jdk,tomcat是安装到另一台服务器上的

  • 数据库服务器 postgresql-9.4.0 root、innodb(用户)
RedHat搭建Web运用之PostgreSQL数据库安装(一)_第2张图片
001.png

安装环境准备

使用root账号登陆系统

#su -l

确认系统时区

#date

安装包和脚本的放置位置

  • 行方提供应用服务器和数据库服务器。

  • 步骤1:root用户登录系统

  • 步骤2:应用服务器和数据库服务器各创建安装包放置目录,执行如下命令

      #  mkdir  /rjxf
    

步骤3:将安装包拷贝到目录/rjxf下

端口占用概况

序号 名字 所在服务器位置 端口号

  • 1 Postgresql 数据库服务器 5432
  • 2 Redis 应用服务器 6379
  • 3 Tomcat 应用服务器 8080

检查服务器的使用状况

  • 1 查看磁盘使用情况,如果磁盘不足,则使用挂载 df -hl
  • 2 mount方法使用 mkdir [自定义挂载目录]
    mount -o loop /挂载文件.iso /[自定义挂载目录]
  • 3 查看服务器的整体安装情况 cat /etc/redhat-release
  • 4 检查gcc安装情况,提示没有文件输入表示安装成功 gcc
  • 5 安装gcc yum install gcc

挂载镜像

【前置条件】:在数据库服务器需要挂载镜像。
步骤1:root用户登录系统

# cd /
# mkdir rhel
# mount -o loop /rjxf/rhel-server-6.7-x86_64-dvd.iso /rhel

验证挂载是否成功

# mount 

搭建离线yum

# vi /etc/yum.repos.d/local.repo

在文件中增加下面配置

[dvd]
name=install dvd
baseurl=file:///rhel/Server
enabled=1
gpgcheck=0

保存退出后,清除YUM缓存(需要按ESC)

# yum clean all

查看可以安装的程序包

# yum list

把yum.repos.d中的原有的文件和备份删除

安装GCC

程序包需要编译,安装gcc

# yum install gcc

安装postgresql数据库

创建用户及数据目录

【前置条件】:在数据库服务器上。
步骤1:root用户登录系统

步骤编号 步骤名称 执行命令

  • 1 创建innodb用户 useradd innodb

  • 2 给innodb用户创建密码 passwd innodb

  • 3 切换根目录 cd /

  • 4 创建innodb文件夹 mkdir /innode

  • 5 创建shell文件夹 mkdir /innode/shell

  • 6 复制脚本文件 cp /rjxf/initTable.sql /innode/shell/(这里可以先略过,这是我们项目的初始化脚本)

  • 7 复制脚本文件 cp /rjxf/initData.sql /innode/shell/(这里可以先略过,这是我们项目的初始化脚本)

  • 8 给文件夹赋权 chown innodb:innodb -R /innode

  • 9 切换到innodb用户 su innodb

  • 10 创建文件数据目录

      mkdir /innode/postgresql 
      mkdir /innode/localbackup
      mkdir /innode/pgdata
      mkdir /innode/logs
      mkdir /innode/logs/postgresql_archivedlog
      mkdir /innode/backup 
    
  • 11 切换root用户 su root

  • 12 进入innode cd /innode

  • 13 文件授权 chown innodb:innodb postgresql/ localbackup/ pgdata/ logs/ backup/

  • 14 文件授权 chown innodb:innodb -R /rjxf

  • 15 安装依赖包

      yum install gcc-c++ -y
      yum install readline-devel  -y
      yum install zlib-devel -y
      yum install python-devel  -y
    
  • 16 编译安装UUID包 cd /rjxf

      tar -zxvf uuid-1.6.2.tar.gz
      cd uuid-1.6.2
      ./configure
      make
      make install
    
安装postgressql数据库步骤列表
  • 1 切换到innodb用户 su innodb
  • 2 切换安装包目录下 cd /rjxf
  • 3 解压postgresql tar -zxvf postgresql-9.4.0.tar.gz
  • 4 进入postgresql cd postgresql-9.4.0
  • 5 配置初始化数据库 ./configure --prefix=/innode/- postgresql --with-blocksize=8 --with-wal-blocksize=8 --with-ossp-uuid
  • 6 预编译 make
  • 7 编译数据库 make install
配置数据库环境变量步骤列表
  • 1 切换到root用户 su -l 或 su root

  • 2 编辑数据库配置文件 vi /etc/profile

  • 3 这个变量添加在profile的最后(vi)

    export PATH=/innode/postgresql/bin:$PATH
    export LD_LIBRARY_PATH=/innode/postgresql/lib:$LD_LIBRARY_PATH
    export PGDATA=/innode/pgdata
    INNO_HOME=/innode

  • 4 重启数据库环境变量 source /etc/profile

  • 5 检查环境变量是否生效 echo $PATH

初始化数据库步骤列表
  • 1 切换到innodb用户操作数据库 su innodb
  • 2 进入postgresql数据库下的bin文件 cd /innode/postgresql/bin
  • 3 初始化postgresql数据库 ./initdb --encoding=utf8 -D /innode/pgdata
  • 4 配置数据库访问地址
    (将注释去除) vi /innode/pgdata/postgresql.conf
  • 5 将config文件下的listen_addresses参数改为""
    port 修改端口 5432 listen_addresses = '
    '
    port=5432
  • 6 修改日志放置路径 log_directory='/innode/logs/pg_log'
  • 7 存档模式设置 archive_mode = on
    archive_command = 'cp "%p" /innode/logs/postgresql_archivedlog/"%f"'
    archive_timeout = 3600
  • 8 主库备份 wal_level = hot_standby
  • 9 编辑数据库ip的连接方式 vi /innode/pgdata/pg_hba.conf
  • 10 编辑config文件下的IPv4的配置 # IPv4 local connections:
    host all all 127.0.0.1/32 md5
    host all all 0.0.0.0/0 md5
  • 11 停止数据库服务
    注:如果原来数据库服务已停止,可以忽略 pg_ctl stop
  • 12 启动数据库服务 pg_ctl start
  • 13 切换root用户 su root
  • 14 切换到数据库uuid目录 cd /rjxf/postgresql-9.4.0/contrib/uuid-ossp/
  • 15 编译 make && make install
  • 16 将uuid库复制到数据库的库中 cp /usr/local/lib/libuuid.so.16 /innode/postgresql/lib/
执行数据库初始化脚本
  • 1 进入postgresql数据库的bin目录 cd /innode/postgresql/bin

    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/de/initTable.sql
    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/pcs/pcs-initTable.sql

  • 2 将install下的脚本文件分别导入数据库(如果在数据库服务器,可忽略端口和IP)

    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/pcs/pcs-initData.sql
    ./psql -h 127.0.0.1 -p 5432 -U innodb innode < /innode/shell/de/initData.sql

设置开机自启动postgresql服务
  • 1 切换至root用户 su root

  • 2 编辑配置文件 vi /etc/rc.local

  • 3 在文档结尾加入命令

    su -l innodb -c "/innode/postgresql/bin/postgres -D /innode/pgdata/ -c config_file=/innode/pgdata/postgresql.conf &"

  • 4 保存退出 :wq

防火墙配置(iptables)
  • 1 转换root用户 su root
  • 2 修改linux操作系统开放端口 vi /etc/sysconfig/iptables
  • 3 开放5432端口,在-A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT下插入这一行端口配置 -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
  • 4 重启端口配置文件 service iptables restart

注: 如果/etc/sysconfig/iptables为新建文件则添加如下信息

步骤编号 步骤名称 执行命令

  • 1 加入命令,配置文件

      # Firewall configuration written by system-config-firewall
      # Manual customization of this file is not recommended.
      *filter
      :INPUT ACCEPT [0:0]
      :FORWARD ACCEPT [0:0]
      :OUTPUT ACCEPT [0:0]
      -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
      -A INPUT -p icmp -j ACCEPT
      -A INPUT -i lo -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 22 -j ACCEPT
      -A INPUT -m state --state NEW -m tcp -p tcp --dport 5432 -j ACCEPT
      -A INPUT -j REJECT --reject-with icmp-host-prohibited
      -A FORWARD -j REJECT --reject-with icmp-host-prohibited
      COMMIT
    

2 保存退出 service iptables restart

查看数据库步骤列表
  • 1 切换用户到innodb su innodb
  • 2 进入postgresql数据库的bin目录 cd /innode/postgresql/bin
  • 3 登录数据库,如果已登录数据库,可省略此步 ./psql -U innodb innode
  • 4 查看当前数据库系统安装的数据库情况,查看数据库是否已存 \l
  • 5 从innodb数据库执行查询操作,如果能查询到数据,证明数据库安装成功。 select * from sys_user;
  • 6 退出数据库 \q
修改postgres的参数配置
  • 1 切换innodb用户 su innodb

  • 2 备份配置文件 cp /innode/pgdata/postgresql.conf /innode/pgdata/postgresql.conf.bak

  • 3 修改参数,包括5个参数 cd

      work_mem=100MB  #工作内存或者操作内存
      shared_buffers=128MB  #改为物理内存的30%,假设物理内存为24G,则24G*30%=7372MB
      maintenance_work_mem  512MB  #维护工作内存
      checkpoint_segments  30 # WAL log的最大数量
      max_connections = 100  #修改数据库连接数
    
  • 4 重启数据库服务

    pg_ctl stop
    pg_ctl start

导入数据异常处理

若查看数据库发现数据未正常导入,先执行删除数据库,然后重新执行新建innodb数据库、将脚本数据文件导入innodb数据库。
如下步骤为删除数据库。
步骤编号 步骤名称 执行命令

  • 1 进入postgresql数据库下的bin文件 cd /innode/postgresql/bin
  • 2 删除innode数据库 ./dropdb innode
安装postgresql异常处理

若初始化数据库或启动数据库碰到问题无法解决,可重新安装数据库。
重新安装数据库之前,先执行如下步骤。
步骤编号 步骤名称 执行命令

  • 1 查看postgresql进程运行情况 ps -ef|grep post
  • 2 杀掉postgresql进程 kill -9 postgresql的进程ID
  • 3 删除文件 rm -rf /innodb/postgresql

读书感悟

来自《安妮日记》

  • 我希望,我能完全信任你,我还从来没有能这样信任过谁。我也希望,你将给我最大的支持。
  • 只要我还活着,能看到这阳光,这无云的天空,我就不可能不幸福!
  • 通过这事,我明白了:只有在争吵后,才能真正看清一个人。这时候,才能清楚他们的真实性格。
  • 对于孤单、惊恐、悲伤的人来说,最佳良药就是出去走走,去一个只有天空、自然和上帝的地方,一个无人的地方。只有这样,才能感受到本来的样子,感受到上帝希望人们在淳朴和自然的美景中幸福快乐。
  • 我开始思考、写作,终于得出结论:其他人不再和我有关系。他们没有权利将我当作钟摆随意摆布、来回晃荡。我想以自己的方式改变自己。
    我相信自己。
  • 我们全都活着,但我们并不知道为什么活着,不知道去向何方,我们活着的目的都是要幸福,我们的生命千差万别却又没什么两样。

其他

如果有带给你一丝丝小快乐,就让快乐继续传递下去,欢迎转载,点赞,顶,欢迎留下宝贵的意见,多谢支持!

你可能感兴趣的:(RedHat搭建Web运用之PostgreSQL数据库安装(一))