1. 首页 > Oracle教程 > 正文

Oracle教程FG024-RMAN归档日志备份

2.2 归档日志保留策略

根据业务需求,设置合理的归档日志保留策略:

  • 保留时间:根据备份策略和恢复需求设置
  • 存储空间:确保有足够的空间存储归档日志
  • 自动清理:配置自动清理过期的归档日志
  • 备份验证:确保归档日志被及时备份

2.3 归档日志备份策略

制定合理的归档日志备份策略:

  • 备份频率:每小时或更频繁备份归档日志
  • 备份方式:使用RMAN备份归档日志
  • 备份保留:与数据库备份策略保持一致
  • 备份验证:定期验证归档日志备份的有效性

Part03-生产环境项目实施方案

3.1 归档模式配置

确保数据库处于归档模式:

— 检查当前归档模式
SQL> SELECT log_mode FROM v$database;LOG_MODE
————
ARCHIVELOG

— 如果不是归档模式,需要切换到归档模式
SQL> SHUTDOWN IMMEDIATE;SQL> STARTUP MOUNT;SQL> ALTER DATABASE ARCHIVELOG;SQL> ALTER DATABASE OPEN;

3.2 归档日志备份脚本编写

编写归档日志备份脚本,方便定期执行:

#!/bin/bash
# archive_backup.sh
# from:www.itpux.com.qq113257174.wx:itpux-com
# web: http://www.fgedu.net.cn

# 设置环境变量
export ORACLE_HOME=/oracle/app/oracle/product/19c/db_1
export ORACLE_SID=fgedudb
export PATH=$ORACLE_HOME/bin:$PATH

# 备份日志
LOG_FILE=/backup/rman/logs/archive_backup_$(date +%Y%m%d_%H%M%S).log

# 执行归档日志备份
$ORACLE_HOME/bin/rman target / << EOF > $LOG_FILE
RUN {
ALLOCATE CHANNEL c1 DEVICE TYPE DISK;ALLOCATE CHANNEL c2 DEVICE TYPE DISK;BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL DELETE INPUT;DELETE OBSOLETE;RELEASE CHANNEL c1;RELEASE CHANNEL c2;}
EOF

# 检查备份结果
if grep -q “RMAN-” $LOG_FILE; then
echo “备份失败,请查看日志文件: $LOG_FILE”
else
echo “备份成功,日志文件: $LOG_FILE”
fi

3.3 归档日志备份自动化

使用crontab设置定时执行归档日志备份:

# 编辑crontab
$ crontab -e

# 添加归档日志备份任务(每小时执行一次)
0 * * * * /backup/scripts/archive_backup.sh

Part04-生产案例与实战讲解

4.1 执行归档日志备份

— 连接到目标数据库
$ rman target /Recovery Manager: Release 19.0.0.0.0 – Production on Wed Apr 3 10:00:00 2024
Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle and/or its affiliates. All rights reserved.

connected to target database: FGEDUDB (DBID=1234567890)

— 执行归档日志备份
RMAN> BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG ALL DELETE INPUT;Starting backup at 03-APR-24
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=124 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=40 RECID=40 STAMP=1234567917
input archived log thread=1 sequence=41 RECID=41 STAMP=1234567918
input archived log thread=1 sequence=42 RECID=42 STAMP=1234567919
input archived log thread=1 sequence=43 RECID=43 STAMP=1234567920
channel ORA_DISK_1: starting piece 1 at 03-APR-24
channel ORA_DISK_1: finished piece 1 at 03-APR-24
piece handle=/backup/rman/arch_7_1_1234567921.bak tag=TAG20240403T100000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:30
channel ORA_DISK_2: starting compressed archived log backup set
channel ORA_DISK_2: specifying archived log(s) in backup set
input archived log thread=1 sequence=44 RECID=44 STAMP=1234567922
input archived log thread=1 sequence=45 RECID=45 STAMP=1234567923
input archived log thread=1 sequence=46 RECID=46 STAMP=1234567924
input archived log thread=1 sequence=47 RECID=47 STAMP=1234567925
channel ORA_DISK_2: starting piece 1 at 03-APR-24
channel ORA_DISK_2: finished piece 1 at 03-APR-24
piece handle=/backup/rman/arch_8_1_1234567926.bak tag=TAG20240403T100000 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:25
channel ORA_DISK_1: starting compressed control file and spfile backup set
channel ORA_DISK_1: starting piece 1 at 03-APR-24
channel ORA_DISK_1: finished piece 1 at 03-APR-24
piece handle=/backup/rman/controlfile/c-1234567890-20240403-00 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:10
Finished backup at 03-APR-24

— 查看备份后的归档日志
SQL> SELECT * FROM v$archived_log WHERE DEST_ID=1 ORDER BY sequence# DESC;no rows selected

4.2 执行指定时间范围的归档日志备份

— 执行指定时间范围的归档日志备份
RMAN> BACKUP AS COMPRESSED BACKUPSET ARCHIVELOG FROM TIME ‘SYSDATE-24’ UNTIL TIME ‘SYSDATE’;Starting backup at 03-APR-24
current log archived
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=124 device type=DISK
channel ORA_DISK_1: starting compressed archived log backup set
channel ORA_DISK_1: specifying archived log(s) in backup set
input archived log thread=1 sequence=48 RECID=48 STAMP=1234567927
input archived log thread=1 sequence=49 RECID=49 STAMP=1234567928
channel ORA_DISK_1: starting piece 1 at 03-APR-24
channel ORA_DISK_1: finished piece 1 at 03-APR-24
piece handle=/backup/rman/arch_9_1_1234567929.bak tag=TAG20240403T103000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:15
channel ORA_DISK_2: starting compressed control file and spfile backup set
channel ORA_DISK_2: starting piece 1 at 03-APR-24
channel ORA_DISK_2: finished piece 1 at 03-APR-24
piece handle=/backup/rman/controlfile/c-1234567890-20240403-01 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:00:05
Finished backup at 03-APR-24

4.3 归档日志备份验证

— 验证归档日志备份
RMAN> VALIDATE BACKUPSET ALL;Starting validate at 03-APR-24
using channel ORA_DISK_1
using channel ORA_DISK_2
channel ORA_DISK_1: starting validation of backup set
channel ORA_DISK_1: backup set key=30
channel ORA_DISK_1: specifying backup set to validate
channel ORA_DISK_1: reading from backup piece /backup/rman/arch_7_1_1234567921.bak
channel ORA_DISK_2: starting validation of backup set
channel ORA_DISK_2: backup set key=31
channel ORA_DISK_2: specifying backup set to validate
channel ORA_DISK_2: reading from backup piece /backup/rman/arch_8_1_1234567926.bak
channel ORA_DISK_1: validation complete, elapsed time: 00:00:15
channel ORA_DISK_2: validation complete, elapsed time: 00:00:10
channel ORA_DISK_1: starting validation of backup set
channel ORA_DISK_1: backup set key=32
channel ORA_DISK_1: specifying backup set to validate
channel ORA_DISK_1: reading from backup piece /backup/rman/controlfile/c-1234567890-20240403-00
channel ORA_DISK_2: starting validation of backup set
channel ORA_DISK_2: backup set key=33
channel ORA_DISK_2: specifying backup set to validate
channel ORA_DISK_2: reading from backup piece /backup/rman/arch_9_1_1234567929.bak
channel ORA_DISK_1: validation complete, elapsed time: 00:00:05
channel ORA_DISK_2: validation complete, elapsed time: 00:00:08
channel ORA_DISK_1: starting validation of backup set
channel ORA_DISK_1: backup set key=34
channel ORA_DISK_1: specifying backup set to validate
channel ORA_DISK_1: reading from backup piece /backup/rman/controlfile/c-1234567890-20240403-01
channel ORA_DISK_1: validation complete, elapsed time: 00:00:03
Validation complete, elapsed time: 00:00:15
Finished validate at 03-APR-24

4.4 归档日志管理

— 查看归档日志信息
SQL> SELECT sequence#, first_time, next_time, status FROM v$archived_log ORDER BY sequence# DESC;SEQUENCE# FIRST_TIME NEXT_TIME STATUS
———- ——————- ——————- ———
50 2024-04-03 10:45:00 2024-04-03 10:50:00 A
49 2024-04-03 10:40:00 2024-04-03 10:45:00 A
48 2024-04-03 10:35:00 2024-04-03 10:40:00 A

— 手动删除归档日志
RMAN> DELETE ARCHIVELOG UNTIL TIME ‘SYSDATE-7’;released channel: ORA_DISK_1
released channel: ORA_DISK_2
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
allocated channel: ORA_DISK_2
channel ORA_DISK_2: SID=124 device type=DISK
List of Archived Log Copies for database with db_unique_name FGEDUDB
=====================================================================

Key Thrd Seq S Low Time Name
——- —- ——- – ——— —-
9 1 1 A 01-APR-24 /oracle/app/oracle/arch/1_1_1234567890.arc
10 1 2 A 01-APR-24 /oracle/app/oracle/arch/1_2_1234567891.arc

Do you really want to delete the above objects (enter YES or NO)? YES

deleted archived log
archived log file name=/oracle/app/oracle/arch/1_1_1234567890.arc RECID=9 STAMP=1234567890
deleted archived log
archived log file name=/oracle/app/oracle/arch/1_2_1234567891.arc RECID=10 STAMP=1234567891

Deleted 14 objects

4.5 归档日志备份报告

— 生成归档日志备份报告
RMAN> REPORT BACKUP OF ARCHIVELOG ALL;Report of backup sets for database with db_unique_name FGEDUDB

Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
——- — — – ———– ————— ——- ——- ———- —
30 B A A DISK 03-APR-24 1 1 YES TAG20240403T100000
31 B A A DISK 03-APR-24 1 1 YES TAG20240403T100000
33 B A A DISK 03-APR-24 1 1 YES TAG20240403T103000

— 查看归档日志备份详细信息
RMAN> LIST BACKUP OF ARCHIVELOG ALL;List of Backup Sets
==================

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
30 Arch 20.00M DISK 00:00:30 03-APR-24
BP Key: 30 Status: AVAILABLE Compressed: YES Tag: TAG20240403T100000
Piece Name: /backup/rman/arch_7_1_1234567921.bak
List of Archived Logs in backup set 30
Thrd Seq Low SCN Low Time Next SCN Next Time
—- ——- ———- ——— ———- ———
1 40 1234567910 03-APR-24 1234567911 03-APR-24
1 41 1234567911 03-APR-24 1234567912 03-APR-24
1 42 1234567912 03-APR-24 1234567913 03-APR-24
1 43 1234567913 03-APR-24 1234567914 03-APR-24

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
31 Arch 15.00M DISK 00:00:25 03-APR-24
BP Key: 31 Status: AVAILABLE Compressed: YES Tag: TAG20240403T100000
Piece Name: /backup/rman/arch_8_1_1234567926.bak
List of Archived Logs in backup set 31
Thrd Seq Low SCN Low Time Next SCN Next Time
—- ——- ———- ——— ———- ———
1 44 1234567914 03-APR-24 1234567915 03-APR-24
1 45 1234567915 03-APR-24 1234567916 03-APR-24
1 46 1234567916 03-APR-24 1234567917 03-APR-24
1 47 1234567917 03-APR-24 1234567918 03-APR-24

BS Key Type LV Size Device Type Elapsed Time Completion Time
——- —- — ———- ———– ———— —————
33 Arch 8.00M DISK 00:00:15 03-APR-24
BP Key: 33 Status: AVAILABLE Compressed: YES Tag: TAG20240403T103000
Piece Name: /backup/rman/arch_9_1_1234567929.bak
List of Archived Logs in backup set 33
Thrd Seq Low SCN Low Time Next SCN Next Time
—- ——- ———- ——— ———- ———
1 48 1234567918 03-APR-24 1234567919 03-APR-24
1 49 1234567919 03-APR-24 1234567920 03-APR-24

Part05-风哥经验总结与分享

5.1 归档日志备份最佳实践

  • 启用归档模式:确保数据库处于归档模式
  • 合理存储:为归档日志分配足够的存储空间
  • 定期备份:每小时或更频繁备份归档日志
  • 自动清理:备份后自动删除过期的归档日志
  • 验证备份:定期验证归档日志备份的有效性

5.2 常见问题与解决方案

  • 归档日志空间不足:增加存储空间,或更频繁地备份和清理归档日志
  • 归档日志备份失败:检查磁盘空间、网络连接和权限设置
  • 归档日志丢失:确保归档日志被及时备份,使用多路归档
  • 归档日志备份速度慢:使用压缩备份,增加并行度

5.3 性能优化建议

  • 使用压缩备份:减少归档日志备份的大小和传输时间
  • 增加并行度:提高归档日志备份的速度
  • 使用ASM存储:提供更好的I/O性能
  • 多路归档:配置多个归档目标,提高可靠性
  • 合理设置归档日志大小:根据业务需求调整重做日志大小
风哥提示:归档日志是Oracle数据库恢复的重要组成部分,必须确保归档日志被及时备份和管理。在生产环境中,建议每小时备份一次归档日志,并在备份后自动删除过期的归档日志,以节省存储空间。学习交流加群风哥QQ113257174

生产环境建议:请根据实际情况调整配置和参数,确保生产环境的安全性和稳定性。

风哥提示:更多学习教程公众号风哥教程itpux_com

学习交流加群风哥微信: itpux-com

from oracle:www.itpux.com

本文由风哥教程整理发布,仅用于学习测试使用,转载注明出处:http://www.fgedu.net.cn/10327.html

联系我们

在线咨询:点击这里给我发消息

微信号:itpux-com

工作日:9:30-18:30,节假日休息