問題は次のとおりです。
ただし、 ./dmserver path=xxx/dm.iniを介して通常どおり起動できます。
ログを確認すると、生成されたログがあることがわかります: /home/dmdba/dmdbms/log/dm_unknown_yyyymm.log。ログの内容は次のとおりです。
libpmem.so、libpmem.so のロードに失敗しました: 共有オブジェクト ファイルを開けません: そのようなファイルまたはディレクトリはありません
2023-05-19 19:16:17.546 [情報] データベース P0000083979 T0000000000000083979 libpmem のロードに失敗しました
検査した結果、そのような libpmen ファイルは実際には存在しません。最初は、使用したインストール パッケージに問題があるのではないかと思いましたが、後で問題の原因が権限の問題であることがわかりました。インストール ディレクトリ /home/dmdba/dmdbms/ にジャンプし、ls:ファイル グループを実行します。インストール ディレクトリ全体は、一般的な Linux 環境にある必要があります: dmdma dinstall
コマンドchown dmdba:dinstall -R ./*フォルダー全体の属性グループを変更すると、データ ディレクトリの属性グループが dmdba ではなく root であることがわかります。
データディレクトリのグループを dmdba dinstall に変更すると、サービスが正常に起動できることがわかります。
このような問題が発生する理由は、データベース インスタンスの初期化時にデータベース インスタンス ディレクトリを指定する必要があるときに /home/dmdba/dmdbms/data/DAMENG/dm.ini が指定され、./dminit ツールが root によって実行されるためです。ツールの初期化は成功しましたが、データ ディレクトリは root ユーザーによって生成され、権限の問題が残ります。
- 一般的な Linux 環境では、データベース関連のコマンドを扱う場合は、 su - dmdba 以降に操作するのが最適です。