上一主题: dbmgr -export 函数-创建可定义数据库的脚本下一主题: dbmgr -util 函数-管理现有数据库


dbmgr -migrate 函数-将数据复制到平面文件

dbmgr ‑migrate 函数可以将现有数据库中用户和程序记录的数据复制到平面文件(二进制格式)。 也可以将数据从平面文件复制到新的数据库。 从中导入数据的数据库必须是 1.21 版本或更高版本。

将平面文件复制到新数据库时,请使用创建该平面文件时所用的该函数的同一版本。 如果您有多个版本,强烈建议您使用最新的版本。

注意:为了更好地保证安全,在将数据从旧数据库复制到新数据库以后,请删除旧数据库、用于生成新数据库的脚本,以及此函数创建的平面文件。

重要说明! 在使用该函数前,务必创建数据库的备份。

此命令格式如下:

dbmgr {migrate|‑m} {-r|-w|-h} [-s] filename \
[-v versionNumber] [-f fileName]
-migrate|-m

执行 dbmgr 实用程序的数据库迁移函数。

filename

定义要从中复制数据或将数据复制到其中的平面文件。

‑f filename

将输出定向到指定文件,而不是标准输出设备。

‑h

显示此函数的帮助。

‑-r

读取当前目录中的数据库,并将某些数据复制到平面文件 filename 中。

‑s

使用 CA ControlMinder 服务器从数据库读取信息,而不直接读取数据库。 此选项仅在与 ‑r 开关参数一起使用时有效。

您必须具有管理员权限以及对终端的 R(读取)和 W(写入)权限才能使用此选项。

如果您未指定此选项,该函数将从当前目录中的数据库进行读取或写入到此数据库。

-v versionNumber

读取由先前版本创建的平面文件。 该选项仅对 -w 命令有效。 在文件名后输入此选项,并提供版本号。

‑-w

读取平面文件 filename,并将数据复制到当前目录中的数据库。

示例:将现有数据库中的数据复制到新数据库

下列步骤说明如何将当前数据库中的数据复制到新数据库。 假定旧数据库位于目录 /tmp/old_db 中。 假定新数据库位于目录 ACInstallDir/seosdb(其中 ACInstallDir 是 CA ControlMinder 的安装目录)。

注意:此步骤是使用 UNIX 路径名编写的,不过通过修改这些路径名(根据需要)也可在 Windows 上执行。

  1. 作为超级用户登录。
  2. 如果 CA ControlMinder 后台进程正在运行,请使用以下命令将其关闭:
    secons ‑s
    
  3. 将旧数据库复制到其他位置或备份介质,从而为其创建备份。
  4. 将数据库复制到 /tmp/old_db 中,然后针对旧数据库运行 dbmgr 实用程序,从而创建复制旧数据库的脚本:
    cd /tmp/old_db
    /opt/CA/AccessControl/bin/dbmgr ‑export ‑l -f lang_script
    
  5. 新建数据库:
    cd /opt/CA/AccessControl/seosdb
    /opt/CA/AccessControl/bin/dbmgr -c -cq
    
  6. 执行在上一步生成的脚本,并新建数据库:
    cd /opt/CA/AccessControl/seosdb
    /opt/CA/AccessControl/bin/selang ‑l /tmp/old_db/lang_script
    
  7. 执行 dbmgr 实用程序以创建包含旧数据库中数据的平面文件:
    cd /tmp/old_db
    /opt/CA/AccessControl/bin/dbmgr ‑migrate ‑r flat_file
    
  8. 将平面文件中的数据装入到新数据库中:
    cd /opt/CA/AccessControl/seosdb
    /opt/CA/AccessControl/bin/dbmgr ‑migrate ‑w /tmp/old_db/flat_file