管理 ASM 集群文件系统 (ACFS)

本教程介绍如何创建并管理 ASM 集群文件系统 (ACFS)。

大约 1 个小时

主题

本教程包括下列主题:

将光标置于此图标上以加载和查看本教程的所有屏幕截图。(警告:因为此操作会同时加载所有屏幕截图,所以网速较慢时,响应时间可能会比较长。)

注:此外,您还可以在下列步骤中将光标放在每个单独的图标上,从而仅加载和查看与该步骤相关的屏幕截图。

概述

本教程介绍如何在 Oracle 11 第 2 版中使用所提供的实用程序配置和管理 ASM 集群文件系统。

本教程主要包括以下内容:创建 ASM 动态卷、管理 ACFS 以及使用快照特性。另外还演示所支持的实用程序

返回主题列表

已存在 Oracle 数据库 11g 第 2 版的一个数据库安装。已安装 Oracle Grid Infrastructure 并配置了一个 ASM 实例。

返回主题列表

前提条件

开始本教程之前,您应该:

1.

已完成为独立服务器安装 Grid Infrastructure OBE 中“配置 EM Database Control 以管理 ASM”主题的学习。

本教程假设上面引用的 OBE 包含以下条件:

  • 安装了 Grid infrastructure。
  • ASM 配置了一个名为 DATA 的磁盘组,该磁盘组包括 3 个 500MB 的 ASM 磁盘。
  • 另外还有一个 500 MB 磁盘可用作侯选 ASM 磁盘。
  • 配置了 EM Database Control 以管理 ASM
  • 安装该数据库时至少在一个 ASM 磁盘组上创建了一个表空间。
  • 已配置了 Oracle Restart 以便重启:orcl 实例、ASM 实例、LISTENER 和 LISTENERASM。
2.

返回主题列表

创建 ASM 集群文件系统 (ACFS)

Oracle ASM 集群文件系统 (ACFS) 是 Oracle 11g 第 2 版的新增内容。ACFS 旨在作为可供标准的操作系统实用程序访问的通用文件系统,既可用于单台服务器环境中又可用于集群环境中。我们通过创建 ASM 动态卷并将该卷挂载到操作系统中来创建 ACFS。在使用 ACFS 文件系统前,必须先加载四个驱动程序。在 Linux 上,这四个驱动程序分别是:oracleasm(ASM 模块)、oracleadvm(ASM 动态卷模块)、oracleoks(内核服务模块)、oracleacfs(ASM 文件系统模块)。这些模块在安装过程中加载,但并非 Oracle Restart 的一部分。

在此主题中,您将使用多种工具来执行以下操作。

配置 ACFS 驱动程序模块

管理 ASM 卷
挂载 ACFS
使用 EM 创建卷并挂载 ACFS

返回主题列表

要配置 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
# description:Load Oracle ACFS drivers at system boot

/u01/app/grid/product/11.2.0/grid/bin/acfsload start -s

保存文件并退出编辑器。

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

返回主题

要管理 ASM 卷,执行以下步骤:

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

返回主题

要挂载 ACFS,执行以下步骤:

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

返回主题

要使用 EM 创建卷并挂载 ACFS,执行以下步骤:

1.

打开一个终端窗口,作为 oracle 操作系统用户。通过 oraenv 脚本设置 orcl 实例的环境。出现提示时,为 ORACLE_SID 输入 orcl

. oraenv

2.

使用以下命令启动 EM Database Control:

emctl start dbconsole

3.

在您的浏览器中,通过 URL https://localhost:1158/em 访问 EM Database Control,然后登录:

  • User Name:SYS
  • Password:
  • Connect as:SYSDBA

4.

在数据库的主页上,在 General 部分中单击 ASM 链接:+ASM.example.com

5.

在 Automatic Storage Management:+ASM.example.com 页面上,单击 ASM Cluster File System 选项卡。

6.

在 Automatic Storage Management Login 页面上,输入:

  • Username:SYS
  • Password:
  • 单击 Login

7.

在 ASM Cluster File System 页面上,单击 Create

8.

在 Create ASM Cluster File System 页面上,单击 Create ASM Volume

9.

在 Create ASM volume 页面上,创建一个卷:

  • Volume:Volume3
  • Disk Group:DATA
  • SIze:100 M

单击 OK

10.

在 ASM Cluster File System 页面上,为该卷指定一个卷标。

  • Volume Label:IMAGES
  • Mount Point:/u01/app/oracle/acfsdata/images
  • 单击 OK

11.

在 ASM Cluster File System Host Credentials:host01.example.com 页面上,输入 ASM 实例管理员的用户名和口令:

  • Username:oracle
  • Password:<您的口令>

12.

在 Automatic Storage Management:+ASM.example.com 页面上,会出现一条确认消息。

  • 选中 VOLUME3(未挂载的卷)
  • 单击 Mount

13.

在 Mount ASM Cluster File System:/dev/asm/volume3-<##> 页面上,输入该挂载点。

  • Mount Point:/u01/app/oracle/acfsdata/images
  • 单击 Generate Command

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 文件系统

在此主题中,您将使用 ACFS 文件系统。您将在已创建的文件系统中创建文件。作为通用的文件系统,所有的文件系统操作系统命令都是可以使用的。在本例中,您会将 ORACLE_HOME 目录的一部分移至一个 ACFS 文件系统中。ACFS 不支持在 ACFS 中存放 Grid Infrastructure 主目录的任何部分,不支持在 ACFS 中存放 / (root) 目录。

您将使用 ACFS 的一些高级特性,如快照和动态卷大小调整。

调整卷的大小

使用操作系统命令管理 ACFS 文件系统

返回主题列表

要调整 ASM 卷的大小,执行以下步骤:

在本主题中,我们将一个磁盘添加到 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 选项卡上,

  • 选中挂载点 /u01/app/oracle/acfsdata/orabin
  • 从 Actions 列表中选择 Resize
  • 单击 Go

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 实例管理员的用户名和口令。

  • Username:oracle
  • Password:<您的口令>
  • 单击 Continue

10.

在 Automatic Storage Management:+ASM.example.com 页面上,您会看到挂载点 /u01/app/oracle/acsfdata/orabin 处的卷大小现在是 1 GB。ASM 卷管理器以 256MB 为递增单位来分配空间。

返回主题

要使用操作系统命令管理 ACFS 文件系统,执行以下步骤:

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 文件。

  • 单击浏览器按钮
  • 输入以下 URL:file:///u01/app/oracle/acfsdata/images/gridInstall/asm.gif
  • 关闭浏览器

5.

以 root 用户身份将 /u01/app/oracle/product/11.2.0/dbhome_1/bin 目录复制到 ACSF /u0/app/oracle/acfsdata/orabin 目录。

  • 使用 su 命令切换到 root 用户
  • 转到 /u01/app/oracle/product/11.2.0/dbhome_1 目录
  • 确认工作目录
  • 将 bin 下的所有文件复制到 /u01/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

which sqlplus

sqlplus / as sysdba

SQL> startup

SQL> exit

11.

用以下命令启动 EM Database Control:

emctl start dbconsole

返回主题

返回主题列表

使用 ACFS 快照

在此主题中,您将创建 ACFS 快照、删除文件并从快照恢复文件。

创建 ACFS 快照

从 ACFS 快照恢复

返回主题列表

要创建一个 ACFS 快照,执行以下步骤:

可以用 acfsutil 实用程序或 Enterprise Manager 管理 ACFS 快照。此主题将说明这两种方法。

1.

使用 EM Database Control 转到 Automatic Storage Management:+ASM.example.com 页面,然后转到 ASM Cluster File System 选项卡。

  • 选中 filesystem /u01/app/oracle/acfsdata/images
  • 单击 Create Snapshot

2.

在 Create Snapshot on ASM Cluster File System:/u01/app/oracle/acfsdata/images 页面上

  • 输入以下 Snapshot Name:snapshot_1

  • 单击 Show Command,查看将创建此快照的 acfsutil 命令。

  • 单击 Return
  • 单击 OK
3.

在 ASM Cluster File System Host Credentials:host01.example.com 页面上,输入 ASM 实例管理员的用户名和口令。

  • Username:oracle
  • Password:<您的口令>
  • 单击 Continue

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

SFPILE 为 +data/spfile.ora。

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 页面上,

  • 在 Search in Directory 域中输入:/u01/app/oracle/acfsdata/images/.ACFS/snaps/snapshot_2/gridInstall
  • 在 File or Directory Name 域中输入:asm.gif
  • 单击 Go

8.

找不到该文件。搜索 snapshot_1。

在 Search and List:Directory 页面上,

  • 将 Search in Directory 域的值更改为:/u01/app/oracle/acfsdata/images/.ACFS/snaps/snapshot_1/gridInstall
  • 单击 Go

现在我们找到了该文件,可以用操作系统命令来恢复该文件了。

返回主题

返回主题列表

要使 OBE 环境回到与本练习开始时相同的状态,执行以下步骤:

1.

关闭所有窗口。打开一个终端窗口,切换到 root 用户。执行以下命令:

su - root

/home/oracle/wkdir/acfs/cleanup.sh

2.

如果您想重做此 OBE,请重新启动并返回到第一个主题。

如果您完成了此 OBE,请继续进行“为独立服务器安装 Grid Infrastructure”OBE 的“清理”部分,以完成 OBE 环境的清理工作。

返回主题列表

在本教程中,您学习了如何:

返回主题列表

要了解有关 Grid 安装和 ASM 的更多信息,可以参考:

返回主题列表

将光标置于该图标上可以隐藏所有的屏幕截图。