在 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;首先,调用 dbconsole,以 SYS 用户登录,在出现的屏幕上单击 Administration 选项卡。
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
该作业执行以下任务:
接着,检查数据库的 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!