目錄
一、環境信息
二、說點什么
三、模擬實驗
1、前臺啟動數據庫
2、重建全文索引報錯
3、日志信息
4、查找SYSWORD.UTF8.LIB
5、想一想加做一做
6、重啟數據庫
7、重建全文索引
8、總結
一、環境信息
名稱 | 值 |
CPU | 12th Gen Intel(R) Core(TM) i7-12700H |
操作系統 | CentOS Linux release 7.9.2009 (Core) |
內存 | 4G |
邏輯核數 | 4 |
DM版本 | 1 ? ? ? ? ?DM Database Server 64 V8 2 ? ? ? ? ?DB Version: 0x7000d 3 ? ? ? ? ?03134284336-20250117-257733-20132 4 ? ? ? ? ?Msg Version: 32 5 ? ? ? ? ?Gsu level(5) cnt: 0 |
二、說點什么
今天重建全文索引的時候,報錯提示:[-3205]:全文索引詞庫加載出錯。之前沒有出現過,那不得排查并記錄一下。
我也看了官方社區在DSC環境下對于這個問題的分析和排查,鏈接:《全文索引在進行 rebuild 或者使用時報錯:“全文索引詞庫加載出錯”》,但我這邊是單機環境,也沒有提示具體哪個目錄缺少SYSWORD.UTF8.LIB,屬于不同情況,相同報錯。
三、模擬實驗
1、前臺啟動數據庫
[dmdba@localhost bin]$ cd /home/dmdba/[dmdba@localhost ~]$ dmserver /dm8/data/qqq/dm.ini
因為我配置了環境變量所以不需要在安裝目錄的bin目錄下執行。
2、重建全文索引報錯
SQL> ALTER CONTEXT INDEX XXX.AAA ON BBB REBUILD;
[-3205]:全文索引詞庫加載出錯.
已用時間: 237.453(毫秒). 執行號:0.
3、日志信息
2025-04-24 10:24:58.732 [ERROR] database P0000007093 T0000000000000007228 os_file_open_normal_rw error! path: 'SYSWORD.UTF8.LIB', code: 2, desc: No such file or directory
2025-04-24 10:24:58.733 [ERROR] database P0000007093 T0000000000000007228 os_file_open_normal_rd error! path: 'SYSWORD.UTF8.LIB', code: 2, desc: No such file or directory
4、查找SYSWORD.UTF8.LIB
[root@localhost ~]# find / -name 'SYSWORD.UTF8.LIB*'
/dm8/bin/SYSWORD.UTF8.LIB
/dm8/bin2/SYSWORD.UTF8.LIB
5、想一想加做一做
看官方社區的做法是把SYSWORD.UTF8.LIB拷貝到數據目錄中去了,我這邊是單機,也拷貝了一份,為了保險,重啟了數據庫,再執行重建全文索引,確實,嗯,沒有解決。
我就在想是不是dmserver進程獲取SYSWORD.UTF8.LIB文件路徑,不是根據環境變量,而是根據相對路徑來實現的。
上面可以看到我的dmserver是在/home/dmdba目錄下啟動的,我們換到/dm8/bin目錄下啟動試試。
6、重啟數據庫
[dmdba@localhost ~]$ cd /dm8/bin[dmdba@localhost bin]$ dmserver /dm8/data/qqq/dm.ini
7、重建全文索引
SQL> ALTER CONTEXT INDEX XXX.AAA ON BBB REBUILD;
操作已執行
已用時間: 00:00:02.884. 執行號:601.
8、總結
問題解決了,我們來總結一下這個錯誤的發生原因,dmserver程序和SYSWORD.UTF8.LIB文件默認都在安裝路徑下的bin目錄中,如果配置了環境變量,在非bin目錄啟動dmserver,讀取當前目錄下的SYSWORD.UTF8.LIB文件,但文件不存在,就提示了上述的錯誤。