银河麒麟高级服务器操作系统V10——安装Tuxedo12
作者:高玉涵
时间:2021.11.8 14:49
博客:blog.csdn.net/cg_i
”我们都是穷尽自己仅有的一点天斌,来表达我们内心深处的感受“——乔布斯
引言
在大多数场合下,当你需要在系统里部署一个新的软件,首先,你应该登录到厂商网站,尝试搜索吻合的技术手册。再不,还可以在互联网搜索众多热心技术咖贡献的文档,从中筛选出对你有用的信息。如果你运气足够好,你所处的环境恰巧官方支持或网络文档吻合,按着循序渐进的操作步骤完成你的工作,这将是多么幸福的事情啊,是系统管理者的理想世界。
现实中经常会有不可预料的因素导致麻烦产生,因为没有足够多的相关知识而无法独立完成某些任务,身边所能找到的文档往往语焉不详,有时候也会一时疏漏某项特定的任务。结果就是,即使严格按着步骤工作,也并不能获得圆满,更别说您使用的系统过于冷门,没有列在厂商的支持的列表中。
就在本周我刚经历了上述描绘的场景,即使官方给出了手册,以及网络上找到的众多文档,结果让我感到非常失望,参照之后仍然没有解决我的问题。在本文中,我将遵循循序渐进的操作步骤,把我在部署过程中遇到的“坑”及解决方法详细展现出来,尽量做到无疏漏,以便帮助您将 Tuxedo12 部署到麒麟或者您可以把这些思想运用到任何环境中,那我将荣幸至致。
1. 什么是 TUXEDO
具体地说,TUXEDO 系统是在企业和因特网这样的分布式计算环境中,开发和管理三层“客户机-服务器”关键业务系统的平台软件。它且有空前的联机交易性能、高度的可靠性和无限的伸缩性,能够为企业建立、运行和管理大规模、高性能、分布式的关键业务系统提供一个强大的支撑平台。这个平台具有很好的开放性,它支持各种各样的客户端、数据库、网络、通信方式和主机遗留系统,开发人员能够用它来建立跨越多个硬件平台、数据库和操作系统的应用系统。
TUXEDO 具有很多独特的功能。在企业分布式联机交易系统中,TUXEDO 常常作为一个事务监视器(TP Monitor,简称 TM)来协调分布式事务;在构建多层 C/S 应用系统中,TUXEDO 经常以一个中间件的角色部署在客户机和服务器这间,提供应用服务;在构建企业级应用系统中,TUXEDO 经常以一个应用服务平台的角色出现,为企业应用提供一个部署环境和运行环境。
2. 我的环境
2.1 操作系统环境
OS 平台 X86: 银河麒麟高级服务器操作系统(X86)V10 SP1
[root@intkf4 ~]# nkvers
############## Kylin Linux Version #################
Release:
Kylin Linux Advanced Server release V10 (Tercel)
Kernel:
4.19.90-23.8.v2101.ky10.x86_64
Build:
Kylin Linux Advanced Server
release V10 (SP1) /(Tercel)-x86_64-Build20/20210518
#################################################
2.2 JAVA 版本
[root@intkf4 ~]# java -version
openjdk version "1.8.0_242"
OpenJDK Runtime Environment (build 1.8.0_242-b08)
OpenJDK 64-Bit Server VM (build 25.242-b08, mixed mode)
[root@intkf4 ~]# rpm -qa|grep 'java*'
javapackages-filesystem-5.3.0-2.ky10.noarch
java-11-openjdk-headless-11.0.6.10-4.ky10.ky10.x86_64
dejavu-fonts-2.35-8.ky10.noarch
java-1.8.0-openjdk-1.8.0.242.b08-1.h5.ky10.x86_64
java-11-openjdk-11.0.6.10-4.ky10.ky10.x86_64
java-1.8.0-openjdk-devel-1.8.0.242.b08-1.h5.ky10.x86_64
tzdata-java-2020a-1.p01.ky10.noarch
java-1.8.0-openjdk-headless-1.8.0.242.b08-1.h5.ky10.x86_64
2.3 ORACLE 版本 11.2.0.4
**注:**单就部署 TUXEDO 而言可不理会 ORACLE ,这里只是为了让读者了解我所处的环境。
3. 安装前的准备工作
3.1 下载、上传与展开
-
下载 TUXEDO12 安装包并上传到服务器中你指定的目录下。
官方下载地址:https://www.oracle.com/middleware/technologies/tuxedo.html
百度网盘: https://pan.baidu.com/s/1P7rbFpiMOacEBh2caHJ8Qw 提取码: ahu5
本例中安装包被上传至 /root 路径下,也就是 root 用户默认工作目录。
-
使用
unzip tuxedo122200_64_Linux_01_x86.zip
命令展开压缩包。展开后会在当前目录下创建名称为 Disk1 的目录,完整路径为 /root/Disk1 。
**注:**文中如没有特别说明,默认都是以 root 用户运行命令
3.2 建立用户和组
groupadd -g 502 tuxedo
useradd -g tuxedo -u 501 -d /home/tuxedo tuxedo
第一条命令创建了名为 tuxedo 的组;第二条命令创建同名 tuxedo 用户并加入组,并为其指定了默认工作目录 /home/tuxedo 。
3.3 移动安装包并赋权
mv /root/Disk1/ /home/tuxedo
chown -R tuxedo:tuxedo /home/tuxedo
chmod -R 775 /home/tuxedo
至此,做完上述一切还是相当顺利的,而接下来工作才是本文核心,也是我的填坑之路。
4. 第一次尝试:控制台模式下安装
各位,我本来就是通过 SSH 方式,登录到服务器上的,在控制模式下安装也是很正常的。
**注:**下面如无特别说明,均以 tuxedo 用户来实施安装。
4.1 JAVA_HOME is not set
[tuxedo@intkf4 install]$ ./runInstaller.sh -console
JAVA_HOME is not set
进入 /home/tuxedo/Disk1/install 执行上述命令,报当前环境里找不到 JAVA_HOME 的配置。
- 用户环境配置
编辑用户根目录下的 .profile (用户环境配置)文件。值得注意的是,我使用的 SHELL 是 sh ,如果你使用的 SHELL 和我不一样,请查阅系统文档,以确你的 SHELL 调用的环境配置文件名称。 如, 使用 bash SHELL 的用户登录时,将调用 .bash_profile 。噢,最后再告诉你一下,它们都是隐藏文件。
vi /home/tuxedo/.profile
JAVA_HOME=/usr/lib/jvm/jre
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
保存配置重新登录用户或执行 source .profile
以使配置生效。此时,再输入 ./runInstaller.sh -console
即可显示控制台安装界面。
4.2 开始控制台模式下安装
[tuxedo@intkf4 install]$ ./runInstaller.sh -console
===============================================================================
Introduction
------------------
This shell script guides you through the installation and configuration of your Oracle Products. Press "Enter" to accept the default and proceed to the next screen. You may cancel this installation at any time by typing "quit".
Press "Enter" to continue: # 回车开始安装
===============================================================================
Choose Inventory
------------------
->1- Central Inventory
2- Private Inventory
0- Go back
Enter a number: 1
===============================================================================
Choose Oracle Home
------------------
->1- Create new Oracle Home
2- Use existing Oracle Home
0- Go back
Enter a number: 1
Enter ORACLE_HOME: /home/tuxedo/tuxedo12
Enter ORACLE_HOME_NAME: orcl
===============================================================================
Choose Install Set
------------------
Please choose the Install Set to be installed by this installer.
->1- Full Install
2- Server Install
3- Client Install
0- Go back
Enter a number: 1
===============================================================================
Confirm Enable TSAM Plus Agent
------------------
Would you like to enable TSAM(Tuxedo System and Applications Monitor) Plus Agent?
->1- Yes
2- No
0- Go back
Enter a number: 1
===============================================================================
SSL Support Choice
------------------
Would you like to Support SSL
->1- Yes
2- No
0- Go back
Enter a number: 2
===============================================================================
Samples Installation Choice
------------------
Would you like to install Oracle Tuxedo Samples?
1- Yes
->2- No
0- Go back
Enter a number: 2
===============================================================================
Tlisten Configuration Choice
------------------
Would you like to configure Oracle Tuxedo tlisten?
->1- Yes
2- No
0- Go back
Enter a number: 1
Enter Password: # 设置你的密码
Verify Password: # 再次输入你的密码
===============================================================================
Pre-Installation Summary
------------------
Install type: "Full Install"
Install Folder: "/home/tuxedo/tuxedo12"
->1- Start installation
0- Go back
Enter a number: 1
正在启动 Oracle Universal Installer...
检查交换空间: 必须大于 500 MB。 实际为 4095 MB 通过
准备从以下地址启动 Oracle Universal Installer /tmp/OraInstall2021-11-09_01-05-17AM. 请稍候...Oracle Universal Installer, 版本 12.2.0.1.0 正式版
版权所有 (c) 1999, 2014, Oracle。保留所有权利。
可以在以下位置找到本次安装会话的日志:
/u01/app/oraInventory/logs/installActions2021-11-09_01-05-17AM.log
.................................................................................................... 100% 已完成。
SEVERE:无法从命令行或响应文件中获取以下变量的值:
DEP_MODE(InstallType),
TLDepModes(TopLevelInstallType)
无法继续进行无提示安装。
[tuxedo@intkf4 install]$
4.3 控制台模式下安装止步于此
如你所见,按着控制台安装界面提示逐步完成后,在开始安装时报 **DEP_MODE(InstallType) …**值获取失败错误(梦魇开始的地方)。围绕着上述报错,我借鉴了网络众多文档,以及硬着头皮反复研究官方给出的安装手册( E 文不好的我-> ε(┬┬﹏┬┬)3 )。结果并不能获得圆满的答案,要么主题与我无关、要么按着给出的方法依然失败。
更为诡异的是,通过分析 installActions2021-11-09_01-05-17AM.log 日志和研究 runInstaller.sh 脚本,(此脚本程序工作原理,主要是收集用户输入,再根据这些输入,生成名为 install_tuxedo.rsp 的静默安装应答文件,以便最终提供给 runInstaller (二进制程序)用于程序安装),发现实际上都已定义了上述值。
installActions2021-11-09_01-05-17AM.log
runInstaller.sh
这不禁让我陷入沉思,一度让我怀疑人生 …( _ _)ノ|壁
5. 第二次尝试:图型界面模式下安装
希望你没有忽略第一次尝试开始前的那段话,其实,我是借鉴了《少林足球》“我本身是一个汽车修理员…” 那句经典台词。现在想起那画面,依然觉得搞笑,解释好似挺合理的。
通常情况下,需要我们部署程序的服务器,不会放在您的办公桌上(除非您的桌子够大,或能忍受由散热风扇发出,似飞机起会般的噪音)。机器可能远在几百公里之外,会单独放在一间屋子里,也就是俗称的机房。即使距离不是问题,单就每次进入机房时,需要填报的审批流程也够你烦的。我们自然而然会采用远程部署的方式,同样,服务器上的系统也很少部署 GUI 桌面(减少对资源的占用),毕竟很少有人会在服务器上处理文字或表格程序。那以 SSH 以控制台模式,远程登录到服务器,就是最常用的方式了,这也是为什么一开始我选择了以控制台模式下部署 TUXEDO 。
在经过漫长的尝试无果后,抱着试试看的心理,我尝试在远程以 GUI 模式下部署 TUXEDO 。
5.1 先决条件
-
你已经按着第一次尝试中的步骤操作过。
-
服务器已开启 VNC 服务。
-
通过 VNC Viewer 登录到服务器。
这里,我假定你知道如何通过 VNC Viewer 远程登录到服务器的 GUI 界面,限于篇幅这里就不在赘婿了。
5.2 ROOT 用户环境下安装
在 vnc connect 地址栏里输入,“服务器IP地址:5901” 并回车。其中,5901 是我们先前配置 VNC 服务时创建的端口号。在接下来的对话框里单击 Continue 按钮。
输入当时您设置的 VNC 密码。
输入你的 ROOT 密码。
成功登录到桌面环境后。打开终端依次进入到 TUXEDO 安装包目录下 cd /home/tuxedo/Disk1/install
执行 ./runInstaller
提示不能以 ROOT 用户启动安装程序,看来我们需要切换到 TUXEDO 用户来执行安装。
5.3 为 TUXEDO 用户开启 VNC 服务
我们再次用 SSH 远程以 ROOT 用户登录到服务后,执行 su - tuxedo
切换到 tuxedo 用户,执行下面的命令。
[root@intkf4 ~]# su - tuxedo
上一次登录: 三 11月 10 00:53:47 CST 2021 pts/1 上
[tuxedo@intkf4 ~]$ vncserver :2
New 'intkf4:2 (tuxedo)' desktop is intkf4:2
Starting applications specified in /ecas/tuxedo/.vnc/xstartup
Log file is /ecas/tuxedo/.vnc/intkf4:2.log
[tuxedo@intkf4 ~]$
上面的命令将为 tuxedo 用户开启 VNC 远程桌面服务,桌面号是 2 (端口号为 5902) 。此时,你通过 VNC Viewer 以 “服务器IP:5902“ 连接,就是以 tuxedo 用户登录到服务器。
5.4 TUXEDO 安装前的配置
vnc connect 地址栏里,输入“服务器IP地址:5902” 并回车,按提示操作直至成功登录到桌面环境。打开终端进入安装目录运行 ./runInstaller
提示 JRE 位置无效。
即使你已正确配置了 JRE 变量,安装程序依然会提示找不到。经研究命令需加上 -jreLoc
参数,并指定变量名称 ./runInstaller -jreLoc $JAVA_HOME
。
提示 DISPLAY 变量尚未设置。输入命令 export DISPLAY=:2.0
其中 2 表示当前 VNC 窗口号。
输入命令 xhost +
当提示 access control disabled, clients can connect from any host 表示成功。再次输入 ./runInstaller -jreLoc $JAVA_HOME
命令开始安装。
5.5 开始安装 TUXEDO
因我的机器已安装了 ORACLE 安装启动界面,可能和你的不一样,直接下一步。下面给出的安装选项只用于示例,您可根据实际需求进行操作。
选择完全安装后下一步。
根据你的需要输入名称、路径后下一步。
TSAM Plus 代理启用。
可不安装Oracle Tuxedo 示例。
配置Oracle Tuxedo tlisten。
设置tlisten 口令。
不启用SSL。
确定无误后安装。
安装成功。
6. 验证是否安装成功
##### 6.1 环境变量配置
返回到 tuxedo 用户根目录 vi .profile
编辑用户环境配置文件。注释掉先前的配置( tux.env 已有定义这里不再需要),再在尾部加上如下语句,这里的 tux.env 文件,是 TUXEDO 安装程序,自动生成的环境变量文件,感兴趣的同学可自行研究。
#JAVA_HOME=/usr/lib/jvm/jre
#CLASSPATH=$JAVA_HOME/lib
#PATH=$JAVA_HOME/bin:$PATH
#export JAVA_HOME CLASSPATH PATH
. $HOME/tuxedo12/tuxedo12.2.2.0.0/tux.env
6.2 tmadmin -v 显示版本号
重新登录用户使 tux.env 配置生效。输入以下命令显示正常表示安装成功。
[tuxedo@intkf4 ~]$ tmadmin -v
INFO: Oracle Tuxedo, Version 12.2.2.0.0, 64-bit, Patch Level (none)
[tuxedo@intkf4 ~]$
总结
我想引用《大话西游》那句经典台词: ”我猜到了故事的开头却没有猜到结尾…“ 当我接到这个任务的时候,我的确低估了困难的难度,安装软件不就是一路下一步,可万万没想到中间过程几乎让我崩溃,我甚至买了本 TUXEDO 的书研究 ||Φ|(|T|Д|T|)|Φ||