`
dyccsxg
  • 浏览: 201730 次
  • 性别: Icon_minigender_1
  • 来自: 青岛
社区版块
存档分类

Oracle 数据库备份与恢复 flashback database

 
阅读更多
1. 检查归档和闪回是否已开启(sysdba 身份)
SQL> select name, log_mode, flashback_on from v$database;
NAME      LOG_MODE     FLASHBACK_ON
--------- ------------ ------------------
ORCL      NOARCHIVELOG NO
SQL> archive log list;
数据库日志模式             非存档模式
自动存档             禁用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     8
当前日志序列           10
SQL> show parameter db_recovery_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:\oracle\product\10.2.0/flash_recovery_area
db_recovery_file_dest_size           big integer 1G
SQL>  
2. 如果归档和闪回没有开启,则需要开启(sysdba 身份)
SQL> select name, log_mode, flashback_on from v$database;
NAME      LOG_MODE     FLASHBACK_ON
--------- ------------ ------------------
ORCL      NOARCHIVELOG NO
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  452984832 bytes
Fixed Size                  1249512 bytes
Variable Size             130027288 bytes
Database Buffers          314572800 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> alter database archivelog;
数据库已更改。
SQL> alter database flashback on;
数据库已更改。
SQL> alter system set db_recovery_file_dest='D:/Oracle/flash_recovery_area' scope=both;
系统已更改。
SQL> alter system set db_recovery_file_dest_size=2G scope=both;
系统已更改。
SQL> alter system set db_flashback_retention_target=2880 scope=both;
系统已更改。
SQL> select name, log_mode, flashback_on from v$database;
NAME      LOG_MODE     FLASHBACK_ON
--------- ------------ ------------------
ORCL      ARCHIVELOG   YES
SQL> archive log list;
数据库日志模式            存档模式
自动存档             启用
存档终点            USE_DB_RECOVERY_FILE_DEST
最早的联机日志序列     9
下一个存档日志序列   11
当前日志序列           11
SQL> show parameter db_recovery_file_dest;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_recovery_file_dest                string      D:/Oracle/flash_recovery_area
db_recovery_file_dest_size           big integer 2G
SQL> show parameter db_flashback;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
db_flashback_retention_target        integer     2880
SQL> alter database open;
数据库已更改。
SQL>  
# 备注
db_recovery_file_dest : 指定闪回恢复区的位置,需要提前手动创建好目录
db_recovery_file_dest_size : 指定闪回恢复区的可用空间大小
db_flashback_retention_target : 指定数据库可以回退的时间,单位为分钟,默认1天(1440分钟),配合db_recovery_file_dest_size一起使用,也就是说闪回恢复区要能够放得下在这段时间内所产生的需要回退的数据
3. 添加测试数据
SQL> conn scott/tiger
已连接。
SQL> create table t1(id int, name varchar2(10));
表已创建。
SQL> create table t2(id int, name varchar2(10));
表已创建。
SQL> insert into t1(id, name) values(1, 'a');
已创建 1 行。
SQL> insert into t2(id, name) values(2, 'b');
已创建 1 行。
SQL> commit;
提交完成。
SQL> create or replace procedure p1
  2  is
  3  begin
  4    dbms_output.put_line('======= p1 =======');
  5  end;
  6  /
过程已创建。
SQL> select * from t1;
        ID NAME
---------- ----------
         1 a
SQL> select * from t2;
        ID NAME
---------- ----------
         2 b
SQL> set serveroutput on;
SQL> execute p1;
======= p1 =======

PL/SQL 过程已成功完成。
SQL>  
4. 修改测试数据
SQL> conn scott/tiger
已连接。
SQL> select to_char(sysdate, 'yyyy-mm-dd hh24:mi:ss') time from dual;
TIME
-------------------
2014-09-06 12:17:26
SQL> delete from t1;
已删除 1 行。
SQL> alter table t2 add age int default 20;
表已更改。
SQL> drop procedure p1;
过程已删除。
SQL> commit;
提交完成。
SQL> select * from t1;
未选定行
SQL> select * from t2;
        ID NAME              AGE
---------- ---------- ----------
         2 b                  20
SQL> set serveroutput on;
SQL> execute p1;
BEGIN p1; END;

      *
第 1 行出现错误:
ORA-06550: 第 1 行, 第 7 列:
PLS-00201: 必须声明标识符 'P1'
ORA-06550: 第 1 行, 第 7 列:
PL/SQL: Statement ignored
SQL>  
5. 恢复数据库到修改之前
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  452984832 bytes
Fixed Size                  1249512 bytes
Variable Size             134221592 bytes
Database Buffers          310378496 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> select sum(percent_space_used)/100 from v$flash_recovery_area_usage;
SUM(PERCENT_SPACE_USED)/100
---------------------------
           .0131
SQL> flashback database to timestamp to_timestamp('2014-09-06 12:17:26', 'yyyy-mm-dd hh24:mi:ss');
闪回完成。
SQL> alter database open resetlogs;
数据库已更改。
SQL> conn scott/tiger
已连接。
SQL> select * from t1;
        ID NAME
---------- ----------
         1 a
SQL> select * from t2;
        ID NAME
---------- ----------
         2 b
SQL> set serveroutput on;
SQL> execute p1;
======= p1 =======

PL/SQL 过程已成功完成。
SQL>  
6. 关闭闪回和归档
SQL> conn / as sysdba
已连接。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。

Total System Global Area  452984832 bytes
Fixed Size                  1249512 bytes
Variable Size             134221592 bytes
Database Buffers          310378496 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
SQL> alter database flashback off;
数据库已更改。
SQL> alter database noarchivelog;
数据库已更改。
SQL> select name, log_mode, flashback_on from v$database;
NAME      LOG_MODE     FLASHBACK_ON
--------- ------------ ------------------
ORCL      NOARCHIVELOG NO
SQL> alter database open;
数据库已更改。
SQL>  

# 参考
Oracle Flashback 技术 总结
ORA-00265: 要求实例恢复, 无法设置 ARCHIVELOG 模式
分享到:
评论

相关推荐

    Oracle 12c-备份恢复学习实践手册合集

    Oracle 12c 数据库备份和恢复概述.pdf Oracle 12c 用户管理的备份和恢复.pdf Oracle 12c SCN详解.pdf Oracle 12c RMAN备份与恢复数据库.pdf Oracle 12c EXPDP和IMPDP指令详解.pdf Oracle 12c EXP和IMP指令详解.pdf

    大话OracleRAC集群高可用性备份与恢复

    第二部分是实践篇,每一章都针对RAC的一个知识点展开讲解,包括Oracle Clusterware的维护、HA与LB、备份、恢复、Flashback家族、RAC和Data Guard的结合使用、RAC和Stream的结合使用,最后对ASM进行深入介绍,并给出...

    oracle 12c 数据库 教程

    (六)Oracle 数据库备份的解决方案 89 二、闪回 90 (一)什么是闪回 Flashback? 90 (五)闪回查询:Flashback Query 91 (六)闪回版本查询:Flashback Version Query 92 (七)闪回表:Flashback Table 93 (八...

    《大话Oracle RAC:集群 高可用性 备份与恢复》

     《大话Oracle RAC:集群 高可用性 备份与恢复》可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。

    数据库原理及应用A实验报告(实验四——数据库恢复与安全性)

    掌握oracle数据库逻辑备份方法 掌握oracle数据库恢复的方法 学会使用exp备份数据库、使用imp恢复数据库 了解flashback 的使用 学会使用PLSQL/developer工具完成导入导出 掌握ORACLE中有关用户创建的方法...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part1/2

     本书所提供的专业知识可以帮助读者管理灵活的、高可用性的Oracle数据库。本书对上一版本进行了全面的修订,涵盖了每个新特性和实用工具,展示了如何实施新的安装、更新以前的版本、最高效地配置硬件和软件、以及...

    Oracle.Database.11g.DBA手册.完整中文 (97M) part2/2

     本书所提供的专业知识可以帮助读者管理灵活的、高可用性的Oracle数据库。本书对上一版本进行了全面的修订,涵盖了每个新特性和实用工具,展示了如何实施新的安装、更新以前的版本、最高效地配置硬件和软件、以及...

    oracle truncate恢复工具

    PRM可以在无备份的情况下恢复被truncated/drop掉的表,也可以恢复无法打开的Oracle数据库(Alter Database Open失败)中的数据。 PRM是图形化增强版的Oracle DUL工具,同时具备很多Oracle DUL不具备的特性 情况 当某...

    大话oracle rac

    《大话Oracle RAC集群、高可用性、备份与恢复》可以作为数据库开发人员、数据库管理员、数据库初学者及其他数据库从业人员的工作参考手册,也可以作为大中专院校相关专业师生的参考用书和相关培训机构的培训教材。

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第2/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

    OCPOCA认证考试指南全册:Oracle Database 11g(1Z0-051,1Z0-052,1Z0-053)--详细书签版(第1/2部分)

     Bob Bryla是Oracle 9i和10g的认证专家,他在数据库设计、数据库应用程序开发、培训和Oracle数据库管理等方面拥有20多年的工作经验,他也足Dodgeville的Land'End公司的首席Internet数据库设计师和Oracle DBA. ...

Global site tag (gtag.js) - Google Analytics