據(jù)庫環(huán)境搭建與避坑指南)
簡介面向需要部署PLM環(huán)境的實(shí)施、運(yùn)維與技術(shù)支持人員這份文檔作為一份doc格式的安裝記錄詳細(xì)梳理了Teamcenter 2007安裝中數(shù)據(jù)庫層的完整流程重點(diǎn)圍繞Oracle 10.0展開。包內(nèi)僅一份doc文檔壓縮包大小約3MB已有214人學(xué)習(xí)瀏覽。內(nèi)容包括從選擇高級(jí)安裝與企業(yè)版、僅安裝數(shù)據(jù)庫軟件到通過Oracle Net Manager創(chuàng)建LISTENER監(jiān)聽并由命令行l(wèi)snrctl start啟動(dòng)再到把Teamcenter自帶的Oracle模板復(fù)制到Database Configuration Assistant的templates目錄、輸入全局?jǐn)?shù)據(jù)庫名tceng、統(tǒng)一口令配置等關(guān)鍵步驟。作者不僅列出了點(diǎn)擊路徑還標(biāo)注了模板所在路徑、監(jiān)聽名稱設(shè)置等容易被忽略的細(xì)節(jié)并提示后續(xù)仍需安裝服務(wù)器與客戶端組件、集成CAD系統(tǒng)能幫助讀者避開安裝中的典型問題。盡管2007版本較早但了解其數(shù)據(jù)庫前置配置對(duì)理解Teamcenter的基礎(chǔ)架構(gòu)與依賴關(guān)系仍有實(shí)用參考價(jià)值可作為相關(guān)學(xué)習(xí)與部署工作的摸底文檔。1. Teamcenter 2007 安裝卡在 Oracle 的人多半不懂這三件事Teamcenter 2007 是老牌 PLM 系統(tǒng)里的一個(gè)經(jīng)典版本雖然現(xiàn)在新項(xiàng)目很少用它但很多企業(yè)產(chǎn)線、設(shè)備檔案、工藝數(shù)據(jù)還在它上面跑。裝過的人都知道這版本真正勸退人的不是 Teamcenter 本體而是前面那套 Oracle 10g 環(huán)境的搭建。這份安裝資源把我當(dāng)年啃了好久的步驟壓縮成了一條可復(fù)現(xiàn)的路徑Oracle 軟件怎么裝、監(jiān)聽器怎么建、模板往哪兒拷、DBCA 建庫時(shí)每一步到底在干什么。適合兩類人一類是剛接手老 PLM 系統(tǒng)、需要搭一套測試環(huán)境練手的工程師另一類是想搞懂 TC 數(shù)據(jù)庫層關(guān)系、為后續(xù)升級(jí)做準(zhǔn)備的實(shí)施顧問。下面按我實(shí)際裝過的流程拆開講參數(shù)和路徑都是可以直接照抄的級(jí)別。2. Oracle 10g 軟件安裝高級(jí)安裝、企業(yè)版和那步“僅安裝數(shù)據(jù)庫軟件”2.1 為什么選 Oracle 10g 而不是其他版本Teamcenter 2007.1 對(duì)應(yīng)的數(shù)據(jù)庫支持矩陣?yán)颫racle 10g 是被官方驗(yàn)證過的組合之一11g 在某些補(bǔ)丁包下也能跑但很多老實(shí)施項(xiàng)目默認(rèn)還是走 10g。原因很簡單TC 2007.1 的數(shù)據(jù)庫模板腳本是基于 10g 的語法和目錄結(jié)構(gòu)寫的用 11g 建庫不是不行但容易在字符集、表空間、臨時(shí)段這些細(xì)節(jié)上翻車。我見過有人拿 11g 硬上建庫能過裝 TC 服務(wù)端時(shí)連不上數(shù)據(jù)庫查半天發(fā)現(xiàn)是模板里引用了 10g 的路徑和參數(shù)文件。所以如果你不是非要用新版數(shù)據(jù)庫老老實(shí)實(shí)按 10g 來這是最穩(wěn)的路線。Oracle 10g 本身分企業(yè)版、標(biāo)準(zhǔn)版、個(gè)人版。Teamcenter 的并發(fā)用戶數(shù)、多站點(diǎn)配置、CAD 集成這些特性都要求企業(yè)版所以安裝類型直接選企業(yè)版就對(duì)了。還有一個(gè)容易被忽略的點(diǎn)10g 的安裝盤分 32 位和 64 位TC 2007.1 的數(shù)據(jù)庫模板很多是在 32 位環(huán)境下打包測試的如果你在 64 位系統(tǒng)上裝 64 位 OracleDBCA 創(chuàng)建數(shù)據(jù)庫時(shí)可能報(bào)模板加載失敗。后面避坑章里我會(huì)專門講。2.2 安裝全程參數(shù)記錄從高級(jí)安裝到僅裝軟件Oracle 10g 安裝啟動(dòng)后第一個(gè)關(guān)鍵選擇是“高級(jí)安裝”。這里別選“基本安裝”基本安裝會(huì)直接創(chuàng)建一個(gè)名為 orcl 的數(shù)據(jù)庫實(shí)例后面還要?jiǎng)h掉重來純屬浪費(fèi)半小時(shí)。高級(jí)安裝的模式下你能自己控制安裝類型、目錄和數(shù)據(jù)庫創(chuàng)建方式。整個(gè)過程我按實(shí)際點(diǎn)擊順序拆成下面幾步# 1. 啟動(dòng)安裝程序后選擇高級(jí)安裝 # 2. 選擇部署類型企業(yè)版 # 3. 指定安裝目錄比如 D:\oracle\product\10.2.0\db_1 # 4. 在選擇配置選項(xiàng)時(shí)選僅安裝數(shù)據(jù)庫軟件 # 5. 點(diǎn)擊安裝等待約 20-30 分鐘 # 6. 安裝結(jié)束后點(diǎn)擊退出第 4 步是全流程里最核心的決策點(diǎn)“僅安裝數(shù)據(jù)庫軟件”意味著不會(huì)創(chuàng)建數(shù)據(jù)庫實(shí)例只把 Oracle 的軟件組件、監(jiān)聽器工具、命令行工具裝好。Teamcenter 2007 的庫要通過模板創(chuàng)建實(shí)例名、數(shù)據(jù)文件位置、內(nèi)存參數(shù)都得按 TC 的要求來如果這里讓 Oracle 自己建一個(gè)默認(rèn)庫后面刪庫重建要費(fèi)兩倍時(shí)間。我一般會(huì)給 Oracle 單獨(dú)分一個(gè)分區(qū)數(shù)據(jù)盤和系統(tǒng)盤分開避免后續(xù)表空間擴(kuò)容時(shí)把 C 盤撐爆。安裝目錄這塊有個(gè)細(xì)節(jié)Oracle 10g 的絕對(duì)路徑不要太深D:\oracle\product\10.2.0\db_1 這種級(jí)別就差不多。路徑太長或者帶空格DBCA 建庫時(shí)某些腳本會(huì)解析出問題。另外Oracle 10g 的安裝用戶和環(huán)境變量在 Windows 下沒有 UNIX 那么講究但安裝目錄的寫權(quán)限要確認(rèn)到位否則寫到一半報(bào) ORA-01031 權(quán)限不足。2.3 “僅安裝數(shù)據(jù)庫軟件”和“創(chuàng)建數(shù)據(jù)庫”有什么區(qū)別很多第一次裝 TC 的人會(huì)在這里猶豫既然 Teamcenter 需要數(shù)據(jù)庫為什么不趁安裝 Oracle 的時(shí)候直接建庫答案在于 Teamcenter 需要的不是空庫而是一套包含了 TC 專有表空間、用戶、初始數(shù)據(jù)、存儲(chǔ)過程模板的數(shù)據(jù)庫。用 DBCA 選擇“Teamcenter Oracle 10g”模板創(chuàng)建出來的庫才會(huì)有 tcadmin 用戶、TCDATA 表空間、TCS_* 這些預(yù)設(shè)對(duì)象。如果讓 Oracle 自帶的“創(chuàng)建數(shù)據(jù)庫”選項(xiàng)建一個(gè)通用實(shí)例模板后續(xù)導(dǎo)入會(huì)很別扭。另外僅安裝軟件可以避免端口沖突。Oracle 安裝時(shí)如果自動(dòng)建庫默認(rèn)會(huì)占用 1521 端口并啟動(dòng)監(jiān)聽如果你機(jī)器上已經(jīng)有別的 Oracle 或者數(shù)據(jù)庫服務(wù)這個(gè)默認(rèn)監(jiān)聽會(huì)失敗。選“僅安裝數(shù)據(jù)庫軟件”監(jiān)聽器完全由你手動(dòng)控制什么時(shí)候建、用什么端口、是否開機(jī)自啟都清楚。整個(gè) Oracle 軟件安裝的部分判斷成功的標(biāo)準(zhǔn)不是安裝向?qū)ё咄甓窍旅孢@個(gè)命令能正常輸出版本信息# 打開 DOS 命令行驗(yàn)證 Oracle 軟件版本 sqlplus /nolog SQL select * from v$version;看到 Oracle Database 10g Enterprise Edition 的版本行才說明軟件層沒問題。接下來才能進(jìn)入監(jiān)聽器環(huán)節(jié)。3. 監(jiān)聽器創(chuàng)建Dos 命令行、lsnrctl 與 1521 端口3.1 Net Manager 創(chuàng)建 LISTENER 的完整設(shè)置監(jiān)聽器是 Oracle 對(duì)外服務(wù)的門衛(wèi)Teamcenter 服務(wù)端連數(shù)據(jù)庫靠的就是它。資源里的路徑是“開始”菜單 -“Oracle - OraDb10g_home1”-“Net Manager”這個(gè)工具在 10g 里叫 Net Manager到了 11g 以后改叫 Net Configuration Assistant名字變了但作用一樣。打開 Net Manager 后左側(cè)樹形目錄會(huì)顯示“監(jiān)聽程序”這個(gè)節(jié)點(diǎn)下默認(rèn)可能有一個(gè) LISTENER。如果你沒看到任何監(jiān)聽程序按菜單“編輯” -“創(chuàng)建” -“監(jiān)聽程序”彈窗里輸入監(jiān)聽程序名稱LISTENER。名稱最好保持默認(rèn)因?yàn)?TC 2007.1 服務(wù)端安裝時(shí)會(huì)在配置里找 LISTENER 這個(gè)名字你起個(gè)別名后面還得手工改配置沒必要。監(jiān)聽程序創(chuàng)建完右側(cè)窗口會(huì)顯示監(jiān)聽地址列表。雙擊“監(jiān)聽程序”節(jié)點(diǎn)可以看到它偵聽的地址協(xié)議默認(rèn) TCP/IP主機(jī)名填本機(jī) IP 或 localhost端口保持 1521。配置完不用重啟電腦Net Manager 會(huì)把配置寫入 $ORACLE_HOME\network\admin\listener.ora這個(gè)文件路徑要記住排錯(cuò)時(shí)經(jīng)常要看它。-- listener.ora 最終內(nèi)容大致如下 SID_LIST_LISTENER (SID_LIST (SID_DESC (GLOBAL_DBNAME tceng) (ORACLE_HOME D:\oracle\product\10.2.0\db_1) (SID_NAME tceng) ) ) LISTENER (DESCRIPTION_LIST (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST 本機(jī)IP)(PORT 1521)) ) )這里有個(gè)關(guān)鍵點(diǎn)SID_LIST_LISTENER 里的 SID_NAME 和 GLOBAL_DBNAME 填的是 tceng也就是說監(jiān)聽器在軟件安裝階段就把后面要建的庫名預(yù)留好了。如果你監(jiān)聽器建完之后發(fā)現(xiàn)沒這個(gè)段后面 DBCA 建庫完客戶端連接時(shí)會(huì)提示監(jiān)聽器無法識(shí)別服務(wù)名。遇到這種情況不要慌用文本編輯器往 listener.ora 里補(bǔ)這段然后重啟監(jiān)聽器就行。3.2 lsnrctl start/status 驗(yàn)證與開機(jī)自啟創(chuàng)建完監(jiān)聽器只是寫好了配置文件服務(wù)還沒起來。資源里寫的是“從命令行啟動(dòng)監(jiān)聽程序”確實(shí)是 10g 時(shí)代最常用的方式。# 啟動(dòng)監(jiān)聽器 lsnrctl start # 查看監(jiān)聽器狀態(tài) lsnrctl statusstart 命令跑完正常輸出里會(huì)看到“Listening Endpoints Summary”這一段列出 TCP/IP 協(xié)議的 1521 端口還有“Services Summary”下面服務(wù)名是 tceng。如果 status 輸出里顯示“The listener supports no services”不代表監(jiān)聽器掛了只是數(shù)據(jù)庫還沒建等庫建好再 status 一次就能看到對(duì)應(yīng)服務(wù)。監(jiān)聽器默認(rèn)不是開機(jī)自啟的服務(wù)列表里有一個(gè)叫 OracleOraDb10g_home1TNSListener 的服務(wù)把它設(shè)為自動(dòng)啟動(dòng)就行了。這里有個(gè)經(jīng)驗(yàn)有些實(shí)施團(tuán)隊(duì)在文檔里讓你直接打開 Windows 服務(wù)管理器手動(dòng)啟動(dòng)但命令行方式更穩(wěn)因?yàn)樗鼤?huì)實(shí)時(shí)報(bào)端口占用、命令語法錯(cuò)誤這類問題。如果 lsnrctl start 報(bào)“Cannot start service”大概率是權(quán)限不夠用管理員身份打開命令行再跑一次。3.3 監(jiān)聽端口、SID 與防火墻的關(guān)系TC 2007.1 服務(wù)端安裝時(shí)配置數(shù)據(jù)庫連接的地方要填主機(jī)名、端口、SID 三件套。主機(jī)名填 TC 服務(wù)器能訪問到的數(shù)據(jù)庫服務(wù)器 IP端口默認(rèn) 1521SID 是 tceng。這三者必須和 listener.ora 保持完全一致多一個(gè)空格都不行。防火墻這一塊是新手最容易漏的。數(shù)據(jù)庫服務(wù)器上的 Windows 防火墻要放行 1521 端口Teamcenter 服務(wù)器上的防火墻要放行 7001、8080、9001 等 TC 自身服務(wù)的端口兩臺(tái)機(jī)器之間的網(wǎng)絡(luò)策略還要允許 Oracle 客戶端與 Oracle 服務(wù)器的 TCP 通信。我的排查習(xí)慣是先在 Teamcenter 服務(wù)器上用命令行測試一下端口通不通# 在 TC 服務(wù)器上測試數(shù)據(jù)庫服務(wù)器 1521 端口 telnet 192.168.1.100 1521能連上說明網(wǎng)絡(luò)層面通連不上就檢查防火墻、交換機(jī) ACL 和監(jiān)聽器狀態(tài)。TC 2007 那個(gè)年代很多企業(yè)還在用 XP 系統(tǒng)自帶防火墻默認(rèn)開啟經(jīng)常出現(xiàn)監(jiān)聽器明明在跑、遠(yuǎn)端卻連不上的情況。如果你測試服務(wù)器本機(jī)連接沒問題、跨機(jī)器連接超時(shí)第一反應(yīng)就是看防火墻規(guī)則。4. 數(shù)據(jù)庫模板與 DBCA 建庫tceng 庫從模板到落地的全過程4.1 模板文件拷貝源路徑、目標(biāo)路徑與文件后綴Teamcenter 2007.1 安裝包里自帶了一套數(shù)據(jù)庫模板路徑是 Tc2007.1_wnti\tc\db_scripts\oracle。這套文件包括建庫腳本、表空間定義、數(shù)據(jù)字典初始化腳本等。Oracle 的 DBCA 工具能直接識(shí)別這些模板前提是模板必須放到 Oracle 自己的模板目錄里。# 源路徑Teamcenter 安裝包解壓目錄 Tc2007.1_wnti\tc\db_scripts\oracle # 目標(biāo)路徑Oracle 10g 安裝目錄下 %ORACLE_HOME%\assistants\dbca\templates%ORACLE_HOME% 就是你第 2 章里填的安裝路徑比如 D:\oracle\product\10.2.0\db_1。拷貝時(shí)注意看文件后綴Oracle 10g 的 DBCA 模板分 .dbc 和 .jdbc 兩種10g 用的主要是 .dbc 文件。如果你只拷了 .jdbc 或者只拷了 .dbcDBCA 啟動(dòng)后可能看不到團(tuán)隊(duì)模板我一般直接把整個(gè) oracle 目錄下的文件全部拷過去省得漏??截愅瓴灰敝P(guān)文件夾在 DBCA 的模板列表里確認(rèn)能看到“Teamcenter Oracle 10g”再往下走。4.2 DBCA 創(chuàng)建 Teamcenter Oracle 10g 數(shù)據(jù)庫的參數(shù)清單啟動(dòng) DBCA 的方式是“開始”菜單 -“Oracle - OraDb10g_home1”-“配置和移植工具”-“Database Configuration Assistant”。第一次啟動(dòng)會(huì)彈歡迎界面直接下一步然后按下面的順序操作# 1. 選擇創(chuàng)建數(shù)據(jù)庫下一步 # 2. 模板列表里選擇Teamcenter Oracle 10g # 3. 全局?jǐn)?shù)據(jù)庫名稱tceng # 4. 選擇所有帳戶使用同一口令口令和確認(rèn)口令都填 tceng # 5. 后續(xù)三步數(shù)據(jù)文件位置、恢復(fù)配置、內(nèi)存參數(shù)全部采用默認(rèn)點(diǎn)下一步 # 6. 點(diǎn)擊完成等待建庫腳本執(zhí)行全局?jǐn)?shù)據(jù)庫名 tceng 不只是名字它同時(shí)是 Oracle 實(shí)例的 SID、監(jiān)聽器識(shí)別的服務(wù)名、Teamcenter 配置里的數(shù)據(jù)庫名。所以這個(gè)值不能亂起資源里寫的是 tceng 我就一直沿用它??诹畹膯栴}后面單獨(dú)說這里先說模板選擇你選的“Teamcenter Oracle 10g”模板決定了建庫腳本會(huì)創(chuàng)建所有 TC 需要的表空間和用戶。如果你在模板列表里看不到這個(gè)選項(xiàng)回到 4.1 檢查拷貝路徑或者確認(rèn)安裝包解壓是否完整。建庫過程大約耗時(shí) 10 到 25 分鐘取決于機(jī)器性能。DBCA 界面上會(huì)滾動(dòng)顯示執(zhí)行的腳本其中比較有辨識(shí)度的是創(chuàng)建 tcdata 表空間、創(chuàng)建 tcadmin 用戶、導(dǎo)入基礎(chǔ)數(shù)據(jù)字典這幾步。如果你看到腳本長時(shí)間卡住不動(dòng)別急著強(qiáng)制關(guān)閉等幾分鐘10g 在 Windows 上建庫偶爾會(huì)有假死現(xiàn)象實(shí)際上是磁盤 IO 在磨蹭。4.3 庫名、口令與后續(xù) Teamcenter 連接參數(shù)的對(duì)應(yīng)關(guān)系TC 2007.1 服務(wù)端安裝到數(shù)據(jù)庫配置這一步時(shí)會(huì)要求填寫數(shù)據(jù)庫連接參數(shù)核心就是主機(jī)名、端口、SID、用戶名、口令。這里的對(duì)應(yīng)關(guān)系非常直接主機(jī)名是數(shù)據(jù)庫服務(wù)器 IP端口是 1521SID 是 tceng用戶名是 tcadmin模板自動(dòng)創(chuàng)建口令是你在 DBCA 里設(shè)置的 tceng。-- 用命令行驗(yàn)證數(shù)據(jù)庫用戶存在 sqlplus system/tcengtceng SQL select username from dba_users where username like TC%;模板建出來的用戶不止 tcadmin 一個(gè)還會(huì)有一批以 TC 開頭的系統(tǒng)用戶比如 TCU、TCS、TCDBA 之類的。這些用戶的默認(rèn)口令通常都是統(tǒng)一的口令策略也就是你在“所有帳戶使用同一口令”里設(shè)的 tceng。如果后面 Teamcenter 安裝向?qū)崾灸硞€(gè)用戶解鎖或者口令過期回到這里重置就行。有個(gè)容易混淆的點(diǎn)Oracle 的“全局?jǐn)?shù)據(jù)庫名”和“SID”在單實(shí)例環(huán)境下可以認(rèn)為是一個(gè)東西但如果你在 DBCA 里把全局?jǐn)?shù)據(jù)庫名填成 tceng.company.com 這種帶域名的格式SID 實(shí)際是 tceng連接參數(shù)里填主機(jī)名SID 或主機(jī)名服務(wù)名會(huì)導(dǎo)致混淆。資源里直接讓你填 tceng 不帶域名這是最干凈的寫法后面省掉一堆麻煩。還有一個(gè)我們在項(xiàng)目里踩過的坑模板建庫時(shí)默認(rèn)的數(shù)據(jù)庫字符集。Teamcenter 2007 的老版本對(duì)中文支持依賴數(shù)據(jù)庫的字符集設(shè)置如果你的企業(yè)數(shù)據(jù)里有中文圖紙描述、工藝文件建議在 DBCA 選擇字符集環(huán)節(jié)確認(rèn)是 ZHS16GBK 而不是 AL32UTF8。有些實(shí)施者圖省事直接用默認(rèn)后續(xù)導(dǎo)入中文數(shù)據(jù)時(shí)出現(xiàn)亂碼追查起來非常麻煩。建庫完成后如果發(fā)現(xiàn)字符集不對(duì)只能重建數(shù)據(jù)庫沒有后悔藥。5. 常見問題Teamcenter 2007 裝 Oracle 數(shù)據(jù)庫的典型踩坑記錄5.1 64 位 Oracle 上模板建庫報(bào)錯(cuò)現(xiàn)象在 64 位 Windows 服務(wù)器上安裝 64 位 Oracle 10gDBCA 選 Teamcenter 模板后建庫進(jìn)度條走到一半彈出 ORA-01092或者提示文件無法解析。原因TC 2007.1 的數(shù)據(jù)庫模板腳本是在 32 位 Oracle 環(huán)境下編譯和測試的模板里的文件路徑、共享庫名、部分初始化參數(shù)是為 32 位版本寫的。在 64 位版本上執(zhí)行時(shí)某些腳本會(huì)調(diào)用不存在的動(dòng)態(tài)庫或者路徑錯(cuò)位。解決最省事的辦法是裝 32 位 Oracle 10g即使系統(tǒng)是 64 位 WindowsOracle 10g 有對(duì)應(yīng)的 32 位版本可以運(yùn)行。如果必須用 64 位就要手工逐條檢查模板里的 init 參數(shù)和文件路徑剔除 32 位專用配置這個(gè)工作量比較大。所以裝 TC 2007 的老項(xiàng)目數(shù)據(jù)庫服務(wù)器建議直接用 32 位系統(tǒng)或 32 位 Oracle 實(shí)例。5.2 DBCA 里找不到 Teamcenter 模板現(xiàn)象DBCA 啟動(dòng)后模板列表只有“一般用途”和“事務(wù)處理”沒有“Teamcenter Oracle 10g”。原因模板文件沒拷到位或者拷錯(cuò)了目錄。注意 DBCA 讀取模板的位置是 %ORACLE_HOME%\assistants\dbca\templates不是 Teamcenter 安裝包目錄。很多人把文件拷到了 Oracle 的根目錄或者 examples 目錄DBCA 不會(huì)去那讀。解決重新確認(rèn)模板源路徑 Tc2007.1_wnti\tc\db_scripts\oracle把里面的 .dbc 文件全部復(fù)制到 %ORACLE_HOME%\assistants\dbca\templates 下然后重啟 DBCA。如果還是沒有直接手工寫建庫腳本也是備選方案但需要熟悉 TC 的數(shù)據(jù)字典結(jié)構(gòu)不推薦新手嘗試。5.3 全局?jǐn)?shù)據(jù)庫名帶域名導(dǎo)致連接不上現(xiàn)象DBCA 建庫時(shí)全局?jǐn)?shù)據(jù)庫名填成了 tceng.company.com建庫成功但 Teamcenter 服務(wù)端配置連接時(shí)填 tceng 連不上填 tceng.company.com 也連不上。原因全局?jǐn)?shù)據(jù)庫名和實(shí)例名SID是兩回事。tceng.company.com 的 SID 是 tceng但監(jiān)聽器注冊的服務(wù)名可能是 tceng.company.com。Teamcenter 2007 的配置向?qū)Ю锾?SID 的位置如果填了完整域名Oracle 客戶端解析會(huì)出錯(cuò)。解決全局?jǐn)?shù)據(jù)庫名就寫成 tceng不帶任何域名后綴。如果已經(jīng)建錯(cuò)了直接改 listener.ora 里的 GLOBAL_DBNAME 和 DBCA 生成的 tnsnames.ora改成 tceng然后重啟監(jiān)聽器和數(shù)據(jù)庫實(shí)例。SQL*Plus 連接時(shí)用 sqlplus system/tcengtceng 這種簡寫方式。5.4 監(jiān)聽器端口被占、狀態(tài) UNKNOWN現(xiàn)象lsnrctl start 能執(zhí)行但 status 顯示監(jiān)聽端口不是 1521或者“Services Summary”里服務(wù)狀態(tài)是 UNKNOWN。Teamcenter 服務(wù)器上 telnet 1521 不通。原因之前裝過其他 Oracle 實(shí)例或 MySQL 之外的服務(wù)占了 1521或者 listener.ora 里寫的主機(jī)名是 127.0.0.1導(dǎo)致只在環(huán)回地址上監(jiān)聽外部訪問不到。狀態(tài) UNKNOWN 通常是因?yàn)?SID_LIST 配置和實(shí)際實(shí)例狀態(tài)不一致Oracle 監(jiān)聽器加載了配置但沒注冊上實(shí)例。解決先用命令查端口占用確認(rèn) 1521 沒被占再打開 listener.ora 把 HOST 字段從 127.0.0.1 改成數(shù)據(jù)庫服務(wù)器的實(shí)際內(nèi)網(wǎng) IP然后重啟監(jiān)聽器再 lsnrctl status 看狀態(tài)。如果服務(wù)狀態(tài)還是 UNKNOWN檢查數(shù)據(jù)庫實(shí)例是否已啟動(dòng)DBCA 建庫完成后實(shí)例應(yīng)該是 open 狀態(tài)。這個(gè)坑在我經(jīng)歷的三四個(gè)項(xiàng)目里都出現(xiàn)過而且每次原因都不太一樣建議把它當(dāng)成第一個(gè)排查目標(biāo)。5.5 內(nèi)存參數(shù)設(shè)置過小導(dǎo)致實(shí)例起不來現(xiàn)象DBCA 建庫過程顯示成功但執(zhí)行 lsnrctl status 發(fā)現(xiàn)服務(wù)狀態(tài)一直 UNKNOWNSQL*Plus 連接報(bào) ORA-01034 ORACLE not available。原因建庫時(shí)內(nèi)存配置選了默認(rèn)的“小型”檔SGA 和 PGA 分配不足實(shí)例啟動(dòng)時(shí) pfile 里的參數(shù)不滿足最低要求。TC 2007.1 模板里有一部分初始化參數(shù)針對(duì)生產(chǎn)環(huán)境要求 sga_target 和 pga_aggregate_target 至少一定水平低于這個(gè)值實(shí)例會(huì)直接拒絕啟動(dòng)。解決用 sqlplus 進(jìn)入空閑實(shí)例手動(dòng)指定參數(shù)啟動(dòng)SQL startup mount; SQL alter system set sga_max_size600M scopespfile; SQL alter system set sga_target600M scopespfile; SQL alter system set pga_aggregate_target200M scopespfile; SQL shutdown abort; SQL startup;如果機(jī)器本身內(nèi)存不大至少保證 sga_target 在 600M 以上pga 在 200M 以上。低于這個(gè)區(qū)間TC 建庫腳本里某些大表數(shù)據(jù)插入會(huì)報(bào)臨時(shí)表空間不足而且日志里不會(huì)直接提示內(nèi)存不夠表現(xiàn)為各種莫名其妙的 ORA-600 內(nèi)部錯(cuò)誤。內(nèi)存不足這個(gè)問題在虛擬機(jī)上裝 TC 2007 時(shí)特別常見因?yàn)槟J(rèn)虛擬機(jī)只給 2G 內(nèi)存Oracle 10g、Teamcenter 服務(wù)端、客戶端全擠在一起內(nèi)存根本不夠分。6. 裝完不是結(jié)束驗(yàn)證 tceng 庫狀態(tài)并接上 Teamcenter如果你跟我一樣走到這一步Oracle 10g 軟件裝完、監(jiān)聽器起來了、tceng 庫也通過 DBCA 用 Teamcenter 模板創(chuàng)建成功接下來千萬別急著去裝 Teamcenter 服務(wù)端。先花十分鐘把數(shù)據(jù)庫這個(gè)黑匣子驗(yàn)一遍確認(rèn)它真的能被外部連接使用。第一步是檢查監(jiān)聽器狀態(tài)和數(shù)據(jù)庫實(shí)例狀態(tài)。先 lsnrctl status 看端口和服務(wù)的注冊情況再用命令行連進(jìn)去看數(shù)據(jù)庫 open_mode 和字符集。-- 檢查數(shù)據(jù)庫當(dāng)前狀態(tài) sqlplus / as sysdba SQL select name, open_mode from v$database; -- 檢查關(guān)鍵表空間是否存在 SQL select tablespace_name from dba_tablespaces where tablespace_name like TC%; -- 檢查 TC 系統(tǒng)用戶是否存在 SQL select username from dba_users where username like TC%;open_mode 顯示 READ WRITETC 開頭的表空間和用戶都在說明模板建庫這一步真的成功了。如果 open_mode 是 MOUNTED 或 READ ONLY說明實(shí)例處于半啟動(dòng)狀態(tài)按第 5 章的內(nèi)存參數(shù)方式重啟實(shí)例。表空間缺失或用戶缺失那就得回到 DBCA把模板重新跑一遍。第二步是驗(yàn)證 Teamcenter 服務(wù)器到數(shù)據(jù)庫的連通性。Teamcenter 2007 服務(wù)器端用的是 Oracle 客戶端連接庫配置數(shù)據(jù)源時(shí)填的是主機(jī)名、端口、SID 和用戶口令。網(wǎng)絡(luò)上有一個(gè)固定的測試順序——先測端口通不通再測客戶端能不能解析 SID最后測用戶口令對(duì)不對(duì)。端口測試用 telnetSID 解析測試用 tnsping口令驗(yàn)證用 sqlplus 遠(yuǎn)程鏈接三步都過了Teamcenter 服務(wù)端安裝向?qū)Ю锏臄?shù)據(jù)庫連接測試才能順利通過。# 在 Teamcenter 服務(wù)器上測試 Oracle 監(jiān)聽連通性 tnsping tceng # 用遠(yuǎn)程 sqlplus 驗(yàn)證登錄 sqlplus tcadmin/tceng192.168.1.100:1521/tceng如果 tnsping 通了但 sqlplus 登錄報(bào) ORA-01017通常是口令不一致回到建庫那步把 tcadmin 的口令重置一下SQL alter user tcadmin identified by tceng;從安裝 Oracle 到最后這一步我得出一個(gè)習(xí)慣每次部署 TC 數(shù)據(jù)庫環(huán)境都強(qiáng)制走一遍“驗(yàn)證清單”再進(jìn)入下一環(huán)節(jié)。先確認(rèn)軟件版本、再確認(rèn)監(jiān)聽器和數(shù)據(jù)庫實(shí)例狀態(tài)、最后確認(rèn)表空間和用戶完整這是在這個(gè)老版本上最值得堅(jiān)持的操作。希望這份拆解能幫你在裝 Teamcenter 2007 的時(shí)候少走點(diǎn)彎路。本文還有配套的精品資源點(diǎn)擊獲取