数据库备份与恢复

冷备份与热备份

冷备份是在数据库关闭后进行的备份,热备份是数据库服务器还在运行所进行的备份。

数据库处于非归档模式,只能进行冷备份,数据库处于归档模式,既可以冷备份又可以热备份。


物理备份与逻辑备份

物理备份是备份数据库相关文件,逻辑备份是对数据进行导出。


完全备份与增量备份

完全备份以为着把整个数据库、或者一个表空间,或者一个数据文件中的数据全部备份下来。

增量备份以为着把整个数据库、或者一个表空间,或者一个数据文件在一段时间内被修改的数据备份下来。


完全备份与增量备份通过备份级别来体现,备份级别分为5种,其中0位完全备份,级别1~4为增量备份。


完全恢复与不完全恢复

完全恢复是把数据库恢复到故障发生时间点。不完全恢复只能把数据库恢复到过去某一个时间点。


日志模式对备份恢复的影响

归档模式有更多的优点,所以生产系统的数据库都应该处于归档模式。


那些文件需要备份

数据文件是重点备份的,

控制文件需要备份,在是数据库投入生产的时候进行一次备份,以后只要数据库的结构有变化,就应该及时备份控制文件。

参数文件需要备份一次

重做日志文件一般不需要备份

归档日志可以考虑进行备份。


控制文件的备份与恢复

在跟踪文件中产生一条CREATE CONTROLFILE语句

ALTER DATABASE BACKUP CONTROLFILE TO TRACE/'指定位置';

实例启动到NOMOUNT状态,执行上面的SQL语句--->ALTER DATABASE OPEN

或者把产生的映像文件复制到控制文件以前所在的每个位置,并把文件名称更改为以前的名称,通过以下方式打开数据库。

ALTER DATABASE OPEN RESETLOGS;


数据文件的备份

SYSTEM或SYSAUX表空间:只需要备份一次

UNDO表空间:不需要备份

临时表空间:不需要备份

只读表空间:不需要备份

数据表空间:需要频繁备份


对表空间进行备份的方式

首先在DBA_DATA_FILES中查询表空间中所包含的数据文件,然后在SQLPLUS下面执行命令

ALTER TABLESPACE USER BEGIN BACKUP;

在操作系统中将表空间中的数据文件复制到存储介质上,借助操作系统的复制命令或备份命令。

ALTER TABLESPACE USER END BACKUP;


数据库的完全恢复

数据库处于归档模式,可以在实例的OPEN或者MOUNT状态对数据库进行恢复

确定损坏的数据文件方法是  查看动态性能视图V$RECOVER_FILE,或者查看警告文件、跟踪文件


确定后,需要将表空间或者数据文件的状态转为OFFLINE,然后进行恢复。

ALTER TABLESPACE USERS OFFLINE;

ALTER DATABASE DATAFILE 2 OFFLINE;数据文件的编号可以从DBA_DATA_FILES中获得。

恢复包括两个过程RESTORE和RECOVER

RESTORE:备份的数据文件复制到数据文件原来的位置,覆盖原来的数据文件。需要手工完成

RECOVER:在RESTORE的基础上,利用重做日志重新产生最后一段时间的数据,这样数据就恢复到发生故障的时间点了。

RCOVER TABLESPACE USER;或者  RECOVER DATAFILE 2;

再将数据文件置于ONLINE状态.


如果要对SYSTEM表空间或者整个数据库进行恢复,需要把实例转入MOUNT状态,这是因为数据库正常运行时,无法将表空间SYSTEM转入OFFLINE状态。

recover --》open


FLASHBACK技术在数据库恢复中的应用

使用FLASHBACK的前提是第一,数据库处于归档日志模式,第二,参数文件中通过DB_RECOVERY_FILE_DEST和DB_RECOVERY_FILE_DEST_SIZE指定一个快速恢复区的路径和大小。


以SYS用户登录实例,执行ALTER DATABASE FLASHBACK ON;

利用FLASHBACK查询表再过去某个时刻的数据

SELECT * FROM 表名  AS OF TIMESTAMP TO_TIMESTAMP('','yyyy-mm-dd');

恢复之前,需要在表上执行  ALTER TABLE 表名 ENABLE ROW MOVEMENT;


在恢复数据库中FLASHBACK DATABASE TO (BEFORE) TIMESTAMP TO_TIMESTAMP('*****','YYYY-MM-DD');


回收站的应用

ALTER SYSTEM SET RECYCLEBIN=ON/OFF;


RECYCLEBIN/USER_RECYCLEBIN/DBA_RECYCLEBIN


FLASHBACK TABLE  表名或回收站中表名  TO BEFORE DROP;








你可能感兴趣的:(数据库备份与恢复)