Oracle GoldenGate同步服务归档空间维护

ORA-00257: archiver error. Connect internal only, until freed

查看归档日志序列

SQL> archive log list;
Automatic archival               Enabled   #自动归档
Archive destination              USE_DB_RECOVERY_FILE_DEST  #归档目录为指定的闪回恢复区
Oldest online log sequence        174     #最旧的在线日志序列
Next log sequence to archive      176     #下一个日志序列归档
Current log sequence              176     #当前日志序列

归档日志默认是保存在oracle系统的闪回恢复区(Flash recovery area)

查看闪回恢复区参数

SQL> show parameter db_recovery_file_dest;

NAME                                     TYPE          VALUE
-----------------------                ---------    ----------------------------
db_recovery_file_dest                   string        /data/oracle/flash_recovery_area
db_recovery_file_dest_size             big integer     3G

检查flash recovery area的使用情况

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;

FILE_TYPE         PERCENT_SPACE_USED     PERCENT_SPACE_RECLAIMABLE     NUMBER_OF_FILES
---------         ------------------     -------------------------     --------------
CONTROL FILE            0                         0                          0
REDO LOG                0                         0                          0
ARCHIVED LOG          99.98                       0                          23
BACKUP PIECE            0                         0                          0
IMAGE COPY              0                         0                          0
FLASHBACK LOG           0                         0                          0
FOREIGN ARCHIVED LOG    0                         0                          0

可以看到ARCHIVE LOG日志已占用99.98%的闪存空间

方案一:删除过期归档日志,增大闪回恢复区空间大小

若有需要先行将归档日志备份再删除

一、删除归档日志文件

找到归档日志存放目录:/data/oracle/flash_recovery_area/ORCL/archivelog

删除不需要的归档日志文件

直接删除归档日志后,必须用RMAN维护控制文件

二、使用RMAN维护控制文件

[[email protected] ~]$ rman target sys/pass

RMAN> crosscheck backup;                 #核对所有备份集
RMAN> run{
delete noprompt obsolete;
crosscheck archivelog all;
delete noprompt expired archivelog all;
crosscheck backup;
delete noprompt expired backup;
}
RMAN> exit;

run{}中的命令被视为一个作业,一个失败整个命令停止执行

delete obsolete;                    #删除超出保存策略的备份

crosscheck archivelog all;          #检查无效的归档日志(失效的标记为expired)

delete expired archivelog all;      #删除expired的归档日志

delete expired backup;              #删除所有失效的备份集

delete expired   删除的是那些本来RMAN以为存在但是实际上在磁盘或者磁带上已经被删除了的信息,删除的只是RMAN资料库中的记录;

delete obsolete  删除旧于备份保留策略定义的备份数据同时也更新RMAN资料库以及控制文件。

noprompt         指无需确认

三、增大闪回恢复区空间大小

SQL> alter system set  db_recovery_file_dest_size=8G;

查看闪回恢复区参数

SQL> show parameter db_recovery_file_dest;

四、重新检查flash recovery area的使用情况

SQL> select * from V$FLASH_RECOVERY_AREA_USAGE;
FILE_TYPE          PERCENT_SPACE_USED      PERCENT_SPACE_RECLAIMABLE     NUMBER_OF_FILES
---------          ------------------      -------------------------     --------------
CONTROL FILE              0                         0                          0
REDO LOG                  0                         0                          0
ARCHIVED LOG             4.5                        0                          3
BACKUP PIECE              0                         0                          0
IMAGE COPY                0                         0                          0
FLASHBACK LOG             0                         0                          0
FOREIGN ARCHIVED LOG      0                         0                          0

五、添加定时任务,清理归档日志存储空间

1、新建脚本文件存放文件夹

[[email protected] ~]# mkdir -p /backup/oracledata

2、编辑脚本内容

[[email protected] ~]# vim /backup/oracledata/oracle_archivelog_clean.sh
#脚本内容 (/backup/oracledata/oracle_archivelog_clean.sh)删除三天前的所有归档文件
find /data/oracle/flash_recovery_area/ORCL/archivelog/ -mtime +3 -name "201*" -exec rm -rf {} \;

3、设置脚本文件权限

[[email protected] ~]# chmod 777 /backup/oracledata/oracle_archivelog_clean.sh

4、添加计划任务(系统调度任务和用户调度任务添加其一)

系统任务调度:系统周期性所要执行的工作,比如写缓存数据到硬盘、日志清理等。在/etc目录下crontab文件,这个就是系统任务调度的配置文件。

用户任务调度:用户定期要执行的工作,比如用户数据备份、定时邮件提醒等。用户可以使用crontab工具来定制自己的计划任务。所有用户定义的crontab文件都被保存在 /var/spool/cron目录中。其文件名与用户名一致。

1)、系统任务调度

编辑系统任务计划

[[email protected] ~]# vim /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
#SHELL  变量指定了系统要使用哪个shell,这里是bash
#PATH   变量指定了系统执行命令的路径
#MAILTO 变量指定了crond的任务执行信息将通过电子邮件发送给root用户,如果MAILTO变量的值为空,则表示不发送任务执行信息给用户

# For details see man 4 crontabs

# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed

#(*):代表所有 (,):多个值间隔 (-):范围连接符
#(/)指定时间间隔频率,例如(*/10)如果在minute字段,表示每十分钟执行一次
# 以管理员身份每天凌晨05:00,执行相应目录下的脚本任务
0 5 * * * root /backup/oracledata/oracle_archivelog_clean.sh

2)、用户任务调度

编辑用户任务计划

[[email protected] ~]# crontab -e
#以管理员身份每天凌晨05:00,执行相应目录下的脚本
0 5 * * * /backup/oracledata/oracle_archivelog_clean.sh

无需再添加执行用户,否则任务计划无法执行,将有以下报错

[[email protected] ~]# cat /var/spool/mail/root

From [email protected]  Tue Aug  7 05:00:01 2018
Return-Path: <root@dbsrc.localdomain>
X-Original-To: root
Delivered-To: [email protected]
Received: by dbsrc.localdomain (Postfix, from userid 0)
        id 9662C2827; Tue,  7 Aug 2018 05:00:01 +0800 (CST)
From: "(Cron Daemon)" <root@dbsrc.localdomain>
To: [email protected]
Subject: Cron <[email protected]> root /backup/oracledata/oracle_archivelog_clean.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=6910>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20180806210001[email protected]>
Date: Tue,  7 Aug 2018 05:00:01 +0800 (CST)

/bin/sh: root: command not found

查看用户计划

[[email protected] ~]# crontab -l
0 5 * * * /backup/oracledata/oracle_archivelog_clean.sh

5、查看cron服务是否在设定时间调用

[[email protected] ~]# cat /var/log/cron

Aug  7 05:00:01 dbsrc CROND[12655]: (root) CMD (root /backup/oracledata/oracle_archivelog_clean.sh)
Aug  7 05:01:01 dbsrc CROND[12795]: (root) CMD (run-parts /etc/cron.hourly)
Aug  7 05:01:01 dbsrc run-parts(/etc/cron.hourly)[12795]: starting 0anacron
Aug  7 05:01:01 dbsrc run-parts(/etc/cron.hourly)[12804]: finished 0anacron

6、查看shell脚本是否报错(cat /var/spool/mail/用户名)

[[email protected] ~]# cat /var/spool/mail/root

From [email protected]  Tue Aug  7 05:00:01 2018
Return-Path: <root@dbsrc.localdomain>
X-Original-To: root
Delivered-To: [email protected]
Received: by dbsrc.localdomain (Postfix, from userid 0)
        id 9662C2827; Tue,  7 Aug 2018 05:00:01 +0800 (CST)
From: "(Cron Daemon)" <root@dbsrc.localdomain>
To: [email protected]
Subject: Cron <root@dbsrc> /backup/oracledata/oracle_archivelog_clean.sh
Content-Type: text/plain; charset=UTF-8
Auto-Submitted: auto-generated
Precedence: bulk
X-Cron-Env: <XDG_SESSION_ID=6910>
X-Cron-Env: <XDG_RUNTIME_DIR=/run/user/0>
X-Cron-Env: <LANG=en_US.UTF-8>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/root>
X-Cron-Env: <PATH=/usr/bin:/bin>
X-Cron-Env: <LOGNAME=root>
X-Cron-Env: <USER=root>
Message-Id: <20180806210001[email protected]>
Date: Tue,  7 Aug 2018 05:00:01 +0800 (CST)

find: ‘/data/oracle/flash_recovery_area/ORCL/archivelog/2018_08_04’: No such file or directory

7、重启crond服务

[[email protected] ~]# service crond restart
或者
[[email protected] ~]# /etc/init.d/crond restar

注释

service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务
service crond reload //重新载入配置
service crond status //查看服务状态

crontab [-u user] [ -e | -l | -r ]
-e:编辑某个用户的crontab文件内容。如果不指定用户,则表示编辑当前用户的crontab文件。
-l:显示某个用户的crontab文件内容,如果不指定用户,则表示显示当前用户的crontab文件内容。
-r:从/var/spool/cron目录中删除某个用户的crontab文件,如果不指定用户,则默认删除当前用户的crontab文件。
-i:在删除用户的crontab文件时给确认提示。

#提示You have new mail in /var/spool/mail/root解决

[[email protected] ~]# echo "unset MAILCHECK">> /etc/profile;
[[email protected] ~]# source /etc/profile

方案二:修改归档目录位置

一、创建新的归档文件存放目录

[[email protected] ~]# mkdir /data/oracle/archive_log

二、设置目录拥有者和权限

[[email protected] ~]# chown -R oracle:oinstall /data/oracle/archive_log
[[email protected] ~]# chmod –R 775 /data/oracle/archive_log

三、禁止往闪回恢复区放归档日志

SQL> alter system set db_recovery_file_dest=‘‘;

四、设置归档日志存放目录

SQL> alter system set log_archive_dest=‘/data/oracle/archive_log‘;

五、查看归档日志序列

SQL> archive log list;
Automatic archival                Enabled
Archive destination               /data/oracle/archive_log
Oldest online log sequence        174
Next log sequence to archive      176
Current log sequence              176

原文地址:https://www.cnblogs.com/VoiceOfDreams/p/9440942.html

时间: 2024-11-02 08:19:50

Oracle GoldenGate同步服务归档空间维护的相关文章

Oracle GoldenGate 同步数据至Hbase

该方法没试过,先记下再说 1.软件版本说明: Goldengate 12c 12.2.0.1 for Oracle(源端) Goldengate 12c 12.3.0.1 for Bigdata (目标端) Hadoop 2.6.4(安装参考我的博客 https://blog.csdn.net/Return42/article/details/79786612) Oracle 12c(安装参考我的博客 https://blog.csdn.net/return42/article/details/

利用GoldenGate实现Oracle实时同步方案

利用GoldenGate实现Oracle实时同步方案 简介: OracleGolden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.OracleGolden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统.在线报表.实时数据仓库供应.交易跟踪.数据同步.集中/分发.容灾.数据库升级和移

Oracle GoldenGate (以下简称ogg)在异种os上同种db之间的数据同步。

ogg能实现的功能: 可以细化到单表同步,符合特定where条件的rows同步,指定column的同步. ogg 的竞争对手:ibm cdc:dell shareplex:dsg:dds等等 环境描述: 源头:windows 2003x64bit, oracle db 11.2.0.3 x64bit 目的端:suse linux ,oracle db 11.2.0.3 预先准备: 1.Microsoft Visual C ++ 2005 SP1 Redistributable Package 注

oracle 归档空间满的解决办法

问题现象: 通过命令提示符登陆数据库,一般提示"ora-03113:通信通道的文件结尾"错误,查看trace日志,可以看到详细信息.部分摘录如下(橙色部分给出了建议方案): Errors in file g:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_1368.trc: ORA-19815: 警告: db_recovery_file_dest_size 字节 (共 4102029312 字节) 已使用 100.00%,

Oracle Goldengate数据库复制与容灾项目实施与维护_OGG实战培训

Oracle Goldengate数据库复制与容灾项目实施与维护_OGG实战培训 课程介绍 Oracle视频教程,风哥本套oracle教程培训学习oracle数据库GoldenGate数据复制与容灾项目实施,涉及goldengate版本:OGG 11.2.OGG 12:GoldenGate概念讲解,GoldenGate数据复制与容灾项目实施3个(文件系统1+1,ASM 1+1,RAC*2+FS*1),常用的初始化方式,Goldengate基础功能操作与测试,GoldenGate日常维护与管理,G

[转]Oracle GoldenGate安装配置

ref:http://blog.sina.com.cn/s/blog_5d29418d0101cvyx.html 1 简介 Oracle Golden Gate软件是一种基于日志的结构化数据复制备份软件,它通过解析源数据库在线日志或归档日志获得数据的增量变化,再将这些变化应用到目标数据库,从而实现源数据库与目标数据库同步.Oracle Golden Gate可以在异构的IT基础结构(包括几乎所有常用操作系统平台和数据库平台)之间实现大量数据亚秒一级的实时复制,从而在可以在应急系统.在线报表.实时

Oracle GoldenGate 二、配置和使用

配置和使用GoldenGate的步骤 1 在源端和目标端配置数据库支持GoldenGate 2 在源端和目标端创建和配置GoldenGate实例 3 在源端创建和配置主抽取进程(Primary Extract) 4 在源端创建和配置Data Pump进程(Secondly Extract) 5 在目标端创建和配置Replicat进程 1 配置数据库支持GoldenGate 1.1 OGG用户和权限分配 GoldenGate需要从在线日子或归档日志抽取捕获系统的变更数据信息,这些信息可能来源于业务

六种 主流ETL 工具的比较(DataPipeline,Kettle,Talend,Informatica,Datax ,Oracle Goldengate)

六种 主流ETL 工具的比较(DataPipeline,Kettle,Talend,Informatica,Datax ,Oracle Goldengate) 比较维度\产品 DataPipeline kettle Oracle Goldengate informatica talend DataX 设计及架构 适用场景 主要用于各类数据融合.数据交换场景,专为超大数据量.高度复杂的数据链路设计的灵活.可扩展的数据交换平台 面向数据仓库建模传统ETL工具 主要用于数据备份.容灾 面向数据仓库建模

Oracle GoldenGate 皇马第一弹之:要掌握一个工具,必先掌握其原理

         掌握和使用一个工具的最好方法,就是先掌握其原理,了解其架构,然后才能用起来得心应手,否则用起来,都不知道这一步为什么这样做,不能够快速定位问题,更别提快速解决问题. OGG架构及原理:   Oracle GoldenGate 的原理,是相当简单的,就是通过抽取源端的redo log或者archive log,然后通过TCP/IP协议,传送到目标端,然后解析并应用到目标库上,从而实现源端到目标端的复制. 其架构图如下,下面会详细解释其中的进程 要想深入了解OGG,其官方文档是个不