在Oracle数据库上执行数据归档的最佳方法是什么?

时间:2009-11-11 20:44:09

标签: oracle archiving

我想找出归档不再需要的数据的最佳方法,以便提高应用程序性能并节省磁盘空间。根据您的经验,实现此目的的最佳方法是什么,我可以使用哪种工具?为此目的开发一个特定的内部应用程序会更好吗?

3 个答案:

答案 0 :(得分:2)

管理存档的一种方法:

  1. 在日期范围内对表格进行分区,例如每月分区
  2. 由于分区已过时,例如36个月后,这些分区现在可以移动到您的数据仓库,这可能是另一个仅包含文本文件的数据库,具体取决于您的访问需求。
  3. 移动后,可以从主数据库中删除过时的分区,因此始终只保留(例如)36个月的当前数据。
  4. 所有这些都可以使用混合的SQL / Shell脚本自动完成。

答案 1 :(得分:1)

在ORACLE数据库中存档旧数据的最佳方法是:

  1. 根据日期或大小定义存档和保留策略。
  2. 根据已定义的策略将可存档数据导出到外部表(表空间)。
  3. 压缩外部表并将其存储在更便宜的存储介质中。
  4. 使用SQL DELETE从活动数据库中删除已归档数据。
  5. 然后清理空间执行以下命令: alter table T_XYZ启用行移动; alter table T_XYZ缩小空间;
  6. 如果您仍想将一些磁盘空间释放回操作系统(因为Oracle现在已经保留了之前使用的总空间),那么您可能需要调整数据文件本身的大小: SQL> alter database datafile' / home / oracle / database /../ XYZ.dbf'调整大小1米;
  7. 有关详细信息,请参阅: http://stage10.oaug.org/file/sroaug080229081203621527.pdf

答案 2 :(得分:-2)

我会将数据导出到以逗号分隔的文件中,以便可以将其导出到几乎任何数据库中。因此,如果您更改Oracle的版本或在几年之后转到其他内容,您可以毫不费力地恢复它。

使用SQL * Plus的假脱机文件功能执行此操作:http://cisnet.baruch.cuny.edu/holowczak/oracle/sqlplus/#savingoutput