第44章 备份恢复概念 2018-08-13

第44章 备份恢复概念 2018-08-13

课程目标
·确定OracleDB 中可能发生的故障类型
·说明有花实例恢复的方法
·确定检查点、重做日志文件和归档日志文件
·配置快速恢复区
·配置ARCHIVELOG模式

管理员的指责
尽量避免数据库出现故障
延长平均故障时间间隔(MTBF)
通过冗余提供保护
缩短平均恢复时间(MTTR)
最大程度的减少数据丢失

故障类别
1.语句错误
2.用户进程错误
3.网络故障
4.用户错误
5.实例错误
6.介质故障

1.语句错误
1>尝试在表中输入无效的数据
方案:与用户合作来验证并更新数据
2>尝试在权限不足时执行操作
方案: 提供适当的对象或系统权限
3>尝试分配未成功分配的空间
方案:
·启用可恢复的空间分配
·增加所有者限额
·增加表的空间
4>应用程序中的逻辑错误
方案: 与开发人员合作来更正程序错误

查看当前用户具有什么样的权限
select * from session_prives;

2.用户进程错误
1>用户执行了一场断开连接操作
2>用户会话异常终止
3>用户遇到了终止会话的程序错误

方案 :
通常不需要DBA执行操作就可解决用户进程错误。实例后台进程回退未提交的更改并解除锁定
观察变化趋势

##有5个进程不得kill
smon pmon ckpt lgwr dbw[0-9|a-z]

装有grid产品的,kill重要进程导致数据库崩溃时会自动重启
12c grid产品可以管理11g的产品

3.网络故障
监听程序失败
方案: 配置备份监听程序和连接时故障转移
网络接口卡故障
方案: 配置多个网卡
网络连接失败
方案: 配置备份网络连接


一个数据库产品配置多个监听
vi /u01/oracle/10g/network/admin/listener.ora
到里面复制一遍,改一下端口(就相当于,给这个服务多开了个门),这样的话这个oracle数据库服务就有了两个门,假设这次增加的门是1525
启动刚配置的监听
lsnrctl start LISTENER1
查看刚配置好的监听的状态
lsnrctl status LISTENER1
远程连接测试(原来的门)
sqlplus scott/tiger@wyzc.com:1522/wyzc10g
exit
远程连接测试(现在的门)
sqlplus scott/tiger@wyzc.com:1525/wyzc10g
exit

实现故障转移
vi /u01/oracle/10g/network/admin/tnsnames.ora

4.用户错误
用户无意中删除或修改了数据
方案:回退书屋出力及其从属事务处理或者回读表
用户删除了表
方案:从回收站回复表

eg1:模拟scott用户误删salgrade表,并从回收站中恢复
10g
sqlplus scott/tiger
删除salgrade表
drop table salgrade;
查看回收站中的表
show recyclebin
从回收站中回收salgrade表
flashback table salgrade to before drop;

eg2:用户做了错误的update操作,并且完成事务提交
模拟错误操作
update emp set sal=sal+1;
commit;
select sal,versions_starttime from emp versions between scn minvalue and maxvalue where empno=7566;
发现现有的sal比原来的sal多了1
alter table emp enable row movement;
flashback table mep to timestamp to_timestamp('07-JAN-14 04.46.05','dd-mon-yy hh24.mi.ss');
alter table emp diable row movement;
select sal from emp where empno=7566;

闪回技术
查看数据以前的状态
来回读取数据
协助用户执行错误分析和恢复
用于错误分析
Oracle闪回查询
Oracle闪回版本查询
Oracle闪回事务处理查询
用于错误恢复
Oracle闪回事务处理恢复
Oracle闪回表
Oracle闪回删除


5.实例故障
典型原因
断电、硬件故障、有一个关键后台进程出现故障、紧急关闭过程
方案:使用startup命令重新启动实例。从实力错误中进行恢复是自动执行的,包括前滚重做日志中的更改和回退和任何未提交的事务处理
通过使用预警日志、跟踪文件和Enterprice Manager调查出现错误的原因

了解实例恢复:重做日志文件和日志写进程
重做日志文件
记录对数据库进行的修改
应多路复用以避免文件丢失
日志写进程的写入时间为
提交时
三分之一已满时
在DBWn写入之前

实例恢复的阶段
·1数据文件不同步
·2前滚(重做)
·3文件中的提交和未提交数据
·4打开数据库
·5回退(还原)
·6文件中的提交数据

6.介质故障
磁盘驱动器故障
磁盘控制器故障
删除或损坏了数据库文件
可能方案:
1-从备份中还原受影响的文件
2-将新文件的位置通知给数据库(如果需要)
3-通过应用重做信息来恢复文件(如果需要)

首先应该配置可恢复性
要配置数据库的最大可恢复性,必须执行以下操作
·计划常规备份
·多路复用控制文件
·多路复用重做日志组
·保留重做日志的归档副本
配置快速恢复区
强烈建议使用,可简化备份存储文件
磁盘上的空间(与工作数据库文件分开)
位置有DB_RECOVERY_FILE_DEST参数指定
大小有DB_RECOVERY_FILE_DEST_SEZE参数指定
足够大,可存放备份、归档日志、闪回日志、镜像控制文件和镜像重做日志
保留策略自动进行管理
配置快速恢复区意味着确定了位置、大小和保留策略

多路复用控制文件
为了防范数据库故障,数据库文件应保存多个副本

查看多少个控制文件(都是一样的)
select name from v$controlfile;最好是分开存放
如果上面查看发现都在一个文件夹下,那么把上面的文件分开放几个就好了
mkdir /u01/oracle/flash_recovery_area/wyzc10g
修改参数文件
alter system set control_files='/u01/oracle/oradata/wyzc10g/control01.ctl','/u01/oracle/flash_recovery_area/wyzc10g/control02.ctl' scope=spfile;
shutdown immediate
ho cp /u01/oracle/oradata/wyzc10g/control01.ctl /u01/oracle/flash_recovery_area/wyzc10g/control02.ctl
startup
select name from v$controlfile;

在11g里面是自动默认分开存放的

控制文件也可以放在asm中,这样的话则一般删除不了控制文件中了

 

posted @ 2018-08-14 14:02  喝咖啡的土豆  阅读(115)  评论(0编辑  收藏  举报