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

银河麒麟V10的X86架构部署postgresql,解决信创离线部署兼容问题

一、前言

我们经常在迁移java相关服务器至信创服务器时,需要迁移部署数据库postgresql,在离线环境我们不能直接下载部署,也有可能因为权限问题不能使用docker部署,下面就介绍一种离线部署方法.

二、离线部署包下载

PostgreSQL 12(推荐最低版本)
在联网的浏览器输入下面三个地址下载部署包

 https://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/postgresql12-12.20-1PGDG.rhel8.x86_64.rpmhttps://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/postgresql12-server-12.20-1PGDG.rhel8.x86_64.rpmhttps://download.postgresql.org/pub/repos/yum/12/redhat/rhel-8-x86_64/postgresql12-libs-12.20-1PGDG.rhel8.x86_64.rpm

三、开始部署

1、上传下载的包至服务器

在这里插入图片描述

2、执行命令

# 1. 先安装 lib(库文件)
rpm -ivh postgresql12-libs-12.20-1PGDG.rhel8.x86_64.rpm# 2. 再安装主程序
rpm -ivh postgresql12-12.20-1PGDG.rhel8.x86_64.rpm# 3. 最后安装 server(服务端)
rpm -ivh postgresql12-server-12.20-1PGDG.rhel8.x86_64.rpm

3、问题解决

3.1、错误1

[root@zhihuijianzhu postgresql10]# rpm -ivh postgresql12-12.20-1PGDG.rhel8.x86_64.rpm
警告:postgresql12-12.20-1PGDG.rhel8.x86_64.rpm: 头V4 RSA/SHA256 Signature, 密钥 ID 08b40d20: NOKEY
错误:依赖检测失败:libreadline.so.7()(64bit) 被 postgresql12-12.20-1PGDG.rhel8.x86_64 需要

问题: 银河麒麟 V10 系统默认提供的是 libreadline.so.8(因为基于较新的 RHEL 8.6+ 或定制版本)
解决

ln -s /usr/lib64/libreadline.so.8 /usr/lib64/libreadline.so.7

再次执行(跳过依赖检查):

rpm -ivh postgresql12-12.20-1PGDG.rhel8.x86_64.rpm
rpm -ivh postgresql12-server-12.20-1PGDG.rhel8.x86_64.rpm

4、初始化数据库

4.1、执行命令

# 初始化数据库(会自动创建 /var/lib/pgsql/12/data)
/usr/pgsql-12/bin/postgresql-12-setup initdb

问题:

执行/usr/pgsql-12/bin/postgresql-12-setup initdb报错/usr/pgsql-12/bin/postgres: error while loading shared libraries: libicui18n.so.60: cannot open shared object file: No such file or directory
no data was returned by command ""/usr/pgsql-12/bin/postgres" -V"
initdb: 错误: initdb 需要程序 "postgres", 但是在同一个目录 "/usr/pgsql-12/bin/initdb" 中没找到.

银河麒麟 V10 系统默认安装的是更新或更旧版本的 ICU(比如 libicui18n.so.66 或 libicui18n.so.50),缺少 libicu.so.60。

解决:
由于 ICU 62 与 60 在 ABI 上基本兼容(尤其对于 PostgreSQL 的基础功能),我们可以用软链接“伪装”成 ICU 60。

# 创建软链接,让 postgres 认为有 libicu.so.60
ln -sf /usr/lib64/libicui18n.so.62 /usr/lib64/libicui18n.so.60
ln -sf /usr/lib64/libicuuc.so.62 /usr/lib64/libicuuc.so.60
ln -sf /usr/lib64/libicudata.so.62 /usr/lib64/libicudata.so.60

验证软连接是否成功:

ls -l /usr/lib64/libicui18n.so.60

输出在这里插入图片描述

4.2、再次初始化数据库

/usr/pgsql-12/bin/postgresql-12-setup initdb

4.3、如果还是报错处理

如果还是无法执行initdb,则需要直接下载安装 ICU 60 的官方 RPM,不能用软链接,下载libicu-60.3-2.el8_1.x86_64.rpm
下载地址:
https://repo.almalinux.org/almalinux/8/BaseOS/x86_64/os/Packages/libicu-60.3-2.el8_1.x86_64.rpm
执行下面命令

rpm -ivh libicu-60.3-2.el8_1.x86_64.rpm

删除原来软连接

rm -f /usr/lib64/libicu*.so.60

再次执行初始化initdb,基本就可以了.

http://www.dtcms.com/a/486770.html

相关文章:

  • 如何建设物流网站智慧团建官网手机版登录
  • 寄生虫网站代做工程公司取名字大全
  • 用户体验就是新SEO:如何同时提升搜索者满意度和搜索排名
  • SpringBoot的IOC和DI学习
  • 《道德经》第十七章
  • 长宁区网站制作设计wordpress添加微信分享功能
  • vue做pc网站某网站seo诊断分析和优化方案
  • AWS MSK IAM 认证访问权限配置指南
  • 郑州网站制作价格网站做线
  • Code2Video: 代码驱动生成教育视频
  • 【Qt】7.信号和槽_connect函数用法(1)
  • 【成功案例分享】手腕鼓包?不痛不痒?我的腱鞘囊肿15天自愈实战记录
  • gcc: 函数调用优化一例,在栈里找不到函数调用的影子;gdb
  • Navicat Premium 与金仓数据库融合实践:高效管理国产数据库新方案
  • 高光谱成像在种子品种、种子纯度、种子活力鉴别的研究进展
  • 怎样在网上建网站做电商生意网站抓取压力高
  • 陕西网站建设开发企业网站搜索优化外
  • 校园网站建设初探论文南山品牌网站建设企业
  • Apache Spark算法开发指导-特征转换TargetEncoder
  • spark热点key导致的数据倾斜复现和加盐处理
  • Chrominum的技术架构
  • 青岛网站域名备案查询佛山市企业网站建设哪家好
  • 目标检测:从定义到实战关键技术
  • 如何利用AOP实现业务层接口的执行效率
  • 废家电回收小程序:绿色生活与智慧服务的前端功能创新
  • Fast DDS简介
  • 做数据的网站有哪些内容乐陵seo公司
  • 大数据平台安全指南——大数据平台安全架构全景:从认证授权到数据治理的企业级实践指南——认证、授权、审计、加密四大支柱
  • 管理员网站上海有哪些做网站
  • C盘深度清理指南