archive log list; Automatic archival Enabled #自動(dòng)歸檔 Archi..."/>
溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Oracle GoldenGate同步服務(wù)歸檔空間維護(hù)【推薦】

發(fā)布時(shí)間:2020-09-06 12:45:54 來(lái)源:腳本之家 閱讀:195 作者:VoiceOfDreams 欄目:數(shù)據(jù)庫(kù)

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

查看歸檔日志序列

SQL> archive log list;

Automatic archival    Enabled #自動(dòng)歸檔
Archive destination    USE_DB_RECOVERY_FILE_DEST #歸檔目錄為指定的閃回恢復(fù)區(qū)
Oldest online log sequence  174  #最舊的在線日志序列
Next log sequence to archive  176  #下一個(gè)日志序列歸檔
Current log sequence    176  #當(dāng)前日志序列

歸檔日志默認(rèn)是保存在oracle系統(tǒng)的閃回恢復(fù)區(qū)(Flash recovery area)

查看閃回恢復(fù)區(qū)參數(shù)

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%的閃存空間

方案一:刪除過(guò)期歸檔日志,增大閃回恢復(fù)區(qū)空間大小

若有需要先行將歸檔日志備份再刪除

一、刪除歸檔日志文件

找到歸檔日志存放目錄:/data/oracle/flash_recovery_area/ORCL/archivelog

刪除不需要的歸檔日志文件

直接刪除歸檔日志后,必須用RMAN維護(hù)控制文件

二、使用RMAN維護(hù)控制文件

[oracle@dbsrc ~]$ rman target sys/pass
RMAN> crosscheck backup;     #核對(duì)所有備份集
RMAN> run{
delete noprompt obsolete;
crosscheck archivelog all;
delete noprompt expired archivelog all;
crosscheck backup;
delete noprompt expired backup;
}
RMAN> exit;

run{}中的命令被視為一個(gè)作業(yè),一個(gè)失敗整個(gè)命令停止執(zhí)行

delete obsolete;                    #刪除超出保存策略的備份

crosscheck archivelog all;          #檢查無(wú)效的歸檔日志(失效的標(biāo)記為expired)

delete expired archivelog all;      #刪除expired的歸檔日志

delete expired backup;              #刪除所有失效的備份集

 delete expired   刪除的是那些本來(lái)RMAN以為存在但是實(shí)際上在磁盤或者磁帶上已經(jīng)被刪除了的信息,刪除的只是RMAN資料庫(kù)中的記錄;

delete obsolete  刪除舊于備份保留策略定義的備份數(shù)據(jù)同時(shí)也更新RMAN資料庫(kù)以及控制文件。

noprompt         指無(wú)需確認(rèn)

三、增大閃回恢復(fù)區(qū)空間大小

SQL> alter system set db_recovery_file_dest_size=8G;

查看閃回恢復(fù)區(qū)參數(shù)

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

五、添加定時(shí)任務(wù),清理歸檔日志存儲(chǔ)空間

1、新建腳本文件存放文件夾

[root@dbsrc ~]# mkdir -p /backup/oracledata

2、編輯腳本內(nèi)容

[root@dbsrc ~]# vim /backup/oracledata/oracle_archivelog_clean.sh

#腳本內(nèi)容 (/backup/oracledata/oracle_archivelog_clean.sh)刪除三天前的所有歸檔文件
find /data/oracle/flash_recovery_area/ORCL/archivelog/ -mtime +3 -name "201*" -exec rm -rf {} \;

3、設(shè)置腳本文件權(quán)限

[root@dbsrc ~]# chmod 777 /backup/oracledata/oracle_archivelog_clean.sh

4、添加計(jì)劃任務(wù)(系統(tǒng)調(diào)度任務(wù)和用戶調(diào)度任務(wù)添加其一)

系統(tǒng)任務(wù)調(diào)度:系統(tǒng)周期性所要執(zhí)行的工作,比如寫緩存數(shù)據(jù)到硬盤、日志清理等。在/etc目錄下crontab文件,這個(gè)就是系統(tǒng)任務(wù)調(diào)度的配置文件。

用戶任務(wù)調(diào)度:用戶定期要執(zhí)行的工作,比如用戶數(shù)據(jù)備份、定時(shí)郵件提醒等。用戶可以使用crontab工具來(lái)定制自己的計(jì)劃任務(wù)。所有用戶定義的crontab文件都被保存在 /var/spool/cron目錄中。其文件名與用戶名一致。

1)、系統(tǒng)任務(wù)調(diào)度

編輯系統(tǒng)任務(wù)計(jì)劃

[root@dbsrc ~]# vim /etc/crontab

SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
#SHELL 變量指定了系統(tǒng)要使用哪個(gè)shell,這里是bash
#PATH 變量指定了系統(tǒng)執(zhí)行命令的路徑
#MAILTO 變量指定了crond的任務(wù)執(zhí)行信息將通過(guò)電子郵件發(fā)送給root用戶,如果MAILTO變量的值為空,則表示不發(fā)送任務(wù)執(zhí)行信息給用戶

# 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

#(*):代表所有 (,):多個(gè)值間隔 (-):范圍連接符
#(/)指定時(shí)間間隔頻率,例如(*/10)如果在minute字段,表示每十分鐘執(zhí)行一次
# 以管理員身份每天凌晨05:00,執(zhí)行相應(yīng)目錄下的腳本任務(wù)
0 5 * * * root /backup/oracledata/oracle_archivelog_clean.sh

2)、用戶任務(wù)調(diào)度

編輯用戶任務(wù)計(jì)劃

[root@dbsrc ~]# crontab -e

#以管理員身份每天凌晨05:00,執(zhí)行相應(yīng)目錄下的腳本
0 5 * * * /backup/oracledata/oracle_archivelog_clean.sh

無(wú)需再添加執(zhí)行用戶,否則任務(wù)計(jì)劃無(wú)法執(zhí)行,將有以下報(bào)錯(cuò)

[root@dbsrc ~]# cat /var/spool/mail/root

From root@dbsrc.localdomain Tue Aug 7 05:00:01 2018
Return-Path: <root@dbsrc.localdomain>
X-Original-To: root
Delivered-To: root@dbsrc.localdomain
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: root@dbsrc.localdomain
Subject: Cron <root@dbsrc> 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.9662C2827@dbsrc.localdomain>
Date: Tue, 7 Aug 2018 05:00:01 +0800 (CST)

/bin/sh: root: command not found

查看用戶計(jì)劃

[root@dbsrc ~]# crontab -l

0 5 * * * /backup/oracledata/oracle_archivelog_clean.sh

5、查看cron服務(wù)是否在設(shè)定時(shí)間調(diào)用

[root@dbsrc ~]# 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腳本是否報(bào)錯(cuò)(cat /var/spool/mail/用戶名)

[root@dbsrc ~]# cat /var/spool/mail/root
From root@dbsrc.localdomain Tue Aug 7 05:00:01 2018
Return-Path: <root@dbsrc.localdomain>
X-Original-To: root
Delivered-To: root@dbsrc.localdomain
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: root@dbsrc.localdomain
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.9662C2827@dbsrc.localdomain>
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服務(wù)

[root@dbsrc ~]# service crond restart

或者

[root@dbsrc ~]# /etc/init.d/crond restar

注釋

service crond start //啟動(dòng)服務(wù)
service crond stop //關(guān)閉服務(wù)
service crond restart //重啟服務(wù)
service crond reload //重新載入配置
service crond status //查看服務(wù)狀態(tài)

crontab [-u user] [ -e | -l | -r ]
-e:編輯某個(gè)用戶的crontab文件內(nèi)容。如果不指定用戶,則表示編輯當(dāng)前用戶的crontab文件。
-l:顯示某個(gè)用戶的crontab文件內(nèi)容,如果不指定用戶,則表示顯示當(dāng)前用戶的crontab文件內(nèi)容。
-r:從/var/spool/cron目錄中刪除某個(gè)用戶的crontab文件,如果不指定用戶,則默認(rèn)刪除當(dāng)前用戶的crontab文件。
-i:在刪除用戶的crontab文件時(shí)給確認(rèn)提示。

#提示You have new mail in /var/spool/mail/root解決
[root@dbsrc ~]# echo "unset MAILCHECK">> /etc/profile;
[root@dbsrc ~]# source /etc/profile 

方案二:修改歸檔目錄位置

一、創(chuàng)建新的歸檔文件存放目錄

[root@dbsrc ~]# mkdir /data/oracle/archive_log

二、設(shè)置目錄擁有者和權(quán)限

[root@dbsrc ~]# chown -R oracle:oinstall /data/oracle/archive_log
[root@dbsrc ~]# chmod –R 775 /data/oracle/archive_log

三、禁止往閃回恢復(fù)區(qū)放歸檔日志

SQL> alter system set db_recovery_file_dest='';

四、設(shè)置歸檔日志存放目錄

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

總結(jié)

以上所述是小編給大家介紹的Oracle GoldenGate同步服務(wù)歸檔空間維護(hù),希望對(duì)大家有所幫助,如果大家有任何疑問(wèn)請(qǐng)給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對(duì)億速云網(wǎng)站的支持!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI