数据丢失
1、可以丢失的数据
未提交的事务所修改的数据块可以丢失
2、不能丢失的
已提交事务的数据块不能丢失
丢失的脏块可以通过日志找回来,current日志的最后一条为终点,起点为检查点队列的LRBA地址,已提交事务对应的脏块一定可以构造出来,而同时也可能构造出未提交的脏块,而oracle会回滚这些未提交事务。
数据库安全
语句错误
插入错误的数据
解决办法:确定数据类型,确定约束,通过应用层来检查
用户进程错误
连接和会话非正常关闭
解决办法:无需过多关心,pmon和server process会自动处理
网络错误
网络或监听出现问题
解决办法:网络冗余/链路冗余
用户错误
用户错误操作
解决办法:10g往后可以使用闪回查询/删除/数据库和不完全恢复技术,但是ddl内嵌commit无法回滚
实例崩溃
电源故障
解决办法:UPS/多路市电
硬件故障
解决办法:冗余/检测
介质错误
磁盘错误
解决办法:9i
其他建议:
根据用户需求来定制方案 99.99999999999% 99.999% 99.9999%
合理的方案一定要落实
该花的钱要花
管理员的责任
控制文件
解决办法:复用/备份
备份时机:
物理结构改变时备份
改变前和改变后各一份
RMAN备份时打开控制文件自动备份功能
open resetlogs后必须对控制文件进行备份
相关视图
V$CONTROLFILE
V$CONTROLFILE_RECORD_SECTION
V$PARAMETER
show parameter control
查看当前的控制文件
SQL> show parameter control_files;
查看控制文件中各个记录段
SQL> select type,record_size,records_total,records_used from v$controlfile_record_section;
关闭实例
SQL> shutdown immediate;
创建异地目录并复制控制文件
[oracle@localhost ~] mkdir/u01/app/data/controlfile−p[oracle@localhost ] m k d i r / u 01 / a p p / d a t a / c o n t r o l f i l e − p [ o r a c l e @ l o c a l h o s t ] cp /u01/app/oracle/oradata/orcl/control01.ctl /u01/app/data/controlfile/control03.ctl
生成静态参数文件并修改
SQL> create pfile from spfile;
添加新增的控制文件信息到参数文件
cd ORACLEHOME/dbs[oracle@localhostdbs] O R A C L E H O M E / d b s