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. BZOJ3669 (动态树)

    Problem 魔法森林 (NOI2014) 题目大意 给n个点,m条边的无向图,每条边有两个权值a,b. 求一条从1-->n的路径,使得这条路径上max(a)+max(b)最小.输出最小值即可 ...

  2. libev学习(一)

    一.libev简介 Libev是一个事件循环:你注册感兴趣的特定事件(比如一个文件可以读取时或者发生超时时),它将管理这些事件源,将这些事件反馈给你的程序.为了实现这些,至少要在你的进程(或线程)中执 ...

  3. CSS3 实现3D旋转木马效果

    基本原理: 1.首先我们需要让图片能旋转的效果,我们让所有图片绝对定位(position:absolute),共用一个中心点. 2.对于舞台我们加一个视距,比如下面的demo是 perspective ...

  4. maven不打包子模块资源文件

    在maven多模块项目中,对子模块中的测试文件不需要打包到目标项目中,以免产生影响.实现方法: 1. 将测试资源放在java/test/resources 目录下,mvn package默认不会将te ...

  5. linux标准io的copy

    ---恢复内容开始--- 1.linux标准io的copy #include<stdio.h> int main(int argc,char **argv) { if(argc<3) ...

  6. Hadoop YARN 100-1知识点

    0 YARN中实体 资源管理者(resource manager, RM) 长时间运行的守护进程,负责管理集群上资源的使用 节点管理者(node manager, NM) 长时间运行的守护进程,在集群 ...

  7. IOS常见异常捕获

    前言:在开发APP时,我们通常都会需要捕获异常,防止应用程序突然的崩溃,防止给予用户不友好的体验.其实Objective-C的异常处理方法和JAVA的雷同,懂JAVA的朋友一看就懂.我为什么要写这篇博 ...

  8. html EVENT对象

    Event 对象 Event 对象代表事件的状态,比如事件在其中发生的元素.键盘按键的状态.鼠标的位置.鼠标按钮的状态. 事件通常与函数结合使用,函数不会在事件发生前被执行! onabort 图像的加 ...

  9. fopen中r+和w+的区别

    r+: Open for reading and writing.  The stream is positioned  at  the beginning of the file. w+:Open ...

  10. 嵌套循环中break、continue的用法

    在循环语句中经常会用到break.continue语句,基本用法如下: 一.break语句为退出当前循环,在嵌套循环中结果如下: var num=0; for(var i=0;i<5;i++){ ...