linux 建oracle分区表,Oracle表空间创建删除,omf,分区表创建

现在有个每天至少300W数据的表(mt),打算以每月分区的方式建成分区表,分区时,《让Oracle跑的更快2》P21说:

[sql]

SQL>altersystemsetdb_create_file_dest='F:\oradata\orclyxkj\tbs_test_t_mt_2012';

[sql]

SQL>createtablespace ts_mt_2012_1 datafilesize50M autoextendon;

第一句的意思是设定一个数据文件存放路径,让ORACLE自动在该路径下创建文件,并使用oracle自己的方式为数据文件命名。确实,我执行上面两句话后,成这样了:

b309d3e5ece88b4cedcecc130b30ef75.gif

可以发现,oracle自己建了ORCLYXKJ\DATAFILE这两个文件夹,并且建成的.dbf数据文件也不是我写的ts_mt_2012_1.dbf,但是oracle自己建的那个文件大小确实是我刚指定的50M,说明是表空间的数据文件。为什么?因为:

alter system set db_create_file_dest='F:\oradata\orclyxkj\tbs_test_t_mt_2012';

这句话的意思,就是开启的oracle的OMF,即oracle自动管理文件,所以文件的命名什么的都是oracle自动完成的。一般,单数据库实例,基本都不开启OMF。

开启OMF,还有另外一种方法,就是创建数据库时:

8b6d2e286501566678cb6f793376d207.gif

建库时,选择第 3 项了,这是omf 管理方式,oracle自动管理数据文件名,所以才不是你命名的名称。正常 选择 第 2 项。

然后,我看到那个文件以及目录,不是我希望看到的有规律的命名,我就不想以这种方式来创建表空间了,所以决定把刚建的那个表空间删掉(有语句直接删除表空间和数据文件),但是我这时没有用语句删,而是直接在PL/SQL中,找到Tablespace文件夹下面的ts_mt_2012_1,然后反键,删掉。

删完后,到'F:\oradata\orclyxkj\tbs_test_t_mt_2012'目录发现之前oracle自己建的那个文件还在,我又不敢手动删,怕删完之后和数据文件不一致导致数据打不开。其实这个时候已经不存在这个问题了,因为表空间已经删掉了。除非表空间没有删掉而你把数据文件没有offline或者删掉了,才会导致数据库起不来。

问题已经描述完毕,结论:

1.创建表空间到指定目录:

[sql]

SQL>createtablespace wfcrmdb datafile'e:/tools/oracle/oradata/wfcrm/wfcrmdb.dbf'size100m autoextendonnext50m maxsize unlimited;--一般关掉表空间自动扩展,因为自动扩展可能会导致无预兆的数据库宕机。解决方案:看下面的“分区表”

插补几句:

--新创建表空间时,数据文件的扩展名是ora,可是系统表空间的数据文件却是dbf的,还有一些已有的表空间的数据文件是dat文件,请问有什么区别吗?0b1331709591d260c1c78e86d0c51c18.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值