oracle OMF的使用

OMF ----oracle managed files   是在10g之后推出的

 

使用OMF的好处
使用OMF有如下好处:
·使数据库易于管理。
不需要编制文件名和确定指定的存储,一组一致的规则是用来命名所有相关文件。文件系统确定分配它的存储特性和池。
·减少管理员指定错误文件导致的损坏。
每个OMF和文件名是唯一的。在两个不同的数据库使用相同的文件是一个常见的错误,可能导致长时间停止和丢失已提交的事务。使用两个不同的名字执行同一个文件是另一错误,会导致重大损坏。
·减少过期文件造成的磁盘空间的浪费。
Oracle会自动删除旧的OMF,在它们不再需要时。在一个简单的大型系统中很多磁盘空间被浪费,因为没有人知道是否一个特定文件仍然需要。对于磁盘上不再需要的内容,可以简化管理任务,防止误删除文件。
·可以简化创建任务和数据库开发。
你可以使用很少时间确定文件结构和文件名字,减少文件管理任务。集中精力测试和进行数据库开发,满足它的实际需要。
·OMF使利用第三方工具开发更加容易。
OMF不再需要在SQL脚本中放入操作系统指定的名字。

 

实现数据文件OMF管理

 

以前创建一个表空间需要指定数据文件路径及大小

SQL> create tablespace wer datafile '/u01/app/oracle/oradata/fengzi/wer.dbf' size 100m;

 

 

实现数据文件OMF管理只需要设置一个参数就可以

 

SQL> show parameter db_create_file_dest

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_create_file_dest                  string     

SQL>

SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/';

System altered.

SQL> create tablespace wer;

Tablespace created.

SQL>    

SQL> select name from v$datafile;

 

NAME

--------------------------------------------------------------------------------

+DATA/fengzi/datafile/system.277.842187103

+DATA/fengzi/datafile/undotbs1.dbf

+DATA/fengzi/datafile/sysaux.279.842187235

+DATA/fengzi/datafile/users2.dbf

+DATA/fengzi/datafile/undotbs.dbf

+DATA/fengzi/datafile/users1.dbf

/u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

 

7 rows selected.

 

SQL>

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

-rw------- 1 oracle oinstall 101M Apr 15 09:12 /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_wer_9ns1wd2n_.dbf

                    (默认分配大小为100M

SQL>

也可以直接指定大小

SQL> create tablespace qwe datafile size 15m;

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

-rw------- 1 oracle oinstall 16M Apr 15 09:17 /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

 

SQL>

 

如果使用drop tablespace {tablespace_name};命令删除表空间,OMF管理的会将物理文件也一同删除

 

SQL> drop tablespace qwe;

 

Tablespace dropped.

 

SQL> ho ls -lh /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf

ls: /u01/app/oracle/oradata/FENGZI/datafile/o1_mf_qwe_9ns25pms_.dbf: No such file or directory

 

SQL>

其他的使用drop tablespace {tablespace_name};命令是不会删除物理文件的

 

SQL> create tablespace qaz datafile '/u01/app/oracle/oradata/fengzi/qaz.dbf' size 10m;

 

Tablespace created.

 

SQL> ho ls /u01/app/oracle/oradata/fengzi/qaz.dbf

/u01/app/oracle/oradata/fengzi/qaz.dbf

 

SQL> drop tablespace qaz;

 

Tablespace dropped.

 

SQL> ho ls /u01/app/oracle/oradata/fengzi/qaz.dbf

/u01/app/oracle/oradata/fengzi/qaz.dbf

 

SQL>

想要删除应该

drop tablespace tablespace_name  including contents and datafiles;

 

including contents:用于删除表空间同时删除表空间上的所有段

including contents and datafiles删除表空间、数据文件以及表空间上段的信息,同时删除OS中的数据文件

 

 

实现日志文件OMF管理

 

确认原默认存放组位置

SQL> alter database add logfile;

 

Database altered.

 

SQL> select member from v$logfile;

 

MEMBER

--------------------------------------------------------------------------------

+DATA/fengzi/onlinelog/group_1_1.log

+DATA/fengzi/onlinelog/group_1_2.log

+DATA/fengzi/onlinelog/group_2_1.log

+DATA/fengzi/onlinelog/group_2_2.log

+DATA/fengzi/onlinelog/group_3_1.log

+DATA/fengzi/onlinelog/group_3_2.log

/u01/app/oracle/oradata/FENGZI/onlinelog/o1_mf_4_9ns3nvl6_.log

+DATA/fengzi/onlinelog/group_4.345.844940573                

 

8 rows selected.

以上默认创建组的成员路径是由以下参数决定的

SQL> show parameter db_create_file_dest

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_create_file_dest                  string      /u01/app/oracle/oradata/

SQL> show parameter db_recovery_file_dest

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_recovery_file_dest                string      +DATA

SQL>

 

同样的,只需要修改相应参数就可以

 

SQL> show parameter db_create_online

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_create_online_log_dest_1          string

db_create_online_log_dest_2          string

db_create_online_log_dest_3          string

db_create_online_log_dest_4          string

db_create_online_log_dest_5          string

SQL>

可以看到在一个组中给出了5个成员,一般一个组下有2个成员就足够了。所以根据情况选择使用参数数量

 

 

 

先选择存放日志的路径

SQL> ho mkdir /u01/app/oracle/d1

 

SQL> ho mkdir /u01/app/oracle/d2

 

SQL>

定义参数db_create_online_log_dest_1db_create_online_log_dest_2

SQL> alter system set db_create_online_log_dest_1='/u01/app/oracle/d1';

 

System altered.

 

SQL> alter system set db_create_online_log_dest_2='/u01/app/oracle/d2';

 

System altered.

 

SQL>

再次创建日志组

SQL> alter database add logfile;

 

Database altered.

 

 

SQL> select group#,member from v$logfile;

 

    GROUP#

----------

MEMBER

--------------------------------------------------------------------------------

         1

+DATA/fengzi/onlinelog/group_1_1.log

 

         1

+DATA/fengzi/onlinelog/group_1_2.log

 

         2

+DATA/fengzi/onlinelog/group_2_1.log

 

 

    GROUP#

----------

MEMBER

--------------------------------------------------------------------------------

         2

+DATA/fengzi/onlinelog/group_2_2.log

 

         3

+DATA/fengzi/onlinelog/group_3_1.log

 

         3

+DATA/fengzi/onlinelog/group_3_2.log

 

 

    GROUP#

----------

MEMBER

--------------------------------------------------------------------------------

         4

/u01/app/oracle/oradata/FENGZI/onlinelog/o1_mf_4_9ns3nvl6_.log

 

         4

+DATA/fengzi/onlinelog/group_4.345.844940573

 

         5

/u01/app/oracle/d1/FENGZI/onlinelog/o1_mf_5_9ns4dov5_.log

 

 

    GROUP#

----------

MEMBER

--------------------------------------------------------------------------------

         5

/u01/app/oracle/d2/FENGZI/onlinelog/o1_mf_5_9ns4dptw_.log

 

 

10 rows selected.

 

SQL>

 

对于日志文件OMF管理,是不能向组中添加成员的,与数据文件一样,在 drop 的时候同样会将OS物理文件删除。

 

如果想使用控制文件OMF管理

需要干掉下面参数

SQL> alter system reset control_files scope=spfile sid='*';

 

 

控制文件也是根据日志文件的参数决定的(存放路径与日志文件一致)

SQL> show parameter db_create_online_log

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

db_create_online_log_dest_1          string      /u01/app/oracle/d1

db_create_online_log_dest_2          string      /u01/app/oracle/d2  (定义了几个成员就有几个控制文件)

db_create_online_log_dest_3          string

db_create_online_log_dest_4          string

db_create_online_log_dest_5          string

SQL>

 

 

 

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29532781/viewspace-1174607/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/29532781/viewspace-1174607/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值