简介:面向PLM初学者和需要复核Teamcenter早期部署流程的工程人员,这份文档聚焦Teamcenter 2007安装中的数据库准备环节,帮助读者理解该版本对Oracle 10g的依赖关系、安装选项选择以及后续建库所需的基础配置。包内共1个doc文档,约3MB,内容以步骤说明和配置界面记录为主,便于按章节查阅关键参数。已有217人学习,适合作为旧版本环境搭建与知识梳理的参考。文档围绕Oracle 10g数据库软件安装、监听程序创建、Teamcenter数据库模板复制和使用DBCA创建tceng数据库等内容展开,并说明高级安装、企业版、仅安装数据库软件等选项;读者可借此把握部署初期的组件关系、模板位置与常见配置项,为后续服务器和客户端安装建立基础认识。
1. 装 Teamcenter 2007 之前,先把 Oracle 10g 这层基础配好
Teamcenter 2007 安装最容易卡住的地方,往往不是 TC 自己的安装程序,而是它前面的 Oracle 10g。我见过不止一次:安装包解压得好好的,TC 服务装到一半,弹出一个连不上数据库的框;回头翻日志查了半天,问题要么是监听没起,要么是实例没建,要么是模板根本没拷进 dbca 目录。这套环境的依赖关系相对固定:2007 这一代配的就是 Oracle 10g,位数错一位,后面每一步都得临时补。这篇笔记按我自己装机的顺序走一遍——先清点介质、再装库、再配监听、最后用 DBCA 把 tceng 建出来,中间把踩过的坑标出来。适合第一次上手这套老环境的人,也适合隔了几年又被叫回去重装一次的人。
2. 环境清点:Oracle 10g 与 Teamcenter 2007 的依赖对齐
装机前花二十分钟把依赖列清楚,能省掉后面两小时的返工。这套环境里真正要固定的只有四层:操作系统位宽、数据库软件、实例名、监听名。四者任一错位,症状都不会直接指向根因,只会给你一个 TNS 或 ORA 开头的错误号。
2.1 四层依赖的对应关系
先把这张表看一遍。Teamcenter 2007 时代的东西都是 32 位生态,Oracle 10g 又分 32 位和 64 位两个安装包,混装的后果是 TC 的数据库连接组件加载不了 oci.dll,报的错还跟权限不足长得一模一样。
| 层次 | 组件 | 本环境取值 | 说明 |
|---|---|---|---|
| 系统层 | Windows Server 系列 | 与安装介质位宽一致 | 32 位介质配 32 位系统,别指望兼容模式 |
| 数据库软件 | Oracle 10g 企业版 | 仅安装软件,不建实例 | 安装后 ORACLE_HOME 名为 OraDb10g_home1 |
| 实例层 | 全局数据库名 / SID | tceng | 建库时一次定死,后面改名代价很大 |
| 网络层 | 监听程序 | LISTENER,默认 1521 | 由 Net Manager 创建,lsnrctl 启停 |
| 应用层 | Teamcenter | 2007.1,介质目录 Tc2007.1_wnti | 建库模板从该目录提取 |
提示:全局数据库名和 SID 在 Oracle 10g 的 DBCA 里默认是联动的。输入 tceng 之后,SID 那一栏会自动填上 tceng,不要手动改成一个更长的名字,后面 TC 侧的连接串会跟它对不上。
安装路径的命名也有讲究。我一般把 ORACLE_HOME 放在D:\oracle\product\10.2.0\db_1这种短路径下,中间不出现空格和中文。Oracle 10g 的部分脚本对带空格的路径处理得并不干净,装的时候没报错,跑 DBCA 到一半才提示找不到模板文件,这是典型的弯路。
2.2 介质清点与目录规划
原始介质解压后,Teamcenter 的建库脚本在Tc2007.1_wnti\tc\db_scripts\oracle下面。这个目录不需要单独安装,它只是几个模板文件,作用是把 Teamcenter 需要的表空间配置、初始化参数预先写好,让 DBCA 在建库时直接套用。装 Oracle 之前就应该把它翻出来确认一遍,别等到 DBCA 界面里找不到「Teamcenter Oracle 10g」这个模板才回头找。
rem 确认 TC 建库模板是否存在,正常应该有 .dfb 或 .dbc 结尾的文件 dir "D:\Tc2007.1_wnti\tc\db_scripts\oracle" rem 确认 Oracle 安装后的 dbca 模板目录,路径里的 db_1 要和实际 ORACLE_HOME 对应 dir "D:\oracle\product\10.2.0\db_1\assistants\dbca\templates"第一条dir是确认介质完整,解压中断的包经常只出来半个目录。第二条是确认目标目录存在——Oracle 装完之后这个目录一定会有,里面本来就有若干通用模板文件,一会儿 TC 的模板要拷进去和它们并排放在一起。两条命令的输出都正常,才说明介质侧和软件侧都对上了。
目录规划上我习惯这样分:Oracle 软件单独一个盘符或目录,数据文件放另一个分区。不是因为 10g 对 IO 有什么要求,而是这套库以后要扩容、要备份、要挪机器,文件和数据放在一起会让迁移变成整盘拷贝。磁盘空间上,软件本身占两三个 GB,加上一个最小化的 tceng 库和临时表空间,留 20GB 以上比较稳。
2.3 账户权限与系统前置
用本地管理员账户执行整个安装流程,这一点没什么可商量的。Oracle 10g 的安装程序要写注册表、注册系统服务、改 PATH,普通账户走到一半会卡在「无法创建服务」这类提示上,而提示里不会告诉你是权限问题。
安装前把这几件事做掉:
- 关掉系统的用户账户控制,装完再打开。10g 的安装器对权限提升的处理很粗糙。
- 确认机器名不含下划线,并且能被自己解析到。监听配置里要填主机名,解析不了就会退化成回环地址。
- 防火墙先放行 1521 端口,或者干脆在安装阶段临时关掉,装完再按需放开。
- 不要在同一台机器上装第二个 Oracle 10g 的 HOME,两个 ORACLE_HOME 共存时环境变量只会指向其中一个,lsnrctl 用错 HOME 起监听是高频事故。
做完这些,系统层面就算干净了。接下来才是真正把 Oracle 10g 装上去。
3. Oracle 10g 安装:高级安装与企业版的选择
Oracle 10g 的安装向导本身不难,难在几个选项卡上做的决定会在几天后才显出后果。这一步里最关键的其实只有一个——配置选项那页选「仅安装数据库软件」。选错这一项,后面 DBCA 建库时会发现已经有一个默认实例占着 SID,要么删库重来,要么改端口绕开。
3.1 走一遍安装向导
把安装介质挂上,运行 setup,按下面的顺序走:
- 进入安装界面,不要选基本安装,点「高级安装」。基本安装会把实例、监听、示例库一次性全建出来,跟 Teamcenter 要的模板库完全不是一回事。
- 安装类型选「企业版」。TC 这套数据字典里表数量不小,企业版在分区和并行上的支持更完整,标准版省下的那几个授权在实际使用中并不划算。
- 指定安装目录,路径按上一章规划好的短路径填。产品清单目录(inventory)保持默认,它记录本机装过哪些 Oracle 组件,以后打补丁要靠它。
- 安装程序做前提条件检查。内存和交换区的告警可以忽略,但如果有「操作系统版本未验证」的提示,确认位宽一致后可以继续。
- 走到配置选项那页,选「仅安装数据库软件」,这是全文最重要的一次点击。
- 点「下一步」,确认摘要信息,开始复制文件。
- 中途会弹窗要求以 root 身份跑两个脚本。这一步在 Windows 上一般不会出现,出现了说明装的是跨平台版本,按提示走完即可。
- 安装结束,点「退出」。此时数据库软件已经在机器上,但还没有任何可用实例。
整个过程十几分钟,比后面的建库快得多。退出之后先别急着开 Net Manager,花几分钟把环境变量和服务状态确认一遍。
3.2 「仅安装数据库软件」为什么不能图省事
如果在这一页选了「创建数据库」,Oracle 会用自带的通用模板建一个 ORCL 之类的实例,同时把监听也配好。听起来省事,实际会带来两个问题。
第一是模板不对。TC 的库需要特定的表空间布局和初始化参数,用通用模板建出来的库,后面还是要删掉重建,等于白跑一遍。第二是 SID 冲突。DBCA 建 tceng 时要注册新的实例和新的服务名,机器上已经有一个占着 1521 的实例,要么改端口,要么停服务,两种处理都会让后面的连接串对不上。
从原理上说,Oracle 10g 把「软件安装」和「实例创建」拆成了两个独立阶段,就是为了支持这种一机多库的场景。选「仅安装数据库软件」,等于只完成第一阶段,把第二阶段完全交给 DBCA 和 TC 模板来控制。这也是后面所有配置步骤能对得上的前提。
提示:如果已经手快选了创建数据库,不必重装。用 DBCA 把多出来的实例删掉,再用同一个 DBCA 建 tceng 即可,删库前确认那个实例里没有你需要的数据。
3.3 装完先别建库:环境变量与服务检查
安装程序退出后,先从命令行确认两件事:服务有没有注册上,环境变量有没有指对。这两项错了,后面 lsnrctl 和 sqlplus 都会以「找不到命令」的方式报错,很容易被误判成路径问题。
rem 查看安装程序注册了哪些 Oracle 相关服务,正常情况下能看到监听服务和若干后台服务 sc query state= all | findstr /i "Oracle" rem 确认 ORACLE_HOME 和 ORACLE_SID,注意这里还没建库,SID 先设上不影响什么 echo %ORACLE_HOME% echo %ORACLE_SID% rem 若为空则手动写入系统变量,路径换成你自己的 ORACLE_HOME setx ORACLE_HOME "D:\oracle\product\10.2.0\db_1" /M setx ORACLE_SID "tceng" /M setx PATH "%PATH%;%ORACLE_HOME%\bin" /Msc query那条的输出里,OracleOraDb10g_home1TNSListener是要重点看的,它对应监听服务,虽然此刻监听还没配置,服务项一般已经注册。setx /M表示写系统级变量而不是当前用户变量,写完之后要新开一个命令行窗口才生效,这是很多人改完变量发现echo还是空的原因。
PATH 那一行把%ORACLE_HOME%\bin追加进去,lsnrctl、tnsping、sqlplus 这些工具才不用写全路径。我一般会把这个 bin 目录放在 PATH 靠前的位置,避免机器上其他软件的旧版客户端把同名工具抢了先。
环境变量对了,软件这一层就算落地了。
4. 监听与建库:Net Manager 配 LISTENER,DBCA 建 tceng
这一章是整篇里操作最密集的部分,顺序不能反:先拷模板,再建监听,最后用 DBCA 建库。顺序反了会出现「建库时找不到监听」或者「模板列表里没有 TC 选项」这两种经典卡点。
4.1 把 TC 的建库模板放进 dbca 目录
DBCA 的模板下拉框只认assistants\dbca\templates这个目录里的文件,所以第一步是把介质里的模板拷过去。拷贝之前先备份原目录,虽然只是几个通用模板,但装坏了想恢复原状会麻烦。
rem 备份原模板目录,出问题可以还原 xcopy "D:\oracle\product\10.2.0\db_1\assistants\dbca\templates" "D:\backup\dbca_templates_bak\" /E /I /Y rem 把 TC 的建库模板拷进 dbca 模板目录 xcopy "D:\Tc2007.1_wnti\tc\db_scripts\oracle\*.*" "D:\oracle\product\10.2.0\db_1\assistants\dbca\templates\" /E /Y/E表示连空目录一起复制,/I表示目标不存在时按目录处理,/Y是覆盖时不询问。这几条参数在批处理里跑很关键,缺了/Y会停在交互提示上,自动化脚本就断在那里了。
拷完再dir一次目标目录,确认 TC 的模板文件和原有的通用模板并排躺着。文件名不用改,DBCA 是根据模板内部记录的元信息来显示名称的,改文件名反而可能让它认不出来。
提示:如果机器上装过多个 ORACLE_HOME,模板一定要拷到启动 DBCA 的那个 HOME 下面。拷到另一个 HOME 里,界面上永远看不到 Teamcenter Oracle 10g 这一项。
4.2 Net Manager 建 LISTENER 与 listener.ora
监听用图形界面配是最省事的。从「开始」菜单进Oracle - OraDb10g_home1→Net Manager,然后按这个路径点:编辑 → 创建 → 监听程序,名称填LISTENER,添加一个地址,协议选 TCP/IP,主机名填本机名,端口 1521,保存。
保存之后网络配置会写回listener.ora,内容大致如下:
# listener.ora 网络配置文件,位于 ORACLE_HOME\network\admin 下 LISTENER = (DESCRIPTION_LIST = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = tc-db01)(PORT = 1521)) ) ) # 10g 默认不开启动态注册之外的静态配置,SID_LIST 可以留空 SID_LIST_LISTENER = (SID_LIST = (SID_DESC = (SID_NAME = tceng) (ORACLE_HOME = D:\oracle\product\10.2.0\db_1) ) )HOST填的是主机名,不是 IP。用主机名便于以后换网段,代价是必须保证这个名字能被解析——hosts 文件里加一条是最稳的做法。PORT用默认的 1521,除非机器上确实有冲突,否则不要改,TC 侧的连接串默认也是按这个端口生成的。
SID_LIST_LISTENER这一段是为静态注册准备的。库还没建的时候加进去没有坏处,反而能让监听在实例起来之前就认得 tceng 这个名字。如果暂时不想加,删掉这一段也行,等库建好之后实例会自动动态注册上来。
4.3 lsnrctl 起监听,看懂 status 输出
配置保存完,监听并不会自己起来,需要手动启动一次。
rem 启动监听,输出里出现启动成功的提示才算成功 lsnrctl start rem 查看监听状态,重点看服务是否 READY、实例是否已注册 lsnrctl status rem 停监听用 stop,改完配置文件后建议 stop 再 start 而不是 reload lsnrctl stoplsnrctl start的输出里会列出监听地址和启动时间。lsnrctl status的信息量更大:上面一段是监听本身的地址和状态,下面一段是「服务摘要」,每个服务名后面跟一个状态。数据库还没建的时候,这里可能只显示监听在跑、没有任何服务注册,这是正常的,不用当成故障。
真正需要警惕的是status直接报TNS-12541: TNS:no listener或者TNS-12560。前者说明监听根本没起来,后者多半是 ORACLE_HOME 指错了,lsnrctl 读的是另一个 HOME 下的配置文件。
提示:改完 listener.ora 之后用 stop 再 start,不要用 reload。10g 的 reload 在部分场景下不会重新读取地址列表,改完端口还是按老端口监听。
4.4 DBCA 建 tceng 库
监听跑起来之后再动 DBCA。从「开始」菜单进Oracle - OraDb10g_home1→配置和移植工具→Database Configuration Assistant,按下面的顺序走:
- 欢迎页直接下一步,选「创建数据库」。
- 模板列表里选「Teamcenter Oracle 10g」。这一项能出现,说明上一节的模板拷贝做对了;出不来就回去查拷贝路径。
- 全局数据库名填
tceng,SID 会自动跟着变成tceng,不要手动改。 - 选「所有帐户使用同一口令」,口令填
tceng,确认口令也填tceng。 - 存储选项保持文件系统,数据文件位置用默认或者指到规划好的数据分区。
- 恢复配置选不启用归档,这套环境前期不做在线备份,归档会白占空间。
- 数据库内容页不安装示例方案,示例 schema 对 TC 一点用没有,只会拖慢建库。
- 初始化参数页确认字符集。我一般选 AL32UTF8,避免后面中文数据进库出乱码;内存参数按机器实际情况给,不要照抄。
- 安全设置保持默认,最后到摘要页点「完成」,等建库跑完。
建库的时间取决于机器性能,十几分钟到半小时都算正常。跑完之后 DBCA 会给出一个包含管理 URL 和口令信息的摘要,把这个页面截图存下来,后面配 TC 服务端的时候要照着填。
到这一步,数据库软件、监听、实例三样东西齐了,Teamcenter 侧才有东西可以连。
5. 避坑与排查:Oracle 10g 配 Teamcenter 2007 的五处高频翻车
下面这五条是我自己或同行实际遇到过的,按现象、原因、解决三段写。它们共同的特征是:报错信息指向的位置和真实原因隔了一层,不按顺序排查会绕很多弯路。
5.1 监听与网络类
现象:lsnrctl start回车后立刻返回TNS-12560: TNS:protocol adapter error,或者提示找不到监听程序。
原因:命令行的 ORACLE_HOME 指向了另一个 Oracle 安装,或者当前用户 PATH 里的 lsnrctl 来自别的客户端软件。也有一种情况是监听服务注册了但配置文件路径不对,服务起来后读到一个空的 listener.ora。
解决:先echo %ORACLE_HOME%确认路径,再用全路径执行%ORACLE_HOME%\bin\lsnrctl start,绕开 PATH 干扰。确认%ORACLE_HOME%\network\admin\listener.ora存在且有内容。都不行就重新跑一遍 Net Manager 保存一次,让它重写配置文件。
现象:监听起来了,tnsping tceng一直超时。
原因:tnsnames.ora 里没有 tceng 这一条,或者条目里的 HOST 写的是一个解析不了的名字。
解决:在%ORACLE_HOME%\network\admin\tnsnames.ora里补一条,HOST 用主机名或直接写 IP 都行,写 IP 更省事。补完保存,tnsping不用重启监听就能生效。
5.2 模板与建库类
现象:DBCA 的模板列表里翻遍了也找不到「Teamcenter Oracle 10g」。
原因:模板文件拷到了另一个 ORACLE_HOME 的 templates 目录,或者拷贝时用了通配符但源目录本身是空的。还有一种隐蔽情况:拷贝过去了,但当前启动 DBCA 的用户对该目录没有读权限。
解决:dir确认目标目录里有 TC 的模板文件,再用echo %ORACLE_HOME%核对启动的 DBCA 是不是同一个 HOME。确认无误后关掉 DBCA 重新打开,模板列表是启动时扫描的,不重启看不到新文件。
现象:建库进度条走到创建数据字典那一步报ORA-12514: TNS:listener does not currently know of service。
原因:监听没有运行,或者监听的 SID_LIST 里写的 SID 和 DBCA 要建的库名不一致。也有可能是建库前把监听停了。
解决:另开一个窗口lsnrctl status看服务摘要,确认监听在跑。SID 对不上的话改 listener.ora 里的 SID_NAME,然后 stop/start 监听,再重跑 DBCA。建库过程中不要动监听。
5.3 口令与环境类
现象:DBCA 在口令那一步提示口令不符合复杂度要求,明明就是 tceng。
原因:安装时如果启用了口令校验函数,纯小写字母的口令会被判为过于简单。这条限制在建库阶段才生效,安装软件时看不出来。
解决:最省事的做法是先按提示改成一个符合规则的复杂口令,把库建出来;如果必须用 tceng,就在建库前临时取消口令校验,或者建完之后再用 ALTER USER 改回来。改完记得同步 TC 侧的连接配置。
现象:所有步骤都走完了,TC 安装程序连库时提示连接超时,sqlplus 本地却能连上。
原因:sqlplus 走的是本地 IPC,不经过监听;TC 走的是网络连接,中间任何一个环节(hosts、防火墙、tnsnames 条目)不通都会超时。
解决:先用sqlplus system/tceng@tceng走一遍网络方式登录,能进说明数据库侧没问题,问题在 TC 侧的连接串;进不去就回头查 tnsnames.ora 和 1521 端口。用主机名的地方全部改成 IP 试一次,能通就是名字解析的锅。
6. 装完怎么验证:从 lsnrctl 到 TC 连库的闭环
建库跑完不等于这套环境能用,还得走一遍从监听、实例到应用连接的完整链路。我的习惯是四条命令依次过,每条都过了才动 TC 的安装程序。
6.1 四条命令的验证顺序
rem 第一条:监听在跑,且服务摘要里能看到 tceng lsnrctl status rem 第二条:网络服务名能解析,输出里应显示连接描述和 OK tnsping tceng rem 第三条:以网络方式登录,必须带 @tceng,不能用本地方式糊弄过去 sqlplus system/tceng@tceng前两条在命令行里跑,第三条进去之后接着执行下面的查询,确认实例状态和字符集:
-- 实例必须是 OPEN 状态,MOUNTED 或 STARTED 都不算跑通 select instance_name, status from v$instance; -- 字符集要和规划一致,不一致的话后面中文数据会出问题 select parameter, value from nls_database_parameters where parameter = 'NLS_CHARACTERSET'; -- 确认 TC 需要的表空间已经由模板建出来了 select tablespace_name, status from dba_tablespaces;v$instance里状态是 OPEN 才算真正可用。字符集那条如果返回的不是你选的那个,后面就不要往里灌数据了,改字符集要重建库。表空间那条能看到模板预置的几个表空间,说明 Teamcenter Oracle 10g 模板确实生效了,而不是走了通用模板。
6.2 交给 TC 安装程序做最后一道预检
上面三条都过了,最后一步是把 TC 的安装程序打开,走到要求填数据库连接信息的那一页,把主机名、端口 1521、SIDtceng、口令填进去,点测试连接。这一步不是形式,它调用的连接组件和后面跑业务时是同一套,能在这里通过,说明位数、客户端库、网络三条都对上了。
几点补充判断,用一张表收一下:
| 检查点 | 正常表现 | 异常时的第一嫌疑 |
|---|---|---|
| lsnrctl status | 服务摘要出现 tceng,状态 READY | listener.ora 的 HOST 或 SID_LIST |
| tnsping tceng | 返回 OK,耗时若干毫秒 | tnsnames.ora 条目或名字解析 |
| sqlplus 网络登录 | 正常进入 SQL 提示符 | 监听未起或口令不符 |
| TC 测试连接 | 提示连接成功 | 客户端位数或 oci.dll 加载 |
有一次我在一台机器上,前三项全绿,TC 死活连不上,最后发现是系统里同时装了一个 64 位的数据库客户端,PATH 排序把它排在了 10g 的 bin 前面,TC 加载了错误的 oci.dll。从那以后我每次装完这套环境,都强制走一遍上面四条命令,并且把echo %PATH%的结果也看一眼,确认 Oracle 的 bin 目录排在前面。老环境的坑大多不在大步骤上,都藏在这种顺序里。
希望这套流程能帮你少返工一次。
本文还有配套的精品资源,点击获取