一:問題
使用的M1芯片的Mac,將Navicat更新到了17版本后,原本正常的Oracle數據庫無法連接,報錯:未加載 Oracle 庫。而sqlserver庫可以正常連接
二:解決方法
打開聚焦搜索——〉打開訪達——〉在應用程序中選中Navicat——〉右擊顯示簡介——〉勾選使用Rosetta打開——〉重啟Navicat 解決問題
三:無法連接Oracle的原因
架構不兼容導致的
Navicat 17 是純 ARM 原生應用(針對 Apple Silicon 芯片優化),之所以無法連接Oracle,是因為Navicat 17 直接調用的Oracle的版本客戶端是Intel 版的,在純 ARM 環境下會因指令集不兼容而失敗,而之前版本可以連接是因為其本身就是 Intel 應用,已經是通過Rosetta轉譯后的
通過執行以下sql可查看數據庫版本
SELECT banner FROM v$version WHERE banner LIKE 'Oracle%';
10.2.0.3.0 不兼容 ARM 架構,如果需要在 ARM 架構上使用 Oracle 數據庫,需要選擇 Oracle Database 19c 及以上版本,這些版本已經通過認證,可以在熱門 ARM 架構上部署,并支持云端和本地環境
四:Rosetta的作用
Rosetta 2 是 Apple 提供的翻譯層,允許 ARM 架構的 Mac 運行 Intel 應用。啟用后:模擬 Intel 環境:Navicat 在 Rosetta 2 的模擬下以 Intel 模式運行,能無縫調用 Intel 版 Oracle 客戶端庫。
缺點就是會影響速度