Oracle OMF管理 数据文件,redo文件
2009-07-06 16:16:57
版权声明:原创作品,如需转载,请与作者联系。否则将追究法律责任。 |
测试环境:Solaris10+Oracle 10g (个人学习笔记)
OMF管理文件 和 手动管理文件比较
手动管理文件 需要手动指定文件存储位置,包括名字,路径,而ORACLE-MANAGE-FILE 这一切就交给数据库系统来完成,OMF管理包括控制还包括了OS文件:如果你手动管理 当删除一个数据文件 的时候只是讲控制文件里面的信息更改了,但是真正的OS文件仍然存在
OMF管理 数据文件
使用OMF 管理 数据文件需要指定 一个参数 :db_create_file_dest
默认的是100M,采用的是autoextend 自动扩展
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 SP2-0042: unknown command "ls" - rest of line ignored. 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 管理文件 给数据库管理员带来了极大的方面 ,他对数据库的主要文件 进行集中管理
附加:
创建表空间: 注意: 如果使用了local管理方式 就不能指定默认的storage存储参数
SQL> create tablespace t1 extent management local autoallocate 2 default storage(initial 100K 3 next 100K 4 pctincrease 50 5 minextents 1 6 maxextents 500 7 ) 8 / create tablespace t1 extent management local autoallocate * ERROR at line 1: ORA-25143: default storage clause is not compatible with allocation policy 报告了错误,使用autoallocate改成 uniform size 大小 指定福鼎分区大小 一样的效果
只有 采用字典管理才可以 指定存储参数
SQL> create tablespace t1 2 extent management dictionary 3 default storage( 4 initial 100K 5 next 100K 6 pctincrease 50minextents 1 7 maxextents 500 8 ) 9 / Tablespace created. 本文出自 “谦受益” 博客,转载请与作者联系! 本文出自 51CTO.COM技术博客 |


ganludong 
博客统计信息
热门文章
最新评论
友情链接