替换云套件iPortal默认MySQL库为POSTGRESQL库


    SuperMap 云套件门户在11.0.1新增支持直接通过配环境变量方式去修改云套件iPortal库配置信息,相比于之前版本修改iportal.xml与iserver-system.xml配置文件的方式提供极大的便利,本文也是基于SuperMap iManager 11.0.1版本进行案例展示。

一、查看iPortal的配置持久化目录(iportalOPTs)

    云套件默认是将iPortal的配置目录(iportalOPTs)做了持久化,查看其所在nfs路径指令如下:

# 查看云套件namespace中包含iportal-data的pvc数据
kubectl get pvc -n giscloudsuite | grep iportal-data
# 通过上一步获取pvc绑定的pv名称,去查询其pv信息中包含nfs挂载目录
kubectl get pv -n giscloudsuite -o yaml pvc-9d5149e9-5011-4b41-b98a-a8f2ed32db80  | grep "path: /" -A 1

查看iPortal的配置持久化目录
注意:使用云套件安装的云套件其namespace默认是giscloudsuite,使用k8s imanager创建的云套件的namespace是icloud-native-x。

二、修改iportal monitor监控

    因为iPortal监控数据不支持 postgresql,所以要在 mysql 切换为 postgresql 之前,把monitor监控数据存储修改为SQLITE数据库,即需要调整iportal-monitor.xml配置的MYSQL连接池数据,其待修改参数值如下:
      1.  将 dbType 修改为 SQLITE
      2.  将 driverClass 修改为 org.sqlite.JDBC
      3.  将jdbcUrl 为
jdbc:sqlite:/opt/iportalOPTs/WEB-INF/iportaldata/monitor.db
      4.  将 maxPoolSize 修改为 1
      5.  将 initialPoolSize 修改为 1
      6.  将 minPoolSize 修改为 0
      7.  将 maxIdleTime 修改为 3000
      8.  将 maxWait 修改为 300000
      9.  注释掉 username 和 password
    云套件默认将iportal-monitor监控数据存储在MYSQL数据库中,iportal-monitor.xml配置MYSQL数据库连接池如下:

<!-- MYSQL数据库连接池设置,监控数据存储-MYSQL数据库 -->
<dbType>MYSQL</dbType>
<driverClass>org.mariadb.jdbc.Driver</driverClass>
<jdbcUrl>jdbc:mysql://iportal-mysql:3306/monitor?useUnicode=true&amp;characterEncoding=UTF-8</jdbcUrl>
<maxPoolSize>30</maxPoolSize>
<initialPoolSize>5</initialPoolSize>
<minPoolSize>5</minPoolSize>
<maxIdleTime>3000</maxIdleTime>
<maxWait>30000</maxWait>
<username>ENC@[5R2M9oluKst4cWFgNfQkXA..]</username>
<password>ENC@[WLSjKn42Xrpc3BwNy6seg-HozU7LriU3AM3jqU0uChU.]</password>

    修改后monitor监控数据存储为 SQLITE数据库后,iportal-monitor.xml配置的数据库连接池设置如下:

<!-- SQLITE数据库连接池设置 -->
<dbType>SQLITE</dbType>
<driverClass>org.sqlite.JDBC</driverClass>
<!-- 连接至驱动的url,对于sqlite数据库文件路径,如果使用相对路径,则是相对于iPortal home的路径。-->
<jdbcUrl>jdbc:sqlite:./WEB-INF/iportaldata/monitor.db</jdbcUrl>
<maxPoolSize>1</maxPoolSize>
<initialPoolSize>1</initialPoolSize>
<minPoolSize>0</minPoolSize>
<maxIdleTime>3000</maxIdleTime>
<maxWait>30000</maxWait>
<!-- sqlite数据库用户名密码为空, 故注释掉 username 和 password -->
<!-- <username>ENC@[5R2M9oluKst4cWFgNfQkXA..]</username>-->
<!-- <password>ENC@[WLSjKn42Xrpc3BwNy6seg-HozU7LriU3AM3jqU0uChU.]</password>-->

三、修改iPortal数据库配置信息

3.1 修改iPortal门户数据库配置信息

DB_TYPE: 数据库类型
mysql/mariadb: MYSQL
postgresql: POSTGRESQL

DB_USERNAME: 用户名
DB_PASSWORD: 用户密码

DB_JDBC_URL: 存放门户数据的数据库连接地址
mysql/mariadb:  jdbc:mysql://iportal-mysql:3306/iportal?useUnicode=true&amp;characterEncoding=UTF-8
postgresql: jdbc:postgresql://localhost:5432/iportal?useUnicode=true&amp;characterEncoding=UTF-8

3.2 修改iPortal安全数据库配置信息

SECURITY_DB_JDBC_URL: 安全信息数据库连接地址
mysql/mariadb:  jdbc:mysql://iportal-mysql:3306/ispeco?useUnicode=true&amp;characterEncoding=UTF-8
postgresql: jdbc:postgresql://localhost:5432/ispeco?useUnicode=true&amp;characterEncoding=UTF-8

3.3 修改iPortal编排中容器启动时执行命令

    因为已经要将iportal所需数据库修改成外部的PG数据库,对于iportal-mysql数据而言,为了减少不必要的额外资源开销,一般都会将其关闭掉,但是iportal编排中启动时容器指令中要先去连接iportal-mysql数据,且连接参数中的数据库账户信息也均来自于编排中环境变量,账户信息在前两步也已经进行了修改,故需要删除编排里面容器启动时执行命令中相关iportal-mysql的部分。删除iPortal编排中containers.args内容如下:

	exec /opt/wait-for-mysql.sh iportal-mysql 3306 root $DB_PASSWORD

    修改完成后iPortal编排如下
        门户 & 安全数据库配置
在这里插入图片描述
        删除启动指令中的mysql相关信息
在这里插入图片描述

四、修改iportal-proxy数据库配置信息

4.1 修改iportal-proxy门户数据库配置信息

DB_TYPE: 数据库类型
mysql/mariadb: MYSQL
postgresql: POSTGRESQL

DB_JDBC_URL: 存放门户数据的数据库连接地址
mysql/mariadb:  jdbc:mysql://iportal-mysql:3306/iportal?useUnicode=true&amp;characterEncoding=UTF-8
postgresql: jdbc:postgresql://localhost:5432/iportal?useUnicode=true&amp;characterEncoding=UTF-8

4.2 修改iportal-proxy安全数据库配置信息

SECURITY_DB_JDBC_URL: 安全信息数据库连接地址
mysql/mariadb:  jdbc:mysql://iportal-mysql:3306/ispeco?useUnicode=true&amp;characterEncoding=UTF-8
postgresql: jdbc:postgresql://localhost:5432/ispeco?useUnicode=true&amp;characterEncoding=UTF-8

4.3 修改iportal-proxy编排中容器启动时执行命令

    因为已经要将iportal-proxy所需数据库修改成外部的PG数据库,对于iportal-mysql数据而言,为了减少不必要的额外资源开销,一般都会将其关闭掉,但是iportal-proxy编排中启动时容器指令中要先去连接iportal-mysql数据,且连接参数中的数据库账户信息也均来自于编排中环境变量,账户信息在前两步也已经进行了修改,故需要删除编排里面容器启动时执行命令中相关iportal-mysql的部分。删除iportal-proxy编排中containers.args内容如下:

	nc -z -w 1 iportal-mysql 3306;  result=$?;  while [ $result != 0
	]; do
	  echo 'wait for mysql sleep 5s';
	  sleep 5s;
	  nc -z -w 1 iportal-mysql 3306;
	  result=$?;
	done;  echo "mysql is ok";

    修改完成后iportal-proxy编排如下
        门户 & 安全数据库配置
在这里插入图片描述
        删除启动指令中的mysql相关信息
在这里插入图片描述
至此,整个将云套件iPortal默认门户和安全数据库替换成外部POSTGRESQL数据库工作已完成。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值