联机备份(热备)
数据库不停机的备份 并且数据库要开启归档模式
归档概念: 归档需要分redo 与 归档日志 来说
redo 日志(联机日志)是数据库记录所有修改操作的核心日志
无论数据库是否开启归档,redo 日志都会实时记录每一条事务的修改
redo 是循环使用的,一般有几个 redo 文件,写满就循环覆盖
归档的概念就是 当前写满的 redo 日志会被复制一份到归档目录 避免因为覆盖丢失记录
redo日志 = 正在写的操作记录(循环覆盖)
归档日志 = 保存下来的历史操作,避免覆盖丢失
查看数据库是否为归档模式
SELECT ARCH_MODE FROM V$DATABASE; Y/N 已开启/未开启
未开启:
ALTER DATABASE MOUNT; --设置数据库为MOUNT状态
ALTER DATABASE ARCHIVELOG; --设置为归档模式
ALTER DATABASE ADD ARCHIVELOG ‘DEST=/dm8/arch, TYPE=LOCAL, FILE_SIZE=128, SPACE_LIMIT=1024’; --设置归档日志文件路径大小
ALTER DATABASE OPEN;–恢复数据库为OPEN状态
备份时:可以使用DISQL也可以使用控制台会话窗口
在DISQL模式下:
注:TO “XXX” → 双引号 ‘XXX’ → 单引号 单引号是字符串(路径),双引号是对象名(名字)。
库备份
备份选项:
默认执行指定备份介质类型、备份路径、备份片大小及备份联机日志等 默认的备份路径为 dm.ini 中 BAK_PATH 配置的路径,若未配置 BAK_PATH,则默认使用SYSTEM_PATH 下的 bak 目录
BACKUP DATABASE BACKUPSET ‘db_bak_01’;
设置联机数据库备份集路径
BACKUP DATABASE BACKUPSET ‘/home/dm_bak/db_bak_3_01’;
设置备份名(FORMAT 与 BAKCKSET 选1 字符替换查看文末)
BACKUP DATABASE FORMAT ‘/home/dm_bak/%U’;
添加备份描述
BACKUP DATABASE BACKUPSET ‘/home/dm_bak/db_bak_3_04’ BACKUPINFO ‘完全备份’;
限制备份片大小 MB,最小为 128MB,32 位系统最大可设置为 2GB,64 位系统最大可设置为 128GB
BACKUP DATABASE BACKUPSET ‘/home/dm_bak/db_bak_3_05’ MAXPIECESIZE 300;
备份压缩 压缩级别设置为 5 取值范围为 0~9
BACKUP DATABASE BACKUPSET ‘/home/dm_bak/db_bak_3_06’ COMPRESSED LEVEL 5;
并行备份 指定并行数为 8
BACKUP DATABASE BACKUPSET ‘/home/dm_bak/db_bak_3_07’ PARALLEL 8;
完全备份(全量备份) 备份语句中的参数 FULL 可以省略,不指定备份类型会默认指定备份类型为完全备份。
BACKUP DATABASE FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;
增量备份
BACKUP DATABASE INCREMENT WITH BACKUPDIR ‘/home/dm_bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
INCREMENT 增量备份关键字
WITH BACKUPDIR 执行基备份路径
简化后:BACKUP DATABASE INCREMENT format ‘/%U’; 使用默认路径 %U 参考文末
表空间备份
表空间备份常用的备份选项有设置备份名、设置备份集路径、指定介质参数、添加备份描述等,设置方式同数据库备份相同
BACKUP TABLESPACE MAIN BACKUPSET ‘ts_bak_01’
TABLESPACE 备份类型为表空间
MAIN 表空间名
表备份
1. 仅支持对用户的非分区的行存储表和堆表进行备份,不支持对分区表的备份。在非分区表中,也不支持对临时表、物化视图表、物化视图附属表、日志表和特定模式(DBG_PKG/INFORMATION_SCHEMA/INFO_SCHEM/SYSREP/SYSJOB/SYSCPT/SYS)下的表进行表备份。
2. 表的列类型为对象类型的表不支持表备份。
3. 表备份不备份表上的注释以及 default 表达式中的函数定义,因此还原时需用户自行确认。
4. 当备份数据超过限制大小时,会生成新的备份文件,新的备份文件名是初始文件名DM8 备份与还原80后加文件编号。
5. 表备份时,其所属表空间必须处于联机状态。
6. 目前表备份不支持备份到 TAPE 介质上。
表备份常用的备份选项有设置备份名、设置备份集路径、指定介质参数、添加备份描述等,设置方式同数据库备份相同
BACKUP TABLE TEST BACKUPSET ‘tab_bak_01’;
TABLE 备份类型为表空间
TEST 表名
表还原
仅支持联机还原 在DISQL或管理工具内执行命令
如果库中不存在该表 需要手动创建与备份时表结构的一致的表 否则无法还原
RESTORE TABLE TAB_01 FROM BACKUPSET 'tab_bak_01
//恢复部分约束和重建表结构
SQL>RESTORE TABLE ORDERS STRUCT FROM BACKUPSET ‘/dm8/backup/tab_orders_03_bak’;
//恢复数据、索引、完整约束
SQL>RESTORE TABLE ORDERS FROM BACKUPSET ‘/dm8/backup/tab_orders_03_bak’;
还原过程可以指定 不还原索引、约束 详细查询DM8备份与还原手册 3.2.6
归档备份
一,归档文件的 db_magic、permanent_magic 值和库的 db_magic、permanent_magic 值必须一样;
二,服务器必须配置归档;
三,归档日志必须连续,如果出现不连续的情况,前面的连续部分会忽略,仅备份最新的连续部分。如果备份时未收集到指定范围内的归档,则直接报错。
//确定归档起始LSN 与 结束LSN
SELECT ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
BACKUP ARCHIVELOG LSN BETWEEN 70643 AND 70648 formant ‘/%U’;
BACKUP ARCHIVELOG LSN BETWEEN 50414 AND 50478 BACKUPSET ‘/home/dm_bak/arch_bak_time_14-78’;
停机备份(冷备)BAKCUPSET 指定路径 不写默认为dm.ini中 BAK_PATH 的配置值,若未配置,则使用 SYSTEM_PATH 下的 bak 目录
DMRMAN 工具
备份数据库(备份项与热备状态一致)
(完全备份 并 指定路径)
RMAN> BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ FULL BACKUPSET ‘/home/dm_bak/db_full_bak_01’;
(增量备份 WITH BACKUPDIR:指定基备份路径)
RMAN> BACKUP DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ INCREMENT WITH BACKUPDIR ‘/home/dm_bak’ BACKUPSET ‘/home/dm_bak/db_increment_bak_02’;
(归档备份 并指定路径)
RMAN> BACKUP ARCHIVE LOG ALL DATABASE ‘/opt/dmdbms/data/DAMENG/dm.ini’ BACKUPSET ‘/home/dm_bak/arch_all_bak_01’;
(归档备份 设置LSN 或者时间点,控制需要备份归档的范围 详细查询文档3.3.3.2.2 备份归档)
RMAN> BACKUP ARCHIVE LOG LSN BETWEEN 50000 AND 120000 DATABASE’/opt/dmdbms/data/DAMENG/dm.ini’ BACKUPSET ‘/home/dm_bak/arch_lsn_bak_02’;
命令中的 LSN BETWEEN start AND end 表示备份 LSN 值在 start 与 end 之间的归档,也可以设置 FROM LSN(TIME)或 UNTIL LSN(TIME)。
备份集管理
SHOW BACKUPSET…命令用于查看单个备份集信息
RMAN> show backupset ‘/home/test/yy/dm_bak/db_full_bak_01’
SHOW BACKUPSETS…命令用于批量显示指定搜索目录下的备份集信息 如需要查看的多个备份集不在同一个目录下,可通过 WITH BACKUPDIR 参数指定多个备份集搜索目录,同时查看所有的备份集
RMAN> SHOW BACKUPSETS WITH BACKUPDIR ‘/home/dm_bak1’,’/home/dm_bak2’;
CHECK BACKUPSET 校验备份集是否合法
RMAN> CHECK BACKUPSET ‘/home/dm_bak/db_bak_for_check_01’;
REMOVE BACKUPSET … 命令可删除特定备份集,每次只能删除一个备份集
RMAN> REMOVE BACKUPSET ‘/home/dm_bak/db_bak_for_remove_01’;
REMOVE … BACKUPSETS … 命令可批量删除备份集
RMAN> REMOVE BACKUPSETS WITH BACKUPDIR ‘/home/dm_bak’;
REMOVE … BACKUPSETS … UNTIL TIME 命令用来批量删除指定时间之前的备份集
RMAN> REMOVE BACKUPSETS WITH BACKUPDIR ‘/home/dm_bak’ UNTIL TIME ‘2019-6-1 00:00:00’;
数据库还原
准备目标库,可以使用备份库,也可以重新生成库或者直接指定目录还原
./dminit path=/opt/dmdbms/data db_name=DAMENG_FOR_RESTORE auto_overwrite=1 sysdba_pwd=DMdba_123 sysauditor_pwd=DMauditor_123
校验备份
RMAN> CHECK BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_dbmagic’;
还原数据库
RMAN> RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_dbmagic’;
恢复数据库
RMAN> RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ FROM BACKUPSET ‘/home/dm_bak/db_full_bak_for_recover_dbmagic’;
更新数据库
RMAN> RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RESTORE/dm.ini’ UPDATE DB_MAGIC;
表空间还原
1) 联机备份表空间,保证数据库运行在归档模式及 OPEN 状态;
BACKUP TABLESPACE MAIN BACKUPSET ‘/home/dm_bak/ts_full_bak_for_recover’;
2) 校验备份,校验待还原备份集的合法性,此处使用脱机校验;
RMAN> CHECK BACKUPSET ‘/home/dm_bak/ts_full_bak_for_recover’;
3) 还原表空间。启动 DMRMAN,输入以下命令:
RMAN> RESTORE DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN FROM BACKUPSET ‘/home/dm_bak/ts_full_bak_for_recover’;
4) 恢复表空间。启动 DMRMAN,输入以下命令:
RMAN> RECOVER DATABASE ‘/opt/dmdbms/data/DAMENG_FOR_RECOVER/dm.ini’ TABLESPACE MAIN;
DM 不仅支持从数据库备份和表空间备份中还原表空间,还支持还原表空间中特定的数据文件(3.3.6.2.1 表空间还原 )
┌──────────────┐
│ 数据库运行中 │
└──────┬───────┘
│
┌──────────────────┼──────────────────┐
│ │ │
冷备 热备 逻辑备份
(数据库关闭) (数据库运行) (导出表/库)
│ │ │
│ │ │
全量备份 全量备份 表备份
增量备份 表空间备份
归档日志备份 整库导出
│
▼
备份文件生成
│
▼
数据库故障
│
┌──────────────────┼──────────────────┐
│ │ │
整库恢复 表空间恢复 表恢复
(全量备份) (表空间备份) (逻辑备份)
│ │ │
└──────────┬───────┴──────────┬──────┘
│ │
归档日志恢复 时间点恢复
(恢复到某一时刻) (误删除找回)
序号 占位符 描述
1 %I 数据库魔数
2 %P 数据库持久魔数
3 %s 备份集魔数
4 %d 数据库名称
5 %N 表空间名称
6 %L 表名称
7 %c 生成备份集的通道 ID,仅通道的 FORMAT 配置有效
8 %Y 备份时间的年,格式为 YYYY
9 %M 备份时间的月,格式为 MM
10 %D 备份时间的日,格式为 DD
11 %T 备份时间的年月日,格式为 YYYYMMDD
12 %H 备份时间的小时+分钟+秒
13 %S 备份时间的毫秒
14 %t 备份集时间戳,格式为%T_%H_%S
15 %R 备份范围。DB:库备份;TS:表空间备份;TAB:表备份;ARCH:
归档备份;SPFILE:镜像备份
16 %E 备份类型。FULL:完全备份;INCREMENT:增量备份
17 %U 根据备份范围,默认是%R_%d_%E_%t 等形式,通道配置的
Format 最后添加_%c
文章
阅读量
获赞
