一、课程内容:
01-课程概述
02-配置备份集-备份片-压缩
03-配置备份加密
04-执行数据库恢复-情形1
05-执行数据库恢复-情形1补充
06-执行数据库恢复-情形2
07-使用Recovery Advisor进行数据恢复
08-使用块跟踪加速备份
09-增量备份-差异增量备份
10-增量备份-累积增量备份
11-增量备份-增量更新备份
12-基于增量备份的数据恢复
13-使用Catalog恢复目录管理备份信息
14-手工制造坏块
15-块屏蔽与块恢复
16-使用dbms_backup_restore包
17-使用RMAN进行表级别恢复
18-RMAN Duplicate克隆复制技术-1
19-RMAN Duplicate克隆复制技术-2
20-编写自动全量备份shell脚本
21-编写自动增量备份shell脚本
22-RMAN异机恢复-1
23-RMAN异机恢复-2
24-RMAN异机恢复-3
开启归档:
rman target /
rman target / nocatalog
SQL> archive log list;(查看是否开启归档)
select log_mode from v$database;
log_archive_dest(归档日志位置)
alter system set log_archive_dest='/u01/arch' scope=spfile;
log_archive_format(归档日志格式)
alter system set log_archive_format='%t_%s_%r.arc' scope=spfile;
shutdown immediate 必须干净地关闭
startup mount
alter database archivelog;
alter database open;
alter system switch logfile;(切换日志将产生归档文件)
select t.RESETLOGS_ID,t.* from v$database_incarnation t;(查看RESETLOGS_ID)
backup database;
list backup;
list archivelog all;
二、配置备份集-备份片-压缩-加密
1.配置备份集最大大小
v$rman_configuration(查看rman配置更改:select * from v$rman_configuration;)
configure maxsetsize to 500m;(修改备份集最大size,一般默认不设置)
configure maxsetsize clear;
2.配置备份片的最大大小
configure channel device type disk maxpiecesize 500m;
3.双工备份集
configure datafile backup copies for device type disk to 2;
configure datafile backup copies for device type disk clear;
4.备份整个数据库时可以排除部分表空间
configure exclude for tablespace sysaux;
backup database noexclude;
5.配置压缩
RMAN支持的备份集的预压缩处理和二进制压缩
预压缩块处理:
通过合并每个数据块中的空闲空间并将改空闲空间设置为二进制0来实现更好的备份压缩,optimize for load true
支持的压缩级别:
默认压缩算法
高级压缩选型。
configure compression algorithm ‘BASIC|HIGH|MEDIUM|LOW’
configure device type disk backup type to compressed backupset;(启用压缩备份)
三、配置备份加密
如果备份集没有加密,只要得到备份集文件,就可以恢复数据。
1.口令加密模式
2.透明加密模式(wallet钱包)
3.混合
v$rman_encryption_algorithms
默认AES128
AES192,AES256
对称加密算法
RMAN加密CPU密集型操作,可能会对备份性能影响。
1.口令加密模式:
set encryption on identified by “oracle” only;(设置加密密码)
backup datafile 4;backup database;
set decryption identified by “oracle”;(设置解密密码)
restore datafile 4;restore database;(还原4号文件或者数据库)
recover datafile 4;(恢复)
alter database open;
可以把备份集拿到异机恢复。
2.透明加密模式 wallet
1.创建wallet目录
select * from v$encryption_wallet;
mkdir -p /u01/app/oracle/admin/prod/wallet
2.设置秘钥
alter system set encryption key identified by “oracle”;
关闭钱包:
alter system set wallet close identified by “oracle”;
configure encryption for database off;
打开钱包:
alter system set wallet open identified by “oracle”;
configure encryption for database on;(rman下打开钱包)
这种备份在本机还原时,无须输入密码,wallet自动解密,加密。
把备份集复制到其他机器,无法恢复。
在本机还原。
3.混合模式
set encryption on identified by “oracle”;(设置加密秘钥,非only)
set decryption identified by “oracle”;(设置解密秘钥)
或者
把钱包wallet打开
alter system set wallet open identified by “oracle”;
既可以在本机恢复,也可以在异机恢复。
四、执行数据库恢复
前提:
1.数据库必须是归档模式
2.RMAN备份
4.1恢复情形1:
如何在丢失一个或多个数据文件后使用RMAN使数据库恢复正常运行。
数据文件:undo,system,users
控制文件:不考虑
redo文件:不考虑
参数文件:spfile,pfile,不考虑
临时文件:不考虑,rman不备份临时文件。
rm
监听:有或没有都可以
log_archive_format(归档日志格式)
log_archive_dest(归档日志路径)
== backup format ‘/u01/backup/full_%U’ database;(指定备份集路径备份全数据库)==
export NLS_DATE_FORMAT="yyyy-mm-dd hh24:mi:ss"
source .bash_profile(设设置的环境变量生效)
数据文件:v$dbfile,dba_data_files,v$datafile
rm 删除数据文件
shutdown abort
启动:
spfile->mount(寻找控制文件,control_files)->open
select status from v$instance;
置于mount状态,
恢复文件restore
介质恢复recover,应用归档日志,redo日志
open
restore database(删除了所有的文件)
restore datafile '/xxxx/xx/dbf'
restore datafile 1;(当删除了部分文件的时候使用比较方便)
recover database;
recover datafile xxx;
alter database open;
创建表,插入一定的数据,删除文件 ,恢复
restore database;
recover database;
alter database open;
RMAN>run{
restore database;
recover database;
}
SQL>alter database open;
数据文件的原始位置空间满,恢复的时候不想恢复到这个位置
/u01/app/oracle/oradata/prod
/u01/app/oracle/oradata/prod2
run{
set newname for datafile 1 to ‘/u01/app/oracle/oradata/prod2/system01.dbf’;
set newname for datafile 2 to ‘/u01/app/oracle/oradata/prod2/sysaux01.dbf’;
set newname for datafile 3 to ‘/u01/app/oracle/oradata/prod2/undotos01.dbf’;
set newname for datafile 4 to ‘/u01/app/oracle/oradata/prod2/users01.dbf’;
restore database;
switch datafile all;
recover database;
}
alter database open;
4.2恢复情形2:
恢复到某个时间点
1.rman备份时间点
2019-09-09 07:43:42
2.创建用户,表,插入数据
SQL> create user ouzy identified by ouzy;
SQL> grant connect,resource to ouzy;
SQL> alter user ouzy quota unlimited on users;
–修改