您好,欢迎访问一九零五行业门户网

10gocm-)session3-)数据备份与恢复

这个实验考查我们当数据库出现故障宕机、数据丢失的情况下如何挽回我们的损失,如何在最短时间内恢复我们的数据库服务。 rman规划 host target库 catalog库 ocm01 ocmdb ocm02 ocmdb02 一 模拟control file 丢失故障处理(实例) 我们模拟控制文件丢失故障并进
这个实验考查我们当数据库出现故障宕机、数据丢失的情况下如何挽回我们的损失,如何在最短时间内恢复我们的数据库服务。 rman规划host target库 catalog库
ocm01 ocmdb  
ocm02   ocmdb02
一 模拟control file 丢失故障处理(实例)
我们模拟控制文件丢失故障并进行快速恢复
强行停止数据库
select open_mode,log_mode from v$database;
1.shutdown abort
rm命令删除控制文件
rm control01.ctl
startup 启动数据库时就会发现报错信息
我们检查alert日志获知控制文件丢失
shutdown immediate 停掉数据库
2.使用完好的控制文件恢复丢失的控制文件
cp control02.ctl ../disk1/control01.ctl
重启数据库
startup
二 创建catalog库保存rman备份信息
1.catalog库统一管理rman备份信息即元数据信息,如果没有catalog库,就把rman备份信息写入控制文件
2.目标数据库必须注册到catalog库中才能使用
官方文档:backup and recovery reference -> create catalog和register
backup and recovery advanced user’s guide -> 10 managing the recovery catalog -> creating a recovery catalog
注:ocmdb是目标数据库
ocmdb02是catalog数据库
1.创建表空间 这个表空间存放catalog库内容
sqlplus sys/oracle@ocmdb02 as sysdba
create tablespace catalog_tbs datafile '/u01/oracle/oradata/ocmdb02/catalog_tbs01.dbf' size 100m autoextend on;
2.创建catalog库管理用户catalog_admin默认表空间catalog_tbs
create user catalog_admin identified by catalog_admin default tablespace catalog_tbs;
3.将recovery_catalog角色授予给catalog_admin用户才能备份和恢复
注:有的同学会问,我直接授予dba角色不就可以了吗。其实dba角色不是万能的,它不包括上述角色因此我们需要单独设置
select * from dba_roles where role like '%recover%'; 有没有这个角色
select * from role_sys_privs where role='recovery_catalog_owner'; 这个角色包含哪些权限
grant connect,resource,recovery_catalog_owner to catalog_admin; 只需这三个角色即可
4.登录rman创建catalog库
rman catalog catalog_admin/catalog_admin@ocmdb02
create catalog tablespace catalog_tbs; 把catalog_tbs表空间指定为catalog库
exit
5.注册目标数据库
注册ocmdb
必须要管理员身份登录数据库才可注册普通用户不可以
rman target sys/oracle@ocmdb1521 catalog catalog_admin/catalog_admin@ocmdb02
register database;
注册ocmdb02
rman target sys/oracle catalog catalog_admin/catalog_admin
register database;
【unregister database; 】取消注册命令
6.在数据库中确认注册成功,看看哪些数据库注册到catalog库了
sqlplus catalog_admin/catalog_admin@ocmdb02
select * from rc_database;
7.ocmdb开启归档
alter system set log_archive_dest_1='location=/u01/oracle/arcdata' scope=spfile;
shutdown immediate
startup mount
alter database archivelog;
alter database open;
select log_mode from v$database;
三 设置rman环境变量
官方文档:backup and recovery reference -> configure
我们在使用rman工具进行备份恢复时,第一 可以在命令行模式下指定备份恢复选项
第二 可以提前设置好rman环境变量,当达到触发条件时自动触发(目的)
必须连接到目标数据库后才可以查看设置好的变量值
rman target sys/oracle@ocmdb1521 catalog catalog_admin/catalog_admin@ocmdb02
show all;
configure retention policy to redundancy 1; # default 冗余配置保留政策:冗余数是1
configure backup optimization off; # default 开启增量备份:关
configure default device type to disk; # default 默认备份设备是磁盘
configure controlfile autobackup off; # default 控制文件自动备份:关
configure controlfile autobackup format for device type disk to '%f'; # default 控制文件自动备份目录和格式:%f 【备份设备:disk】
configure device type disk parallelism 1 backup type to backupset; # default 备份的并行度:1,备份类型为备份集【几个并行度就分配几个通道】
configure datafile backup copies for device type disk to 1; # default 数据文件采用复制方式备份
configure archivelog backup copies for device type disk to 1; # default 归档日志采用复制方式备份
configure maxsetsize to unlimited; # default 最大值:无限制
configure encryption for database off; # default 加密数据库:关
configure encryption algorithm 'aes128'; # default 加密算法采用aes128 加密表空间时默认aes192算法
configure archivelog deletion policy to none; # default 归档日志删除策略:空
configure snapshot controlfile name to 快照控制文件名
rman默认备份介质保存目录/home/oracle/backup
configure channel device type disk format '/home/oracle/backup/ocmdb_%u';
控制文件自动备份
configure controlfile autobackup on;
configure controlfile autobackup format for device type disk to '/home/oracle/backup/control/controlfile_%f';
备份并行度2
configure device type disk parallelism 2;
增量备份
configure backup optimization on;
备份介质保留期为30天
configure retention policy to recovery window of 30 days;
显示我们设置完的参数配置
show all;
四 rman备份和闪回数据库
官方文档:backup and recovery reference -> backup
backup and recovery basics -> 4 backing up databases using rman -> 4.2.5 using compressed backupsets for rman backup
1.压缩全备
backup as compressed backupset database plus archivelog; 使用默认的备份介质目录和格式,使用控制文件和参数文件自动备份
2.rman模块版压缩备份数据库,采用压缩备份方式全库备份
run{
backup as compressed backupset full database
format '/home/oracle/backup/full_ocmdb_%u%p%s.rmn'
include current controlfile;
backup as compressed backupset archivelog all
format '/home/oracle/backup/arch_ocmdb_%u%p%s.rmn'
delete all input;
}
3.使用默认备份介质目录和格式,同时 删除备份过的归档日志
backup as compressed backupset full database include current controlfile plus archivelog delete all input;
4.“一行rman命令”压缩备份数据库
backup as compressed backupset full database format
'/home/oracle/backup/full_ocmdb_%u%p%s.rmn' include current controlfile
plus
archivelog format '/home/oracle/backup/arch_ocmdb_%u%p%s.rmn' delete all input;
5.检查所有备份集
list backupset summary;
6.配置flashback数据库
闪回数据库:使用闪回日志恢复数据库到之前的一个时间点。
启动闪回前提条件是开启归档:归档日志可以辅助闪回日志完成闪回工作,往回闪不用归档,往前闪会用到归档。
1.检查数据库状态
select open_mode,log_mode,flashback_on from v$database; 是否在mount和archive状态
archive log list;
先设置快速恢复区大小再设置目录
alter system set db_recovery_file_dest_size=2g;
mkdir -p /home/oracle/flash
alter system set db_recovery_file_dest='/home/oracle/flash'; (保存闪回日志)
设置闪回保留期24小时(1天)单位是分钟
alter system set db_flashback_retention_target=1440 scope=spfile;
2.重启使参数生效
shutdown immediate
startup mount
show parameter db_recovery
启动闪回功能
alter database flashback on;
3.打开数据库
alter database open;
select open_mode,log_mode,flashback_on from v$database;
闪回种类
闪回查询 undo
闪回表 recycbin
闪回版本 undo
闪回事物 undo
闪回数据库 闪回日志
闪回归档 表空间(永久保存11g新特性)
来源ocm实验选讲
其它类似信息

推荐信息