欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Oracle数据备份与恢复的配置

程序员文章站 2022-06-01 22:32:11
...

DBA的目标就是在减少MTTR(平均恢复时间即数据库出现失败后的停机,解决办法就是:实践、实践、实践!不断的进行仿真实验)和数据

数据库管理员最重要的工作可能是确保数据库不会丢失数据。无论DBA进行过任何操作,重做与撤销机制都能够保证数据库绝对不会出现讹误。但是,如果DBA没有做任何的预防措施,那么Oracle数据库仍然可能丢失数据,所以,我们必须通过配置Oracle数据库在任何情况下都不会有数据的损失,同时使其配置环境百分之百的可用。

DBA的目标就是在减少MTTR(平均恢复时间即数据库出现失败后的停机,解决办法就是:实践、实践、实践!不断的进行仿真实验)和数据损失(解决办法就是:Data Guard)的同时增加MTBF(平均失败时间即数据库出现失败的频繁度,解决方法就是:RAC和Streams)。

数据库失败原因各种各样:

语句失败,一条SQL语句也可能是由于多种原因失败的,例如无效数据(invalid data)是语句失败的常见原因,这种情况通常是由于违反了格式或完整性约束所造成的,DBA必须与用户一起处理问题,从而使数据正确有效,并且还必须与编程人员一起尝试自动进行这些处理;第二个原因是由于应用程序中的逻辑错误(logic error)组成,例如死锁、试图在父记录前插入一条子记录;空间管理(space management)问题是一个常见问题,同时又是一个不应该出现的问题,应当及时发现或预测空间的容量。

用户进程失败,用户的非登出的异常退出、终端的重启、导致地址违规的程序都可能导致用户进程失败,但是结果是相同的。PMON后台进程通过定时的轮询所有的服务器进程来确定会话的状态。如果某个服务器进程报告丢失了与其用户进程的联系,此时PMON进程会解决这个问题。

网络失败,DBA应该通过Oracle Net来杜绝网络失败,,注意三个方面:侦听器、网络接口卡及路由。

用户错误,就Oracle而言,其所关心的是事务。ACID测试中表示“持久性Durability”的“D”规定,一旦事务被提交,那么其他所有的用户都必须能够立刻看到所作的变化,并且这些变化是绝对不可逆的。不过对于DML(Data Manipulation Language 数据操作语言——用于检索或修改数据) 错误来说,用户在提交前发现的错误仍然有机会回滚,但是对于DDL(Data Definition Language 数据定义语言——用于定义数据的结构,如创建、修改或者删除数据库对象) 语句来说,用户无法回滚错的语句。解决的办法:

闪回查询 ,例如

--删除表emp 中的所有数据

delete from emp;

--提交事务

commit;

--查询结果为0

select count(*) from emp;

--插入5分钟之前的emp表中的数据

inset into emp select * from emp as of timestamp(syadata - 5/24/60);

--提交事务

commit;

--查询结果不为零

select count(*) from emp;

闪回删除,例如

--删除表emp

drop table emp;

--该表不存在

desc emp;

--闪回删除

flashback table emp to before drop;

--查询,该表存在

desc emp;

Log MinerC ,从联机和归档的重做日志中抽取信息的高级工具。Log Miner与闪回查询类似,但是Log Miner不受时间的限制,它是从重做日志中抽取撤销数据的,而闪回查询是当前存在于撤销段内的撤销数据。

介质失败,磁盘的损坏。利用控制文件、联机重做日志和数据文件进行数据库恢复。

实例失败(instance failure)是实例的无需关闭,通常称为崩溃(crash)。

Oracle数据备份与恢复的配置