(一)数据备份
数据备份分为:数据库备份,表空间备份,表备份
数据库备份最常用的策略:完全备份和增量备份
一般每周执行一次完全备份,每天执行一次增量备份,那么恢复时要重做的归档就不会超过一天
1. 数据库备份
1.1 数据库完全备份
生成的备份集包含了指定库(或者表空间)的全部有效数据页,一般规则是数据库经过频繁修改后最好执行一次完全备份
1.2 完全备份步骤
1:配置开启归档
2:数据库open状态
BACKUP DATABASE BACKUPSET '备份集路径';
数据库增量备份
在某个特定备份集基础上,收集数据库新修改的数据页进行备份。可以快速备份数据库中的修改,减少备份时间和避免重复的备份
1.3 增量备份步骤
1:配置开启归档
2:数据库open状态
BACKUP DATABASE INCREMENT WITH BACKUPDIR '备份集目录'BACKUPSET '增量备份集路径';
如果增量备份集的基备份集被删除了将无法进行还原操
2. 表空间备份
2.1 表空间备份选项
@指定基备份目录 BASE ON
用于特定的备份集执行增量备份
不指定则搜索最近一次完全或增量备份作为基备份目录
2.2 表空间完全备份步骤
1:配置开启归档
2:数据库open状态
BACKUP TABLESPACE 表空间名BACKUPSET '备份集路径';
2.3 表空间增量备份步骤
1:配置开启归档
2:数据库open状态
BACKUP TABLESPACE 表空间名INCREMENT WITH BACKUPDIR '备份集路径 'BACKUPSET '备份集路径';
若要创建累积增量备份,要指定 CUMULATIVE 参数,否则缺省为差异增量备份。
若基备份不在默认备份目录(dm.ini设置),WITH BACKUPDIR参数必须指定,用于搜索基备份集
3. 表备份
3.1 备份选项
表备份常用的备份选项有设置备份名、设置备份集路径、指定介质参数、添加备份描述
3.2 表备份
表备份均为联机完全备份,不需要备份归档日志,不存在增量备份之说
BACKUP TABLE 表名 BACKUPSET ‘表备份集路径’;
4. 归档备份
4.1 归档备份的前提
1:归档文件的db_magic值和库的db_magic值必须一样
2:服务器必须配置归档
3:归档日志必须连续,如果出现不连续的情况,前面的会忽略,仅备份最新的连续部分。如果未收集到指定范围内的归档,则不会备份
联机备份的时候经常会切换归档文件,最后 一个归档总是空的,所以最后一个归档不会被备份
4.2 备份归档日志步骤
1:配置开启归档
2:数据库open/mount状态
3:查询lsn
SELECT ARCH_LSN, CLSN, PATH from V$ARCH_FILE;
4:备份
BACKUP ARCHIVELOG LSN BETWEEN 起lsn AND 止lsn BACKUPSET '归档路径';
5. 高级备份
5.1 加密备份
备份语句中通过指定
IDENTIFIED BY “密码”(必须,长度不超过128字节)
WITH ENCRYPTION(加密类型,非必须,默认简单加密1)
ENCRYPT WITH(加密算法,非必须,默认AES256_CFB)
执行加密备份
若指定了加密密码,但加密类型WITH ENCRYPTION参数指定为0,则为非加密备份
对于增量备份加密,如果基备份存在加密,则使用的加密算法和加密密码必须与基备份
中一致;
如果基备份未进行加密处理,则对增量备份使用的加密密码和算法没有特殊要求。
数据库备份复杂加密,算法为rc4,密码为123456789,路径为默认路径下
BACKUP DATABASE BACKIPSET ‘DB_BAK_FOLL_ENCRYPT’ IDENTIFIED BY “123456789” WITH ENCRYPTION 2 ENCRYPT RC4;
5.2 追踪日志
备份时支持设置跟踪日志文件,日志记录了 SBT 接口的调用过程,用户通过查看 日志可跟踪备份还原过程
跟踪日志文件相关的参数有两个
TRACE FILE(跟踪日志路径,默认log目录下生成dm_SBTTRACE_年月.log文件
如果文件存在不会覆盖,会在文件后追加跟踪)
TRACE LEVEL(参数1:不启用,但可以生成trace文件,但不会写入trace信息,默认1,2为启用)
以数据库完全备份为例,为备份设置跟踪日志文件的操作步骤
BACKUP DATABASE BACKUPSET '备份集路径' TRACE FILE '跟踪日志路径' TRACE LEVEL 2;
(二)管理备份
1. 备份目录管理
1.1 添加备份目录
临时生效不存在文件,可以用SELECT * FROM V$BACKUPSET_SEARCH_DIRS;检测
函数:SF_BAKSET_BACKUP_DIR_ADD(’TYPE’,’PATH’)
TYPE:存储类型DISK/TAPE
PATH:备份集路径
若目录已存在或为默认备份集路径,不添加,但也不报错
SELECT SF_BAKSET_BACKUP_DIR_ADD('DISK','/home/dm_bak');
1.2 删除备份目录
函数:SF_BAKSET_BACKUP_DIR_REMOVE(’TYPE’,’PATH’)
TYPE:存储类型DISK/TAPE
PATH:删除路径
若目录为默认备份集路径,不进行删除,返回0。
若目录存在于记录的合法目录中,返回1;
不存在或者为空则跳过,返回0
SELECT SF_BAKSET_BACKUP_DIR_REMOVE()
1.3 清理全部备份目录
SF_BAKSET_BACKUP_DIR_REMOVE_ALL()
默认备份目录除外。
2. 备份集校验和删除
2.1 备份校验
SELECT SF_BAKSET_CHECK('DISK','备份集路径 ');
2.2 删除备份集
SELECT SF_BAKSET_REMOVE('DISK',备份集路径,1);
1:表示级联删除,默认0(如删除增量备份的基备份,其增量备份也会删除)
2.3 批量删除指定条件—所有备份集(库,表空间,表,归档)
SELECT SF_BAKSET_REMOVE_BATCH ('DISK', now(), NULL, NULL);
device_type:disk,tape,NULL,忽略区分
end_time:删除备份集生成的结束时间,仅删除 end_time 之前的备份集,必须指定
range:1 代表库级,2 代表表空间级,3 代表表级,4 代表归档,NULL忽略区分
obj_name:待删除对象的名称,仅表空间级和表级有效。
若为表删除,则需指定完整的表名(模式.表名),否则为NULL,则忽略区分
2.4 批量删除指定条件—库备份集
CALL SP_DB_BAKSET_REMOVE_BATCH('DISK', NOW());
device_type:disk,tape,NULL,忽略区分
end_time:删除备份集生成的结束时间,仅删除 end_time 之前的备份集,必须指定
2.5 批量删除指定条件—表空间备份集
CALL SP_TS_BAKSET_REMOVE_BATCH('DISK',NOW(),'MAIN');
device_type:disk,tape,NULL,忽略区分
end_time:删除备份集生成的结束时间,仅删除 end_time 之前的备份集,必须指定
ts_name:表空间名,若未指定,则认为删除所有满足条件的表空间备份集
2.6 批量删除指定条件—表备份集
CALL SP_TAB_BAKSET_REMOVE_BATCH('DISK',NOW(),'SYSDBA','TAB_FOR_BATCH_DEL');
device_type:disk,tape,NULL,忽略区分
end_time:删除备份集生成的结束时间,仅删除 end_time 之前的备份集,必须指定
sch_name:表所属的模式名
tab_name:表名,只要模式名和表名有一个指定,就认为需要匹配目标;若均指定为 NULL,则认为删除满足条件的所有表备份
2.7 批量删除指定条件—归档备份集
CALL SP_ARCH_BAKSET_REMOVE_BATCH('DISK', NOW());
device_type:disk,tape,NULL,忽略区分
end_time:删除备份集生成的结束时间,仅删除 end_time 之前的备份集,必须指定
(三)数据还原
联机还原仅支持表空间和表还原,库和归档必须用脱机工具
1. 表空间还原
1.1 表空间完全备份—还原表空间
1:配置归档,数据库open或者mount状态
2:修改表空间为脱机
ALTER TABLESPACE MAIN OFFLINE;
3:还原表空间
RESTORE TABLESPACE 表空间名FROM BACKUPSET '表空间完全备份集路径 ';
4:修改表空间为联机
ALTER TABLESPACE MAIN ONLINE;
1.2 表空间增量备份—还原表空间
1:配置归档,数据库open或者mount状态
2:修改表空间为脱机
ALTER TABLESPACE MAIN OFFLINE;
3:还原表空间
RESTORE TABLESPACE 表空间名FROM BACKUPSET '表空间增量备份集路径' WITH BACKUPDIR ‘基备份集路径(可多个)’;
4:修改表空间为联机
ALTER TABLESPACE MAIN ONLINE;
1.3 数据库备份—还原表空间
1:配置归档,数据库open或者mount状态
2:修改表空间为脱机
ALTER TABLESPACE MAIN OFFLINE;
3:还原表空间
RESTORE TABLESPACE 表空间名FROM BACKUPSET '库备份集路径 ';
4:修改表空间为联机
ALTER TABLESPACE MAIN ONLINE;
1.4 指定归档目录表空间备份还原表空间
1:配置归档,数据库open或者mount状态
2:修改表空间为脱机
ALTER TABLESPACE MAIN OFFLINE;
3:还原表空间
RESTORE TABLESPACE 表空间名FROM BACKUPSET '表空间完全备份集路径 ' WITH ARCHIVEDIR ‘归档路径(后面支持多个路径用逗号隔开)’;
4:修改表空间为联机
ALTER TABLESPACE MAIN ONLINE;
1.5 表空间备份还原指定数据文件
1:配置归档,数据库open或者mount状态
2:修改表空间为脱机
ALTER TABLESPACE MAIN OFFLINE;
3:还原表空间
RESTORE TABLESPACE 表空间名 DATAFILE ‘数据文件路径’ FROM BACKUPSET '表空间备份集路径 ' ;
4:修改表空间为联机
ALTER TABLESPACE MAIN ONLINE;
2. 表还原
1:数据库处于open状态
2:表结构还原
RESTORE TABLE 表名 STRUCT FROM BACKUPSET '表备份集路径';
3:表数据还原
RESTORE TABLE 表名 FROM BACKUPSET '表备份集路径';
结语
点赞是对我最大的支持,关注是我最大的认可
邮箱:905049079@qq.com
QQ:905049079
转载请注明文章来源