Oracle 联机备份 脱机备份 物理备份 恢复

1.备份
指的是拥有数据库文件的有效副本,可以将数据库恢复到初始状态。在oralce数据库中,存在多种可以用来实现数据库文件备份的方法。

2.恢复
指的是将数据库返回到需要的状态,在某些状态下,数据的一些数据可能丢失或者破坏,那么DBA就需要将数据库重新设置或恢复到以前的某个时刻,这个时刻的数据是完整的正确的。

3.用户管理的备份和恢复是指不使用备份和恢复工具,只是通过操作系统的命令或者SQL语句进行操作

4.备份的分类
逻辑备份 物理备份
导出方式 脱机备份(冷备份) 联机备份(热备份)
优点 能够针对对象进行备份:能够通过跨平台实施备份并迁移数据库,而不需要关闭数据库 备份和恢复迅速,容易达到低维护,高安全性,执行效率高 备份时间短:备份是数据库仍可用,可达到秒级恢复,对于几乎所有数据对象都可以恢复
缺点 导出方式并不能保证介质失效,仅仅是逻辑上的备份 只能提供的到某一时间点的恢复,不能按表和用户恢复,必须关闭数据库 实现过程比较复杂,需要较大的空间存放归档文件,操作时候不允许失败,否则恢复不能进行
时机 一般用户有规律的日常备份 数据库可以暂时关闭,或者需要和联机备份配合使用 数据访问量小,需要实现表空间或者数据库文件级的备份,或者选哟更高精确备份时


5.物理备份
是将数据库的数据文件,重做日志文件和控制文件等,在操作系统中进行复制,这些备份也称作“文件系统备份”因为涉及到使用操作系统文件目录。
物理备份可以实现数据库的完整备份,但是数据库必须运行在归档模式下。
可以使用RMAN实用程序来执行所有的物理备份。


6.物理备份的种类
1.完全数据脱机备份:使用shutdown命令正常关闭数据时(也就是说不是由于数据库实例失效而关闭)会发生一致的脱机备份。完全数据库脱机备份是对数据中的全部数据文件,日志文件,控制文件。在数据库关闭的情况下进行操作系统备份
2.部分数据库脱机备份:可以在数据库关闭和运行时进行,将部分表空间切换到脱机状态后,将对应的数据文件进行备份。
3.部分数据联机备份:联机备份是在数据库正常运行时进行的,备份期间不会影响用户使用。部分数据库联机备份包括部分表空间、控制文件、数据文件和归档日志文件的备份,与完全数据库脱机备份相比,减少了备份的工作量。


7.物理备份的口令
文件类型 备份命令 示例
数据文件 操作系统命令 COPY c:\datafile1.dbf d:\datafile1.dbf,表示将目录c:\的datafile1.dbf文件复制到d:\目录下
日志文件 操作系统命令 COPY c:\logfile1.log d:\logfile1.log,表示将目录c:\的logfile1.log文件复制到目录d:\下
控制文件 SQL命令 ALTER DATABASE BACKUP CONTROLFILE TO confile1.ctl
初始化参数文件 SQL命令 CREATE PFILE SIDinit.ora FROM SPFLE
数据库逻辑对象(表、索引等) Export命令 Export system/password


8.完全数据库脱机备份
sqlplus-->conn sys/dba as sysdba //登录
select file_name,bytes form dba_data_files; //oracle所有的数据文件
select member from v$logfile; //oralce 的日志文件
select name from v$controlfile; //oracle 的控制文件
shutdown immediate;//关闭数据库
win+r  cmd
copy E:\app\admin|oradata\control01.ctl e:\app\backup\contro01.ctl //复制上面查询出来的所有数据文件,日志文件,控制文件。 
startup //启动数据库实例
//完毕


9.部分数据库脱机备份
//注意1:不能将system表空间执行这种操作。由于system表空间包含数据库的字典,而数据库存储了与数据库对象有关的所有信息。如果system表空间脱机,那么将无法识别任何数据对象,如 表,索引等
//注意2:模式对象不能跨表空间存储。例如:表 table1存储在tablespace1中,但是该表的一个索引存储在tablespace2中。如果表空间tablespace2被设置为脱机,没有对表空间tablespace1进行脱机设置。这时候,用户对表table1执行查询,并且需要索引时候,就发生了异常。要避免上述错误,可以将tablespac1也设置成脱机状态 或 对表 tabel1不进行任何DML操作。
select tablespace_name from dba_tablespaces; //oralce 所有的表空间 --不能system哦
//对其中的某个tablespace进行备份
select tablespace_name,file_name from dba_data_file where tablespace_name='TESTSPACE'; // 显示这个表空间的数据文件
alter TABLESPACE testspace OFFLINE; //使 testpace表空 脱机
win+r cmd  copy file_name  tofilename; //备份 上面表空间中的数据文件 file_name 上面查询出来的
alter TABLESPACE testspace online;


10.部分数据库的联机备份
//联机备份是在数据库打开的状态下进行的,在进行联机备份的同时,数据库仍然可以访问,用户有可能对数据进行修改和删除等操作,从而使得数据库文件之间存在不同步。在备份文件复制回数据库时,需要实施数据库恢复,所以这种方式只可以在归档模式下使用,在复制回备份文件后,必须使用归档日志进行数据库恢复。在进行部分数据库联机备份时,可以对一个指定表空间的所有数据文件进行备份,也可以对表空间中的某一个数据文件进行备份。
archive log list; //设置日志模式为 归档模式
alter TABLESPACE testspace begin backup; //将开始执行备份操作
select a.file#,a.checkpoint_change#,b.file_Name form b$datafile a,dba_data_files b where a.filed#=b.file_id; //可以看出 tablesapce下的所有数据文件 的检测点号为停止状态,其他文件的检测点好为正在进行的
shutdown immediate;//此步骤 不需要。如果此时关闭数据库 会报错 无法关闭, 文件xx设置了联机备份。
win+r cmd copy file_name tofilename; //对tablespace的所有数据文件进行备份
alter TABLESPACE testspace end backup;//结束联机备份。 中间间隔时间最好短,对数据库性能有影响。

11.用户管理的完全恢复机制
用户管理的完全恢复是指当数据文件出现介质失败时,使用操作系统命令转储数据文件,并使用SQL恢复命令执行重做日志和归档日志,最终将数据文件恢复到失败点之前的状态。对数据库进行完全恢复大致分为以下两个步骤:
(1)当发生介质故障后,利用备份文件来修复损坏或丢失的数据文件。
(2)修复数据文件后,因为被修复的数据文件与其他数据文件相比要
“旧”,所以这时数据库中的数据文件并不同步(文件头部信息中的检查点号
SCN不同)。由于数据文件之间不一致,数据库仍然无法打开,这时就需
要通过SQL命令,使用归档日志对数据库进行恢复。
完全数据库恢复的命令如下:
RECOVER DATABASE;//用于恢复数据库的多个数据文件,该命令只能在MOUNT状态下使用。
RECOVER TABLESPACE;//用于恢复一个或多个表空间的所有数据文件,该命令只能在OPEN状态下运行。
RECOVER DATAFILE;//用于恢复一个或多个数据文件,该命令可以在MOUNT状态和OPEN状态下运行。
//同时,可以指定数据文件的名称和数据文件的编号。例如:
recover datafile 4;
//也可以在RECOVER命令中指定归档日志位置,如下:recover from 'f:\oracle11g\orcl0025_069817.001' datafile 4;
//也可以在RECOVER命令中指定自动应用归档日志,如下:
recover automatic datafile 4;

12.不完全恢复机制
1.基于时间的恢复,也可以称为时间点恢复,它将数据库中已经提交的事务恢复到某个时间点为止。基于时间的不完全恢复过程中,对数据库文件应用日志记录时,将以时间为标记。
//例如,当用户执行了某个错误操作后,立即意识到该操作是错误的,并及时通知了DBA,则DBA根据用户指定的时间,将数据库恢复到该时间之前的状态。
基于时间的不完全恢复使用的语句如下:
RECOVER DATABASE UNTIL TIME time;
如果控制文件是利用备份修改的,那么必须在RECOVER语句中使用
USING BACKUP CONTROLFILE子句,如下:
RECOVER DATABASE UNTIL TIME time USING BACKUP CONTROLFILE;
例如:recover database until time '2009-07-10 10:35:58';

2.基于撤销的不完全恢复:在进行基于撤销的不完全恢复过程中,DBA需要对恢复过程进行控制,在某一个恢复点可撤销指定的操作。
//例如:当一个或多个联机日志文件由于介质故障被破坏,不能实施完全数据库恢复时,可以进行基于撤销的恢复,将数据库恢复到最近的、未破坏时的日志文件后中止恢复过程,数据库将从这一点开始重新运行。
基于撤销的恢复的使用语句如下:
RECOVER DATABASE UNTIL CANCEL; 
例如:recover database until cancel;

3.基于更改的恢复:最准确的恢复是基于更改的恢复,这种恢复方式使用SCN号信息。如果DBA确定引发错误的事务分配的SCN号后,可以将数据库恢复到该错误之间的事务。
基于更改的不完全恢复使用的语句如下:
RECOVER DATABASE UNTIL CHANGE scn_number;
例如:recover database until change 1074811;

你可能感兴趣的:(startup,OFFLINE online)