一、 问题影响 如果数据库归档不设置归档删除策略或归档暴增导致归档空间满,数据库将无法提供服 务,甚至无法关闭数据库。 因为关闭数据库会出发写日志,此时空间满了是不能写入日 志进而导致数据库无法启动。 业务系统将无法使用。 二、 归档存放方式, 有如下几种情况: 1、 本地文件系统存放 2、 本地文件系统且存放在快速闪回区内 3、 ASM 存储中存放 4、 ASM 存储中且放在快速闪回区内 三、 处理办法 1、 如果归档日志存放在文件系统或 ASM 存储内, 不在快速闪回区中;则可以根据业务 需求将该文件系统目录中或 ASM 存储内的归档文件迁移到其他空间, 也可以将归 档日志通过 RMAN 的方式备份出来从而释放归档存放的空间。 2、 如果放在文件系统或 ASM 存储中的闪回区内, 人工迁移文件后,数据库是无法识别 空间释放的; 因为快速闪回区是 Oracle 数据库自己管理, 需要让数据库识别到; 针 对此种现象,见标题四 四、 快速闪回区归档撑满解决方法 如果快速闪回区内归档满后,数据库将无法操作,甚至无法关闭数据库;此时, 解决方 法是,将数据库中的一个实例通过 shutdown abort 方式关闭;( shutdown abort 方式将 不检查数据文件一致性且不将内存中的数据写入到数据文件中,跟强制断电效果一样, 所以该操作慎重) ( 如果存在 OGG 需要提前关闭与该主机关联的 OGG 进程,方式改 OGG 进程挂起,并预防归档丢失) 数据库关闭后,通过 startup mount 方式,将数据库启动到 mount 状态;此时,可以通 过: select * from v$recovery_file_dest;检测快速闪回区的使用情况( 主要是产看当前快 速闪回区的容量大小); 如果 ASM 存储或文件系统没有容量可以扩充,则先给 ASM 或文件系统扩充空间;然后, 通过 alter system set db_recovery_file_dest_size = 100G( 将之前大小扩种几十 G, 此处仅 供参考)。 扩充后, 数据库将恢复正常使用。 通过 rman target /方式,登录到 RMAN 中,执行 crosscheck archivelog all; 检测数据库归 档的有效性; 通过在 RMAN 中,执行 delete noprompt archivelog until time “sysdate -3”;( 该命令表示 删除归档日志,保留到 3 天前,具体保留几天,根据业务清空, 该天数仅供参考) (编辑:李大同)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|