Oracle 数据库备份与恢复 flashback database
2014-09-06 12:39
405 查看
1. 检查归档和闪回是否已开启(sysdba 身份)
db_recovery_file_dest : 指定闪回恢复区的位置,需要提前手动创建好目录
db_recovery_file_dest_size : 指定闪回恢复区的可用空间大小
db_flashback_retention_target : 指定数据库可以回退的时间,单位为分钟,默认1天(1440分钟),配合db_recovery_file_dest_size一起使用,也就是说闪回恢复区要能够放得下在这段时间内所产生的需要回退的数据
3. 添加测试数据
# 参考
Oracle Flashback 技术 总结
ORA-00265: 要求实例恢复, 无法设置 ARCHIVELOG 模式
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(9.2.0.1)数据库(无备份数据文件进行恢复)
- Oracle完全攻略---数据库备份与恢复
- ORACLE 数据库RMAN备份恢复
- oracle 备份数据库 恢复数据库(导入已备份的数据) 用户级别
- Oracle 数据库的备份与恢复(逻辑、冷、热)
- Oracle 数据库的备份与恢复
- Oracle数据库的备份与恢复
- Oracle 数据库的备份与恢复
- oracle 数据库备份与恢复工具 AUL
- Oracle 数据库的备份与恢复
- Oracle 数据库的备份与恢复
- Oracle 数据库的备份与恢复,热备份和冷备份
- Oracle 企业管理器 数据库 备份恢复 步骤要点
- Oracle 数据库备份与恢复总结-exp/imp (导出与导入装库与卸库)
- 数据库复习日志oracle 10 g 数据库备份和恢复(1)
- Oracle 数据库的备份与恢复(转载)
- Oracle 数据库的备份与恢复
- Oracle 数据库的备份与恢复
- Oracle数据库的备份与恢复
- 如何对Oracle数据库文件进行恢复与备份