境徹底卸載與全新安裝實戰(zhàn)指南)
1. 項目緣起為什么Oracle 21c的卸載與安裝值得單獨成文如果你在Windows上折騰過Oracle數(shù)據(jù)庫尤其是從舊版本升級到21c或者僅僅是重裝大概率都經(jīng)歷過那種“明明卸載了新版本卻死活裝不上”的窘境。這不像安裝一個普通軟件點幾下“下一步”就能搞定。Oracle在Windows上的部署更像是在系統(tǒng)里“安家落戶”它會把自己的服務(wù)、注冊表、環(huán)境變量、文件目錄深深地嵌入到操作系統(tǒng)的各個角落。一個不徹底的卸載留下的“歷史遺跡”足以讓后續(xù)的安裝過程崩潰。我最近就因為一個測試環(huán)境的需要在Windows Server 2019上反復(fù)折騰Oracle 21c。從21.3到21.8從企業(yè)版到快捷版踩遍了幾乎所有的坑。網(wǎng)上教程很多但要么是版本老舊要么步驟跳躍對于關(guān)鍵的風(fēng)險點語焉不詳。比如直接刪除Oracle主目錄會導(dǎo)致什么后果哪些服務(wù)必須手動清理注冊表里哪些鍵值動了會出問題這些細節(jié)沒踩過坑的人不會寫而踩過坑的人又未必有精力系統(tǒng)總結(jié)。所以這篇內(nèi)容就是基于我最近幾次“血淚史”的完整復(fù)盤。它不僅僅是一個按部就班的操作手冊更是一份“避坑指南”和“原理剖析”。我會帶你搞清楚Oracle安裝器在背后都做了些什么這樣當它出錯時你才知道該從哪里下手解決。無論你是DBA新手還是需要臨時搭建Oracle環(huán)境的開發(fā)者跟著這篇內(nèi)容走都能在Windows上干凈利落地完成Oracle 21c的卸載與全新安裝。2. 卸載一場比安裝更考驗?zāi)托牡摹巴饪剖中g(shù)”很多人認為卸載就是運行一下安裝程序里的“卸載”選項或者從控制面板里刪除。對于Oracle這僅僅是開始甚至可能只是個錯誤的開始。一個徹底的卸載需要你以“外科手術(shù)”般的精度清理掉它在系統(tǒng)里留下的所有痕跡。2.1 第一步停止并刪除所有Oracle相關(guān)服務(wù)這是卸載前必須做的否則文件可能被占用導(dǎo)致無法刪除。不要依賴安裝程序的自動停止功能手動操作最可靠。打開具有管理員權(quán)限的命令提示符CMD或PowerShell依次執(zhí)行以下命令net stop OracleOraDB21Home1TNSListener net stop OracleServiceORCL net stop OracleVssWriterORCL這里的服務(wù)名可能因你的實例名和主目錄名而異。OracleServiceORCL中的ORCL就是你的數(shù)據(jù)庫實例名SID。OracleOraDB21Home1TNSListener中的OraDB21Home1是你的Oracle主目錄名。你可以通過運行services.msc打開服務(wù)管理器查找所有以“Oracle”開頭的服務(wù)來確認。停止服務(wù)后我們使用sc命令來刪除它們。刪除服務(wù)需要其確切的內(nèi)部服務(wù)名稱通常與顯示名一致或類似。sc delete OracleOraDB21Home1TNSListener sc delete OracleServiceORCL sc delete OracleVssWriterORCL注意sc delete命令執(zhí)行成功通常只返回一個簡單的[SC] DeleteService SUCCESS提示沒有其他輸出是正常的。如果提示“指定的服務(wù)未安裝”說明該服務(wù)可能已被其他方式刪除可忽略。2.2 第二步使用Oracle Universal Installer (OUI) 進行程序化卸載這是官方推薦的卸載入口。找到你的Oracle安裝目錄通常位于{ORACLE_BASE}\product\21.x.x\dbhome_1\deinstall下。運行其中的deinstall.bat批處理文件。這個工具會引導(dǎo)你完成一個交互式的卸載過程它會嘗試自動查找并刪除Oracle主目錄、清單目錄等。在運行前請確保你備份了任何重要的數(shù)據(jù)庫文件如數(shù)據(jù)文件、控制文件、重做日志因為此過程會刪除數(shù)據(jù)庫。運行后它會問你一系列問題比如要刪除的數(shù)據(jù)庫列表、主目錄路徑等。如果你不確定對于測試環(huán)境可以按照其檢測到的默認值進行。這個工具比單純刪除文件要聰明它會處理一些依賴關(guān)系。2.3 第三步手動清理“頑固”殘留文件即使運行了deinstall.bat一些目錄和文件可能因為權(quán)限問題或工具本身的限制而殘留。我們需要手動檢查并清理。刪除Oracle安裝目錄導(dǎo)航到你的ORACLE_BASE例如C:\app\你的用戶名和ORACLE_HOME例如C:\app\你的用戶名\product\21.x.x\dbhome_1刪除整個文件夾。如果遇到“文件正在使用”的錯誤重啟電腦后再試或者使用Unlocker、Process Explorer等工具查看哪個進程鎖定了文件。刪除清單目錄默認位于C:\Program Files\Oracle\Inventory。這個目錄記錄了所有Oracle產(chǎn)品的安裝信息必須刪除否則新安裝會讀到舊的錯誤信息。刪除數(shù)據(jù)文件目錄如果你將數(shù)據(jù)文件存放在默認的C:\app\你的用戶名\oradata或自定義位置請一并刪除除非你想保留數(shù)據(jù)但重裝后通常需要重新導(dǎo)入。2.4 第四步深度清掃注冊表高風(fēng)險操作務(wù)必謹慎這是最需要小心的一步。錯誤的注冊表操作可能導(dǎo)致系統(tǒng)不穩(wěn)定。強烈建議在修改前備份注冊表或創(chuàng)建系統(tǒng)還原點。按Win R輸入regedit打開注冊表編輯器。刪除以下鍵值如果存在HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE 刪除整個ORACLE鍵。這里存放了全局的Oracle配置。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services 刪除所有以O(shè)racle、Ora、OracleDBConsole開頭的鍵。這與我們之前用sc delete刪除的服務(wù)對應(yīng)但注冊表里可能還有殘留。HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EventLog\Application 刪除所有以O(shè)racle開頭的鍵。這些是Oracle事件日志的注冊項。HKEY_CURRENT_USER\Software\Oracle 刪除整個ORACLE鍵如果存在。這里存放當前用戶的Oracle配置。HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI和HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBC.INI 刪除其中與Oracle相關(guān)的驅(qū)動程序和數(shù)據(jù)源條目。實操心得在注冊表中搜索“Oracle”是一個方法但可能會搜到大量無關(guān)條目。我更推薦按照上述路徑精準定位刪除。對于Services下的項如果不確定某個以O(shè)ra開頭的服務(wù)是否屬于Oracle可以雙擊查看其ImagePath值如果路徑指向之前的Oracle安裝目錄則可以安全刪除。2.5 第五步清理環(huán)境變量Oracle安裝時會修改系統(tǒng)環(huán)境變量如PATH、ORACLE_HOME、ORACLE_SID、TNS_ADMIN等。右鍵點擊“此電腦” - “屬性” - “高級系統(tǒng)設(shè)置” - “環(huán)境變量”。在“系統(tǒng)變量”中查找并刪除ORACLE_HOME、ORACLE_SID、TNS_ADMIN等變量。編輯PATH變量刪除其中所有指向舊Oracle安裝目錄的路徑例如C:\app\...\dbhome_1\bin。完成以上五步你的系統(tǒng)才算從Oracle的“基因”層面被基本清理干凈為全新安裝掃清了道路。3. 安裝前夜容易被忽略的關(guān)鍵準備工作很多人卸載完就急著運行安裝程序結(jié)果在安裝中途報錯不得不回頭重來。安裝前的準備工作決定了安裝過程的順利程度。3.1 系統(tǒng)賬戶與權(quán)限避免“權(quán)限不足”的噩夢Oracle安裝和運行最好在具有管理員權(quán)限的賬戶下進行但這還不夠。關(guān)閉用戶賬戶控制UAC雖然不強制但UAC有時會干擾安裝程序向系統(tǒng)目錄寫入文件或修改注冊表。對于服務(wù)器環(huán)境建議在安裝前將其調(diào)至最低或關(guān)閉。在控制面板的“用戶賬戶”設(shè)置中可以調(diào)整。使用英文用戶名Oracle安裝路徑和某些配置對中文字符支持不友好可能導(dǎo)致不可預(yù)見的錯誤。建議用于安裝的操作系統(tǒng)用戶賬戶名尤其是用戶目錄C:\Users\用戶名使用純英文。如果你的當前賬戶是中文可以新建一個英文管理員賬戶進行安裝。安裝目錄權(quán)限確保你計劃安裝Oracle的磁盤分區(qū)如C盤有足夠的寫入權(quán)限。如果你打算安裝到非系統(tǒng)盤如D盤確保該盤是NTFS格式并且你的賬戶對該盤根目錄有完全控制權(quán)。3.2 軟件依賴與系統(tǒng)組件補齊運行環(huán)境Oracle 21c for Windows依賴于一些特定的系統(tǒng)組件。.NET FrameworkOracle Universal Installer和某些Oracle工具需要特定版本的.NET Framework如4.7.2或更高。Windows Server 2019/2022及Windows 10/11通常已內(nèi)置但最好通過“啟用或關(guān)閉Windows功能”檢查確認。Visual C Redistributable需要2013、2017等版本的運行庫。Oracle安裝包通常會自帶并自動安裝但如果你的系統(tǒng)缺少或版本沖突可能引發(fā)問題。可以提前從微軟官網(wǎng)下載并安裝最新的VC運行庫合集。Windows PowerShell確保PowerShell版本在5.1及以上。Oracle的配置助手可能會用到。3.3 安裝包與版本選擇從源頭規(guī)避問題獲取安裝包從Oracle官網(wǎng)下載“Oracle Database 21c for Microsoft Windows x64”的安裝包。通常是一個壓縮文件解壓后包含setup.exe。確保下載的版本21.3.0, 21.8.0等與你預(yù)期的保持一致。解壓路徑將安裝包解壓到一個路徑不含空格和中文的目錄例如D:\Install\Oracle21c。直接放在根目錄或淺層英文路徑下是最安全的選擇。防病毒軟件/防火墻在安裝過程中暫時禁用實時防病毒掃描和防火墻。它們有時會攔截安裝程序修改系統(tǒng)文件或創(chuàng)建服務(wù)導(dǎo)致安裝失敗。安裝完成后再重新啟用。3.4 規(guī)劃安裝結(jié)構(gòu)理解Oracle的目錄邏輯在點擊“安裝”之前心里要對Oracle的目錄結(jié)構(gòu)有數(shù)這有助于后續(xù)管理和故障排查。ORACLE_BASE這是所有Oracle軟件產(chǎn)品的頂級目錄。例如C:\app\username。它下面會有product存放軟件、admin存放管理文件、oradata存放數(shù)據(jù)庫文件可自定義位置等子目錄。ORACLE_HOME特定Oracle數(shù)據(jù)庫軟件的安裝目錄。位于ORACLE_BASE\product\21.x.x\dbhome_1。這是bin、network、sqlplus等核心可執(zhí)行文件和配置文件的所在地。數(shù)據(jù)文件位置默認在ORACLE_BASE\oradata\數(shù)據(jù)庫名。強烈建議將數(shù)據(jù)文件包括控制文件、重做日志、數(shù)據(jù)文件放在一個獨立的、空間充足的、性能較好的磁盤分區(qū)上而不是系統(tǒng)盤。例如D:\oradata\ORCL。這在安裝時的“數(shù)據(jù)庫文件位置”步驟中可以指定。做好這些準備就像戰(zhàn)前檢查裝備和地圖能極大提升安裝一次成功的概率。4. 安裝實戰(zhàn)詳解OUI的每一個關(guān)鍵步驟與選擇運行解壓目錄下的setup.exe以管理員身份啟動Oracle Universal Installer (OUI)。界面可能稍顯陳舊但步驟清晰。4.1 配置安全更新與軟件更新第一個界面是關(guān)于安全更新和My Oracle SupportMOS憑證的。對于個人學(xué)習(xí)或測試環(huán)境可以直接取消勾選“我希望通過My Oracle Support接收安全更新”這樣就不會要求輸入MOS賬號。點擊“下一步”時可能會有一個警告選擇“是”確認跳過即可。這個步驟不影響數(shù)據(jù)庫核心功能的安裝。4.2 安裝選項創(chuàng)建數(shù)據(jù)庫還是僅安裝軟件這里有三個選項創(chuàng)建和配置數(shù)據(jù)庫默認一站式服務(wù)安裝軟件后立即啟動一個向?qū)韯?chuàng)建一個新的數(shù)據(jù)庫。這是最常用的選擇適合新手和大多數(shù)場景。僅安裝數(shù)據(jù)庫軟件只安裝Oracle二進制文件和工具不創(chuàng)建數(shù)據(jù)庫。之后你需要手動通過DBCADatabase Configuration Assistant創(chuàng)建數(shù)據(jù)庫。適合高級用戶或需要特定定制時。升級現(xiàn)有數(shù)據(jù)庫從較低版本如19c, 12c升級到21c。這需要復(fù)雜的前置檢查和準備工作不在本文討論范圍。對于全新安裝我們選擇“創(chuàng)建和配置數(shù)據(jù)庫”。4.3 系統(tǒng)類桌面類 vs 服務(wù)器類這個選擇決定了安裝程序的自動化程度和配置粒度。桌面類簡化安裝適用于筆記本電腦或臺式機。使用Windows內(nèi)置的“Windows內(nèi)置賬戶”進行數(shù)據(jù)庫身份驗證管理簡單。但某些高級配置選項不可用。服務(wù)器類標準安裝適用于服務(wù)器環(huán)境。提供更全面的配置選項包括選擇數(shù)據(jù)庫類型、配置存儲、管理選項等。對于任何嚴肅的用途開發(fā)、測試、生產(chǎn)請務(wù)必選擇“服務(wù)器類”。4.4 Oracle主目錄與清單目錄Oracle主目錄用戶選擇“使用Windows內(nèi)置賬戶”。在服務(wù)器類安裝中你也可以選擇“創(chuàng)建新Windows用戶”但使用內(nèi)置賬戶如虛擬賬戶NT SERVICE\ORACLESERVICEORCL是更現(xiàn)代和推薦的方式權(quán)限由系統(tǒng)管理更安全。軟件位置Oracle基目錄輸入你規(guī)劃的ORACLE_BASE例如C:\app\oracle。注意這個路徑會用于存放所有Oracle相關(guān)文件。軟件位置OUI會自動在基目錄下生成ORACLE_HOME路徑例如C:\app\oracle\product\21.x.x\dbhome_1。通常無需修改。清單目錄保持默認的C:\Program Files\Oracle\Inventory即可。這是OUI管理所有Oracle產(chǎn)品安裝記錄的地方。4.5 數(shù)據(jù)庫配置定義你的數(shù)據(jù)庫實例這是核心步驟決定了數(shù)據(jù)庫的“身份”和能力。全局數(shù)據(jù)庫名與SID全局數(shù)據(jù)庫名通常格式為數(shù)據(jù)庫名.域名例如orcl.example.com。在單機測試環(huán)境中域名部分可以忽略直接寫成orcl。SID系統(tǒng)標識符這是數(shù)據(jù)庫實例的唯一標識在同一臺機器上必須唯一。通常與全局數(shù)據(jù)庫名的第一部分相同例如ORCL。SID將被用于服務(wù)名OracleServiceORCL和許多連接字符串中。配置類型單實例數(shù)據(jù)庫最常見的類型一個數(shù)據(jù)庫實例管理一套數(shù)據(jù)庫文件。RAC真正應(yīng)用集群數(shù)據(jù)庫多實例共享一套存儲用于高可用和負載均衡。需要額外的集群軟件和存儲配置。 選擇“單實例數(shù)據(jù)庫”。存儲類型文件系統(tǒng)數(shù)據(jù)庫文件控制文件、數(shù)據(jù)文件、重做日志存放在操作系統(tǒng)的普通目錄中。對于Windows環(huán)境這是最簡單直接的選擇。自動存儲管理ASMOracle提供的專門卷管理器和文件系統(tǒng)能簡化存儲管理并提升性能但配置更復(fù)雜。通常用于Linux/Unix環(huán)境或大型生產(chǎn)系統(tǒng)。 選擇“文件系統(tǒng)”。數(shù)據(jù)庫文件位置這是性能和管理的關(guān)鍵。不要使用默認的ORACLE_BASE\oradata。強烈建議指定一個獨立的、非系統(tǒng)盤的路徑例如D:\oradata。這樣可以將IO壓力從系統(tǒng)盤分離也便于備份和遷移。OUI會自動在此路徑下創(chuàng)建以全局數(shù)據(jù)庫名命名的子目錄如D:\oradata\ORCL來存放文件??焖倩謴?fù)區(qū)Fast Recovery Area用于存放備份和恢復(fù)相關(guān)文件歸檔日志、RMAN備份等??梢詥⒂貌⒅付ㄒ粋€與數(shù)據(jù)文件不同的位置例如E:\fast_recovery_area。大小根據(jù)你的備份策略設(shè)定測試環(huán)境可以設(shè)幾個GB。數(shù)據(jù)庫字符集務(wù)必重視一旦創(chuàng)建后期更改非常麻煩且有風(fēng)險。默認值OUI會根據(jù)操作系統(tǒng)區(qū)域設(shè)置推薦一個。對于中文Windows通常是ZHS16GBK或AL32UTF8。AL32UTF8Unicode UTF-8這是當前最推薦的選擇除非你有非常特殊的兼容性要求。UTF-8字符集支持全球所有語言字符是國際化和未來兼容性的標準。對于需要處理多語言或不確定未來需求的環(huán)境選它沒錯。ZHS16GBK傳統(tǒng)的中文字符集對于純中文環(huán)境且遺留系統(tǒng)兼容性要求高時可選。但它不支持某些特殊符號和生僻字。4.6 管理選項與數(shù)據(jù)庫憑據(jù)企業(yè)管理器EMExpress這是一個輕量級的基于Web的數(shù)據(jù)庫管理工具。建議勾選“配置企業(yè)管理器EM數(shù)據(jù)庫Express”。它會自動配置你可以通過https://主機名:5500/em來訪問。比古老的OEMOracle Enterprise Manager簡潔易用。數(shù)據(jù)庫管理口令這里設(shè)置的是數(shù)據(jù)庫內(nèi)置管理賬戶SYS,SYSTEM,PDBADMIN等的密碼。Oracle 21c強制要求使用符合復(fù)雜度的口令。務(wù)必設(shè)置一個強密碼并牢記。你可以選擇“所有賬戶使用同一管理口令”以簡化。4.7 先決條件檢查與安裝概要OUI會運行一個先決條件檢查驗證系統(tǒng)環(huán)境物理內(nèi)存、虛擬內(nèi)存、臨時空間、操作系統(tǒng)版本、補丁等。如果所有檢查都通過顯示綠色對勾點擊“下一步”。如果有警告黃色感嘆號或失敗紅色叉號必須點開查看詳情。常見的警告可能包括“物理內(nèi)存不足”測試環(huán)境可忽略或“缺少某個Windows補丁”。對于失敗項必須按照提示解決否則安裝無法繼續(xù)。最后安裝概要頁面會列出你所有的選擇。仔細核對一遍特別是全局數(shù)據(jù)庫名、SID、文件位置和字符集。確認無誤后點擊“安裝”。此時安裝程序開始復(fù)制文件、鏈接可執(zhí)行文件、創(chuàng)建數(shù)據(jù)庫。這個過程可能需要20分鐘到1小時取決于硬件性能。期間可能會彈出命令行窗口執(zhí)行腳本不要手動關(guān)閉它們。安裝完成后OUI會顯示一個包含重要信息的完成頁面務(wù)必記錄或截圖保存數(shù)據(jù)庫控制臺的URLEM Express。數(shù)據(jù)庫實例的名稱SID。SYS和SYSTEM等賬戶的解鎖狀態(tài)。點擊“關(guān)閉”O(jiān)racle數(shù)據(jù)庫軟件安裝和實例創(chuàng)建就完成了。5. 安裝后配置與基礎(chǔ)驗證確保一切就緒安裝程序結(jié)束并不意味著馬上就能高枕無憂。我們需要進行一些基本的配置和驗證確保數(shù)據(jù)庫真正可用。5.1 驗證服務(wù)與連接檢查服務(wù)再次打開services.msc你應(yīng)該能看到至少兩個新的Oracle服務(wù)正在運行OracleServiceORCL名稱隨SID變化這是數(shù)據(jù)庫實例的核心服務(wù)。必須處于“正在運行”狀態(tài)。OracleOraDB21Home1TNSListener這是監(jiān)聽器服務(wù)負責接收客戶端連接請求。也必須處于“正在運行”狀態(tài)。使用SQL*Plus本地連接這是最直接的驗證方式。打開命令提示符CMD。輸入sqlplus / as sysdba。這是操作系統(tǒng)認證方式以SYSDBA權(quán)限登錄不需要密碼前提是你的當前Windows用戶在ORA_DBA組中安裝程序通常會自動添加。如果成功你會看到SQL提示符。輸入SELECT name, open_mode FROM v$database;應(yīng)該能返回你的數(shù)據(jù)庫名和READ WRITE狀態(tài)。輸入exit退出。使用SQL*Plus遠程連接通過監(jiān)聽器在CMD中輸入sqlplus system/你的密碼localhost:1521/ORCL。這里使用了完整的連接字符串用戶名/密碼主機:端口/服務(wù)名。如果連接成功說明監(jiān)聽器工作正常網(wǎng)絡(luò)配置正確。5.2 配置網(wǎng)絡(luò)tnsnames.ora 和 listener.ora雖然安裝程序配置了基本的監(jiān)聽器但你可能需要為其他客戶端或遠程連接進行配置。listener.ora位于ORACLE_HOME\network\admin。它定義了監(jiān)聽器監(jiān)聽的地址、端口和服務(wù)。默認配置通常足夠本地使用。如果你需要從其他機器連接確保(HOST 主機名或IP)設(shè)置正確localhost或127.0.0.1僅限本機。tnsnames.ora同樣位于ORACLE_HOME\network\admin。它定義了客戶端使用的連接描述符別名。你可以添加一個條目例如ORCL (DESCRIPTION (ADDRESS (PROTOCOL TCP)(HOST localhost)(PORT 1521)) (CONNECT_DATA (SERVER DEDICATED) (SERVICE_NAME ORCL) # 或 (SID ORCL) ) )配置后就可以用sqlplus system/密碼ORCL這種簡短的方式連接了。修改這兩個文件后需要重啟監(jiān)聽器服務(wù)lsnrctl stop然后lsnrctl start在ORACLE_HOME\bin目錄下運行或確保該目錄在PATH中。5.3 環(huán)境變量配置可選但推薦為了方便地在任何命令行窗口使用sqlplus、rman、expdp等工具可以將ORACLE_HOME\bin添加到系統(tǒng)PATH變量中。同時也可以設(shè)置ORACLE_SID變量這樣連接時就不需要指定實例名。系統(tǒng)環(huán)境變量中新建ORACLE_SID值為你的數(shù)據(jù)庫SID例如ORCL。編輯PATH變量在末尾添加;%ORACLE_HOME%\bin假設(shè)ORACLE_HOME已定義或直接寫全路徑;C:\app\oracle\product\21.x.x\dbhome_1\bin。設(shè)置完成后打開新的CMD窗口輸入echo %ORACLE_SID%和sqlplus /nolog測試是否生效。5.4 訪問EM Express打開瀏覽器訪問安裝完成時提示的URL通常是https://localhost:5500/em。使用SYSTEM賬戶和你設(shè)置的密碼登錄。如果遇到證書警告因為使用的是自簽名證書選擇“繼續(xù)前往”即可。成功登錄后你可以在圖形界面下進行基本的數(shù)據(jù)庫監(jiān)控和管理操作。至此一個全新的、干凈的Oracle 21c數(shù)據(jù)庫已經(jīng)在你的Windows系統(tǒng)上準備就緒。從徹底卸載到成功安裝并驗證這個過程雖然步驟繁多但每一步都有其必要性。理解每一步背后的“為什么”能讓你在遇到問題時不再茫然而是能夠精準地定位和解決。記住對于Oracle“干凈”是順利安裝的一半而“規(guī)劃”是成功運行的開始。