备份和恢复

相关操作视频: http://pan.baidu.com/share/link?shareid=492078&uk=3912660076

一、.使用EM恢复数据库

  不在这里赘述了,嘿嘿.......

如果数据库在备份时处于“打开”状态,则在备份之前将关闭并装载它。在备份完毕之后再打开数据库。

  完全备份:将所有数据备份到备份集中,只跳过那些从未使用过的数据文件块;

  增量备份:则只备份上次备份后发生变化的数据 

  ARCHIVELOG模式有如下特点:可以进行热备份,所谓热备份指在数据库打开状态下进行 的备份;可以恢复至指定的时间点,但必须为日志提供空间;

  NOARCHIVELOG模式有如下特点:只能进行冷备份,所谓冷备份指数据库以MOUNT方式打开时,对目标数据库进行备份;不能恢复到指定的时间点上;在数据库损坏时可能会丢失数据。

二、.RMAN技术

  备份片(Backup pieces)

  备份集合(Backup sets)

  通道(channel)

  多文件备份(File multiplexing)

  全备份集合(Full backup sets)

  镜像复制(Image copies)

  增量备份集合(Incremental backup sets)

  恢复目录(catalog)

  恢复目录同步(Recovery catalog resyncing)

特此说明的是 RMAN是和SQLPLUS一个级别的

 @@@@@@@@@@@@@@RMAN@@@@@@@@@@@@

 1.将数据库设置为归档日志模式

  必须满足以下条件

    1)以SYSDBA的身份登录,变更登录用户:connect sys/oracle as sysdba    

    2)关闭数据库:shutdown immediate

    3)启动数据库,但不打开实例:startup mount

    4)切换实例为归档日志模式了:alter database archivelog; 

 2.创建恢复目录所使用的表空间

  需要创建表空间存放与RMAN相关的数据:alter database open;

 

 3.创建RMAN用户并授权

 4.创建恢复目录

   首先连接到:

      恢复目录数据库:一种

 

                  另一种:

 

                  第三种(不能用Conn)

这上下两副图该怎么区分呢?一个没有密码的输入如何连接到目标数据库了!!!难道存在类似于密码Session的文件吗?还是其他,疑问中。。。。(资历尚浅)

     然后创建恢复目录:

 5.注册目标数据库

 

6.run命令定义一组要执行的RMAN备份语句

    全数据库备份:

     单独备份归档日志文件:

 

     要恢复归档日志信息,可以使用如下命令:

 

 

 @@@@@@@@@@@@@@@@@@@@@@@@@@

 三、闪回(Flashback)技术

   闪回恢复区是用来存储恢复相关文件的存储空间:
     目录。
     文件系统。
     自动存储管理(ASM)磁盘组。
  可以在闪回恢复区中存储如下几种文件:
     控制文件。
     归档的日志文件。
     闪回日志。
     控制文件和 SPFILE 自动备份。
     RMAN 备份集。
     数据文件拷贝。

 @@@@@@@@@@@@Flashback@@@@@@@@@@@@@

 1.设置数据库为闪回数据库

 

   假如现在你辛辛苦苦建立了一张珍贵的表,然后,一个笨蛋触发了一个病毒,把这张表删了。

 

     你可以用下面的语句恢复这张表。注意时间!!!

 

 

   ———————————闪回表——————————————————

 Flashback table <表名>
To [before drop [rename to <表别名>]] | [scn | timestamp ] <表达式> [Enable | disable triggers];

假如表的结构已经损坏。。。

 

 现在开始对表进行闪回。。。。。。。。。。。。。

 @@@@@@@@@@闪回回收站@@@@@@@@@@@@

删除回收站中的数据,使用Purge命令
  Purge table t1;
清空回收站
  Purge dba_recyclebin


  若是普通用户,用purge recyclebin清空回收站

 闪回查询(Flashback Query)

闪回查询可以查询指定时间点时表中的数据
要实现闪回查询,必须将初始化参数UNDO_MANAGEMENT设置为AUTO,这是此参数的默认值。
初始化参数UNDO_RETENTION决定了能往前闪回查询的最大时间,值越大可以往前闪回查询的最大时间越长,但占用的磁盘空间也越大。

 

闪回版本的查询。
(1)首先创建一个测试用的表test,它由一个number类型字段score组成。
    11:28:47 SQL> create table test (score number);
表已创建。
(2)在表中插入一条记录。
    11:29:06 SQL> insert into test values(100);
已创建 1 行。
    11:29:13 SQL> commit;
提交完成。
(3)更新表中的数据。
    11:29:15 SQL> update test set score=110 where score=100;
已更新 1 行。
    11:29:28 SQL> commit;
提交完成。
(4)删除表中的数据。
    13:32:13 SQL> delete from test where score>0;
已删除 1 行。
    13:32:24 SQL> commit;
提交完成。
(5)使用闪回版本查询。
    11:29:45 SQL> select versions_starttime, versions_operation, score
    11:29:52   2  from test versions between timestamp minvalue and maxvalue;

 闪回事务查询 

闪回事务保存表flashback_transaction_query

  13:52:23 SQL> select table_name,undo_sql from flashback_transaction_query where rownum<3;


原文地址:https://www.cnblogs.com/wjshan0808/p/3114391.html