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数据库备份与恢复知识点详解 #### 一、备份与恢复基础 在Oracle数据库的运维过程中,备份与恢复是至关重要的环节,它们确保了数据的安全性和业务的连续性。备份通常指的是将数据库中的数据和控制信息...
本资源“Oracle数据库备份与恢复之完全攻略”提供了一份详尽的指导,涵盖了Oracle数据库的备份、还原过程及注意事项。 一、Oracle数据库备份类型 1. **完整备份**:包括数据库的所有数据文件、控制文件、参数文件...
在Oracle数据库管理中,备份与恢复是至关重要的环节,它关系到数据的安全性和系统的稳定性。Oracle提供了多种备份和恢复策略,以确保在面临硬件故障、软件错误或人为误操作时,能够快速有效地恢复数据。本测试案例将...
此外,Oracle还提供了Flashback Technology,包括Flashback Database和Flashback Transaction,这些功能可以在不进行传统备份的情况下快速恢复到某个时间点。 SQL Server的备份则主要依靠SQL Server Management ...
ORACLE 数据库备份和恢复 Oracle 数据库备份和恢复是 Oracle 数据库管理员的一项重要任务。备份和恢复操作可以确保数据库的安全和可靠性。本文将向您介绍如何通过 Enterprise Manager 执行 Oracle 数据库备份和恢复...
在Oracle数据库管理中,备份与恢复是至关重要的环节,它确保了数据的安全性和系统的稳定性。小布老师的"Oracle数据库备份和恢复系列06"视频教程...记得理论与实践相结合,才能真正掌握Oracle数据库备份和恢复的精髓。
在本"Oracle数据库备份和恢复系列08"中,小布老师将深入讲解如何确保Oracle数据库的安全性,通过有效的备份策略和恢复技术来应对可能出现的数据丢失或系统故障。 一、Oracle数据库备份的重要性 数据库备份是防止...
Oracle11g 数据库备份与还原是数据库管理中非常重要的一部分,掌握备份与还原技术可以帮助数据库管理员快速恢复数据库,减少数据丢失的风险。本文将详细介绍 Oracle11g 数据库备份与还原的方法和技术。 一、RMAN ...
Oracle数据库是全球广泛使用的大型企业级关系型数据库管理系统,它提供了强大的数据管理能力和高可用性方案,以及性能优化和备份恢复策略。本资料主要聚焦在Oracle数据库的进阶主题,包括高可用性、性能优化和备份...
以下将详细介绍Oracle数据库备份与恢复的基本步骤和方法。 1. **备份类型** - **完整备份**:包括所有数据文件、控制文件、redo日志文件以及初始化参数文件等。 - **增量备份**:基于前一次全备或增量备份,只...
Oracle 12c 数据库备份和恢复概述.pdf Oracle 12c 用户管理的备份和恢复.pdf Oracle 12c SCN详解.pdf Oracle 12c RMAN备份与恢复数据库.pdf Oracle 12c EXPDP和IMPDP指令详解.pdf Oracle 12c EXP和IMP指令详解.pdf
首先,我们需要理解Oracle数据库备份的几种类型。最基本的备份方式包括物理备份(如使用RMAN,即恢复管理器)和逻辑备份(如使用SQL*Plus的`EXPDP`和`IMPDP`工具)。物理备份直接复制数据库的数据文件、控制文件和...
以下是对Oracle数据库备份与恢复的详细阐述。 1. **备份类型** - **完整备份**:包括数据库的所有数据文件、控制文件、重做日志文件等,是最全面的备份方式。 - **增量备份**:基于上一次全备份或增量备份,只...
Oracle Cloud Infrastructure提供了全面的云数据库服务,包括完全托管的Oracle数据库服务、 Autonomous Database(自主数据库)等,简化了数据库的部署、管理和维护。 八、最新发展与趋势 Oracle持续创新,如In-...
本案例可能详细描述了一个完整的Oracle数据库备份恢复流程,包括以下步骤: 1. **规划备份策略**:确定备份频率、类型(完整、增量或差异)、保留期限和存储位置。 2. **配置RMAN**:设置RMAN连接、目标数据库和...
4. 数据备份与恢复:Oracle提供RMAN(恢复管理器)进行数据库备份,通过`BACKUP`命令创建备份集,`RESTORE`和`RECOVER`命令用于数据恢复。 三、Oracle应用系统开发 1. SQL编程:SQL用于查询、插入、更新和删除...
2. **RMAN(Recovery Manager)**:Oracle提供的专用备份恢复工具,支持自动备份、增量备份、多目标备份,还能与其他备份软件集成,是Oracle数据库备份的首选。 3. **归档模式与非归档模式**:归档模式下,Oracle...
### Oracle备份与恢复知识点概述 #### 一、Oracle备份与恢复的重要性 在现代企业环境中,Oracle数据库被广泛...以上知识点涵盖了Oracle备份与恢复的关键方面,为企业级Oracle数据库管理员提供了全面的指导和支持。
五、数据库备份与恢复 1. RMAN(Recovery Manager)备份:使用RMAN进行完整数据库、表空间或数据文件的备份,支持增量和差异备份。 2. 归档日志模式:在归档日志模式下运行数据库,以实现全面的数据保护。 3. ...
在本篇文章中,我们将深入探讨Flashback在Oracle数据库中的应用,以及如何利用它来恢复被删除的表。 首先,`FLASHBACK TABLE`是Oracle Flashback技术的一个关键组件,它用于恢复整个表到先前的状态。当用户意外地...