Better to light one candle than to curse the darkness.

与其诅咒黑暗,不如点亮烛光!

1,用SQL备份数据库数据文件

  sqlplus / as sysdba

  archive log list; #查看归档日志状态

  show parameter dest_1 #查看归档日志文件路径

  alter system set log_archive_dest_1='location=/data/archive'; #更改归档日志路径,写在spfile里

  shutdown immediate

  startup mount #开启归档功能要在mount状态下

  alter database archivelog; #开启

  alter database open;

  archive log list; #查看

  alter system switch logfile; #手动切换redo日志组,会生成归档日志文件

  alter tablespace users begin backup; #备份users表空间

  set lines 300

  set pages 999

  col name for a45

  select checkpoint_change#,name from v$datafile; #users表空间检查点不同于其他

  alter system checkpoint; #更新检查点,只有users表空间不变,可以用系统命令拷贝文件

  cp users01.dbf /tmp/users01.dbf.bak

  create table scott.test002 tablespace users as select * from dba_objects;

  alter system switch logfile; /; /;

  insert into scott.test002 select * from scott.test002;

  commit;

  alter system switch logfile; /; /; /;

  alter tablespace users end backup; #结束备份并删除文件

  startup force #缺少数据文件报错

  cp /tmp/users01.dbf.bak /data/orcl/users01.dbf

   select checkpoint_change#,name from v$datafile;

  recover datafile 4; #利用归档日志回复数据文件缺失部分

  alter database open;

  select count(*) from scott.test002; #查看数据文件是否被恢复

总结:此种方法生产不实用。备份恢复必须开启归档日志,利用备份的静态文件+归档日志将数据库恢复到当前状态。

2,使用RMAN工具备份数据库

备份恢复参数文件

  rman target / #使用sys登录rman

  show all;

  report schema; #全备份大小根据所有表空间大小

  list backup; #查看备份

  backup spfile format '/data/backup/%U_%t.spfileora'; #备份参数文件

  mv spfileorcl.ora /tmp/spfileorcl.ora #模拟动态参数文件损坏

  mv initorcl.ora /tmp/initorcl.ora.bak #模拟静态参数文件损坏

  startup force #缺少参数文件,sql中无法启动

  startup #在rman中启动不使用参数文件  

  restore spfile from '/data/backup/Osrogned_1_1_931683789.spfileora'; #恢复参数文件

  注意:当数据库状态发生改变时,rman必须重新连接

备份恢复控制文件

  rman target /

  backup current controlfile format '/data/backup/%U_%t.controlctl'; #备份控制文件

  mv control01.ctl /tmp/control01.ctl.bak #模拟控制文件失效

  mv control02.ctl /tmp/control02.ctl.bak

  restore controlfile from '/data/backup/Otrogpec_1_1_931685836.controlctl';

  startup force

  alter database open resetlogs;

  rman target /

  recover database;

  注意:只要database状态发生变化,rman就要重新连接

备份数据库

  backup database format '/data/backup/%U_%t.datafiledbf';

  alter system switch logfile;

  rm -rf *.dbf #模拟数据文件丢失

  restore database;

  recover datafile 1;

  recover datafile 2;

  recover datafile 3;

  ..

  注意:包含了参数文件及控制文件

backup datafile 1 format '/data/backup/%U_%t.datafile1dbf'; #备份数据文件1号

backup tablespace users format '/data/backup/%U_%t.usersdbf'; #备份用户表空间

backup archivelog all format '/data/backup/%U_%t.archivelogdbf'; #备份归档日志

3,使用脚本全备份数据库

  vim rmanfull.scr

    run{

    allocate channel d01 type disk format '/data/backup/%U%tfull.dbf';

    backup incremental level 0 database include current controlfile;

    release channel d01;

    }

  vim rmanfull.sh

    source /home/oracle/.bash_profile

    rman target / cmdfile=/home/oracle/rmanfull.scr log=/home/oracle/rmanscr.log

  chmod 755 ./rmanfull.sh

  crontab -e #定时任务

    * * * * * /home/oracle/rmanfull.sh

4,全量备份+增量备份

  crontab -e

    * * * * 0 /home/oracle/rmanfull.sh

    * * * * 3 /home/oracle/rmanzl1.sh

    * * * * 1,2,4,5,6 /home/oracle/rmanzl2.sh

    * * * * * /home/oracle/archive.sh

  其他不变

    backup archivelog all;

    backup incremental level 1 database include current controlfile;

    backup incremental level 2 database include current controlfile;

  

  

  

  

  

  

  

  

  

Oracle补习班第九天的更多相关文章

  1. Oracle补习班第三天

    In every triumph, there's a lot of try. 每个胜利背后都有许多尝试 Oracle管理实例组件 主要组件分为两部分例程,与数据库: 例程分为两部分SGA跟进程: S ...

  2. Oracle补习班第四天

    Everything has its time and that time must be watched. 万物皆有时,时来不可失 1,管理参数文件 参数文件分两种spfile二进制文件和pfile ...

  3. Oracle补习班第五天

    Great minds have purpose,others have wishes. 杰出的人有着目标,其他人只有愿望 控制文件是小型二进制文件,只能在mount阶段新建 1,重做控制文件 alt ...

  4. Oracle补习班第七天

    Keep conscience clear, then never fear. 问心无愧,永无畏惧 服务端监听 lsnrctl status  #查看监听服务 netca #配置动态监听 lsnrct ...

  5. Oracle补习班第八天

    The best hearts are always the bravest. 心灵最高尚的人,也总是最勇敢的人. 1,权限.角色.与用户 创建用户 create user aa identified ...

  6. Oracle补习班第一天

    My life is a straight line, turning only for you. 我的人生是一条直线,为你转弯

  7. Oracle补习班第十天

    Life without love is like a tree without blossoms or fruit. 缺少爱的生活就像从未开花结果的枯树 RMAN备份工具 crosscheck ba ...

  8. Oracle课程档案,第九天

    lsnrctl status:查看监听状态 Oracle网络配置三部分组成:客户端,监听,数据库 配置文件:$ vi $ORACLE_HOME/network/admin/listener.ora v ...

  9. Mysql使用event,类似oracle job

    MySQL从5.1开始支持event功能,类似oracle的job功能.有了这个功能之后我们就可以让MySQL自动的执行数据汇总等功能,不用像以前需要操作的支持了.如linux crontab功能. ...

随机推荐

  1. ThinkPHP 自动验证相关注意

    1.假如加入了表单令牌的话,表单的各种名与对应Model字段一致,不然报坑爹的令牌错误. 2.假如加入了表单令牌的话,Create只能采用默认的POST数据创建数据对象,不然又是坑爹的令牌错误. 3. ...

  2. 【转】最佳Restful API 实践

    原文转自:https://bourgeois.me/rest/ REST APIs are a very common topic nowaday; they are part of almost e ...

  3. (转)如何处理iOS中照片的方向

    如何处理iOS中照片的方向 31 May 2015 • 7 min. read • Comments 使用过iPhone或者iPad的朋友在拍照时不知是否遇到过这样的问题,将设备中的照片导出到Wind ...

  4. Android常见的控件

    1.Log类的使用 (1)Log.v()    v是verbose  提醒的意思 (2)Log.d()   d是debug调试 (3)Log.i()    i是info信息的意思 (4)Log.w() ...

  5. 第三个Sprint冲刺事后诸葛亮报告

    用户反馈:还好吧. 用户数量:4 团队改进建议:思维局限太大,技术需要革新. 1.每个成员第一个sprint阶段有何需要改进? 成员 需要改进 邵家文 需要提高自己的工作效率,与创新能力,解决问题的能 ...

  6. linux git 推送空文件夹

    /********************************************************************************* * linux git 推送空文件 ...

  7. SQLite数据库使用

    最近在查看一些关于数据库的相关文档博客写写总结,以防下次自己又忘啦  哈哈 首先,安卓是有给我们提供一个帮助类SQLiteOpenHelper,这个类我们一般需要实现3个方法,哈哈这个编译工具是会提示 ...

  8. java IO基础操作

    java IO基础,通熟易懂,好久没复习java 基础了.这里是传送门... http://www.cnblogs.com/nerxious/archive/2012/12/15/2818848.ht ...

  9. UVa 221城市正视图(离散化)

    https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. Tomcat 在mac中Operation not permitted

    5.执行/Library/Tomcat/bin下的startup.sh,然后打开http://localhost:8080查看是否Tomcat已经启动,若要停止服务器就运行同目录下的shutdown. ...