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. Android 中onSaveInstanceState和onRestoreInstanceState学习

    1. 基本作用: Activity的 onSaveInstanceState() 和 onRestoreInstanceState()并不是生命周期方法,它们不同于 onCreate().onPaus ...

  2. js +1的动画效果

    var fnPlusAnimate = function(str, options){ if (typeof str === 'object') { options = str; str = unde ...

  3. mysql常用操作

    一.什么是数据库 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库. SQL( Structured Query Language)语言的全称是结构化查询语言.数据库管理系统通过S ...

  4. iOS中常用的设计模式

    常用的设计模式(一)代理模式应用场景:当一个类的某些功能需要由别的类来实现,但是又不确定具体会是哪个类实现.优势:解耦合敏捷原则:开放-封闭原则实例:tableview的 数据源delegate,通过 ...

  5. c#网络编程

    c#网络编程 1.system.net命名空间 DNS类:DNS类包含了许多的方法,总结起来常用的就是获取获取主机地址,获取主机名,根据地址 获取DNS主机信息,根据主机名获取DNS信息: IPadd ...

  6. jstl 标签库的使用

    JSTL 核心标签库 使用   JSTL 核心标签库标签共有13个,功能上分为4类: 1.表达式控制标签:out.set.remove.catch 2.流程控制标签:if.choose.when.ot ...

  7. ajax 页面加载

    大体说说思路,不上代码了: 1.点击加载更多-> ajax向后台传参(当前页page,必须有默认1,其他需要的参数...) 2.后台接收 -> 查询数据 处理形成 json数据 给前台 3 ...

  8. python未知网卡名情况下获取本机IP

    import socket def get_ip(): s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) try: # doesn't even ...

  9. AJAX原理及应用

    Ajax技术的核心是XMLHttpRequest对象(简称XHR),可以通过使用XMLHttpRequest对象获取到服务器的数据,然后再通过DOM将数据插入到页面中呈现.也就是javascript可 ...

  10. 打算从oschina的博客搬运到cnblog了

    如题,感觉cnblog似乎要更加专业一点,顺便也禁水.提高下文章质量 以后就都是干货了 oschina原址 顺便庆祝一下Windows Live Writer配置成功