ARTICLE · INTELLIGENCE

战地情报 · 详情页

来自尧图项目组的一线实战观察与深度解析

Teamcenter 2007安装:Oracle 10g建库与监听配置指南

Teamcenter 2007安装:Oracle 10g建库与监听配置指南

简介:一份围绕 Teamcenter 2007 部署起步阶段的安装说明文档,面向初次接触 Siemens PLM 体系的工程师与运维人员,用于解决旧版本环境搭建时数据库准备环节的配置困惑。内容以 Oracle 10g 数据库安装为主线,涵盖高级安装与企业版选择、仅安装数据库软件、通过 Net Manager 创建 LISTENER 监听、以 lsnrctl 启动监听,以及将 Tc2007.1_wnti 下 oracle 目录脚本复制到 dbca 模板目录、借助 Database Configuration Assistant 创建全局库名 tceng 等关键节点,可作为理解 Teamcenter 基础架构与依赖关系的入门参照。压缩包仅含 1 个 doc 文件,约 3MB,体积轻便,内容按步骤编号组织,适合边看边对照操作。目前已有 217 人学习下载,对需要复盘早期 PLM 环境搭建流程、梳理数据库与服务组件依赖的读者有一定参考价值。

1. 从一张安装清单说起:Teamcenter 2007详细安装为什么先卡在 Oracle 10g

第一次做 Teamcenter 2007详细安装 的人,十有八九会把时间耗在数据库上,而不是 Teamcenter 本身。这份资源把安装顺序拆成数据库软件、监听器、模板、DBCA 建库四段,核心是让 tceng 库能被 Teamcenter 服务端认出来。它适合手里有 Teamcenter 2007.1_wnti 介质、需要在隔离虚拟机里复现老环境的从业者,也适合想弄明白 PLM 基础依赖关系的开发。别急着点 Teamcenter 安装程序,先把 Oracle 10g 这一层走通,后面会少很多返工。

2. 先装库再装应用:Oracle 10g 企业版安装与“仅安装软件”选择

Teamcenter 2007 的数据落点是 Oracle 10g,数据库层没立住,后面服务端配置都是空中楼阁。老版本安装介质里数据库和 Teamcenter 是两套安装器,顺序不能反:先装 Oracle 软件,再建监听,再把 Teamcenter 自带的数据库模板塞进 DBCA,最后用模板建出 tceng 库。选择企业版不是追新,是因为 Teamcenter 模板依赖企业版里的组件和 DBCA 模板读取路径;选择“仅安装数据库软件”是把建库动作留给后面的 tceng 模板,避免默认库抢占监听和口令。这一章按安装器实际会遇到的界面顺序拆,参数能对上就照填,对不上就停下来看日志,别硬点下一步。

2.1 安装前检查:磁盘、主机名、账户和路径

老版本 Oracle 安装器对环境的容忍度不高,尤其是路径空格、主机名解析和权限这三件事。安装前先把主机名固定下来,因为后面监听器要绑主机名,DBCA 建库也会把主机名写进连接配置;装到一半改主机名,监听和客户端配置很容易对不上。账户用管理员权限跑安装器,路径尽量短,不要放在“Program Files”这类带空格的目录下。磁盘空间按介质和模板实际大小预留,别贴着系统盘剩余空间跑,DBCA 建库时还会写数据文件、控制文件和日志。

检查项建议值原因
主机名安装前固定,装完前不再改监听器和连接串会引用主机名
安装账户本机管理员安装器要写服务、注册表和 Oracle Home
安装路径短路径,无空格老工具对空格路径兼容差
磁盘空间系统盘外单独预留数据文件、日志、模板都要落盘
安全软件临时关闭实时拦截防止安装器写文件被拦
主机解析hosts 中有本机主机名记录监听绑定和本地连接更稳
hostname ipconfig /all echo %USERNAME%

hostname的输出就是后面 Net Manager 里要填的主机名,不要凭感觉写 localhost。ipconfig /all用来看网卡和 IP,多网卡机器要确认监听绑哪一块网卡。echo %USERNAME%确认当前是不是管理员账户。这个检查花不了一分钟,但能省掉后面“监听启动了却连不上”的排查时间。

提示:装 Oracle 和建库期间不要改主机名,也不要随意切换网络配置。老版本监听器对主机名变化很敏感。

2.2 高级安装与企业版:每一步在选什么

进入 Oracle 10g 安装界面后,点“高级安装”,不要走典型安装。高级安装不是炫技,是让你看到安装类型、安装目录和配置选项,后面“仅安装数据库软件”这个关键选项就在配置选项里。安装类型选“企业版”,这是针对大型部署的完整组件集合,Teamcenter 的数据库模板依赖其中部分组件和 DBCA 模板读取路径。指定安装目录时用短路径,例如D:\oracle\product\10g\db_1,这个目录后面会作为ORACLE_HOME,DBCA 的模板目录也在这个 Home 下面。

配置选项里选“仅安装数据库软件”,不要选“创建数据库”。这一步是整个安装顺序的分水岭:现在建库会生成一个默认库,后面再用 Teamcenter 模板建 tceng 时,两个库会抢监听注册,口令体系也会混。安装器跑完后点“退出”,不要急着打开 DBCA,先做安装后自检。

安装界面项选择说明
安装方式高级安装暴露安装类型和配置选项
安装类型企业版覆盖 Teamcenter 模板依赖组件
安装目录短路径、无空格作为 ORACLE_HOME 使用
配置选项仅安装数据库软件不自动建库,留给 tceng 模板
安装结束退出先自检再进 DBCA

安装过程中如果弹出先决条件检查警告,不要一律忽略。磁盘空间、物理内存、操作系统补丁这类警告要逐条看;有些老环境在虚拟机上跑,内存低于安装器建议值,可以继续,但后面 DBCA 建库时要把内存参数调小,否则建库阶段容易卡住。

2.3 为什么“仅安装数据库软件”不能省

如果安装时顺手建了默认库,最常见的结果是:DBCA 再建 tceng 时,监听器里同时注册了两个实例,客户端连接串指向不明确;默认库的口令和 Teamcenter 统一口令 tceng 不一致,后面配置服务端时到处找口令;更麻烦的是,有人以为默认库就是 tceng,直接把 Teamcenter 指过去,结果模板里的表空间和初始化参数对不上。老环境安装最怕“看起来装完了”,实际库名、实例名、监听服务名三套东西混在一起。

安装完成后先看环境变量和服务。ORACLE_HOME应该指向刚才选的安装目录,ORACLE_SID在没建库前可能为空,这是正常的;如果它已经有值,记下来并清理掉,避免 DBCA 串库。sqlplus能找到说明 PATH 已经写入,但此时还没有可用数据库,别拿sqlplus / as sysdba连不上就判断安装失败。

echo %ORACLE_HOME% echo %ORACLE_SID% where sqlplus

echo %ORACLE_HOME%用来确认 Home 路径没有指到旧安装;echo %ORACLE_SID%用来确认没有残留实例名;where sqlplus用来确认命令行能找到 Oracle 客户端工具。三个输出对不上,就先改环境变量或清理旧 Home,再往下走。

注意:如果机器上原来装过 Oracle,先确认旧 Home、旧服务、旧监听是否清理干净。老版本共存时,PATH 顺序会让lsnrctl和sqlplus跑到另一个 Home 去。

2.4 安装后的自检命令与日志位置

安装器退出后,先查服务列表和日志目录。服务列表里应该能看到 Oracle 相关服务,但不应有已经建好的业务库服务在跑;日志目录用来在 DBCA 失败时定位是模板问题还是权限问题。老版本安装日志不像新版本那么集中,cfgtoollogs和install目录都要看。

sc query state= all | findstr /I "Oracle" dir "%ORACLE_HOME%\cfgtoollogs" dir "%ORACLE_HOME%\install"

sc query用来列出 Oracle 相关服务,确认没有多余实例服务;dir两个日志目录用来确认安装器确实写完了配置。日志里出现路径权限、端口占用、服务启动失败这类关键字,先解决再进 DBCA。安装程序点“退出”不等于装好,先跑一遍自检,后面监听和建库才有稳定底座。

3. 监听器不是附属品:Net Manager 建 LISTENER 与 lsnrctl 启动

Oracle 软件装完只是有了可执行文件,监听器没起来,Teamcenter 服务端和客户端都连不进来。监听器在连接链里的位置很明确:客户端或 Teamcenter 服务先连监听端口,监听器再把请求转给已注册的数据库实例。老版本常见做法是手动建一个名为 LISTENER 的监听程序,绑定 TCP/IP 和 1521 端口,然后用lsnrctl start启动。监听的名称、主机名、端口三项写错一个,后面就会看到 TNS-12541 这类连接错误。

3.1 监听器在 Teamcenter 连接链里的位置

Teamcenter 的数据库连接最终落到 tceng 库,连接串里通常包含主机名、端口和服务名。监听器负责在主机名和端口上等连接,数据库实例启动后向监听注册服务。监听没启动时,本机用sqlplus / as sysdba可能还能通过操作系统认证进入,但走网络连接的客户端一定连不上,这就是为什么有人“本机能进库,Teamcenter 连不上”。LISTENER 这个名字不是随便起的,老模板和默认配置都认这个名字,改成别的名字要同步改连接配置,没必要给自己加活。

监听器还分动态注册和静态注册。老环境里常见做法是先把监听建好,再让实例启动时注册;如果实例没起来,lsnrctl status里看不到服务是正常的,但监听端点应该存在。排查时先看监听端点,再看服务摘要,顺序不要反。

3.2 用 Net Manager 创建 LISTENER 的逐项配置

从“开始”菜单进入Oracle - OraDb10g_home1,打开 Net Manager。点击“编辑”->“创建”->“监听程序”,监听程序名称输入LISTENER。然后添加地址,协议选 TCP/IP,主机名填hostname命令的输出,端口填 1521。保存后退出 Net Manager,再从命令行启动监听。主机名不要随手填 localhost,除非这台机器只做本机测试;Teamcenter 客户端从别的机器连过来时,localhost 会让连接串指向客户端自己。

配置项值说明
监听程序名称LISTENER老模板和默认连接串认这个名称
协议TCP/IP常规数据库连接方式
主机名hostname输出不要随意写 localhost
端口1521Oracle 默认监听端口
保存方式保存后退出再用 lsnrctl 启动
hostname

这条命令的输出直接填到 Net Manager 的主机名栏。如果机器有多个网卡,确认客户端能路由到这张网卡对应的地址;绑定错网卡时,本机lsnrctl status可能正常,远端客户端却连不上。

提示:Net Manager 保存后不会自动启动监听,必须回到命令行执行lsnrctl start,并确认状态里出现监听端点。

3.3 lsnrctl 启动、状态检查与常见报错

启动监听用lsnrctl start,查看状态用lsnrctl status,查看服务注册用lsnrctl services。状态输出里重点看监听端点、服务摘要和实例状态。监听端点应该是主机名加 1521 端口;服务摘要里在实例启动后应能看到 tceng 相关服务。如果只有监听端点没有服务,说明实例还没注册,先确认数据库实例是否启动。

lsnrctl start lsnrctl status lsnrctl services

lsnrctl start启动当前ORACLE_HOME下的监听器;lsnrctl status看监听是否在跑、绑定到哪个地址;lsnrctl services看实例有没有注册上来。三个命令按顺序跑,先确认监听活着,再确认服务注册,不要一上来就改连接串。

报错关键字常见原因处理方向
TNS-12541监听没启动或端口不对先lsnrctl status看端点
TNS-12560协议适配器错误检查ORACLE_HOME和监听配置
TNS-00511没有监听器启动监听或修正监听名称
ORA-12514监听在但服务没注册检查实例是否启动、服务名是否对

3.4 监听端口与主机名解析的边界

端口占用和多网卡是老环境里最容易翻车的点。1521 被旧监听或其他程序占用时,lsnrctl start会报错,先用netstat看端口。主机名解析不通时,ping主机名可能失败,但 IP 能通,这时要补 hosts 记录,而不是改监听配置。防火墙入站规则也要放行 1521,尤其是 Teamcenter 客户端从另一台机器连过来的场景。

netstat -ano | findstr :1521 ping %COMPUTERNAME%

netstat看 1521 是否已被占用,ping %COMPUTERNAME%看主机名能否解析到本机地址。端口被占用就换端口或停掉占用程序;主机名解析失败就补 hosts。监听配置改完后记得重启监听,并用lsnrctl status复核端点。

注意:监听器稳定之前不要改主机名,也不要在多网卡机器上随意切换绑定地址。老环境里这类改动会留下很难查的连接缓存问题。

4. 把模板放进 DBCA:tceng 库的创建流程与参数含义

Teamcenter 2007 不自带一个“点一下就建好”的数据库,它把数据库模板放在安装介质的Tc2007.1_wnti\tc\db_scripts\oracle目录下,需要手动拷到 Oracle Home 的 DBCA 模板目录。DBCA 启动后会读这个目录,模板列表里才会出现 Teamcenter Oracle 10g。建库时全局数据库名填tceng,口令选“所有帐户使用同一口令”,输入tceng。这一章的每一步都对应一个参数落点,填错后面服务端就连不上。

4.1 模板文件从 tc\db_scripts\oracle 到 dbca\templates 的拷贝

先确认介质解压后的目录层级。Teamcenter 安装介质里常见路径是Tc2007.1_wnti\tc\db_scripts\oracle,这个目录下的文件要拷到%ORACLE_HOME%\assistants\dbca\templates。不要拷到 Oracle Base 或其他 assistants 目录,DBCA 只认当前 Home 下的模板路径。拷贝前先dir看源目录文件,确认不是空目录;拷贝后用dir看目标目录,确认文件数量和大小对得上。

dir "D:\Tc2007.1_wnti\tc\db_scripts\oracle" xcopy "D:\Tc2007.1_wnti\tc\db_scripts\oracle\*" "%ORACLE_HOME%\assistants\dbca\templates\" /E /I /Y dir "%ORACLE_HOME%\assistants\dbca\templates"

xcopy的/E复制子目录,/I目标不存在时按目录处理,/Y覆盖时不追问。源路径按实际解压位置替换,目标路径用%ORACLE_HOME%变量,避免手写路径指到旧 Home。拷贝完成后 DBCA 才能读到 Teamcenter 模板;如果模板列表还是空的,先回到这一步查路径和权限。

源路径目标路径作用
Tc2007.1_wnti\tc\db_scripts\oracle%ORACLE_HOME%\assistants\dbca\templates让 DBCA 识别 Teamcenter 模板
介质解压目录当前 Oracle Home不要拷到旧 Home
模板文件DBCA 模板目录建库时选择 Teamcenter Oracle 10g

4.2 DBCA 选择 Teamcenter Oracle 10g 模板的判定依据

从“开始”菜单进入Oracle - OraDb10g_home1->“配置和移植工具”->“Database Configuration Assistant”。选择“创建数据库”,点“下一步”,模板列表里应出现Teamcenter Oracle 10g。如果只看到“一般用途”或“事务处理”,说明模板没被读进来,先查 4.1 的拷贝路径。选中 Teamcenter 模板后,DBCA 会按模板预置表空间、初始化参数和组件,这些预置项不要随意改,除非你明确知道 Teamcenter 服务端依赖哪个参数。

DBCA 界面项选择说明
操作创建数据库不是配置现有库
模板Teamcenter Oracle 10g来自拷贝进 templates 的文件
全局数据库名tceng与模板和服务端配置对应
管理选项按模板默认老环境不额外配 EM
口令所有帐户使用同一口令输入 tceng

4.3 全局库名 tceng 与统一口令的取舍

全局数据库名输入tceng,SID 在老环境里通常也保持一致,避免连接串和服务名对不上。口令选择“所有帐户使用同一口令”,输入tceng,确认口令tceng。统一口令是为了老环境脚本和服务配置简单,不是生产建议;如果 DBCA 提示口令复杂度不够,先确认当前 Oracle Home 是否启用了密码策略。老版本默认策略通常不拦,但机器上如果装过其他组件,策略可能被改过。

参数值注意点
全局数据库名tceng后面连接串会用到
SIDtceng与全局库名保持一致更省事
口令tceng老环境简化用,生产不要照搬
确认口令tceng大小写保持一致
字符集按模板默认中文数据多时确认与模板一致

提示:统一口令只适合隔离的复现环境。建库完成后把口令记录在安装清单里,后面配置 Teamcenter 服务端还要用。

4.4 建库过程中的内存、字符集与文件位置

DBCA 后续几步可以直接点“下一步”,但有三处要停下来看:内存分配、字符集、数据文件位置。老机器内存小,模板默认的 SGA/PGA 可能偏大,建库阶段会卡在内存检查;字符集按模板默认走,中文数据多时确认是ZHS16GBK或与模板一致,不要建完库再改字符集;数据文件位置放到数据盘,不要全塞系统盘。DBCA 完成后再用 sqlplus 查实例名和字符集。

select name from v$database; select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

第一条查数据库名是否为tceng,第二条查字符集是否与模板预期一致。两条都对上,再去看服务列表里是否出现OracleServiceTCENG和监听服务。建库完成后不要急着装 Teamcenter,先用 sqlplus 本地连一次,确认库本身是活的。

5. 避坑与排查:安装现场最容易翻车的五件事

老版本安装的坑大多不是“不会点下一步”,而是环境残留、路径错位和监听注册这三类问题叠在一起。下面五条是现场最容易翻车的记录,每条按现象、原因、解决拆开写。遇到问题时先按顺序排除,不要一上来重装;重装前不做清理,第二次装还会卡在同一个地方。

5.1 监听已启动但客户端连不上

现象:lsnrctl status显示监听正在运行,但客户端连接报 TNS-12541 或 ORA-12541,Teamcenter 服务端也连不上数据库。原因通常是监听绑定的主机名和客户端连接串里的主机名不一致,或者防火墙没有放行 1521 端口,也可能是多网卡机器绑错了网卡。解决时先看lsnrctl status的监听端点,确认主机名和端口;再用tnsping从客户端测连接串;最后查服务端防火墙入站规则和 hosts 解析。不要只看“监听已启动”就判断网络通,监听端点和客户端目标地址必须对得上。

lsnrctl status tnsping tceng ping <监听主机名>

lsnrctl status看监听绑定的端点,tnsping看客户端能否解析并到达监听,ping看主机名解析。三步里哪一步失败就处理哪一步,不要同时改监听和连接串。

5.2 DBCA 里找不到 Teamcenter 模板

现象:DBCA 进入模板选择界面,列表里只有“一般用途”“事务处理”等默认模板,没有Teamcenter Oracle 10g。原因最常见的是模板拷错目录,比如拷到了 Oracle Base 下的 templates,而不是当前ORACLE_HOME%\assistants\dbca\templates;其次是文件权限不对,DBCA 进程读不到;还有一种是 DBCA 已经启动后才拷文件,界面没有刷新。解决时先echo %ORACLE_HOME%确认当前 Home,再dir目标目录看文件是否存在,关掉 DBCA 重新打开。如果还看不到,检查模板文件是否完整,别只拷了一个空目录。

echo %ORACLE_HOME% dir "%ORACLE_HOME%\assistants\dbca\templates"

第一条确认当前 Home,第二条确认模板文件确实在这个 Home 下。路径对、文件在、DBCA 重启后仍看不到,再考虑文件权限和介质完整性。

5.3 统一口令的隐藏问题

现象:DBCA 建库时输入tceng作为统一口令,界面报口令不符合复杂度或 ORA-28003。原因是当前 Oracle Home 启用了密码策略,或者之前装过其他组件把默认策略带进来了。解决时先确认这台机器是不是只做隔离复现;如果是,可以按 DBCA 提示换一个满足策略的口令,并把口令记录到安装清单,后面 Teamcenter 服务端配置时同步改。不要为了图省事去改系统级密码策略,老环境里改完容易影响其他组件。统一口令tceng只适合默认策略不拦的场景,遇到策略拦截就按实际策略走。

5.4 安装到一半回滚不干净

现象:第一次安装失败后直接删了安装目录,第二次安装提示 Oracle Home 已存在、服务已存在或端口被占用。原因是 Oracle 安装不只是文件,还有服务、注册表项、环境变量和监听配置。解决时先用 Oracle Universal Installer 自带的卸载入口卸,再手工检查残留服务、ORACLE_HOME环境变量和监听配置;注册表项不确定就不要乱删,先备份再动。卸载后重启机器,再重新装。老环境里“删目录重装”是最容易留下黑匣子的操作,血泪经验是宁可按卸载流程走一遍,也不要直接删文件夹。

sc query state= all | findstr /I "Oracle" echo %ORACLE_HOME%

第一条看残留服务,第二条看环境变量是否还指向旧 Home。清理完再重装,能少踩一半重复坑。

5.5 32/64 位与路径空格导致的环境变量错乱

现象:lsnrctl提示找不到命令,sqlplus报错,或者 DBCA 启动后闪退;有时同一台机器上有多个 Oracle Home,命令跑到了旧版本上。原因是 PATH 里混入了 32 位客户端或旧 Home,安装路径带空格导致部分老工具解析失败,ORACLE_HOME指向不一致。解决时把安装路径改成短路径,检查echo %ORACLE_HOME%和where sqlplus,把当前 Home 的 bin 放到 PATH 前面;32 位客户端和 64 位服务端不要混用在同一套连接配置里。改完环境变量后重开命令行窗口,老窗口不会自动刷新。

echo %ORACLE_HOME% where sqlplus where lsnrctl

两个where用来确认命令实际走的是哪个 Home。输出路径和ORACLE_HOME不一致,就调整 PATH 顺序,别在旧窗口里反复试。

6. 装完只是开始:用 sqlplus 和监听日志做一次闭环验证

DBCA 显示建库完成后,我一般不做“看一眼服务就收工”的判断,而是用三条线做闭环:监听端点、实例注册、库内参数。先跑lsnrctl status,确认 LISTENER 在 1521 上活着,并且服务摘要里能看到 tceng;再跑lsnrctl services,确认实例已经注册;最后用 sqlplus 本地登录,查数据库名和字符集。三步都过,才把 Teamcenter 安装程序拉起来。这个习惯能挡住大部分“库看起来建好了,服务端却连不上”的问题。

lsnrctl status lsnrctl services
select name, open_mode from v$database; select value from nls_database_parameters where parameter='NLS_CHARACTERSET';

lsnrctl status看监听端点和端口,lsnrctl services看 tceng 是否注册到监听;sqlplus 里第一条查库名和打开模式,第二条查字符集。库名应是tceng,状态应是READ WRITE,字符集要和模板预期一致。对不上就回到第 3 章和第 4 章查监听与模板,不要带着疑问往下装 Teamcenter。

验证项通过标准失败先看
监听端点主机名:1521 存在Net Manager 配置
服务注册服务摘要出现 tceng实例是否启动
库名tcengDBCA 全局数据库名
打开模式READ WRITE实例状态和告警日志
字符集与模板一致DBCA 建库选项

需要对照的文件路径和检查清单,我放在同一份资源包里,按上面的顺序逐项打勾即可。从那以后我每次装完都先跑一遍sqlplus / as sysdba和lsnrctl status,确认 tceng 真的能被监听注册,再动 Teamcenter 安装程序。希望帮到你。

本文还有配套的精品资源,点击获取

RELATED READING

延伸阅读

更多一线实战笔记与深度复盘,助您持续精进