• 配置基于时间的备份保留策略

RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;

  • 恢复spfile

RMAN> restore spfile from '/bk/xxxxxx'; 如果在Oracle10g里这里就是控制文件,因为在备份控制文件的时候会自动备份参数文件,但是在oracl11g里我做的时候控制文件找不到    所以要从另外一个文件里找到的参数文件恢复出来的;这一步成功在之后你的$ORACLE_HONE/dbs/下已经有了二进制参数文件和控制文件了,但是这个参数文件是生产库的参数文件跟你的服务器上所对应的目录不一定一样,所以你要修改参数文件。

  • 开始恢复control file,进而得到备份集的信息:

RMAN> restore controlfile from '/u02/20190324_HIS_25210_1.ctl';

  • 列出备份集:

RMAN> list backup of database;

  • 删除过期的备份介质.
RMAN> delete obsolete(nopormt指定无需确认立即删除)
  • RMAN的备份记录中依然存在,清除这些信息。
RMAN> crosscheck backup;
  • 删除过期的备份信息。
 
RMAN> delete expired backup;
  • 指定还原的路径:

catalog start with '/backup/his/';

  • 指定还原的文件名:

alter database mount;
set newname for datafile 1 to "/ora/u01/data/users.dbf";
set newname for datafile 2 to "/ora/u01/data/undotbs1.dbf";
set newname for datafile 3 to "/ora/u01/data/sysaux01.dbf";
set newname for datafile 4 to "/ora/u01/data/system01.dbf";
set newname for datafile 5 to "/ora/u01/data/undotbs2.dbf";
set newname for datafile 6 to "/ora/u01/data/hisdata.dbf";

  • 数据文件不同路径的还原:

run{
set newname for database to '/ora/u00/oracle/oradata/his/%b';
restore database;
switch datafile all;

recover database;
      alter database open;
}

  • 不完全恢复
     不完全恢复有一个核心要领需要牢记:不完全恢复影响的是整个数据库,不能只对数据库的一部分执行不完全恢复。不完全恢复使用的方法通常有:基于时间、SCN、日志序列、还原点或基于删除的恢复。
      $ rman target /  
     RMAN> startup mount
     RMAN>run
      {
      set until time "to_date('07/01/2015 15:00:00', 'mm/dd/yyyy hh24:mi:ss')";
      restore database;
      recover database;
      alter database open;
      }
 
 允许数据不一致

RMAN> recover database until cancel;

恢复数据到某个序列号

RMAN> recover database until sequence 46101 thread 1;

查看日志文件

[oracle@histest ~]$ cd $ORACLE_BASE
[oracle@histest oracle]$ cd diag/rdbms/
his/ histest/ unknown/
[oracle@histest oracle]$ cd diag/rdbms/his/
HIS/ i_1.mif
[oracle@histest oracle]$ cd diag/rdbms/his/HIS/trace/
[oracle@histest trace]$ tail -200f alert_HIS.log

===========================以下为后台还原数据库===============================

数据库还原脚本:

rman target / <<EOF
run{
allocate channel c1 device type disk;
allocate channel c2 device type disk;
allocate channel c3 device type disk;
allocate channel c4 device type disk;
set newname for database to '/ora/u00/oracle/oradata/his/%b';
restore database;
RECOVER database;
sql 'alter database open resetlogs';
sql 'alter database open';
release channel c1;
release channel c2;
release channel c3;
release channel c4;
}
EOF
~

添加权限

[root@histest oracle]# chown oracle:oinstall rman.sh
[root@histest oracle]# chmod 775 rman.sh

查看数据库状态为mount

[root@histest ~]# su - oracle
[oracle@histest ~]$ su - oracle
Password:
[oracle@histest ~]$ sqlplus / as sysdba

SQL*Plus: Release 11.2.0.4.0 Production on Thu Apr 11 16:04:53 2019

Copyright (c) 1982, 2013, Oracle. All rights reserved.

Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

SQL> select instance_name,status from v$instance;

INSTANCE_NAME STATUS
---------------- ------------
HIS MOUNTED

开启后台执行脚本

[root@histest ~]# su - oracle
[oracle@histest ~]$ /home/oracle/rman.sh >> /home/oracle/out.log 2>&1 &

踩坑一例:

在做RMAN还原时,总提示找不到某个日志文件,致使还原不成功。

最后经过分析,原来是RAC集群里日志保留的时间过短,数据库太大,在做RMAN全备份时,当全备份做完,日志文件已部分被清,导致备份集里的备份的日志文件在做RMAN还原时找不到日志文件。

解决办法:由于库太大,做一次还原时间太长,选择根据SCN号做一次增备和控制文件备份,再进行还原的最省时间策略。

Rman常用命令的更多相关文章

  1. RMAN常用命令汇总

    RMAN是Oracle数据库备份管理中必须用到的管理工具.它的操作方式有很多种,我整理了一些常用的操作命令,汇总起来,以方便工作. (miki西游 @mikixiyou 文档,原文链接: http:/ ...

  2. RMAN常用命令汇总!

    进入RMAN:$ rman target sys/oracle@orcl   --远程连接到rman$ rman target sys/oracle@orcl @backup_db.ram   --远 ...

  3. Oracle之rman常用命令及维护(51CTO风哥rman课程)

    list 查看数据库备份的信息 查询数据库对应物 list incarnation; list backup summary; 列出当前备份信息及汇总 B是备份 F是全备 A是归档 第三个A是是否有效 ...

  4. RMAN常用备份恢复命令汇总

    RMAN命令 1.独立命令  RMAN>shutdown immediate  RMAN>startup  RMAN>backup format 'd:\backup\%d_%s.b ...

  5. RMAN主要命令 show,list,crosscheck,delete详解

    Oracle RMAN 的 show,list,crosscheck,delete命令整理  Oracle RMAN 的 show,list,crosscheck,delete命令整理 1.SHOW命 ...

  6. 【BBED】bbed常用命令

    [BBED]bbed常用命令         一.1  相关知识点扫盲 BBED(Oracle Block Browerand EDitor Tool),用来直接查看和修改数据文件数据的一个工具,是O ...

  7. Linux 常用命令(持续补充)

    常用命令: command &:将进程放在后台执行 ctrl + z:暂停当前进程 并放入后台 jobs:查看当前后台任务 bg( %id):将任务转为后台执行 fg( %id):将任务调回前 ...

  8. LVM基本介绍与常用命令

    一.LVM介绍LVM是 Logical Volume Manager(逻辑卷管理)的简写,它是Linux环境下对磁盘分区进行管理的一种机制LVM - 优点:LVM通常用于装备大量磁盘的系统,但它同样适 ...

  9. Linux学习笔记(一):常用命令

    经过统计Linux中能够识别的命令超过3000种,当然常用的命令就远远没有这么多了,按照我的习惯,我把已经学过的Linux常用命令做了以下几个方面的分割: 1.文件处理命令 2.文件搜索命令 3.帮助 ...

随机推荐

  1. 04_ switch 练习 _ 你及格了吗

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  2. Linux中使用Apache发布html网页

    在线学习: https://www.shiyanlou.com/courses/1 工具/原料 Linux,httpd,vi 样例html文件一份 方法/步骤   1 编辑httpd配置文件 2 查找 ...

  3. 变量类型-Number

    教程:一:数字类型 (1)int 没有限制大小,有以下的四种表现形式:        1:2进制:以'0b'开头---bin        2:8进制:以'0o'开头---oct        3:1 ...

  4. 十二、JDBC

    day17 JDBC入门 l 导jar包:驱动! l 加载驱动类:Class.forName(“类名”); l 给出url.username.password,其中url背下来! l 使用Driver ...

  5. linux下利用C或C++ 语言调用需要root权限的函数

    1.setuid法(1)登录root用户,将程序设置成root:root所有者(等价于:登录root用户编译程序).也可直接将普通用户加入root组中,那么编译程序不用来回切换用户.(2)登录root ...

  6. Jenkins调度Selenium脚本不能打开浏览器解决办法

    前提:在Myeclipse里面可以启动起来浏览器,在Jenkins中不能启动浏览器 原因:以程序的方式安装了jenkins,jenkins就成了windows的一个服务了,默认是设置为自动启动的如下图 ...

  7. 使用yield生成器,用Python实现用户对用户输入信息的监听和过滤

    # -*- coding:utf-8 -*-'''''''''生成器是一次生成一个值的特殊类型函数.可以将其视为可恢复函数.调用该函数将返回一个可用于生成连续 x 值的生成[Generator],简单 ...

  8. LeetCode 34 - 在排序数组中查找元素的第一个和最后一个位置 - [二分][lower_bound和upper_bound]

    给定一个按照升序排列的整数数组 nums,和一个目标值 target.找出给定目标值在数组中的开始位置和结束位置. 你的算法时间复杂度必须是 O(log n) 级别. 如果数组中不存在目标值,返回 [ ...

  9. linux磁盘大小获取和文件大小获取

    一.获取磁盘大小(给入的是文件夹绝对路径):check_disk_available(QString path) { struct statfs diskinfo; unsigned long lon ...

  10. k8s-No.2-pod学习

    本章目录 pod结构图 pod语法及参数说明 pod声明周期 一  pod结构图 大部分情况下,Openshift中的Pod只是容器的载体,通过Deployment.DaemonSet.RC.Job. ...