问在数据库日渐庞大时应该如何进行归档?
答以下是一些解决的思路
◆新建一个表空间存放各表的历史数据
写一个存储过程搬数据数据搬迁到历史表后在基表中将搬迁的数据删除
◆定期将历史数据exp到磁带中去做永久保存
◆历史数据exp之后可以清空各历史数据表这样表空间的大小实际上是很容易伸缩及控制的
在这个过程当中我们可以看到基本的数据由于可以定期清理到历史数据表继而再清理到磁带因此数据库不会越来越大方便备份及减少查询时间
具体的实现过程如下
创建临时表
CREATE GLOBAL TEMPORARY TABLE SCOTTARCHIVE_ROWS
(
CROWID VARCHAR( BYTE)
PRIMARYKEY VARCHAR( BYTE)
)
ON COMMIT PRESERVE ROWS
/
创建归档表
sql>create table emp_archive as select * from emp_b;
创建归档记录表
CREATE TABLE SCOTTARCHIVE_LOG
(
TABLENAME VARCHAR( BYTE)
RECORDCOUNT NUMBER
UPDATEDATE DATE
)
LOGGING
NOCOMPRESS
NOCACHE
NOPARALLEL
MONITORING
/
[] []