首先,你得明白oracle的安全策略包括:oracle数据库的备份与恢复、用户角色管理!
一.oracle的备份
1. 数据库备份所使用的结构
Oracle数据库使用几种结构来保护数据:数据库后备、日志、回滚段和控制文件。
(1) 数据库后备是由构成Oracle数据库的物理文件的操作系统后备所组成。当介质故障时进行数据库恢复,利用后备文件恢复毁坏的数据文件或控制文件。
(2)每一个Oracle数据库实例都提供日志,记录数据库中所作的全部修改。每一个运行的Oracle数据库实例相应地有一个在线日志,它与Oracle后台进程LGWR一起工作,立即记录该实例所作的全部修改。归档(离线)日志是可选择的,一个Oracle数据库实例一旦在线日志填满后,可形成在线日志归档文件。归档的在线日志文件被唯一标识并合并成归档日志。
(3) 回滚段用于存储正在进行的事务(为未提交的事务)所修改值的老值,该信息在数据库恢复过程中用于撤消任何非提交的修改。
(4) 控制文件,一般用于存储数据库的物理结构的状态。控制文件中某些状态信息在实例恢复和介质恢复期间用于引导Oracle。
2. 备份方式
oracle备份包括逻辑备份和物理备份
(1)逻辑备份之imp/exp
将数据库中所有或指定对象导出成为数据库的备份文件,或将备份文件数据导入到数据库中,从而实现逻辑备份或数据迁移(跨平台)
[oracle@pizi ~]$ exp help=y --------------------------获取exp导出命令的使用方法
例如:
[oracle@pizi ~]$ exp pizi/pizi123 tables=test
SQL> drop table pizi.test;
[oracle@pizi ~]$ imp pizi/pizi123 full=y file=expdat.dmp
SQL> select count(*) from pizi.test;
COUNT(*)
----------
50574
exp/imp可在客户端或服务器端进行导入导出,oracle支持三种方式的输出:
<1>表方式(T方式)
<2>用户方式(U方式)
<3>全库方式(FULL方式)
(2)表空间模式传输(导入导出)
步骤:首先必须先判断你要传输的对象是否自我包含;接着才可以传输!
注意:system表空间不支持传输
例如,现在如果需要将users表空间导出。。。
<1>检查users表空间是否自我包含
SQL> execute dbms_tts.transport_set_check('users',incl_constraints=>true);
PL/SQL procedure successfully completed.
SQL> select * from transport_set_violations;
no rows selected ----------------->检查users表空间在外键上是否自我包含(即表上是否存在外键参考其他表空间中的对象)
SQL> execute dbms_tts.transport_set_check('users',full_check=>true);
PL/SQL procedure successfully completed.
SQL> select * from transport_set_violations;
no rows selected -------------------->查users表空间在外键属性以及索引属性上是否自我包含
<2>传输
SQL> alter tablespace users read only;
[oracle@pizi ~]$ exp \'sys/redhat as sysdba\' file=tb.dmp transport_tablespace=y tablespaces=users
------------------------> 这只是导出该表空间的结构信息
[oracle@pizi ~]$ cp /u01/app/oracle/oradata/ora10/users01.dbf /remote DB server
接着在目标服务器上进行imp导入
(3)逻辑备份之数据泵(DATA PUMP):expdp/impdp
数据泵相对于exp/imp来说有以下特点
> 速度更快
>支持断点续导
>可指定不处理的对象,或者只处理满足条件的对象
>仅能在服务端进行导出/导入
>与exp/imp不兼容
(4)数据装载sqlldr
用于将OS文件中的数据导入数据库
3.物理备份
物理备份又分为冷备份与热备份
(1)冷备份与热备份的区别
>冷备份需数据库处在正常关闭情况下(即所有的物理文件具有相同SCN时进行备份)而热备份在是在数据库正常运行时的在线备份
>冷备份即适用于archivelog,也适用于noarchivelog模式下;而热备份只能用于archivelog模式下
>冷备份只能把数据库恢复到某一个时间点上(即备份的那一刻:只需将备份拷贝即可恢复);而热备份可以将数据库从备份的那一刻到故障点之前的任一时间点上
>冷备份操作简单,低度维护却高度安全;而热备份的操作相对比较复杂。
(2)热备份
备份对象:数据文件 日志文件 控制文件
SQL> alter system archive log current;
SQL> alter tablespace system begin backup;
SQL> host cp /u01/app/oracle/oradata/ora10/system01.dbf /u01
SQL> alter tablespace system end backup;
。。。再依据此备份方法备份其他表空间。。。。
SQL> alter database backup controlfile to '/u01/control.bak';
SQL> alter database backup controlfile to trace;
SQL> alter system archive log current;
二,oracle的恢复
1.完全恢复
(1)非system表空间的数据文件被损坏
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26823568/viewspace-720406/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/26823568/viewspace-720406/