1. 首页 > Oracle教程 > 正文

Oracle教程FG022-RMAN全量备份实战

2.2 存储规划

全量备份需要大量的存储空间,需要合理规划:

  • 估算备份大小:根据数据库大小和压缩比估算
  • 存储介质选择:使用高性能磁盘或磁带库
  • 备份保留:根据业务需求设置保留时间
  • 备份验证:定期验证备份的有效性

2.3 时间窗口规划

全量备份需要较长的时间,需要选择合适的时间窗口:

  • 业务低峰期:选择系统负载较低的时间段
  • 备份窗口:确保在业务高峰期前完成备份
  • 增量备份:配合增量备份减少全量备份的频率

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

3.1 全量备份前的准备工作

在执行全量备份前,需要进行以下准备工作:

— 检查数据库状态
SQL> SELECT status, database_status FROM v$instance;STATUS DATABASE_STATUS
———— —————–
OPEN ACTIVE

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

— 检查归档日志空间
SQL> SELECT * FROM v$recovery_file_dest;NAME SPACE_LIMIT SPACE_USED SPACE_RECLAIMABLE NUMBER_OF_FILES
———————————— ———– ———- —————– —————
/oracle/app/oracle/fast_recovery_area 5368709120 104857600 0 10

— 检查备份目录空间
$ df -h /backup
Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 2.0T 500G 1.5T 25% /backup

3.2 全量备份脚本编写

编写全量备份脚本,方便定期执行:

#!/bin/bash
# full_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/full_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;ALLOCATE CHANNEL c3 DEVICE TYPE DISK;ALLOCATE CHANNEL c4 DEVICE TYPE DISK;BACKUP AS COMPRESSED BACKUPSET DATABASE PLUS ARCHIVELOG;DELETE OBSOLETE;RELEASE CHANNEL c1;RELEASE CHANNEL c2;RELEASE CHANNEL c3;RELEASE CHANNEL c4;}
EOF

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

3.3 全量备份自动化

使用crontab设置定时执行全量备份:

# 编辑crontab
$ crontab -e

# 添加全量备份任务(每周日凌晨2点执行)
0 2 * * 0 /backup/scripts/full_backup.sh

Part04-生产案例与实战讲解

4.1 执行数据库全量备份

— 连接到目标数据库
$ rman target /Recovery Manager: Release 19.0.0.0.0 – Production on Fri Mar 29 22: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 DATABASE PLUS ARCHIVELOG;Starting backup at 29-MAR-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
allocated channel: ORA_DISK_3
channel ORA_DISK_3: SID=125 device type=DISK
allocated channel: ORA_DISK_4
channel ORA_DISK_4: SID=126 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=10 RECID=10 STAMP=1234567890
input archived log thread=1 sequence=11 RECID=11 STAMP=1234567891
input archived log thread=1 sequence=12 RECID=12 STAMP=1234567892
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/arch_1_1_1234567893.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:30
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00001 name=/oradata/fgedudb/system01.dbf
channel ORA_DISK_2: starting compressed full datafile backup set
channel ORA_DISK_2: specifying datafile(s) in backup set
input datafile file number=00002 name=/oradata/fgedudb/sysaux01.dbf
channel ORA_DISK_3: starting compressed full datafile backup set
channel ORA_DISK_3: specifying datafile(s) in backup set
input datafile file number=00003 name=/oradata/fgedudb/undotbs01.dbf
channel ORA_DISK_4: starting compressed full datafile backup set
channel ORA_DISK_4: specifying datafile(s) in backup set
input datafile file number=00004 name=/oradata/fgedudb/users01.dbf
input datafile file number=00005 name=/oradata/fgedudb/fgedu_data01.dbf
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_2: starting piece 1 at 29-MAR-24
channel ORA_DISK_3: starting piece 1 at 29-MAR-24
channel ORA_DISK_4: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/df_1_1_1234567894.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:15:30
channel ORA_DISK_2: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/df_2_1_1234567895.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_2: backup set complete, elapsed time: 00:15:45
channel ORA_DISK_3: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/df_3_1_1234567896.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_3: backup set complete, elapsed time: 00:16:00
channel ORA_DISK_4: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/df_4_1_1234567897.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_4: backup set complete, elapsed time: 00:16:15
current log archived
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=13 RECID=13 STAMP=1234567898
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/arch_2_1_1234567899.bak tag=TAG20240329T220000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:05
channel ORA_DISK_1: starting compressed control file and spfile backup set
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/c-1234567890-20240329-01 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:00:10
Finished backup at 29-MAR-24

4.2 执行表空间全量备份

— 执行表空间全量备份
RMAN> BACKUP AS COMPRESSED BACKUPSET TABLESPACE FGEDU_DATA;Starting backup at 29-MAR-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/oradata/fgedudb/fgedu_data01.dbf
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/ts_5_1_1234567900.bak tag=TAG20240329T223000 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:15
Finished backup at 29-MAR-24

4.3 执行数据文件全量备份

— 执行数据文件全量备份
RMAN> BACKUP AS COMPRESSED BACKUPSET DATAFILE ‘/oradata/fgedudb/fgedu_data01.dbf’;Starting backup at 29-MAR-24
allocated channel: ORA_DISK_1
channel ORA_DISK_1: SID=123 device type=DISK
channel ORA_DISK_1: starting compressed full datafile backup set
channel ORA_DISK_1: specifying datafile(s) in backup set
input datafile file number=00005 name=/oradata/fgedudb/fgedu_data01.dbf
channel ORA_DISK_1: starting piece 1 at 29-MAR-24
channel ORA_DISK_1: finished piece 1 at 29-MAR-24
piece handle=/backup/rman/full/df_5_1_1234567901.bak tag=TAG20240329T223500 comment=NONE
channel ORA_DISK_1: backup set complete, elapsed time: 00:02:00
Finished backup at 29-MAR-24

4.4 备份验证

— 验证全量备份
RMAN> VALIDATE BACKUPSET ALL;Starting validate at 29-MAR-24
using channel ORA_DISK_1
using channel ORA_DISK_2
using channel ORA_DISK_3
using channel ORA_DISK_4
channel ORA_DISK_1: starting validation of backup set
channel ORA_DISK_1: backup set key=10
channel ORA_DISK_1: specifying backup set to validate
channel ORA_DISK_1: reading from backup piece /backup/rman/full/arch_1_1_1234567893.bak
channel ORA_DISK_2: starting validation of backup set
channel ORA_DISK_2: backup set key=11
channel ORA_DISK_2: specifying backup set to validate
channel ORA_DISK_2: reading from backup piece /backup/rman/full/df_1_1_1234567894.bak
channel ORA_DISK_3: starting validation of backup set
channel ORA_DISK_3: backup set key=12
channel ORA_DISK_3: specifying backup set to validate
channel ORA_DISK_3: reading from backup piece /backup/rman/full/df_2_1_1234567895.bak
channel ORA_DISK_4: starting validation of backup set
channel ORA_DISK_4: backup set key=13
channel ORA_DISK_4: specifying backup set to validate
channel ORA_DISK_4: reading from backup piece /backup/rman/full/df_3_1_1234567896.bak
channel ORA_DISK_1: validation complete, elapsed time: 00:00:15
channel ORA_DISK_2: validation complete, elapsed time: 00:03:45
channel ORA_DISK_3: validation complete, elapsed time: 00:04:00
channel ORA_DISK_4: validation complete, elapsed time: 00:02:30
channel ORA_DISK_1: starting validation of backup set
channel ORA_DISK_1: backup set key=14
channel ORA_DISK_1: specifying backup set to validate
channel ORA_DISK_1: reading from backup piece /backup/rman/full/df_4_1_1234567897.bak
channel ORA_DISK_2: starting validation of backup set
channel ORA_DISK_2: backup set key=15
channel ORA_DISK_2: specifying backup set to validate
channel ORA_DISK_2: reading from backup piece /backup/rman/full/arch_2_1_1234567899.bak
channel ORA_DISK_3: starting validation of backup set
channel ORA_DISK_3: backup set key=16
channel ORA_DISK_3: specifying backup set to validate
channel ORA_DISK_3: reading from backup piece /backup/rman/full/c-1234567890-20240329-01
channel ORA_DISK_1: validation complete, elapsed time: 00:04:15
channel ORA_DISK_2: validation complete, elapsed time: 00:00:05
channel ORA_DISK_3: validation complete, elapsed time: 00:00:05
Validation complete, elapsed time: 00:04:15
Finished validate at 29-MAR-24

4.5 备份报告生成

— 生成备份报告
RMAN> REPORT BACKUP;Report of backup sets for database with db_unique_name FGEDUDB

Key TY LV S Device Type Completion Time #Pieces #Copies Compressed Tag
——- — — – ———– ————— ——- ——- ———- —
10 B A A DISK 29-MAR-24 1 1 YES TAG20240329T220000
11 B F A DISK 29-MAR-24 1 1 YES TAG20240329T220000
12 B F A DISK 29-MAR-24 1 1 YES TAG20240329T220000
13 B F A DISK 29-MAR-24 1 1 YES TAG20240329T220000
14 B F A DISK 29-MAR-24 1 1 YES TAG20240329T220000
15 B A A DISK 29-MAR-24 1 1 YES TAG20240329T220000
16 B F A DISK 29-MAR-24 1 1 YES TAG20240329T220000
17 B F A DISK 29-MAR-24 1 1 YES TAG20240329T223000
18 B F A DISK 29-MAR-24 1 1 YES TAG20240329T223500

— 查看备份详细信息
RMAN> LIST BACKUP BY FILE;List of Backup Sets by File
==========================

File #00001 (Tablespace SYSTEM):
Backup Set Key: 11
Backup Piece Key: 11
Piece Name: /backup/rman/full/df_1_1_1234567894.bak
Compressed: YES
Tag: TAG20240329T220000
Backup Type: Full
Backup Time: 29-MAR-24

File #00002 (Tablespace SYSAUX):
Backup Set Key: 12
Backup Piece Key: 12
Piece Name: /backup/rman/full/df_2_1_1234567895.bak
Compressed: YES
Tag: TAG20240329T220000
Backup Type: Full
Backup Time: 29-MAR-24

File #00003 (Tablespace UNDOTBS1):
Backup Set Key: 13
Backup Piece Key: 13
Piece Name: /backup/rman/full/df_3_1_1234567896.bak
Compressed: YES
Tag: TAG20240329T220000
Backup Type: Full
Backup Time: 29-MAR-24

File #00004 (Tablespace USERS):
Backup Set Key: 14
Backup Piece Key: 14
Piece Name: /backup/rman/full/df_4_1_1234567897.bak
Compressed: YES
Tag: TAG20240329T220000
Backup Type: Full
Backup Time: 29-MAR-24

File #00005 (Tablespace FGEDU_DATA):
Backup Set Key: 14
Backup Piece Key: 14
Piece Name: /backup/rman/full/df_4_1_1234567897.bak
Compressed: YES
Tag: TAG20240329T220000
Backup Type: Full
Backup Time: 29-MAR-24
Backup Set Key: 17
Backup Piece Key: 17
Piece Name: /backup/rman/full/ts_5_1_1234567900.bak
Compressed: YES
Tag: TAG20240329T223000
Backup Type: Full
Backup Time: 29-MAR-24
Backup Set Key: 18
Backup Piece Key: 18
Piece Name: /backup/rman/full/df_5_1_1234567901.bak
Compressed: YES
Tag: TAG20240329T223500
Backup Type: Full
Backup Time: 29-MAR-24

Part05-风哥经验总结与分享

5.1 全量备份最佳实践

  • 使用压缩备份:减少备份大小,节省存储空间
  • 使用并行备份:提高备份速度,缩短备份窗口
  • 定期执行:根据业务需求确定全量备份的频率
  • 验证备份:每次备份后验证备份的有效性
  • 备份到多个位置:提高备份的安全性

5.2 常见问题与解决方案

  • 备份速度慢:检查I/O性能,增加并行度,使用压缩
  • 备份失败:检查磁盘空间,网络连接,权限设置
  • 备份文件过大:启用压缩,考虑使用增量备份
  • 备份时间过长:优化备份策略,选择合适的时间窗口

5.3 性能优化建议

  • 使用ASM存储:提供更好的I/O性能
  • 配置大内存页:提高RMAN的性能
  • 使用高速存储:使用SSD等高速存储介质
  • 优化归档日志管理:确保归档日志及时备份和清理
  • 合理设置并行度:根据CPU核心数和存储性能调整
风哥提示:全量备份是Oracle数据库备份策略的基础,虽然备份时间长、占用空间大,但它是最可靠的备份方式。在生产环境中,建议结合增量备份和归档日志备份,形成完整的备份策略。学习交流加群风哥QQ113257174

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

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

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

from oracle:www.itpux.com

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

联系我们

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

微信号:itpux-com

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