首先感谢junsansi和leshani两位大师的文笔;我可是好好看了很多遍;这两位哦;我跟你们说;对rman的解说那是相当精彩;文章形如流水,通俗易懂;内容那是入木三分...;好了我也不多说了,反正我现在也词穷了;对一个语文不及格的来说;说了这么多成语也不容易;××费就不收你们的了;说真的很感谢这两位;反正我对rman相当的研究了。rman:(Recovery Manager);顾名思义那就是一个备份/恢复的工具;同时对迁移,克隆也是一把好手。说到迁移...DG好像有话说;暂时不让它说。

对oracle数据库备份/恢复;

  • 备份还是采用rman备份的好;原因吗?因为rman就是用来备份+恢复的工具。哦???。
  1. rman只备份oracle用到过的数据块;可以跳过未使用的数据块;这样备份集比“物理备份”要少;比逻辑备份我就不说了
  2. 它能够备份整个数据库或数据库部件,如表空间、数据文件、控制文件、归档文件以及Spfile参数文件。

好处当然不只1-2点;容你慢慢去学习。

  • 至于恢复吗

尽量使用flase database去恢复;如这恢复不了(这是要看你能够闪回的最晚时间;或者是文件丢失)。才去用rman去恢复。

有了完整的备份;一起都是浮云;这话说的有点大?但是备份还是不能少;

下面是一些笔记(挑选);至于详细大家还是去看他们的博客;我这就不复制了。

1.  alter system switch logfile 和 alter system archive log current 区别和含义:
alter system switch logfile 是强制日志切换,不一定就归档当前的重做日志文件(若自动归档打开,就归档前的重做日志,若自动归档没有打开,就不归档当前重做日志。)
alter system archive log current 是归档当前的重做日志文件,不管自动归档有没有打都归档。

2.  备份控制文件

RMAN> backup current controlfile;

SQL>alter database backup controlfile to trace as '/data/control01.txt';
3. 密码文件
orapwd file=<fname> password=<password> entries=<users> force=<y/n>
orapwd file=orapwSY5221 password=oracle force=y entries=10            --force=y:表示允许覆盖原密码文件
 
4. 如何查找dbid
   rman target /
  SQL> select dbid from v$database;
 
5. filesperset 和 maxpiecesize的含义
   filesperset: 允许备份集文件最多有多少个。
   maxpiecesize  :允许备份集最大有多少

学习rman;至少要了解oracle体系结构(必要条件);里面的参数重在理解;能灵活运用。
例如;就三思出的那个定时备份的题目来说;我写的脚本就是这样的;
run{
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 14 DAYS;
allocate channel c1 type disk;
backup database format 'f:\oracle\backup\back_%U' plus archivelog delete all input;
delete noprompt obsolete;
release channel c1;
}
还是那句话重在理解;能灵活运用。就行。
最后奉送一个备份脚本;很完善的rman备份脚本

 #!/bin/bash
 # User specific environment and startup programs  

 if [ -f ~/.bash_profile ];
 then
 source ~/.bash_profile
 fi  

 ORACLE_SID=ora11g;                            export ORACLE_SID
 RMAN_LEVEL=${};                              export RMAN_LEVEL
 TIMESTAMP=`date +%Y%m%d%H%M`;                 export TIMESTAMP
 DATE=`date +%Y%m%d`;                          export DATE
 RMAN_DIR=/data/backup/rman;   export RMAN_DIR
 RMAN_DATA=${RMAN_DIR}/${DATE};                export RMAN_DATA
 RMAN_LOG=/data/backup/log;                     export RMAN_LOG        

 # Check rman level
 #======================================================================
 if [ "$RMAN_LEVEL" == "F" ];
 then  unset INCR_LVL
       BACKUP_TYPE=full
 else
       INCR_LVL="INCREMENTAL LEVEL ${RMAN_LEVEL}"
       BACKUP_TYPE=lev${RMAN_LEVEL}
 fi  

 RMAN_FILE=${RMAN_DATA}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP};       export RMAN_FILE
 SSH_LOG=${RMAN_LOG}/${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}.log;      export SSH_LOG  

 MAXPIECESIZE=4G;                                                export MAXPIECESIZE  

 #Check RMAN Backup Path
 #=========================================================================  

 if ! test -d ${RMAN_DATA}
 then
 mkdir -p ${RMAN_DATA}
 fi  

 echo "---------------------------------" >>${SSH_LOG}
 echo "   " >>${SSH_LOG}
 echo "Rman Begin  to Working ........." >>${SSH_LOG}
 echo "Begin time at:" `date` --`date +%Y%m%d%H%M` >>${SSH_LOG}  

 #Startup rman to backup
 #=============================================================================
 $ORACLE_HOME/bin/rman log=${RMAN_FILE}.log << EOF
 connect target /
 run {
 CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF  DAYS;
 CONFIGURE BACKUP OPTIMIZATION ON;
 CONFIGURE CONTROLFILE AUTOBACKUP ON;
 CONFIGURE CONTROLFILE AUTOBACKUP FORMAT FOR DEVICE TYPE DISK TO '${RMAN_FILE}_%F';
 ALLOCATE CHANNEL 'ch1' TYPE DISK maxpiecesize=${MAXPIECESIZE};
 ALLOCATE CHANNEL 'ch2' TYPE DISK maxpiecesize=${MAXPIECESIZE};
 set limit channel ch1 readrate=;
 set limit channel ch1 kbytes=;
 set limit channel ch2 readrate=;
 set limit channel ch2 kbytes=;
 CROSSCHECK ARCHIVELOG ALL;
 DELETE NOPROMPT EXPIRED ARCHIVELOG ALL;
 BACKUP
 ${INCR_LVL}
 DATABASE FORMAT '${RMAN_FILE}_%U' TAG '${ORACLE_SID}_${BACKUP_TYPE}_${TIMESTAMP}';
 SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
 BACKUP ARCHIVELOG ALL FORMAT '${RMAN_FILE}_arc_%U' TAG '${ORACLE_SID}_arc_${TIMESTAMP}'
 DELETE  INPUT;
 DELETE NOPROMPT OBSOLETE;
 RELEASE CHANNEL ch1;
 RELEASE CHANNEL ch2;
 }
 sql "alter database backup controlfile to trace as ''${RMAN_DATA}/cntl_${BACKUP_TYPE}.bak''";
 exit;
 EOF
 RC=$?  

 cat ${RMAN_FILE}.log >>${SSH_LOG}
 echo "Rman Stop working @ time:"`date` `date +%Y%m%d%H%M` >>${SSH_LOG}  

 echo >>${SSH_LOG}
 echo "------------------------" >>${SSH_LOG}
 echo "------ Disk Space ------" >>${SSH_LOG}
 df -h >>${SSH_LOG}  

 echo >>${SSH_LOG}  

 " ]; then
     echo "------ error ------" >>${SSH_LOG}
 else
     echo "------ no error found during RMAN backup peroid------" >>${SSH_LOG}
     rm -rf ${RMAN_FILE}.log
 fi  

 #Remove old backup than 3 days
 #============================================================================
 RMDIR=${RMAN_DIR}/`/bin/date +%Y%m%d -d "3 days ago"`;   export RMDIR
 echo >>${SSH_LOG}
 echo -e "------Remove old backup than 3 days ------\n" >>${SSH_LOG}  

 if test -d ${RMDIR}
     then
     rm -rf ${RMDIR}
     RC=$?
 fi  

 echo >>${SSH_LOG}  

 " ]; then
     echo -e "------ Remove old backup exception------ \n" >>${SSH_LOG}
 else
     echo -e "------ no error found during remove old backup set peroid------ \n" >>${SSH_LOG}
 fi  

 exit  

RMAN笔记小结的更多相关文章

  1. openresty 学习笔记小结:综合应用实例

    openresty 学习笔记小结:综合应用实例 这个综合实验实现的功能其实很简单,用户访问一个页面,显示一个默认页面.输入参数(post或者get都可以),如果参数在数据库查询得到并满足一定条件,根据 ...

  2. Oracle单机Rman笔记[6]---记一次oracle脱机异地还原

    系统情况介绍 正式环境:windows 2008 r2-32bit/ Oracle: Release 11.2.0.1.0 目标环境:windows 2012 Standard-64bit / Ora ...

  3. Oracle单机Rman笔记[5]---脱机异地还原

    脱机异地还原(安装一个原环境相同的linux,并安装数据库,注意不要配置安装实例) .检查/home/oracle下的.bashrc .bash_profile内容是否与原环境一致(具体看情况而定), ...

  4. Oracle单机Rman笔记[4]---RMAN联机备份

    备注:RMAN备份(仅支持基于spfile的备份,不支持基于init.ora配置的备份) 练习:开启ARCHIVELOG模式 \为归档的重做日志被指FRA和单独的归档日志目标 SQL>show ...

  5. Oracle单机Rman笔记[3]---RMAN脱机备份及命令基础介绍

    A.NOARCHIVELOG模式下的物理备份 1.完全关闭数据库 2.备份所有的数据库文件.控制文件.联机重做日志 3.重新启动数据库 B.RMAN的体系结构概述 重新构建控制文件: 将控制文件备份为 ...

  6. Oracle单机Rman笔记[2]---RMAN基础介绍

    A.DBA对于备份恢复的问题: 1.在数据库发生故障时,丢失多少数据是可承受的? 2.恢复数据库时,能够忍受的最长时间多少? 3.为了确保您的数据能够被恢复,愿意投入多少成本? 4.备份期间可以关闭系 ...

  7. Oracle单机Rman笔记[0]---环境准备

    A. 安装操作系统rhel6.6,关闭防火墙,修改网卡配置IP(略)PS:1.默认分区选项(第二项,默认为LVM),然后进行调整2.安装类型选择“桌面”3.安装后 分配IP.调整防火墙.测试SSH B ...

  8. RMAN笔记

    Rman常用命令 Preview选项 1)    显示用于还原system表空间数据文件的备份文件 RMAN> restore datafile 2 preview; 2)    显示用于还原特 ...

  9. 《JavaScript高级程序设计》读书笔记 ---小结

    对象在JavaScript 中被称为引用类型的值,而且有一些内置的引用类型可以用来创建特定的对象,现简要总结如下: 引用类型与传统面向对象程序设计中的类相似,但实现不同: Object 是一个基础 ...

随机推荐

  1. Java基础之创建窗口——创建应用程序窗口(TryWindow)

    控制台程序. 准备好应用程序窗口及其包含的组件并显示,这称为实现窗口.调用应用程序窗口对象的setVisible()方法就会实现窗口.实现了应用程序的GUI之后,在主线程中修改或查询GUI可能会导致死 ...

  2. 一个想了好几天的问题——关于8086cpu自己编写9号中断不能单步的问题

           在<汇编语言>第十五章中我们可能遇到这样的问题:程序运行正确,但是debug单步调试,却无法运行,修改int 9h中断例程入口地址的指令,虚拟模式下,debug提示指令无效, ...

  3. SQL Server 身份验证 登陆

    当遇到错误 检查SQL是否启动 SQL Server (MSSQLSERVER)在 打开 SQL Server 配置管理器 SQL Server (MSSQLSERVER) 鼠标右键->启动 再 ...

  4. powershell 参数 [String]Service

    此种情况,去掉前面的[String] 在里面操作的时候就会认为是string,并可以自动操作了,否则限定为String类型时,就无法将输入的a,b当作String了, 或者需要添加'a,b'单引号来变 ...

  5. how to use automapper in c#, from cf~

    [DataContract] public class GroupDto { [DataMember] public int id { get; set; } [DataMember] public ...

  6. Python高频技巧总结[基础篇]

    0. 概要说明 python应用最多的场景还是web快速开发.爬虫.自动化运维:简单网站.自动Fuzz脚本.收发邮件脚本.简单验证码识别脚本. 爬虫在开发过程中也有很多复用的过程,这里总结一下,以后也 ...

  7. Android中异步类AsyncTask的理解

    这里有两种解释的方法,各有侧重点: 第一种解释: Async Task 简介:AsyncTask的特点是任务在主线程之外运行,而回调方法是在主线程中执行,这就有效地避免了使用Handler带来的麻烦  ...

  8. C#访问postgresql数据库

    最近开始做C#的DotNet的工作,因为对PostgreSQL数据库比较有兴趣,所以自己研究了一下如何访问PostgreSQL的 数据库的问题. 1.为了访问PostgreSQL数据库,需要从pgfo ...

  9. Trace Sys

    ARM片上调试和跟踪解决方案(包括CoreSight体系结构,嵌入式跟踪宏单元(ETM),程序流程跟踪(PTM),ARM调试接口(ADI), 跟踪缓冲器(ETB),嵌入式交叉触发器(CTM)) Cor ...

  10. 关于在windows下使用mingw并行编译wxwidgets时的错误

    清理用的命令:mingw32-make -j4 -f makefile.gcc BUILD=release SHARED=1 MONOLITHIC=1 UNICODE=1 clean 2>nul ...