设为首页 收藏本站
查看: 807|回复: 0

[经验分享] Oracle 数据库备份与恢复 flashback database

[复制链接]

尚未签到

发表于 2016-8-6 14:18:05 | 显示全部楼层 |阅读模式
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 模式

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-253728-1-1.html 上篇帖子: Oracle B-tree 索引结构、如何存储及其优势 下篇帖子: oracle服务中各启动项代表的含义
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表