1.备份恢复
1.1.备份定义
备份就是把数据库复制到转储设备的过程。其中,转储设备是指用于放置数据库副本的磁带或磁盘。通常也将存放于转储设备中的数据库的副本称为原数据库的备份或转储。备份是一份数据副本
1.2.备份分类
从物理与逻辑的角度来分类:从物理与逻辑的,备份可以分为物理备份和逻辑备份。
-
物理备份:对数据库操作系统的物理文件(数据文件,控制文件和日志文件)的备份。物理备份又可以分为脱机备份(冷备份)和联机备份(热备份),前者是在关闭数据库的时候进行的,后者是以归档日志的方式对运行的数据库进行备份。可以使用
oracle
的恢复管理器(RMAN
)或操作系统命令进行数据库的物理备份。 -
逻辑备份:对数据库逻辑组件(如表和存储过程等数据库对象)的备份。逻辑备份的手段很多,如传统的
EXP
,数据泵(EXPDP
),数据库闪回技术等第三方工具,都可以进行数据库的逻辑备份。
从数据库的备份角度分类:从数据库的备份角度,备份可以分为完全备份、增量备份和差异备份。
-
完全备份:每次对数据库进行完整备份,当发生数据丢失的灾难时,完全备份无需依赖其他信息即可实现100%的数据恢复,其恢复时间最短且操作最方便。
-
增量备份:只有那些在上次完全备份或增量备份后被修改的文件才会被备份。优点是备份数据量小,需要的时间短,缺点是恢复的时候需要依赖以前备份记录,出问题的风险较大。
-
差异备份:备份那些自从上次完全备份之后被修改过的文件。从差异备份中恢复数据的时间较短,因此只需要两份数据:最后一次完整备份和最后一次差异备份,缺点是每次备份需要的时间较长。
1.3.恢复定义
恢复就是发生故障后,利用已备份的数据文件或控制文件,重新建立一个完整的数据库。
1.4.恢复分类
-
实例恢复:当
oracle
实例出现失败后,oracle
自动进行的恢复。 -
介质恢复:当存放数据库的介质出现故障时所作的恢复。介质恢复又分为完全恢复和不完全恢复。
-
完全恢复:将数据库恢复到数据库失败时的状态。这种恢复是通过装载数据库备份并应用全部的重做日志做到的。
-
不完全恢复:将数据库恢复到数据库失败前的某一时刻的状态。这种恢复是通过装载数据库备份并应用部分的重做日志做到的。进行不完全恢复后,必须在启动数据库时用
resetlogs
选项重设联机重做日志。
2.前提准备
数据准备,通过执行以下SQL
语句,快速完成100W
数据的创建工作。
-
方式一:通过
create table xxx as select
方式
create table t_userinfo as
select rownum as userid,
'user_'||rownum as username,'888888' as password,
'测试员'||rownum as realname,
to_char(sysdate + rownum/24/3600, 'yyyy-mm-dd hh24:mi:ss') as datetime,
trunc(dbms_random.value(0, 100)) as random_id,
dbms_random.string('x', 20) random_str
from dual connect by level <= 1000000;
-
方式二:通过
PL/SQL
脚本方式
declare
i number;
begin
for i in 1..1000000 loop
insert into t_userinfo values(i,'user_'||i,'888888','测试员'||i,
to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss'),
trunc(dbms_random.value(0, 100)),
dbms_random.string('x', 20));
commit;
end loop;
end;