Oracle HSM 支持一个可选报告数据库,该数据库存储指定文件系统中每个文件的当前元数据信息。此边带数据库对于文件和文件系统活动的管理和报告是非常重要的。
Oracle HSM 边带数据库的实施非常简单。使用 samdb
命令创建和配置 MySQL 数据库(使用提供的数据库方案或定制替代数据库方案)和 samfsdump
命令生成的恢复点文件。然后,Oracle HSM 守护进程在相应的文件系统发生更改时自动更新数据库。利用其他 samdb
命令,可以查询和管理数据库。有关命令和选项的完整详细信息,请参见 samdb
和 samdb.conf
手册页。
要使用边带数据库功能,请执行下列任务:
要启用 samdb
报告功能,您必须安装并配置 MySQL 数据库。请执行如下操作。
从 http://dev.mysql.com/doc/
下载 MySQL 参考手册。
使用以下过程可以确定在启用 samdb
报告时所需执行的 MySQL 任务。但请注意,下列步骤不一定是完整的或权威的。在查阅 MySQL 参考手册时将它们用作指南。
以 root
用户身份登录到将托管 MySQL 服务器的系统。
可以在 Oracle HSM 元数据服务器主机或独立 Solaris 或 Linux 主机上安装 MySQL 服务器。
在示例中,我们将在 Solaris 主机 samsql
上安装 MySQL:
[samsql]root@solaris:~#
按照 MySQL 参考手册中的指示,下载并安装 MySQL 服务器软件。启用自动启动。
使用 root
用户帐户,通过 mysql
客户机连接到 MySQL 服务器。使用命令 mysql
--user=
root
-p
。当系统提示时,输入您在安装期间为 root
用户分配的密码。
mysql
命令 shell 将启动:
[samsql]root@solaris:~# mysql --user=root -p Enter Password: mysql>
创建 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>
向 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>
关闭 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:~#
接下来,创建数据库装入文件。
以 root
用户身份登录到 Oracle HSM 元数据服务器主机。
在示例中,我们登录到主机 samqfs1mds
:
[samqfs1mds]root@solaris:~#
如果您已具有当前恢复点文件,则从恢复点文件内容生成数据库装入文件。使用命令 samfsrestore
-SZ
output-path-name
-f
recoverypoint-file
,其中:
-f
将 recoverypoint-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
如果您没有当前恢复点文件,则现在创建数据库装入文件。转到 Oracle HSM 文件系统的根目录。然后使用命令 samfsdump
-SZ
output-path-name
。
有关其他详细信息,请参见 samfsdump
手册页。在示例中,我们转至 /hsmqfs1
目录。我们将输出发送到数据库装入文件 /root/hsmqfs1dataload
:
[samqfs1mds]root@solaris:~# cd /hsmqfs1 [samqfs1mds]root@solaris:~# samfsdump -SZ /root/hsmqfs1dataload
接下来,创建边带数据库。
以 root
用户身份登录到 MySQL 服务器主机。
在示例中,MySQL 服务器托管在 Solaris 主机 samqfs1mds
上:
[samqfs1mds]root@solaris:~#
在文本编辑器中,打开文件 /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
在 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:
在第二列中,输入 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:
在第三列中,输入 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:
在第四列中,输入 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:
在第四列中,输入 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:
在第六列中,输入数据库服务器的 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:
在第七列中,输入 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:
在第八列和最后一列中,输入 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:~#
创建新的数据库和关联表。使用命令 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
使用您在前面的过程中创建的数据库装入文件中包含的数据填充数据库。使用命令 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
检查数据库的一致性。使用命令 samdb check
family_set
,其中 family_set
是在 /etc/opt/SUNWsamfs/mcf
文件中为文件系统指定的系列集名称。
samdb check
命令会将数据条目与当前文件系统元数据进行比较。它记录并尽力更正可能在装入过程中引发的不一致性。
在示例中,使用数据库装入文件 /root/hsmqfs1dataload
为文件系统系列集 samqfs1
装入数据库。
[samqfs1mds]root@solaris:~# samdb check samqfs1
以 root
用户身份登录到 Oracle HSM 元数据服务器主机。
[samqfs1mds]root@solaris:~#
备份 /etc/vfstab
文件。
[samqfs1mds]root@solaris:~# cp /etc/vfstab /etc/vfstab.backup
在文本编辑器中打开 /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
在 /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:~#
挂载 Oracle HSM 归档文件系统。
使用 sam_db
选项挂载文件系统之后,Oracle HSM 软件将启动更新边带数据库的过程。
在示例中,我们挂载文件系统 /hsmqfs1
:
[samqfs1mds]root@solaris:~# mount /hsmqfs1
接下来,转至配置通知和日志记录