ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 转载---Oracle OMF管理 数据文件,redo文件

转载---Oracle OMF管理 数据文件,redo文件

原创 Linux操作系统 作者:andyxu 时间:2010-02-18 15:48:27 0 删除 编辑

OMF管理文件 和手动管理文件比较               
                       手动管理文件 需要手动指定文件存储位置,包括名字,路径,而ORACLE-MANAGE-FILE 这一切就交给数据库系统来完成,OMF管理包括控制还包括了OS文件:如果你手动管理 当删除一个数据文件的时候只是讲控制文件里面的信息更改了,但是真正的OS文件仍然存在
 
OMF管理 数据文件
                   使用OMF 管理 数据文件需要指定 一个参数 :db_create_file_dest
                              
SQL> show parameter db_create
NAME                                                                 TYPE                VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                                    string
db_create_online_log_dest_1                    string            /thirddisk/root/redolog
db_create_online_log_dest_2                    string            /fourthdisk/root/redolog
db_create_online_log_dest_3                    string
db_create_online_log_dest_4                    string
db_create_online_log_dest_5                    string

 

 

我现在使用的是三面的几个参数 第一个就是设置数据文件的自动存放位置
SQL> alter system set db_create_file_dest='/export/home/oracle/test' ;
alter system set db_create_file_dest='/export/home/oracle/test'
*
ERROR at line 1:
ORA-02097: parameter cannot be modified because specified value is invalid
ORA-01261: Parameter db_create_file_dest destination string cannot be
translated
ORA-01262: Stat failed on a file destination directory
Intel SVR4 UNIX Error: 2: No such file or directory

 


SQL> alter system set db_create_file_dest='/export/home/oracle';

System altered.

 

SQL> show parameter db_create_file_dest;
NAME                                                                 TYPE                VALUE
------------------------------------ ----------- ------------------------------
db_create_file_dest                                    string            /export/home/oracle

 

 

上面可以看到 设置目录 要保存目录存在,继续我们还是先
1>手动添加一个数据文件
SQL> l
    1* create tablespace t1 logging datafile '/export/home/oracle/t1.dbf' size 50M
SQL> /
Tablespace created.

SQL> !ls
afiedt.buf         local.cshrc        local.login        local.profile    t1.dbf

SQL> drop tablespace t1 including contents;
Tablespace dropped.

SQL> !ls
afiedt.buf         local.cshrc        local.login        local.profile    t1.dbf

看看 当删除表空间的饿时候 t1.dbf仍然存在没有节省空间,不过 ORACLE 10G也提供了 一个兼容的方式

SQL> !rm -r t1.dbf

SQL> !ls
afiedt.buf         local.cshrc        local.login        local.profile

SQL> create tablespace t1 logging datafile '/export/home/oracle/t1.dbf' size 50M;
Tablespace created.

SQL> !ls
afiedt.buf         local.cshrc        local.login        local.profile    t1.dbf

SQL> drop tablespace t1 including contents and datafiles;

Tablespace dropped.

SQL> !ls
afiedt.buf         local.cshrc        local.login        local.profile

这样 就删除了
2>OMF创建数据文件
 
SQL> create tablespace t1;

Tablespace created.

SQL> !ls ORCL/datafile
o1_mf_t1_54yn91dp_.dbf

看到效果了吧!  我没有指定文件的存储位置 自动给我存储在了 上面设置的/export/home/oracle目录下 它自己简历了一个 SID/datafile目录
下面看看删除效果
SQL> drop tablespace t1;
Tablespace dropped.

SQL> !ls ORCL/datafile

奇怪吧 没有文件了 Oracle RDMS 给我们自动讲OS文件删除了 OK
 
OMF管理 REDO日志文件
 
        我没经验不过觉得这个比管理数据文件更重要(在系统安全方面),而OMF 管理数据文件 注重节约空间,首先 将将REDO文件 REDO文件在数据恢复的时候起着非常大的作用,所以对于REDO 文件 我们需要格外注意(虽然有归档文件)但是 不排除该文件没有被归档就给物理破坏了,如果 你的日志文件都在一个磁盘上如果磁盘坏掉那么系统不就DOWN掉了
    redo文件是按照组来管理的 一个数据库 至少有两个组,一个组至少有一个成员
    当在一个组日志写满了就自动切换到另外一个组进行循环的写日志,但是 当一个组的一个日志文件被破坏了 但是还有其他日志成员此时数据库仍然能够正常工作这个也体现了 日志文件的 备份 和 存放 在不痛物理介质的重要性了
   创建数据库的时候 默认是建立三个组 每个组一个成员 此时你可以手动 进行添加日志成员,将日志成员添加到 不同的物理介质上

SQL> select * from v$logfile;
rows will be truncated
        GROUP# STATUS    TYPE        MEMBER
---------- ------- ------- -------------------------------------------------------------------------------                ----------------------------------------------------------------------------------------------
                 3                 ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo03.log
                 2 STALE     ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo02.log
                 1 STALE     ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo01.log
                 4                 ONLINE    /thirddisk/root/redolog/ORCL/onlinelog/o1_mf_4_54yln8n2_.log
                 4                 ONLINE    /fourthdisk/root/redolog/ORCL/onlinelog/o1_mf_4_54ylnfqx_.log
                 1 INVALID ONLINE    /thirddisk/root/redolog/ORCL/onlinelog/redo01a.log
                 2 INVALID ONLINE    /fourthdisk/root/redolog/ORCL/onlinelog/redo02a.log

7 rows selected.

SQL> alter database add logfile member '/fourthdisk/root/redolog/ORCL/onlinelog/redo03a.log' to group 3;

Database altered.

SQL> select * from v$logfile;
rows will be truncated

        GROUP# STATUS    TYPE        MEMBER
---------- ------- ------- -------------------------------------------------------------------------------                ----------------------------------------------------------------------------------------------
                 3                 ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo03.log
                 2 STALE     ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo02.log
                 1 STALE     ONLINE    /seconddisk/root/oracle/product/10.2.0/oradata/orcl/redo01.log
                 4                 ONLINE    /thirddisk/root/redolog/ORCL/onlinelog/o1_mf_4_54yln8n2_.log
                 4                 ONLINE    /fourthdisk/root/redolog/ORCL/onlinelog/o1_mf_4_54ylnfqx_.log
                 1 INVALID ONLINE    /thirddisk/root/redolog/ORCL/onlinelog/redo01a.log
                 2 INVALID ONLINE    /fourthdisk/root/redolog/ORCL/onlinelog/redo02a.log
                 3 INVALID ONLINE    /fourthdisk/root/redolog/ORCL/onlinelog/redo03a.log

8 rows selected.

上面就是 在3组添加了一个日志文件 redo03a.log 到第四块硬盘上
达到了上面的要求 multiplex
下面使用OMF来创建日志组  就很方便了

SQL> show parameter db_create_online_log_dest
NAME                                                                 TYPE                VALUE
------------------------------------ ----------- ------------------------------
db_create_online_log_dest_1                    string            /thirddisk/root/redolog
db_create_online_log_dest_2                    string            /fourthdisk/root/redolog
db_create_online_log_dest_3                    string
db_create_online_log_dest_4                    string
db_create_online_log_dest_5                    string

我设置了两个地方 当创建的时候就在这两个地方分别创建一个日志组成员
SQL> alter database add logfile group 5;
Database altered.

看一下物理文件

SQL> !ls /fourthdisk/root/redolog/ORCL/onlinelog
o1_mf_4_54ylnfqx_.log    o1_mf_5_54yo3bvx_.log    redo02a.log                        redo03a.log

SQL> !ls    /thirddisk/root/redolog/ORCL/onlinelog/
o1_mf_4_54yln8n2_.log    o1_mf_5_54yo36xd_.log    redo01a.log

分别多了一个文件 01_mf_5...log文件
下面尝试删除日志组
SQL> alter database drop logfile group 5;
Database altered.

SQL> !ls /fourthdisk/root/redolog/ORCL/onlinelog
o1_mf_4_54ylnfqx_.log    redo02a.log                        redo03a.log

SQL> !ls    /thirddisk/root/redolog/ORCL/onlinelog/
o1_mf_4_54yln8n2_.log    redo01a.log

OK 自动那个将OS文件删除了
 
  下面说说什么时候 不能删除日志文件 或者 文件组
          第一: 当当前日志在使用
          第二:运行在归档模式下 没有归档 的 (可以通过archive log current进行归档)
          第三:该日日志组只有一个成员
          第四:当只有两个日志组 不能删除日志组
 
 
OMF 管理文件 给数据库管理员带来了极大的方面 ,他对数据库的主要文件 进行集中管理

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

请登录后发表评论 登录
全部评论

注册时间:2009-06-26

  • 博文量
    167
  • 访问量
    292779