对大表数据库的维护备份

 

一个很好用的数据库维护备份方式,表分区。

这个也是前段时间对数据库做设计的时候遇到的问题,为了解决数据库中有些表增长快,后期对其维护、备份麻烦的问题,用到了表分区。

 

铁路项目中的确报、安全门、轨道衡、超偏载等文件每天的入库,每天好几十条,数据库入库倒是没有问题,但是数据量越来越大,造成了查询速度非常慢。随着时间的推移,对数据库历史数据的维护(备份,删除),也是一个问题。因为这些增长(变化)比较大的表占用较大的表空间。为以后维护方便,就用到了表分区。

 

具体步骤:

1.建立各个表空间。

--=========================================
--以DBA用户登录
--=========================================
--创建默认表分区,此分区为存放数据不怎么变化的表。
Create Tablespace TS_DEFAULT
Datafile 'E:/oracle/product/10.1.0/oradata/railway/TS_DEFAULT.DAT'
Size 10M Autoextend On Next 5M Maxsize Unlimited;

--建立2008年一季度的表空间TS_2008_1 size=30M 每次自动增长1280K 最大不限(因为考虑到每季度的数据量不定)
Create Tablespace TS_2008_1
Datafile 'E:/oracle/product/10.1.0/oradata/railway/2008_1.DAT'
Size 30M Autoextend On Next 30M Maxsize Unlimited;

2.建立分区表。

Create Table ***(
CREATETIME DATE not Null,
...

...)
PARTITION BY RANGE (CREATETIME)
(
Partition part_2008_1 VALUES LESS THAN (to_date('2008-04-01','yyyy-mm-dd')) TABLESPACE TS_2008_1

);

--此分区表用于存放2008年第一季度的数据

3.分区表的扩充。

--到达一定的条件后,添加表分区到指定的表空间上(之前应先建立表空间)
ALTER TABLE TEST ADD PARTITION part_2008_2 VALUES LESS Than (to_date('2008-04-01','yyyy-mm-dd')) TABLESPACE TS_2008_2;

--此分区表用于存放2008年第二季度的数据

4.删除不必要的分区。

--删除不用的表分区
ALTER TABLE TEST DROP Partition part_2008_1;

5.查看分区信息。

Select * FROM user_extents;

--命令行导出分区数据,备份数据
-- exp test/test@orcl file=part_2008_1.dmp tables=(test:part_2008_1)

 

其它:

--查看当前用户默认表空间
SELECT DEFAULT_TABLESPACE FROM USER_USERS; 

 

如有任何问题,请多多指教。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值