本教程介绍如何创建并管理 ASM 集群文件系统 (ACFS)。
大约 1 个小时
本教程包括下列主题:
| 概述 | ||
| 情景 | ||
| 前提条件 | ||
| 创建 ACFS 文件系统 | ||
| 总结 | ||
| 相关信息 | ||
将光标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)
注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。
本教程介绍如何在 Oracle 11 第 2 版中使用所提供的实用程序配置和管理 ASM 集群文件系统。
本教程主要包括以下内容:创建 ASM 动态卷、管理 ACFS 以及使用快照特性。另外还演示所支持的实用程序
已存在 Oracle 数据库 11g 第 2 版的一个数据库安装。已安装 Oracle Grid Infrastructure 并配置了一个 ASM 实例。
开始本教程之前,您应该:
| 1. | 已完成为独立服务器安装 Grid Infrastructure OBE 中“配置 EM Database Control 以管理 ASM”主题的学习。 本教程假设上面引用的 OBE 包含以下条件:
|
|
| 2. | 下载 acfs.zip 文件(其中包含完成本教程所需的文件)并将其解压缩至您的工作目录中。 |
|
Oracle ASM 集群文件系统 (ACFS) 是 Oracle 11g 第 2 版的新增内容。ACFS 旨在作为可供标准的操作系统实用程序访问的通用文件系统,既可用于单台服务器环境中又可用于集群环境中。我们通过创建 ASM 动态卷并将该卷挂载到操作系统中来创建 ACFS。在使用 ACFS 文件系统前,必须先加载四个驱动程序。在 Linux 上,这四个驱动程序分别是:oracleasm(ASM 模块)、oracleadvm(ASM 动态卷模块)、oracleoks(内核服务模块)、oracleacfs(ASM 文件系统模块)。这些模块在安装过程中加载,但并非 Oracle Restart 的一部分。
在此主题中,您将使用多种工具来执行以下操作。
| 管理 ASM 卷 | ||
| 挂载 ACFS | ||
| 使用 EM 创建卷并挂载 ACFS | ||
| 1. | 打开一个终端窗口,切换为操作系统 root 用户。使用 su - root 命令。
|
| 2. | 以 root 用户身份,确定是否加载了所需模块。它们分别是 oracleasm、oracleadvm、oracleoks 和 oracleacfs。以下命令显示操作系统识别出的所有模块。 lsmod
|
| 3. | 重新启动服务器。使用以下命令 reboot |
| 4. | 打开一个终端窗口,切换为操作系统 root 用户。使用 su - root 命令。
|
| 5. | 以 root 用户身份,确定是否加载了所需模块。以下命令显示操作系统识别出的所有模块。请注意,只加载了 oracleasm 模块,尽管 Oracle Restart 自动重启了 ASM 实例。 lsmod
|
| 6. | 使用以下命令手动加载 ACFS 所需模块: /u01/app/grid/product/11.2.0/grid/bin/acfsload start -s |
| 7. | 配置一个初始化脚本以便在系统启动时加载 ACFS 模块。在 /etc/init.d 目录中,使用所选的编辑器创建一个名为 acfsload 的文件。 gedit /etc/init.d/acfsload 该文件将包含运行级配置以及 acfsload 命令。将以下几行代码放入该文件中: #!/bin/sh # chkconfig:2345 30 21
保存文件并退出编辑器。 |
| 8. | 使用以下命令更改 acfsload 脚本的访问权限,以允许 root 用户执行该脚本: chmod u+x /etc/init.d/acfsload |
| 9. | 在 rc2.d、rc3.d、rc4.d 和 rc5.d 运行级目录中创建链接。使用 chkconfig 命令添加并确认该配置。 chkconfig --add acfsload chkconfig --list acfsload
|
| 10. | 重启以确认加载了各个 ACFS 驱动程序。 reboot |
| 11. | 打开一个终端窗口,切换为操作系统 root 用户。使用 su - root 命令。
|
| 12. | 以 root 用户身份,确定是否加载了所需模块。以下命令显示操作系统识别出的所有模块。 lsmod
exit |
| 1. | 在终端窗口中,作为 oracle 操作系统用户。通过 oraenv 脚本设置 +ASM 实例的环境。出现提示时,为 ORACLE_SID 输入 +ASM。 . oraenv
|
| 2. | 使用以下命令,通过 SQL*Plus 连接作为 sysasm 创建一个 ASM 卷 sqlplus / as sysasm SQL> ALTER DISKGROUP data ADD VOLUME volume1 SIZE 400M;
|
3. |
使用 SQL* Plus 查看该 ASM 卷的属性: SQL> SET PAGESIZE 100 SQL> SELECT * FROM V$ASM_VOLUME; SQL> EXIT
|
| 4. | 使用以下命令通过 ASMCMD 实用程序创建一个 100MB 的 ASM 卷: asmcmd ASMCMD> volcreate -G DATA -s 100M volume2
|
| 5. | 查看这些 ASM 卷的属性,请注意这些卷的大小。使用 ASMCMD 命令: ASMCMD> volinfo -a ASMCMD> exit
|
| 6. | 在命令行模式下,使用 ASMCMD 命令删除 ASM 卷 VOLUME2。 asmcmd voldelete -d DATA volume2
|
| 1. | 在终端窗口中,以 oracle 操作系统用户身份创建一组目录用作挂载点。在 ORACLE_BASE/acfsdata 目录下创建挂载点。此例中,使用以下命令创建三个目录:orabin、images 和 misc。 mkdir -p /u01/app/oracle/acfsdata/orabin mkdir -p /u01/app/oracle/acfsdata/images mkdir -p /u01/app/oracle/acfsdata/misc
|
| 2. | 以 root 用户身份,使用操作系统命令在 ASM volume1 上创建 ACFS 文件系统,该文件系统将挂载到 /u01/app/oracle/acfsdata/orabin 挂载点上。在前述 volinfo 命令的输出结果中可找到设备名。注意卷名的扩展名“-##”,它包含在前面的屏幕截图中。 su - root mkfs -t acfs -b 4k /dev/asm/volume1-###
|
| 3. | 以 root 用户身份,使用操作系统命令挂载该 ACFS 文件系统。 mount -t acfs /dev/asm/volume1-<###> /u01/app/oracle/acfsdata/orabin
|
| 4. | 使用操作系统命令验证该卷已挂载。 df -h
|
| 5. | Oracle Restart 配置支持 Oracle ACFS 挂载注册表,但不能自动挂载 Oracle ACFS 已注册文件系统。然而,只需使用一个挂载命令即可安装 Oracle ACFS 挂载注册表中列出的所有的 Oracle ACFS 文件系统。(集群配置支持 ACFS 挂载注册表并且可将 ACFS 卷自动挂载到集群范围的挂载点。) 通过以下命令将 ACFS volume1 注册到 ACFS 挂载注册表中以启用自动挂载的变通方法。注意要更改卷的扩展名以与前面的命令保持一致。 acfsutil registry -a /dev/asm/volume1-<###> /u01/app/oracle/acfsdata/orabin
exit 注:在系统重启或 ASM 重启后,可以 root 用户的身份通过执行一条命令来挂载在 ACFS 挂载注册表中注册的 ACFS 卷: mount –t acfs –o all none none |
| 1. | 打开一个终端窗口,作为 oracle 操作系统用户。通过 oraenv 脚本设置 orcl 实例的环境。出现提示时,为 ORACLE_SID 输入 orcl。 . oraenv
|
| 2. | 使用以下命令启动 EM Database Control: emctl start dbconsole
|
| 3. | 在您的浏览器中,通过 URL https://localhost:1158/em 访问 EM Database Control,然后登录:
|
| 4. | 在数据库的主页上,在 General 部分中单击 ASM 链接:+ASM.example.com
|
| 5. | 在 Automatic Storage Management:+ASM.example.com 页面上,单击 ASM Cluster File System 选项卡。
|
| 6. | 在 Automatic Storage Management Login 页面上,输入:
|
| 7. | 在 ASM Cluster File System 页面上,单击 Create。
|
| 8. | 在 Create ASM Cluster File System 页面上,单击 Create ASM Volume。
|
| 9. | 在 Create ASM volume 页面上,创建一个卷:
单击 OK。
|
| 10. | 在 ASM Cluster File System 页面上,为该卷指定一个卷标。
|
| 11. | 在 ASM Cluster File System Host Credentials:host01.example.com 页面上,输入 ASM 实例管理员的用户名和口令:
|
| 12. | 在 Automatic Storage Management:+ASM.example.com 页面上,会出现一条确认消息。
|
| 13. | 在 Mount ASM Cluster File System:/dev/asm/volume3-<##> 页面上,输入该挂载点。
|
| 14. | 在 Show Command 页面上,会显示挂载该 ACFS 文件系统的命令。由于必须以 root 用户身份运行此命令,请打开一个终端窗口,切换为 root 用户。将所显示的命令粘贴到该 root 窗口并执行。该命令为: /bin/mount -t acfs -rw /dev/asm/volume3-<##> /u01/app/oracle/acfsdata/images
该 root 窗口将如下所示:
退出 root 窗口。 在 Show Command 页面上,单击 Return。 在 Mount ASM Cluster File System:/dev/asm/volume3-<##> 页面上,单击 Return。 |
| 15. | 在 Automatic Storage Management:+ASM.example.com 页面上,查看挂载的文件系统。应能看到两个挂载的文件系统。
|
在此主题中,您将使用 ACFS 文件系统。您将在已创建的文件系统中创建文件。作为通用的文件系统,所有的文件系统操作系统命令都是可以使用的。在本例中,您会将 ORACLE_HOME 目录的一部分移至一个 ACFS 文件系统中。ACFS 不支持在 ACFS 中存放 Grid Infrastructure 主目录的任何部分,不支持在 ACFS 中存放 / (root) 目录。
您将使用 ACFS 的一些高级特性,如快照和动态卷大小调整。
| 使用操作系统命令管理 ACFS 文件系统 | ||
在本主题中,我们将一个磁盘添加到 ASM 磁盘组中,然后增加 VOLUME1 ASM 卷的大小。
| 1. | 使用 EM Database Control。导航至数据库主页。单击 Database 选项卡。
在 Home 页面上,单击 +ASM.example.com 链接。
|
| 2. | 在 Automatic Storage Management:+ASM.example.com 页面上,单击 Disk Groups 选项卡。
|
| 3. | 在 Disk Groups 选项卡上,单击 DATA 磁盘组链接。单击 Add。
|
| 4. | 在 Add Disks 页面上,选中 Path 为 ORCL:DATA4 的磁盘。单击 OK。
|
| 5. | 您会看到各个 Used (%) 值最初并不均衡。
大约一分钟后,单击浏览器中的 Refresh 按钮,查看各磁盘组的使用是否已重新均衡。
在此页面中,单击页面左上方的路径式导航栏返回到 Automatic Storage Management:+ASM.example.com 页面。
|
| 6. | 在 Automatic Storage Management:+ASM.example.com 页面上,单击 ASM Cluster File System 选项卡。
|
| 7.. | 在 ASM Cluster File System 选项卡上,
|
| 8 | 在 Resize ASM Cluster File System:/u01/app/oracle/acfsdata/orabin 页面上,将该卷的大小更改为 800 MB。单击 OK。
|
| 9. | 在 ASM Cluster File System Host Credentials:host01.example.com 页面上,输入 ASM 实例管理员的用户名和口令。
|
| 10. | 在 Automatic Storage Management:+ASM.example.com 页面上,您会看到挂载点 /u01/app/oracle/acsfdata/orabin 处的卷大小现在是 1 GB。ASM 卷管理器以 256MB 为递增单位来分配空间。
|
| 1. | 这些 ACFS 卷是由 root 用户挂载的,为 root 用户所拥有。为使其他操作系统用户也可使用这些卷,更改其权限使任何用户都可以读写和执行 images 目录。更改权限使 orabin 目录为 oracle:oinstall 所拥有,权限为 755。使用以下命令: su - root chmod 777 /u01/app/oracle/acfsdata/images chown oracle:oinstall /u01/app/oracle/acfsdata/orabin chmod 755 /u01/app/oracle/acfsdata/orabin exit
|
| 2. | 以操作系统用户 oracle 的身份打开一个终端窗口。将一个文件复制到 IMAGES ACFS 卷中。转到 images 目录并列出此目录下的内容。 cp /home/oracle/wkdir/acfs/images.zip /u01/app/oracle/acfsdata/images ls /u01/app/oracle/acfsdata/images
|
| 3. | 转到 images 卷的目录下,从 zip 文件中解压缩出各个文件。 cd /u01/app/oracle/acfsdata/images unzip images.zip
|
| 4. | 查看一个图像文件,然后关闭该文件。在 Firefox 浏览器中打开一个 gif 文件。
|
| 5. | 以 root 用户身份将 /u01/app/oracle/product/11.2.0/dbhome_1/bin 目录复制到 ACSF /u0/app/oracle/acfsdata/orabin 目录。
su - root cd /u01/app/oracle/product/11.2.0/dbhome_1 pwd cp -rp bin/* /u01/app/oracle/acfsdata/orabin exit
|
| 6. | 在终端窗口中,以 oracle 操作系统用户的身份通过以下命令将环境设置为 orcl 实例并停止 EM Database Control: . oraenv emctl stop dbconsole |
| 7. | 使用以下命令关闭 orcl 实例 srvctl stop database -d orcl
|
| 8. | 移动 $ORACLE_HOME/bin 目录 mv $ORACLE_HOME/bin $ORACLE_HOME/bin.org
|
| 9. | 创建一个从原始的 ORACLE_HOME/bin 到 ACFS orabin 目录的符号链接。 ln -s /u01/app/oracle/acfsdata/orabin $ORACLE_HOME/bin
|
| 10. | 试着从 ACFS orabin 目录使用 SQL*Plus。
which sqlplus sqlplus / as sysdba SQL> startup SQL> exit
|
| 11. | 用以下命令启动 EM Database Control: emctl start dbconsole |
| 创建 ACFS 快照 | |
可以用 acfsutil 实用程序或 Enterprise Manager 管理 ACFS 快照。此主题将说明这两种方法。
| 1. | 使用 EM Database Control 转到 Automatic Storage Management:+ASM.example.com 页面,然后转到 ASM Cluster File System 选项卡。
|
| 2. | 在 Create Snapshot on ASM Cluster File System:/u01/app/oracle/acfsdata/images 页面上
|
| 3. | 在 ASM Cluster File System Host Credentials:host01.example.com 页面上,输入 ASM 实例管理员的用户名和口令。
|
| 4. | 在 Automatic Storage Management:+ASM.example.com 页面上,您会看到 /u01/app/oracle/acfsdata/images 文件系统的快照个数为 1。
|
| 5. | 在终端窗口中,以 oracle 用户身份删除 /u01/app/oracle/acfsdata/images 目录中的 asm.gif 文件。 rm /u01/app/oracle/acfsdata/images/gridInstall/asm.gif
|
| 6. | 在终端窗口中,切换到 root 用户,查看 acfsutil 实用程序中可以使用的命令。 su - root acfsutil -h
|
| 7. | 在 /u01/app/oracle/acfsdata/images 文件系统中创建另一个快照。使用 acfsutil 命令: acfsutil snap create snapshot_2 /u01/app/oracle/acfsdata/images |
| 8. | 使用操作系统命令查看快照:每个快照均包含创建该快照时原始文件系统中的所有文件。当快照中记录的原始文件系统的数据块发生更改时,为了节省空间,快照包含原始块,而文件系统包含更改的内容。 ls -l /u01/app/oracle/acfsdata/images/.ACFS/snaps
exit |
首先,使用操作系统命令恢复文件,然后使用 EM 在快照中找到该文件。
| 1. | 在终端窗口中,作为 oracle 操作系统用户,您发现缺少了 asm.gif 文件。 cd /u01/app/oracle/acfsdata/images ls gridInstall/asm.gif
|
| 2. | 查看快照以确定是否可以恢复 asm.gif 文件。 ls .ACFS/snaps/*/gridInstall/asm.gif
|
| 3. | 将 asm.gif 从 snapshot_1 复制到其原先的位置。 cp .ACFS/snaps/snapshot_1/gridInstall/asm.gif gridInstall/asm.gif
|
| 4. | 通过浏览器查看 asm.gif 文件。输入以下 URL:file:///u01/app/oracle/acfsdata/images/gridInstall/asm.gif
|
| 5. | 使用 EM Database Control 在 snapshot_2 中搜索 asm.gif 文件。 使用 EM Database Control 转到 Automatic Storage Management:+ASM.example.com 页面,然后转到 ASM Cluster File System 选项卡下,单击 /u01/app/oracle/acfsdata/images 文件系统的 Snapshots 链接(该链接显示此文件系统的快照数量)。如果需要,请输入主机证书。
|
| 6. | 在 ASM Cluster File System:/u01/app/oracle/acfsdata/images 页面的Snapshots 选项卡下,单击 Snapshot_2。
|
| 7. | 在 Search and List:Directory 页面上,
|
| 8. | 找不到该文件。搜索 snapshot_1。
在 Search and List:Directory 页面上,
现在我们找到了该文件,可以用操作系统命令来恢复该文件了。 |
要使 OBE 环境回到与本练习开始时相同的状态,执行以下步骤:
| 1. | 关闭所有窗口。打开一个终端窗口,切换到 root 用户。执行以下命令: su - root /home/oracle/wkdir/acfs/cleanup.sh |
| 2. | 如果您想重做此 OBE,请重新启动并返回到第一个主题。 如果您完成了此 OBE,请继续进行“为独立服务器安装 Grid Infrastructure”OBE 的“清理”部分,以完成 OBE 环境的清理工作。 |
在本教程中,您学习了如何:
| 创建 ACFS 文件系统 | ||
| 管理 ACFS 卷和挂载点 | ||
| 创建并管理 ACFS 快照 | ||
要了解有关 Grid 安装和 ASM 的更多信息,可以参考:
| OTN 网站上的其他 OBE。 | ||
将光标置于该图标上可以隐藏所有的屏幕截图。