一、概述
联机备份还原:联机还原指数据库处于运行状态时,并正常提供数据库服务情况下进行的备份还原操作,称为联机备份。
联机备份数据库必须要配置归档。联机备份时,大量的事务处于活动状态,为确保备份数据的一致性,需要同时备份一段日志(备份期间产生的 REDO 日志),因此要求数据库必须配置本地归档且归档必须处于开启状态。
二、联机备份支持类型
联机方式支持数据库、用户表空间、用户表和归档的备份以及用户表的还原。在进行联机库级备份、归档备份和表空间备份时,必须保证系统处于归档模式,否则联机备份不能进行。
联机备份时,关闭已配置的本地归档之后再重新打开,会造成归档文件中部分日志缺失,备份时检查归档文件连续性时将会报错。存在该类操作时,若要避免该错误,备份前需要调用【 checkpoint(100) ;】命令主动刷新检查点。
联机备份与数据库状态
序号 | 部署架构 | 状态 | 使用限制 |
---|---|---|---|
1 | 单实例 | open | 支持所有备份类型 |
2 | mount | 支持归档备份 | |
3 | 主备 | Primary | 支持所有备份类型 |
4 | Standby | 支持库级、表空间级、归档备份、DDL CLONE | |
5 | DSC | open | 支持库备份、表空间备份、表备份 |
三、数据库常用备份命令
3.1 备份参数
- BACKUPSET 参数用于指定备份集的输出路径
- TO WEEKLY_FULL_BAK 设置备份名
- BACKUPINFO 备份描述
- MAXPIECESIZE 设置备份片最大大小
- COMPRESSED LEVEL 设置压缩级别,建议使用compressed 1进行压缩备份
- PARALLEL 设置备份并行度
- INCREMENT 增量备份
3.2 全库备份命令
# 全备
BACKUP DATABASE FULL BACKUPSET '/dmbak';
# 设置备份名
BACKUP DATABASE TO WEEKLY_FULL_BAK BACKUPSET '/dmbak';
# 添加备份描述
BACKUP DATABASE BACKUPSET '/dmbak' BACKUPINFO '完全备份';
# 限制备份片大小为300m
BACKUP DATABASE BACKUPSET '/dmbak' MAXPIECESIZE 300;
# 压缩备份,压缩级别设定为5,压缩级别范围为0~9
BACKUP DATABASE BACKUPSET '/dmbak' COMPRESSED LEVEL 5;
# 创建并行备份,执行并行数为8
BACKUP DATABASE BACKUPSET '/dmbak' PARALLEL 8;
3.3 表空间备份
# 备份单个表空间
BACKUP TABLESPACE MAIN BACKUPSET 'ts_bak_01';
# 增量备份
BACKUP TABLESPACE MAIN INCREMENT BACKUPSET 'ts_increment_bak_01';
# 基于ts_full_bak_01全备份的增量备份
BACKUP TABLESPACE MAIN INCREMENT BASE ON BACKUPSET'ts_bak_01' BACKUPSET 'ts_increment_bak_01'
# 基于增量备份ts_increment_bak_01的增量备份
backup tablespace main increment base on backupset 'ts_increment_bak_01' backupset 'ts_increment_bak_02';
3.4 表备份
##表备份
BACKUP TABLE TAB_01 BACKUPSET 'tab_bak_01';
3.5 归档备份
- 数据库必须配置归档
- 归档文件的 db_magic、permanent_magic 值和数据库的 db_magic、permanent_magic 值必须一样
- 归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续部分
归档备份命令
##备份全部归档
BACKUP ARCHIVE LOG ALL BACKUPSET 'arch_bak_01';