Teamcenter 2007安装:Oracle 10g监听、模板与DBCA建库
简介:《Teamcenter 2007详细安装》是一份面向PLM初学者与Teamcenter实施入门者的实操文档,专门针对早期2007版本部署中数据库环境搭建这一难点,梳理从Oracle 10.0安装到Teamcenter专用数据库创建的完整流程。文档重点记录了高级安装与企业版的选择、只安装数据库软件的配置取舍,以及LISTENER监听器的创建与lsnrctl启动方式;同时说明如何将Tc2007.1_wnti\tc\db_scripts\oracle下的模板文件复制到dbca\templates目录,并借助Database Configuration Assistant套用Teamcenter Oracle 10g模板,设定全局数据库名与统一口令tceng。压缩包仅含1个doc文件,约3MB,篇幅紧凑、步骤编号清晰,可对照操作。已有217人学习,能帮助读者理解Teamcenter的基础架构与Oracle依赖关系,并为后续服务器端、客户端组件部署打下环境基础。
1. Teamcenter 2007 安装先卡在哪:Oracle 10g 依赖顺序与适用场景
一份 Teamcenter 2007 安装包解压后,真正卡住人的往往不是客户端,而是 Oracle 10g 这一层。Teamcenter 2007 安装要先有可用的数据库实例,实例又要先有 Oracle 软件、监听器和 Teamcenter 提供的建库模板;顺序错了,后面 DBCA 里找不到模板、监听起不来、客户端连不上,都会变成反复返工。这个流程适合还在维护旧版 Teamcenter 环境、需要在一台干净的 Windows 机器上复现安装的人,也适合想弄清 Teamcenter 基础架构依赖关系的读者。下面按“装软件—起监听—拷模板—建 tceng 库—验证连接”的顺序拆开,参数和踩坑点都落在具体界面上。
2. Oracle 10g 企业版安装:高级安装与仅装软件
Teamcenter 2007 的数据库层绕不开 Oracle 10g。安装器看起来步骤不多,但“高级安装”“企业版”“仅安装数据库软件”这几个选项一旦选错,后面要么多出一个用不上的默认库,要么 DBCA 里找不到 Teamcenter 模板。我的习惯是先把 Oracle 软件装干净,不急着建库,把建库动作留给后面的 DBCA 和 tceng 模板。
2.1 为什么选企业版,又为什么只装数据库软件
Oracle 10g 的安装类型里,企业版包含的组件更全,旧版 Teamcenter 的建库模板和后续脚本对数据库特性有依赖时,企业版少一层“缺组件”的排查成本。这里不是说标准版一定跑不起来,而是旧环境里常见做法是直接选企业版,避免装到一半发现某个选项不可用。安装类型确定后,配置选项要选“仅安装数据库软件”,不要把“创建数据库”一起勾上。原因很直接:安装器顺手创建的默认库会占用实例名、端口和服务名,后面再用 DBCA 建 tceng 时容易出现监听注册混乱;而且 Teamcenter 的模板需要从Tc2007.1_wnti\tc\db_scripts\oracle复制到 DBCA 的 templates 目录,先建一个空库并不会帮上忙。
高级安装的价值在于能指定 Oracle 基目录、主目录和产品组件。典型路径可以规划成D:\oracle\product\10.2.0\db_1这类纯英文、无空格的结构,Oracle 基目录和主目录分开管理。旧机器上最容易翻车的是路径里带中文、空格或很长的用户目录,安装器当时不报错,DBCA 复制文件时才失败,日志翻起来很费劲。我一般会在安装前先建好目录,把磁盘剩余空间和权限确认一遍,安装日志也留着,后面出问题能当黑匣子查。
2.2 安装向导逐项参数
进入安装界面后,点击“高级安装”,不要走基本安装。安装类型选择“企业版”,然后指定安装目录。目录不要用桌面、下载目录或带中文的路径,Oracle Home 尽量短。配置选项里选择“仅安装数据库软件”,这样只装二进制和网络组件,不创建实例。之后按向导点击“下一步”,等待组件复制完成,安装结束后点击“退出”。
| 向导项 | 建议选择 | 说明 |
|---|---|---|
| 安装方式 | 高级安装 | 能控制目录、组件和配置选项 |
| 安装类型 | 企业版 | 旧版 Teamcenter 环境常见选择,减少组件缺失 |
| 安装目录 | 纯英文、无空格路径 | Oracle Base 与 Oracle Home 分开规划 |
| 配置选项 | 仅安装数据库软件 | 不创建默认库,建库交给 DBCA |
| 结束动作 | 退出安装器 | 先检查软件清单,再配监听 |
安装前可以用 PowerShell 做一次目录和空间检查,避免装到一半才发现路径不对:
# 检查 Oracle 基目录是否存在,磁盘剩余空间是否足够 $oracleBase = "D:\oracle" $oracleHome = "D:\oracle\product\10.2.0\db_1" if (-not (Test-Path $oracleBase)) { New-Item -ItemType Directory -Path $oracleBase | Out-Null } if (-not (Test-Path $oracleHome)) { New-Item -ItemType Directory -Path $oracleHome | Out-Null } Get-PSDrive -Name D | Select-Object Name, Used, Free Get-Item $oracleHome | Select-Object FullName, Attributes这段脚本只做两件事:确保目录存在,输出 D 盘剩余空间和目录属性。$oracleBase是 Oracle 基目录,$oracleHome是具体产品主目录,实际盘符按机器改。目录属性里如果出现只读或权限异常,先处理权限再装。安装器复制组件时对目录权限敏感,尤其是用普通用户安装、后续又用管理员账号启动服务的情况。
2.3 安装后检查软件清单与环境变量
安装结束后不要立刻去建库,先确认开始菜单里出现Oracle - OraDb10g_home1这一组条目,里面能看到 Net Manager、Database Configuration Assistant 等工具。然后检查环境变量ORACLE_HOME是否指向刚装的db_1目录,PATH里是否包含%ORACLE_HOME%\bin。旧机器上经常出现装了多个 Oracle Home 的情况,命令行里lsnrctl调到的可能不是这一次装的版本。
# 查看当前会话里的 Oracle 环境变量和 bin 目录 $env:ORACLE_HOME $env:ORACLE_SID $env:PATH -split ';' | Where-Object { $_ -like '*oracle*' } Get-ChildItem "$env:ORACLE_HOME\bin\lsnrctl.exe" -ErrorAction SilentlyContinueORACLE_HOME为空时,先到系统环境变量里补;ORACLE_SID在只装软件阶段可以为空,建库后再按实例名设置。lsnrctl.exe能否找到很关键,后面启动监听全靠它。如果PATH里同时有多个 Oracle 路径,把当前 Home 的bin往前放,或者直接在命令行里用全路径执行,别让旧版本抢在前面。
这一章的最后,打开服务管理器看一眼 Oracle 相关服务。只装软件时通常还没有数据库实例服务,出现的是监听相关服务或为空,这是正常的。真正要关注的是安装日志里有没有组件复制失败、目录权限告警。把这些前置检查做完,再去配监听,后面 DBCA 建库会顺很多。
3. 监听器 LISTENER:Net Manager 配置与 lsnrctl 启动
Oracle 软件装完后,数据库还没有对外入口。Teamcenter 服务器和客户端要连库,先得有一个监听器把连接请求转给实例。监听器不负责库内权限,也不代表数据库已经打开,但它不通,后面所有连接串都白配。旧环境里最常见的误会是“监听起来了,库就应该通了”,实际还要看服务名注册和实例状态。
3.1 监听器在 Teamcenter 链路里的位置
Teamcenter 的数据库连接大致走这样一条链路:客户端或服务器拿到连接描述,解析到主机和端口,连上监听器,监听器根据服务名把会话转给对应实例。监听器配置在数据库服务器上,名字通常叫LISTENER,默认端口 1521。Teamcenter 的建库模板会创建 tceng 库,库启动后向监听器注册服务名,客户端才能用tceng这个服务名连进来。
监听器只解决“网络能不能到数据库进程”的问题。它不解决账号密码错误、表空间不足、库没启动。排查时要分层:lsnrctl status看监听和注册,tnsping看客户端解析,sqlplus看库内登录。把这三层混在一起查,很容易在监听配置里绕半天,最后发现是实例没起来。
3.2 Net Manager 创建 LISTENER 的字段
从“开始”菜单进入Oracle - OraDb10g_home1,打开 Net Manager。点击“编辑”菜单,选择“创建”,再选“监听程序”。监听程序名称输入LISTENER。然后在监听位置里添加地址,协议选 TCP,主机名填数据库服务器的计算机名,端口填 1521。保存后退出 Net Manager。
| 字段 | 建议值 | 注意点 |
|---|---|---|
| 监听程序名称 | LISTENER | 与后续lsnrctl status LISTENER对应 |
| 协议 | TCP | 旧版环境常用,端口规划简单 |
| 主机名 | 服务器计算机名 | 不要只写 localhost,远程客户端会连不上 |
| 端口 | 1521 | 被占用时再改,改完连接串同步改 |
| 地址状态 | 启用 | 保存后确认没有变成未启用 |
主机名这里值得多看一眼。用localhost或127.0.0.1配置监听,本机测试可能正常,远程 Teamcenter 服务器连过来就会失败。常见做法是填计算机名,并确认这个名称能被客户端解析。可以在命令行执行hostname拿到计算机名,再检查ping是否通。
# 查看当前计算机名,确认监听里填的主机名一致 hostname ping -n 2 %COMPUTERNAME%hostname输出的是本机名称,ping用来确认名称能解析到本机地址。Windows 下命令提示符里可以用%COMPUTERNAME%,PowerShell 里用$env:COMPUTERNAME。如果名称解析不稳定,先在 hosts 文件里做一条本机记录,再重启监听。旧环境里机器改名后监听配置没跟着改,是很常见的一类连接失败。
3.3 lsnrctl 启动与状态检查
监听配置保存后,从命令行启动。进入 DOS 命令行,执行lsnrctl start。如果监听名不是默认的 LISTENER,命令后面带上名称。启动后执行lsnrctl status,看监听是否处于 READY 状态,端口 1521 是否在监听,服务摘要里有没有 tceng。
# 启动默认监听器,并查看状态 lsnrctl start lsnrctl status # 如果存在多个监听名,显式指定 lsnrctl status LISTENER # 查看监听注册的服务 lsnrctl serviceslsnrctl start负责把监听进程拉起来,status看运行状态和端口,services看实例注册了哪些服务。建库前services里可能只有监听自身信息,建库后才会出现 tceng 相关服务。如果启动时报端口占用,先用netstat -ano | findstr 1521找到占用进程,再决定是停掉旧监听还是改端口。改端口不是只改监听,tnsnames.ora和 Teamcenter 连接配置都要同步,别只改一半。
监听启动后,建议把启动命令和状态输出记到安装记录里。旧机器上服务自动启动不一定可靠,重启后监听没起来,表现就是所有客户端突然连不上。需要的话把监听注册成服务,或者把lsnrctl start写进维护脚本。到这一步,Oracle 软件和网络入口就有了,接下来处理 Teamcenter 的建库模板。
4. 模板与 DBCA 建库:把 tceng 库按 Teamcenter 模板拉起来
Teamcenter 2007 的数据库不是随便建一个空库就能用。模板里预置了表空间、用户、权限和初始化参数,DBCA 按模板建库能少踩很多手工建库的坑。模板文件在安装包的Tc2007.1_wnti\tc\db_scripts\oracle目录下,需要复制到 Oracle Home 下 DBCA 的assistants\dbca\templates目录,DBCA 才能在模板列表里看到 Teamcenter Oracle 10g。
4.1 为什么用 Teamcenter 模板而不是手工建库
手工建库不是不行,但旧版 Teamcenter 对表空间命名、用户权限、字符集和初始化参数有约定。模板把这些约定固化下来,DBCA 建库时按模板走,后续服务器配置少一层对照。手工建库容易漏掉某个权限或表空间,表现可能不是建库时报错,而是 Teamcenter 服务器启动到某一步才失败,排查范围会拉得很大。
模板复制有两个关键点:源目录要对,目标目录要在当前 Oracle Home 下。assistants\dbca\templates是 DBCA 读取模板的位置,复制错 Home,DBCA 里就看不到。常见做法是先确认ORACLE_HOME,再拼目标路径,不要凭记忆找目录。
| 项目 | 路径示例 | 说明 |
|---|---|---|
| 模板源目录 | Tc2007.1_wnti\tc\db_scripts\oracle | 安装包解压后的 Teamcenter 脚本目录 |
| DBCA 模板目录 | %ORACLE_HOME%\assistants\dbca\templates | 当前 Oracle Home 下 |
| 复制内容 | 目录下的模板文件 | 不要只复制子目录,保持文件完整 |
| 复制后动作 | 重启 DBCA | 让模板列表重新加载 |
4.2 复制 db_scripts 到 DBCA templates
复制前先确认源目录存在,目标目录存在。用 PowerShell 复制并列出结果,避免“以为复制了其实路径拼错”的情况。
# 源目录按实际安装包解压位置修改 $source = "D:\install\Tc2007.1_wnti\tc\db_scripts\oracle" $target = Join-Path $env:ORACLE_HOME "assistants\dbca\templates" if (-not (Test-Path $source)) { throw "模板源目录不存在: $source" } if (-not (Test-Path $target)) { New-Item -ItemType Directory -Path $target -Force | Out-Null } Copy-Item -Path (Join-Path $source "*") -Destination $target -Recurse -Force Get-ChildItem $target | Select-Object Name, Length, LastWriteTime$source指向 Teamcenter 安装包里的db_scripts\oracle,$target用$env:ORACLE_HOME拼出来,避免手写路径时指到旧 Home。Copy-Item带-Recurse保留子目录,-Force覆盖同名文件。最后列出目标目录,确认文件数量和修改时间。常见问题是源目录多套了一层oracle\oracle,复制后 DBCA 仍然找不到模板,这时要打开目标目录看文件层级,不要把整个父目录原样塞进去。
复制完成后关闭已经打开的 DBCA,再重新启动。DBCA 启动时会扫描模板目录,缓存没刷新时列表里不会出现新模板。重启后进入创建数据库向导,模板列表里应该能看到 Teamcenter Oracle 10g 这一项。
4.3 DBCA 建库参数与步骤
从“开始”菜单进入Oracle - OraDb10g_home1,打开“配置和移植工具”,再打开 Database Configuration Assistant。选择“创建数据库”,点击“下一步”。模板选择 Teamcenter Oracle 10g。全局数据库名输入tceng。选择“所有帐户使用同一口令”,口令输入tceng,确认口令也输入tceng。后面的数据文件位置、内存分配、初始化参数等步骤,按向导默认值继续,直接点击“下一步”直到完成。
| DBCA 参数 | 输入值 | 说明 |
|---|---|---|
| 操作类型 | 创建数据库 | 不要选配置现有数据库 |
| 模板 | Teamcenter Oracle 10g | 来自复制到 templates 的模板 |
| 全局数据库名 | tceng | 后续连接串和监听服务名会用到 |
| 口令管理 | 所有帐户使用同一口令 | 旧环境简化部署常见做法 |
| 口令 | tceng | 与库名一致,便于旧环境记录 |
| 后续步骤 | 默认配置 | 数据文件、内存按机器情况调整 |
全局数据库名tceng不是随便起的名字,它会影响服务名注册和连接串。建库完成后,监听器里应该能看到 tceng 相关服务。口令统一设成 tceng 是为了旧环境部署方便,但这也意味着后面要检查口令策略,防止账户过期或锁定。建库过程中如果中途失败,先看 DBCA 日志和 Oracle Home 下的跟踪文件,不要急着重跑;重跑前把半成品实例和服务清理干净,否则第二次建库会卡在实例名冲突。
建库完成后可以用 sqlplus 做一次本地登录,确认库能打开:
-- 以 sysdba 身份本地登录,查看实例状态和数据库名 sqlplus / as sysdba SELECT instance_name, status FROM v$instance; SELECT name, open_mode FROM v$database;/ as sysdba走操作系统认证,不依赖监听,适合建库后第一轮检查。v$instance看实例是否 OPEN,v$database看数据库是否 READ WRITE。如果这里就失败,先别查 Teamcenter,回到 Oracle 实例和建库日志。本地能登录、监听里也有服务,再去配 Teamcenter 服务器组件,顺序会清楚很多。
5. 安装避坑:监听、模板、口令和主机名里的五处翻车点
旧版 Teamcenter 安装的坑大多不是高深技术,而是环境细节。下面五处是旧环境里反复出现的翻车点,按“现象—原因—解决”拆开写。每一条都建议在安装记录里留一行,后面换机器复现时直接对照。
5.1 监听启动了但客户端连不上:主机名解析和端口
现象是数据库服务器上lsnrctl status显示 READY,端口 1521 也在监听,但另一台机器上的客户端tnsping tceng不通,或者连接时报ORA-12541: TNS:no listener。原因通常有两个:监听地址里填了localhost,只接受本机连接;或者客户端解析不到服务器计算机名,连接请求发到了错误地址。旧机器改过计算机名、hosts 文件里留着旧记录时,这个问题特别常见。
解决时先在服务器上确认监听地址,把主机名改成客户端能解析的计算机名,不要只写回环地址。然后在客户端用ping和tnsping分层测试。端口被防火墙拦住时,lsnrctl status仍然正常,但远程连不上,需要确认 1521 的入站规则。改完监听配置后执行lsnrctl reload或重启监听,再让客户端重试。不要只在服务器本机用 sqlplus 测试就认为远程没问题,本机走的是本地连接,绕过了网络层。
5.2 DBCA 里看不到 Teamcenter Oracle 10g 模板
现象是打开 DBCA 创建数据库,模板列表里只有通用模板,没有 Teamcenter Oracle 10g。原因最常见的是模板没有复制到当前 Oracle Home 的assistants\dbca\templates目录,或者复制到了另一个 Home。机器上装过多个 Oracle 产品时,ORACLE_HOME和开始菜单里的 DBCA 可能不是同一个,复制路径和实际启动的 DBCA 对不上。
解决时先在 DBCA 所在环境里确认ORACLE_HOME,再检查目标目录下有没有模板文件。用Get-ChildItem $env:ORACLE_HOME\assistants\dbca\templates看文件列表,确认文件层级没有多套一层目录。复制后关闭 DBCA 再重新打开,让模板列表重新扫描。如果仍然看不到,检查文件权限,普通用户复制进去的文件,DBCA 以管理员启动时可能读不到。必要时用管理员权限重新复制一遍。
5.3 统一口令 tceng 导致账户锁定或口令过期
现象是建库时选了所有帐户同一口令,过一段时间 sqlplus 登录报ORA-28000: the account is locked或ORA-28001: the password has expired。原因是 Oracle 默认概要文件里有口令有效期和失败锁定策略,旧环境装完后没人改,过几个月就集中爆发。Teamcenter 服务账号如果被锁,服务器启动时会报数据库连接失败,看起来像 Teamcenter 的问题,实际是库内账户状态。
解决时先用 sysdba 本地登录,查看账户状态并解锁。下面语句只做示例,账号名按实际环境替换:
-- 查看账户状态和锁定时间 SELECT username, account_status, lock_date, expiry_date FROM dba_users WHERE username IN ('SYSTEM', 'TCENG'); -- 解锁并重置口令,口令按现场规范修改 ALTER USER system ACCOUNT UNLOCK; ALTER USER system IDENTIFIED BY tceng;dba_users里能看到账户状态和过期时间,ALTER USER ... ACCOUNT UNLOCK解锁,IDENTIFIED BY重置口令。旧环境里常见做法是把默认概要文件的口令有效期调长或取消过期,但这属于安全策略调整,要按现场规范来,不要在生产环境随手改。更稳妥的做法是安装记录里写清楚服务账号和口令,后续定期检查账户状态。
5.4 监听程序重名或端口占用
现象是执行lsnrctl start报监听启动失败,或者提示地址已被占用。原因可能是机器上已经有旧的 LISTENER 在跑,或者 1521 端口被其他进程占用。旧环境迁移时经常出现新旧 Oracle Home 并存,两个监听抢同一个端口。另一个常见原因是 Net Manager 里重复创建了同名监听,配置里出现多个地址段。
解决时先执行lsnrctl status看当前监听状态,再用netstat -ano | findstr 1521找占用进程。确认是旧监听就停掉,确认是其他服务就改端口。改端口后要同步改tnsnames.ora和 Teamcenter 的连接配置,不能只改监听。Net Manager 里检查监听程序列表,同名监听只保留一个,地址段不要重复。处理完再启动,状态里看到 READY 才算过。
5.5 安装路径带中文或空格,DBCA 建库中途失败
现象是 Oracle 软件安装完成,DBCA 建库到复制文件或执行脚本阶段失败,日志里出现路径相关错误。原因是 Oracle Home、模板源目录或数据文件目录里带了中文、空格,旧版工具对这类路径处理不够稳。安装器当时可能不报错,DBCA 调用脚本时才暴露。
解决时把 Oracle Home 规划成纯英文、无空格路径,模板源目录也尽量放在浅层英文目录下。已经装错的话,不要在原目录上反复重试,清理半成品后按正确路径重装。数据文件目录同样避开中文和空格。旧机器上用户目录带中文名时,不要把 Oracle Home 放到桌面或文档目录下。这个坑没有太好的事后补救,提前规划路径最省事。
6. 建库后的连接验证:sqlplus、服务名与 tnsping 的三层检查
建完 tceng 库后,不要直接去装 Teamcenter 服务器。先做三层检查:监听层、网络层、数据库层。监听层看lsnrctl status是否 READY、1521 是否在听;网络层用tnsping tceng看客户端能否解析服务名;数据库层用 sqlplus 登录,确认实例打开、账号可用。三层里任何一层失败,排查范围都能缩小到具体位置。
# 第一层:监听状态,确认 READY 和端口 lsnrctl status LISTENER # 第二层:服务名解析,确认 tceng 能到达监听 tnsping tceng # 第三层:数据库登录,确认实例和账号可用 sqlplus system/tceng@tcengLISTENER是监听名,tceng是全局数据库名和服务名,system/tceng是账号口令。tnsping不通时回到监听地址和tnsnames.ora;sqlplus报ORA-01034说明实例没启动,报ORA-12514说明服务名没注册,报ORA-28000回到账户锁定。把这三条命令的输出留一份在安装记录里,后面换机器复现时直接对照,比凭记忆靠谱。从那以后我每次装旧版 Teamcenter 都先把监听、模板、口令这三件事各验一遍,再动服务器组件,希望帮到你。
本文还有配套的精品资源,点击获取