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. CSS教程:div垂直居中的N种方法[转]

    在说到这个问题的时候,也许有人会问CSS中不是有vertical-align属性来设置垂直居中的吗?即使是某些浏览器不支持我只需做少许的CSS Hack技术就可以啊!所以在这里我还要啰嗦两句,CSS中 ...

  2. document与window的区别

    [window对象] 它是一个顶层对象,而不是另一个对象的属性,即浏览器的窗口. 属性 defaultStatus 缺省的状态条消息 document 当前显示的文档(该属性本身也是一个对象) fra ...

  3. 第七章 LED 将为我闪烁:控制发光二级管

    在上一章中了解到驱动程序的开发步骤,并一个实列来演示如何开发一个完整的驱动.但这个驱动只是简单的演示了实现步骤.真正的驱动需要与硬件直接进行相互交互.这节完整的演示驱动程序,控制开发板上的4个led灯 ...

  4. ios网络知识

    http://www.cocoachina.com/bbs/read.php?tid-31300.html  启蒙内容 http://blog.csdn.net/nono_love_lilith/ar ...

  5. 特殊的对象引用---$this

    只要是对象中的成员,必须使用这个对象($this)来访问到这个对象内部的属性和方法 特殊对象的引用$this就是再对象内部的成员方法中,代表本对象的一个引用,但智能在对象的成员方法中使用,不管是在对象 ...

  6. jsp的九大内置对象和四大作用域(转)

    定义:可以不加声明就在JSP页面脚本(Java程序片和Java表达式)中使用的成员变量 JSP共有以下9种基本内置组件(可与ASP的6种内部组件相对应): 1.request对象(作用域)  客户端的 ...

  7. Redis和Memcache的区别

    Redis和Memcache的区别 总结一: 1.数据类型 redis数据类型丰富,支持set liset等类型 memcache支持简单数据类型,需要客户端自己处理复杂对象 2.持久性 redis支 ...

  8. sql join,left join,rigt join

    left join :左连接,返回左表中所有的记录以及右表中连接字段相等的记录.right join :右连接,返回右表中所有的记录以及左表中连接字段相等的记录.inner join: 内连接,又叫等 ...

  9. Install Debian note

    environment: already install xp,win7 and win8PE, left 87G space to install Debian, this space not fo ...

  10. 【Summary】ANSYS TRANSIENT ANALYSIS

    1.4. Damping: https://www.sharcnet.ca/Software/Ansys/15.0.7/en-us/help/ans_str/Hlp_G_STR1D.html 8.7. ...