`

讲解Oracle数据库逐渐增大时的归档处理

阅读更多
讲解Oracle数据库逐渐增大时的归档处理


在数据库日渐庞大时应该如何进行归档?以下是一些解决的思路:

  1.新建一个表空间存放各表的历史数据。

  1.1写一个存储过程搬数据,数据搬迁到历史表后,在基表中将搬迁的数据删除。

  2.定期将历史数据exp到磁带中去做永久保存。

  3.历史数据exp之后,可以清空各历史数据表。这样,表空间的大小实际上是很容易伸缩及控制的。

  在这个过程当中,我们可以看到基本的数据由于可以定期清理到历史数据表,继而再清理到磁带。因此,数据库不会越来越大。方便备份及减少查询时间。

  具体的实现过程如下:

  1.创建临时表:

  CREATE GLOBAL TEMPORARY TABLE SCOTT.ARCHIVE_ROWS
  (
   CROWID VARCHAR2(20 BYTE),
   PRIMARYKEY VARCHAR2(15 BYTE)
  )
  ON COMMIT PRESERVE ROWS
  /

  2.创建归档表:

  sql>create table emp_archive as select * from emp_b;

  3.创建归档记录表:

  CREATE TABLE SCOTT.ARCHIVE_LOG
  (
   TABLENAME VARCHAR2(50 BYTE),
   RECORDCOUNT NUMBER,
   UPDATEDATE DATE
  )
  LOGGING
  NOCOMPRESS
  NOCACHE
  NOPARALLEL
  MONITORING
  /

  4. procedure:

  CREATE OR REPLACE PROCEDURE archive_emp
  (maxarchiverow number) IS /* 定义归档的记录数*/
  v_crowid archive_rows.crowid%type; /* 存放基表的rowid*/
  intLoop number; /* 记数器*/
  v_primarykey archive_rows.PRIMARYKEY%type;
  CURSOR C_ARCH_EMP IS
  SELECT * FROM ARCHIVE_ROWS; /* 创建游标*/
  BEGIN
  DELETE FROM ARCHIVE_ROWS; /*先清空临时表*/
  COMMIT;
  INSERT INTO ARCHIVE_ROWS
  SELECT ROWID,'' FROM EMP_B WHERE ROWNUM < MAXARCHIVEROW;
  COMMIT; /*将基表中指定行数的rowid插入临时表*/
  INTLOOP:=0;
  OPEN C_ARCH_EMP;
  LOOP FETCH C_ARCH_EMP INTO V_CROWID,V_PRIMARYKEY;
  INTLOOP:=INTLOOP+1;
  EXIT WHEN C_ARCH_EMP%NOTFOUND;
  INSERT INTO EMP_ARCHIVE SELECT * FROM EMP_B WHERE ROWID=V_CROWID;
  /*根据rowid,将数值插入到归档表中*/
  COMMIT;
  DELETE FROM EMP_B WHERE ROWID=V_CROWID; /*将基表已归档数据删除*/
  COMMIT;
  IF MOD(INTLOOP,200)=0 /*以200行为界记录归档情况*/
  THEN
  INSERT INTO ARCHIVE_LOG VALUES('EMP_B',INTLOOP,SYSDATE);
  COMMIT;
  END IF;
  END LOOP;
  END ARCHIVE_EMP;
  /

分享到:
评论

相关推荐

    如何查看、启动或关闭oracle数据库的归档模式

    在Oracle数据库中,归档模式(Archivelog Mode)是一种重要的数据保护机制,它允许数据库在发生故障时进行完整的恢复。当数据库处于归档模式时,系统会自动将已完成的日志文件归档到指定的位置,以便于数据恢复。与...

    Linux Oracle数据库设置自动归档

    归档日志(Archived Logs)是Oracle数据库中的一个重要组成部分,它们记录了事务处理的历史,用于在发生故障时进行数据库恢复。在非归档模式下,一旦发生数据丢失,可能无法完全恢复;而在归档模式下,可以利用归档...

    ORACLE数据库调整归档日志空间大小[收集].pdf

    ORACLE数据库的归档日志是一种重要的灾难恢复机制,它可以帮助数据库管理员在发生灾难时恢复数据库。然而,如果不正确地配置和维护归档日志,可能会导致数据库无法启动或连接。本文将介绍如何调整ORACLE数据库的归档...

    Veeam 备份恢复oracle数据库详细配置文档

    Veeam 备份恢复 Oracle 数据库详细配置文档 本文档旨在详细介绍如何使用 Veeam 备份恢复 Oracle 数据库的配置过程。该文档将指导读者从环境准备到推送 Oracle RMAN Plugin,再到创建备份作业和运行备份作业,最后...

    Oracle数据库详细讲解

    标题与描述均指向了“Oracle数据库详细讲解”,这意味着文章将深度探讨Oracle数据库的相关知识,包括其功能、操作、管理及应用技巧。Oracle数据库是全球领先的数据库管理系统之一,由Oracle公司开发,广泛应用于企业...

    Oracle数据库归档模式与归档日志管理实践

    内容概要:本文详细介绍了 Oracle 数据库的归档日志及其操作方法。归档日志用于记录数据库的所有修改操作,在数据库运行于归档模式(ARCHIVELOG) 下,每个联机重做日志会在覆盖之前创建一份副本来保证数据的安全性和...

    Oracle数据库日常运维及应急故障处理手册

    本文档即为Oracle数据库的日常运维及应急故障处理手册,主要内容涵盖了日常运维中的关键操作及故障应对策略。 首先,关于CPU使用率高的问题,通常可以通过操作系统提供的工具(如top、topas、glance等)来查看系统...

    论ORACLE数据库归档模式与备份恢复的关系.pdf

    2. 联机重做日志:在事务处理过程中实时记录数据库操作的日志,当数据库未启用归档模式时,一旦日志文件写满,可以直接覆盖使用;而在归档模式下,需等文件归档后才能再次使用。 3. 归档重做日志:当联机重做日志...

    Oracle数据库后台操作的脱敏处理.pdf

    Oracle数据库后台操作的脱敏处理.pdf

    ORACLE数据库体系结构讲解

    用户进程是客户端应用程序与数据库的交互桥梁,而Oracle服务器进程(如专用服务器进程和多线程服务器进程)则处理数据库请求。后台进程,如检查点进程(CKPT)、写日志进程(DBWn)、归档进程(ARCn)和恢复进程...

    查看oracle数据库是否归档和修改归档模式

    ### Oracle数据库归档模式详解与配置 #### 一、Oracle归档模式概述 在Oracle数据库管理中,归档模式是一项非常重要的功能,它对于保证数据的安全性和系统的稳定性至关重要。归档模式允许数据库管理员将已完成的...

    Oracle数据库精讲之数据库管理_ Oracle数据库管理视频

    第六讲:Oracle数据库归档日志文件管理 第七讲:Oracle数据库控制文件管理 第八讲:Oracle数据库参数文件管理 第九讲:oracle数据库启动和关闭管理 第十讲:oracle undo sapce管理 第十一讲:oracle tablespace管理 ...

    打开Oracle数据库的归档模式

    在Oracle数据库管理中,归档模式(Archival Logging Mode)是一种重要的日志管理方式,它允许数据库在发生故障时进行更完整的恢复。归档模式下,数据库系统不仅记录在联机重做日志(Online Redo Logs)中的更改,还会将...

    Oracle数据库的启动和归档

    listener.ora文件,用于Oracle数据库的启动和归档

    关闭Oracle数据库的归档模式

    在Oracle数据库管理中,归档模式(Archivelog Mode)是一种重要的数据保护机制,它允许系统在发生故障时通过归档日志进行恢复,从而避免数据丢失。然而,在某些特定情况下,如执行数据库备份、迁移等操作时,可能...

    oracle数据库编程pdf文档教案

    包括使用RMAN(恢复管理器)进行备份,理解归档日志模式,以及如何在数据丢失时执行恢复操作。 总的来说,这个Oracle数据库编程教案全面覆盖了数据库的使用、编程和管理,无论你是初学者还是有经验的开发者,都能...

    labview 调用oracle数据库

    本篇将详细讲解如何利用LabVIEW调用Oracle数据库,包括ODBC连接、创建表、写入数据以及查询与更新操作。 首先,要实现LabVIEW与Oracle数据库的连接,我们需要借助ODBC(Open Database Connectivity)驱动程序。ODBC...

    Oracle数据库体系结构( 中文详细版)

    8. **数据块**(Data Blocks):数据块是Oracle数据库的最小I/O单位,它的大小在创建数据库时指定,通常为8KB或更大。 9. **实例**(Instance):实例是Oracle数据库在内存中的表示,包括系统全局区(SGA)和程序...

    Oracle数据库大作业

    【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...

Global site tag (gtag.js) - Google Analytics