10 配置报告数据库

Oracle HSM 支持一个可选报告数据库,该数据库存储指定文件系统中每个文件的当前元数据信息。此边带数据库对于文件和文件系统活动的管理和报告是非常重要的。

Oracle HSM 边带数据库的实施非常简单。使用 samdb 命令创建和配置 MySQL 数据库(使用提供的数据库方案或定制替代数据库方案)和 samfsdump 命令生成的恢复点文件。然后,Oracle HSM 守护进程在相应的文件系统发生更改时自动更新数据库。利用其他 samdb 命令,可以查询和管理数据库。有关命令和选项的完整详细信息,请参见 samdbsamdb.conf 手册页。

要使用边带数据库功能,请执行下列任务:

安装并配置 MySQL 服务器软件

要启用 samdb 报告功能,您必须安装并配置 MySQL 数据库。请执行如下操作。

  1. http://dev.mysql.com/doc/ 下载 MySQL 参考手册。

    使用以下过程可以确定在启用 samdb 报告时所需执行的 MySQL 任务。但请注意,下列步骤不一定是完整的或权威的。在查阅 MySQL 参考手册时将它们用作指南。

  2. root 用户身份登录到将托管 MySQL 服务器的系统。

    可以在 Oracle HSM 元数据服务器主机或独立 Solaris 或 Linux 主机上安装 MySQL 服务器。

    在示例中,我们将在 Solaris 主机 samsql 上安装 MySQL:

    [samsql]root@solaris:~# 
    
  3. 按照 MySQL 参考手册中的指示,下载并安装 MySQL 服务器软件。启用自动启动。

  4. 使用 root 用户帐户,通过 mysql 客户机连接到 MySQL 服务器。使用命令 mysql --user=root -p。当系统提示时,输入您在安装期间为 root 用户分配的密码。

    mysql 命令 shell 将启动:

    [samsql]root@solaris:~# mysql --user=root -p
    Enter Password:
    mysql>
    
  5. 创建 Oracle HSM MySQL 用户。使用命令 CREATE USER 'user_name'@'host_name' IDENTIFIED BY 'user-password',其中:

    • user_name 是 Oracle HSM MySQL 用户的名称

    • host_name 是在 Oracle HSM 元数据服务器主机上安装 MySQL 时的 localhost;否则,为元数据服务器的主机名或 IP 地址。

    • user-password 是您分配给 Oracle HSM MySQL 用户的密码。

    在示例中,我们将在 Oracle HSM 元数据服务器 samqfs1mds 上创建用户 samsql。我们为了演示目的而设置了用户密码 samsqluserpassw0rd(这对生产数据库使用来说并不是安全的选择):

    [samsql]root@solaris:~# mysql --user=root
    Enter Password:
    mysql> CREATE USER 'samsql'@'samqfs1mds' IDENTIFIED BY 'samsqluserpassw0rd'
    mysql> 
    
  6. 向 Oracle HSM 用户授予必需的权限。使用命令 GRANT CREATE,DROP,INDEX,SELECT,INSERT,UPDATE,DELETE ON host_name TO 'user_name'@'host_name'

    在示例中,我们将为元数据服务器 samqfs1mds 上的用户 samsql 授予权限:

    [samsql]root@solaris:~# mysql --user=root -p
    Enter Password:
    mysql> CREATE USER 'samsql'@'host_name' IDENTIFIED BY 'samsqluserpassw0rd'
    mysql> GRANT CREATE,DROP,INDEX,SELECT,INSERT,UPDATE,DELETE ON samqfs1mds TO \ 
    'samsql'@'samqfs1mds'
    mysql> 
    
  7. 关闭 MySQL 命令接口,返回到操作系统命令 shell。使用 MySQL 命令 QUIT

    [samsql]root@solaris:~# mysql --user=root -p
    Enter Password:
    mysql> CREATE USER 'samsql'@'host_name' IDENTIFIED BY 'samsqluserpassw0rd'
    mysql> GRANT CREATE,DROP,INDEX,SELECT,INSERT,UPDATE,DELETE ON samqfs1mds TO \ 
    'samsql'@'samqfs1mds'
    mysql> QUIT
    Bye
    root@solaris:~# 
    
  8. 接下来,创建数据库装入文件

创建数据库装入文件

  1. root 用户身份登录到 Oracle HSM 元数据服务器主机。

    在示例中,我们登录到主机 samqfs1mds

    [samqfs1mds]root@solaris:~# 
    
  2. 如果您已具有当前恢复点文件,则从恢复点文件内容生成数据库装入文件。使用命令 samfsrestore -SZ output-path-name -f recoverypoint-file,其中:

    • -frecoverypoint-file 指定为输入文件的路径和文件名。

    • -SZ 导致此命令扫描恢复点文件并使用 output-path-name 指定的路径和文件名输出数据库装入文件。

    有关其他详细信息,请参见 samfsdump 手册页。

    在示例中,我们将使用日常恢复点文件 /zfs1/hsmqfs1_recovery/140129,该文件是我们在配置 samqfs1 文件系统时调度的(请参见配置文件系统保护)。我们将输出发送至数据库装入文件 /root/hsmqfs1dataload(请注意,下面的命令是作为单行输入的-使用反斜杠字符对换行符进行转义):

    [samqfs1mds]root@solaris:~# samfsrestore -SZ /root/hsmqfs1dataload -f \
    /zfs1/hsmqfs1_recovery/140129
    
  3. 如果您没有当前恢复点文件,则现在创建数据库装入文件。转到 Oracle HSM 文件系统的根目录。然后使用命令 samfsdump -SZ output-path-name

    有关其他详细信息,请参见 samfsdump 手册页。在示例中,我们转至 /hsmqfs1 目录。我们将输出发送到数据库装入文件 /root/hsmqfs1dataload

    [samqfs1mds]root@solaris:~# cd /hsmqfs1
    [samqfs1mds]root@solaris:~# samfsdump -SZ /root/hsmqfs1dataload 
    
  4. 接下来,创建边带数据库

创建边带数据库

  1. root 用户身份登录到 MySQL 服务器主机。

    在示例中,MySQL 服务器托管在 Solaris 主机 samqfs1mds 上:

    [samqfs1mds]root@solaris:~# 
    
  2. 在文本编辑器中,打开文件 /etc/opt/SUNWsamfs/samdb.conf

    在示例中,使用 vi 编辑器。我们首先添加标题行作为注释:

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    
  3. samdb.conf 文件的第一列中,输入文件系统的系列集名称,后跟冒号 (:) 作为列分隔符。

    在示例中,我们输入系列集名称 samqfs1

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:
    
  4. 在第二列中,输入 MySQL 数据库服务器的主机名,后跟冒号 (:) 作为列分隔符。

    在示例中,我们将数据库服务器共同托管在 Oracle HSM 元数据服务器主机 samqfs1mds 上。因此我们输入主机名 localhost

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:
    
  5. 在第三列中,输入 Oracle HSM 软件在访问 MySQL 数据库时使用的用户名,后跟冒号 (:) 作为列分隔符。

    在示例中,为了登录数据库,我们已创建用户 samqfs

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:
    
  6. 在第四列中,输入 Oracle HSM 软件在访问 MySQL 数据库时使用的密码,后跟冒号 (:) 作为列分隔符。

    在示例中,使用伪密码 Pˆssw0rd

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:Pˆssw0rd:
    
  7. 在第四列中,输入 MySQL 数据库的名称,后跟冒号 (:) 作为列分隔符。

    在示例中,我们将数据库命名为 samqfs1db

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:Pˆssw0rd:samqfs1db:
    
  8. 在第六列中,输入数据库服务器的 TCP/IP 端口,后跟冒号 (:) 作为列分隔符。

    在示例中,输入 0(零)。如果我们使用的是远程服务器,则零(或空)值将指定默认端口 3306。不过,由于我们使用的是 localhost,零只是充当占位符:

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:Pˆssw0rd:samqfs1db:0:
    
  9. 在第七列中,输入 MySQL 客户机标志,后跟冒号 (:) 作为列分隔符。

    MySQL 客户机标志通常设置为 0(零)。不过,可以设置不同的值组合以便启用特定 MySQL 功能。有关详细信息,请参阅 MySQL 文档中的 mysql_real_connect() 函数。

    在示例中,输入 0(零):

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:Pˆssw0rd:samqfs1db:0:0:
    
  10. 在第八列和最后一列中,输入 Oracle HSM 文件系统的挂载点。保存文件并关闭编辑器。

    在示例中,文件系统在 /hsmqfs/hsmqfs1 中挂载:

    [samqfs1mds]root@solaris:~# vi /etc/opt/SUNWsamfs/samdb.conf
    # /etc/opt/SUNWsamfs/samdb.conf
            #FS_NAME:HOST:USER:PASSWORD:NAME:PORT:CLIENT_FLAG:MOUNT_POINT
    samqfs1:localhost:samqfs:Pˆssw0rd:samqfs1db:0:0:/hsmqfs/hsmqfs1
    :wq
    [samqfs1mds]root@solaris:~# 
    
  11. 创建新的数据库和关联表。使用命令 samdb create family_set,其中 family_set 是在 /etc/opt/SUNWsamfs/mcf 文件中为 Oracle HSM 文件系统指定的系列集名称。

    默认数据库方案为 /opt/SUNWsamfs/etc/samdb.schema。您可以通过 samdb create family_set -s schema 的形式输入命令来指定替代方案,其中 schema 是方案文件的路径和名称。

    在示例中,使用默认方案为文件系统系列集 samqfs1 创建数据库。

    [samqfs1mds]root@solaris:~# samdb create samqfs1 
    
  12. 使用您在前面的过程中创建的数据库装入文件中包含的数据填充数据库。使用命令 samdb load family_set input_file,其中 family_set 是在 /etc/opt/SUNWsamfs/mcf 文件中为文件系统指定的系列集名称,而 input_file 是数据库装入文件的路径和名称。

    在示例中,使用数据库装入文件 /root/hsmqfs1dataload 为文件系统系列集 samqfs1 装入数据库。

    [samqfs1mds]root@solaris:~# samdb load samqfs1 /root/hsmqfs1dataload
    
  13. 检查数据库的一致性。使用命令 samdb check family_set,其中 family_set 是在 /etc/opt/SUNWsamfs/mcf 文件中为文件系统指定的系列集名称。

    samdb check 命令会将数据条目与当前文件系统元数据进行比较。它记录并尽力更正可能在装入过程中引发的不一致性。

    在示例中,使用数据库装入文件 /root/hsmqfs1dataload 为文件系统系列集 samqfs1 装入数据库。

    [samqfs1mds]root@solaris:~# samdb check samqfs1
    
  14. 接下来,在启用数据库支持的情况下挂载 Oracle HSM 文件系统

在启用数据库支持的情况下挂载 Oracle HSM 文件系统

  1. root 用户身份登录到 Oracle HSM 元数据服务器主机。

    [samqfs1mds]root@solaris:~#  
    
  2. 备份 /etc/vfstab 文件。

    [samqfs1mds]root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
    
  3. 在文本编辑器中打开 /etc/vfstab 文件,并向下滚动到您已为之创建数据库的文件系统的条目。

    在示例中,使用 vi 编辑器。我们将向下滚动到 samqfs1 文件系统的条目:

    [samqfs1mds]root@solaris:~# vi /etc/vfstab 
    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  -------------------------
    /devices   -        /devices  devfs   -     no       -
    ...
    samqfs1    -        /hsmqfs1  samfs   -     yes      ... ,partial=64
    
  4. /etc/vfstab 文件的最后一列中,将 sam_db 添加到文件系统的挂载选项列表。然后保存文件并关闭编辑器。

    在示例中,在 samqfs1 文件系统上启用边带数据库:

    [samqfs1mds]root@solaris:~# vi /etc/vfstab 
    #File
    #Device    Device   Mount     System  fsck  Mount    Mount
    #to Mount  to fsck  Point     Type    Pass  at Boot  Options
    #--------  -------  --------  ------  ----  -------  -------------------------
    /devices   -        /devices  devfs   -     no       -
    ...
    samqfs1    -        /hsmqfs1  samfs   -     yes      ... ,partial=64,sam_db
    :wq
    root@solaris:~# 
    
  5. 挂载 Oracle HSM 归档文件系统。

    使用 sam_db 选项挂载文件系统之后,Oracle HSM 软件将启动更新边带数据库的过程。

    在示例中,我们挂载文件系统 /hsmqfs1

    [samqfs1mds]root@solaris:~# mount /hsmqfs1
    
  6. 接下来,转至配置通知和日志记录