如何重新定位Red Hat Directory Server 9.0的数据库目录

我在VM中运行RHDS,但希望将数据和日志存储在SAN上的单独卷上。 该分区是/ sdb1上的ext4fs,并作为/ data挂载。

我尝试了这里描述的不同方法的许多变化。 首先,在全新安装RHDS之后,在创build任何实例之前,我在/ var上创build了/ data上的文件夹,并将其链接到它们,如下所示:

mkdir /data/lib mkdir /data/log mkdir /data/lib/dirsrv mkdir /data/log/dirsrv rmdir /var/log/dirsrv rmdir /var/lib/dirsrv ln -s /data/lib/dirsrv/ /var/lib/ ln -s /data/log/dirsrv/ /var/log/ 

当我创build一个目录的实例(名为esx02vm01)时,我得到这个错误:

 [02/May/2013:09:51:45 -0400] - /etc/dirsrv/slapd-esx02vm01/dse.ldif: nsslapd-errorlog: Cannot open errorlog file "/var/log/dirsrv/slapd-esx02vm01/errors", errors cannot be logged. Exiting.... 

我认为RHDS可能会遇到符号链接的问题。 在我的第二次尝试中,我实例化了默认位置的文件。 确认目录正在工作后,我把它closures了。 然后我将/ var / lib和/ var / log下的实例文件夹移至/ data文件夹,并修改该实例的dse.ldif文件以指向新的文件夹位置,如下所示:

 mkdir /data/lib mkdir /data/log mkdir /data/lib/dirsrv mkdir /data/log/dirsrv cp -r --preserve=all /var/lib/dirsrv/slapd-esx02vm01 /data/lib/dirsrv/ cp -r --preserve=all /var/log/dirsrv/slapd-esx02vm01 /data/log/dirsrv/ vi /etc/dirsrv/slapd-esx02vm01/dse.ldif * replace all /var/lib/dirsrv/slapd-esx02vm01 with /data/lib/dirsrv/slapd-esx02vm01* :%s/\/var\/lib\/dirsrv\/slapd-esx02vm01\//\/data\/lib\/dirsrv\/slapd-esx02vm01\//g * (6 substitutions on 6 lines) * replace all /var/log/dirsrv/slapd-esx02vm01 with /data/log/dirsrv/slapd-esx02vm01 :%s/\/var\/log\/dirsrv\/slapd-esx02vm01\//\/data\/log\/dirsrv\/slapd-esx02vm01\//g * (4 substitutions on 4 lines) :qw mv /var/lib/dirsrv/slapd-esx02vm01 /var/lib/dirsrv/old-slapd-esx02vm01 mv /var/log/dirsrv/slapd-esx02vm01 /var/log/dirsrv/old-slapd-esx02vm01 service dirsrv start 

我试图启动目录时出现同样的错误:

 Starting dirsrv: esx02vm01...[03/May/2013:08:56:00 -0400] - /etc/dirsrv/slapd-esx02vm01/dse.ldif: nsslapd-errorlog: Cannot open errorlog file "/data/log/dirsrv/slapd-esx02vm01/errors", errors cannot be logged. Exiting.... 

然后,我将错误文件移回到原始位置,所以只是数据库文件在/ data上。 目录启动时logging的这些错误:

 [03/May/2013:09:17:17 -0400] - 389-Directory/1.2.11.15 B2013.100.2247 starting up [03/May/2013:09:17:17 -0400] - mkdir_p : error -5950 (File not found.) [03/May/2013:09:17:17 -0400] - Can't start because the database directory "/data/lib/dirsrv/slapd-esx02vm01/db" either doesn't exist, or is not accessible [03/May/2013:09:17:17 -0400] - start: Failed to init database, err=-1 Unknown error: -1 

在每种情况下,我确认报告的目录和文件都存在,并且它们与原始目录和文件具有相同的所有权和许可权。 当我创build实例时,我以root身份运行setup-ds-admin.pl,使用帐户rhds作为实例。 我使用以下命令创build了rhds用户:

 useradd -M rhds 

为红帽目录服务器实例重新定位数据库的正确方法是什么?

路加福音

以下过程对于389-ds 1.2.9.14来说是成功的:

  1. 创build一个新的实例
  2. 确保dirsrv已停止: service dirsrv stop
  3. /var/lib/dirsrv/目录移动到数据分区; 在我的情况下/mnt/389ds/data/
  4. 创build一个从/var/lib/dirsrv//mnt/389ds/data/
  5. /var/log/dirsrv/目录移动到数据分区; 在我的情况下/mnt/389ds/log/
  6. 创build一个从/var/log/dirsrv//mnt/389ds/log/
  7. 启动服务器: service dirsrv start

我已经安装了多台生产服务器,并且都运行良好!