在 Oracle 数据库 10g 第 1 版中推出的 Oracle 自动存储治理 (ASM) 是一个嵌入 Oracle 内核的专用集群文件系统,有了它,就不再需要第三方的卷治理器和文件系统了。
虽然提供了许多具体信息,但您只要知道一点就足够了:Oracle ASM 在磁盘间完成数据的条带化和镜像,并执行联机磁盘配置和动态重平衡等。它能从根本上解决 DBA 会碰到的许多存储治理问题。
在 Oracle 数据库 10g 第 1 版中,要求 Recovery Manager (RMAN) 将现有数据库转换为 Oracle ASM。而在第 2 版中,因为引入了 Oracle EnterPRise Manager 10g Database Control 中一个选项(命令行上的 bconsole),该过程得到了极大的简化。在本技术说明中,我将介绍如何使用该方法将现有数据库转换为 Oracle ASM。
为了便于说明,假定现有数据库在一个 ext3 文件系统上具有如下布局。 SQL> select name from v$datafile;
NAME
------------------------------------------------------------
/u01/app/oracle/oradata/test/system01.dbf
/u01/app/oracle/oradata/test/undotbs01.dbf
/u01/app/oracle/oradata/test/sysaux01.dbf
/u01/app/oracle/oradata/test/users01.dbf
首先,调用 dbconsole,以 SYS 用户登录,在出现的屏幕上单击 Administration 选项卡。
![](/images/load.gif)
在 Change Database 部分下,单击“Migrate to ASM”。
![](/images/load.gif)
接着,输入 SYS 用户的口令连接到该 ASM 实例。
![](/images/load.gif)
然后,选择现有文件的位置和一个预先创建的 ASM 磁盘组(现有文件将添加到该磁盘组)。
![](/images/load.gif)
为了执行该任务,创建了一个作业。现在为该作业输入一合适的描述。
![](/images/load.gif)
在下一个屏幕中,单击“Tablespaces and Files to be Migrated”部分……
![](/images/load.gif)
并确认要移植到 ASM 的文件。假如没有什么要更改的了就单击“Submit”。
![](/images/load.gif)
假如提交成功,您将收到一个确认屏幕。
![](/images/load.gif)
单击上面的“View Status”按钮确认将该作业编入计O衷冢祷厣弦桓銎聊唬?ldquo;OK”。
![](/images/load.gif)
该作业执行以下任务:
关闭数据库
挂载数据库
将文件复制到 ASM 磁盘组,并在控制文件中重新命名这些文件
删除临时文件
打开数据库
在 ASM 磁盘组添加临时文件
删除日志文件,并在具有两个成员的 ASM 磁盘组中创建日志文件,一次一个 您可以在浏览器中使用刷新选项不断检查该作业的状态。当该作业完成时,其状态更新为“SUCceeded”。
![](/images/load.gif)
接着,检查数据库的 alert.log 文件,确认已将文件移植到 ASM。
SQL> select name from v$datafile;
NAME
--------------------------------------------------------------------------------
+DATA_TEST/test/datafile/system.259.563293767
+DATA_TEST/test/datafile/undotbs1.260.563293767
+DATA_TEST/test/datafile/sysaux.262.563293767
+DATA_TEST/test/datafile/users.261.563293767
SQL> select name from v$controlfile;
NAME
--------------------------------------------------------------------------------
+DATA_TEST/test/controlfile/backup.256.563293701
+DATA_TEST/test/controlfile/backup.257.563293703
SQL> select member from v$logfile;
MEMBER
--------------------------------------------------------------------------------
+DATA_TEST/test/onlinelog/group_1.268.563293929
+DATA_TEST/test/onlinelog/group_2.270.563293969
+DATA_TEST/test/onlinelog/group_4.266.563293915
+DATA_TEST/test/onlinelog/group_4.267.563293921
+DATA_TEST/test/onlinelog/group_1.269.563293935
+DATA_TEST/test/onlinelog/group_2.271.563293973
6 rows selected.
恭喜,您已成功将您的数据库移植到 Oracle ASM!