冷备份与热备份
冷备份是在数据库关闭后进行的备份,热备份是数据库服务器还在运行所进行的备份。
数据库处于非归档模式,只能进行冷备份,数据库处于归档模式,既可以冷备份又可以热备份。
物理备份与逻辑备份
物理备份是备份数据库相关文件,逻辑备份是对数据进行导出。
完全备份与增量备份
完全备份以为着把整个数据库、或者一个表空间,或者一个数据文件中的数据全部备份下来。
增量备份以为着把整个数据库、或者一个表空间,或者一个数据文件在一段时间内被修改的数据备份下来。
完全备份与增量备份通过备份级别来体现,备份级别分为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;