百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

ORACLE数据库用rman备份和恢复(oracle11g rman备份)

sinye56 2024-10-18 12:18 6 浏览 0 评论

当用RMAN进行备份时,RMAN要把备份的相关信息(如什么时间进行的备份、备份了哪些文件、备份到什么位置等)进行存储,根据对这些信息存储位置的不同,RMAN的运行模式分为如下两种:

lNOCATALOG模式:

这种模式下将备份信息存在备份的目标数据库的控制文件中。

lCATALOG模式:

这种模式下单独创建一个Oracle数据库,将备份信息存在此独立的.数据库中(此时独立的数据库称为目录数据库,即Catalog database)。

出于高效和管理方便的,决定采用的是CATALOG(目录)模式备份。当用RMAN部署一个恢复目录时,需要将目录保存在与注册在其中的任何一个目标数据库都不同的数据库和机器上(防止当目标数据库崩溃时,目录数据库也不可用的情况),也可以使用一个产品数据库作为其他产品数据库的目录数据库。但必须注意,目录数据库的版本和目标数据库的版本必须一致。确定目录数据库后,在tnsnames.ora中配置目录数据库到目标数据库的连接。tnsnames.ora位于$ORACLE_HOME/network/admin中,配置情况如下:

SKGL204 = #到目标数据库的连接名,可自己设置

(DESCRIPTION =

(ADDRESS_LIST =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.204)(PORT = 1521))

#目标数据库的IP,可也是机器名

)

(CONNECT_DATA =

(SERVICE_NAME = skgl)

#与目标数据库的inti.ora文件中的参数service_names同

)

)

配置连接后,在目录数据库上,执行如下命令:

1. 创建表空间,用于存储备份信息。

SQL>CREATE TABLESPACE rmantbs DATAFILE ‘/oradata/catdb1/rmantbs01.dbf’ SIZE 32M;表空间名和路径根据自己的情况重新设置。

2. 创建用户,用于管理备份信息。

SQL>CREATE USER rmanadm IDENTIFIED BY rmanadm

DEFAULT TABLESPACE rmantbs

TEMPORARY TABLESPACE temp ;

RMAN用户名和密码;根据自己的情况重新设置

3. 授权。

SQL>GRANT CONNECT,RESOURCE,RECOVERY_CATALOG_OWNER TO rmanadm;

4. 创建恢复目录。

$rman CATALOG rmanadm/rmanadm

RMAN>CREATE CATALOG;

5. 注册目标数据库。

$rman CATALOG rmanadm/rmanadm TARGET SYS/SYS@targetDB

RMAN>REGISTER DATABASE;

配置好目录数据库后,便可以部署备份策略了。

首先来看bak_scripts目录下的脚本文件:

b_whole_inc0.rcv(文件名)(用于基准备份)

1 @@connect.rcv

2 run{

3 allocate channel d1 type disk;

4 backup incremental level = 0 database

5 format '/oradata/PRACTICE/backup/ch12/db_%d_%s_%p_%t'

6 tag = 'WHOLE_INC0';

7 release channel d1;

8 }

(1..8为行号,另行加上的,便于说明)

第1行的connect.rcv是同目录下的另一脚本文件,内容如下:

connect target sys/change_on_install@skgl204

connect catalog rmanadm/rmanadm@sw1hnm1

用于连接目标数据库和目录数据库,用户名、密码和服务名根据前面定义的情况重新设置。另外需要设置的是第4行带下划线的部分,为目标数据库上用于存储备份文件的路径,可根据目标数据库的情况自行设置。设置好的路径必须在目标数据库上实际存在,否则备份不能成功。

b_whole_inc1.rcv,b_whole_inc2.rcv,b_archive.rcv,b_archive_2days.rcv,b_archive_delete2.rcv都需同样的设置。(见安装包bak_scripts下的文件)

b_whole_inc0.sh,b_whole_inc1.sh,b_whole_inc2.sh,b_archive.sh,b_archive_2days.sh,b_archive_delete3.sh(见安装包bak_scripts下的文件)是用于部署在unix系统上的命令文件

b_whole_inc0.sh内容如下:

$ORACLE/HOME/bin/rman cmdfile=<path>/bak_scripts/b_whole_inc0.rcv

log=/temp/b_whole_inc0.log

<path>为放置bak_scripts文件夹的路径,设置完所有文件之后,使用chmod将这些文件修改为可执行文件,将便可用crontab部署这些命令文件。步骤如下:

以oracle用户登陆,定位在bak_scripts目录下

$chmod u+x b_whole_inc0.sh #其他文件类似

$crontab –e

#min hour date month day command

0 1 * * 0 <path>/b_whole_inc0.sh #Sunday

0 1 * * 1 <path>/b_whole_inc2.sh #Monday

0 1 * * 2 <path>/b_whole_inc2.sh #Tuesday

0 1 * * 3 <path>/b_whole_inc2.sh #Wednesday

0 1 * * 4 <path>/b_whole_inc1.sh #Thursday

0 1 * * 5 <path>/b_whole_inc2.sh #Friday

0 1 * * 6 <path>/b_whole_inc2.sh #Saturday

0 2 * * * <path>/b_archive_2days.sh #Every Day

30 2 * * * <path>/b_ archive_delete3.sh #Every Day

执行时间可重新设置。

注意:必须使第一次运行的备份脚本为b_whole_inc0.sh,其他的增量备份都是以0级增量备份为基准的,如果第一次运行的为其他脚本,那么至少前几天的备份是无效的,只能等到下一次循环到b_whole_inc0.sh脚本时,备份才重新生效。

b_whole_inc0.bat,b_whole_inc1.bat,b_whole_inc2.bat,b_archive.bat,b_archive_2days.bat,b_archive_delete3.bat(见安装包bak_scripts下的文件)是用于部署在windows系统上的命令文件

b_whole_inc0.bat内容如下:

rman cmdfile=<path>/bak_scripts/b_whole_inc0.rcv log=c:/temp/b_whole_inc0.log

<path>设置为bak_scripts文件夹所在的路径,设置完所有文件后,便可用at命令部署这些批处理文件。在windows的cmd窗口执行下列命令:

at 1:00 /every:Sunday cmd /c <path>/b_whole_inc0.bat

at 1:00 /every:Monday cmd /c <path>/b_whole_ inc2.bat

at 1:00 /every:Tuesday cmd /c <path>/b_whole_ inc2.bat

at 1:00 /every:Wednesday cmd /c <path>/b_whole_ inc2.bat

at 1:00 /every:Thursday cmd /c <path>/b_whole_inc1.bat

at 1:00 /every:Friday cmd /c <path>/b_whole_inc2.bat

at 1:00 /every:Saturday cmd /c <path>/b_whole_inc2 .bat

at 2:00 cmd /c <path>/b_archive_2days. bat

at 2:30 cmd /c <path>/b_ archive_delete3. bat

至此,所有的备份策略便部署完毕。

还原和恢复

数据库的恢复分完全恢复和不完全恢复。完全恢复一般在实例崩溃后,恢复到最近的现场,一般操作如下:

C:> rman target sys/change_on_install@skgl204 catalog rmanadm/rmanadm

RMAN>

RUN{

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

RESTORE DATABASE;

RECOVER DATABASE;

ALTER DATABASE OPEN;

}

不完全恢复的原因很多,如用户的误操作是数据库必须回到或只能回到以前备份的点,不完全恢复的一般操作如下:(其中命令中的 “TO_DATE(‘01/14/2005 12:02:10’,’MM/DD/YYYY HH24:MI:SS’)”为期望恢复到的时间点)

C:> rman target sys/change_on_install@skgl204 catalog rmanadm/rmanadm

RMAN>

RUN{

SHUTDOWN IMMEDIATE;

STARTUP MOUNT;

SET UNTIL TIME TO_DATE “(‘01/14/2005 12:02:10’,’MM/DD/YYYY HH24:MI:SS’)” ;

RESTORE DATABASE;

RECOVER DATABASE;

ALTER DATABASE OPEN RESETLOGS;

}

RMAN> RESET DATABASE;

在执行完不完全恢复后,需在目录数据库中用RMAN发布RESET DATABASE命令,以从目标数据库控制文件中获得更新RMAN目录的新纪录的信息。另外,应对恢复后的数据库即时以增量备分级0重新备份数据库。

相关推荐

程序员:JDK的安装与配置(完整版)_jdk的安装方法

对于Java程序员来说,jdk是必不陌生的一个词。但怎么安装配置jdk,对新手来说确实头疼的一件事情。我这里以jdk10为例,详细的说明讲解了jdk的安装和配置,如果有不明白的小伙伴可以评论区留言哦下...

Linux中安装jdk并配置环境变量_linux jdk安装教程及环境变量配置

一、通过连接工具登录到Linux(我这里使用的Centos7.6版本)服务器连接工具有很多我就不一一介绍了今天使用比较常用的XShell工具登录成功如下:二、上传jdk安装包到Linux服务器jdk...

麒麟系统安装JAVA JDK教程_麒麟系统配置jdk

检查检查系统是否自带java在麒麟系统桌面空白处,右键“在终端打开”,打开shell对话框输入:java–version查看是否自带java及版本如图所示,系统自带OpenJDK,要先卸载自带JDK...

学习笔记-Linux JDK - 安装&amp;配置

前提条件#检查是否存在JDKrpm-qa|grepjava#删除现存JDKyum-yremovejava*安装OracleJDK不分系统#进入安装文件目...

Linux新手入门系列:Linux下jdk安装配置

本系列文章是把作者刚接触和学习Linux时候的实操记录分享出来,内容主要包括Linux入门的一些理论概念知识、Web程序、mysql数据库的简单安装部署,希望能够帮到一些初学者,少走一些弯路。注意:L...

测试员必备:Linux下安装JDK 1.8你必须知道的那些事

1.简介在Oracle收购Sun后,Java的一系列产品就被整合到Oracle官网中,打开官网乍眼一看也不知道去哪里下载,还得一个一个的摸索尝试,而且网上大多数都是一些Oracle收购Sun前,或者就...

Linux 下安装JDK17_linux 安装jdk1.8 yum

一、安装环境操作系统:JDK版本:17二、安装步骤第一步:下载安装包下载Linux环境下的jdk1.8,请去官网(https://www.oracle.com/java/technologies/do...

在Ubuntu系统中安装JDK 17并配置环境变量教程

在Ubuntu系统上安装JDK17并配置环境变量是Java开发环境搭建的重要步骤。JDK17是Oracle提供的长期支持版本,广泛用于开发Java应用程序。以下是详细的步骤,帮助你在Ubuntu系...

如何在 Linux 上安装 Java_linux安装java的步骤

在桌面上拥抱Java应用程序,然后在所有桌面上运行它们。--SethKenlon(作者)无论你运行的是哪种操作系统,通常都有几种安装应用程序的方法。有时你可能会在应用程序商店中找到一个应用程序...

Windows和Linux环境下的JDK安装教程

JavaDevelopmentKit(简称JDK),是Java开发的核心工具包,提供了Java应用程序的编译、运行和开发所需的各类工具和类库。它包括了JRE(JavaRuntimeEnviro...

linux安装jdk_linux安装jdk软连接

JDK是啥就不用多介绍了哈,外行的人也不会进来看我的博文。依然记得读大学那会,第一次实验课就是在机房安装jdk,编写HelloWorld程序。时光飞逝啊,一下过了十多年了,挣了不少钱,买了跑车,娶了富...

linux安装jdk,全局配置,不同用户不同jdk

jdk1.8安装包链接:https://pan.baidu.com/s/14qBrh6ZpLK04QS8ogCepwg提取码:09zs上传文件解压tar-zxvfjdk-8u152-linux-...

运维大神教你在linux下安装jdk8_linux安装jdk1.7

1.到官网下载适合自己机器的版本。楼主下载的是jdk-8u66-linux-i586.tar.gzhttp://www.oracle.com/technetwork/java/javase/downl...

window和linux安装JDK1.8_linux 安装jdk1.8.tar

Windows安装JDK1.8的步骤:步骤1:下载JDK打开浏览器,找到JDK下载页面https://d.injdk.cn/download/oraclejdk/8在页面中找到并点击“下载...

最全的linux下安装JavaJDK的教程(图文详解)不会安装你来打我?

默认已经有了linux服务器,且有root账号首先检查一下是否已经安装过java的jdk任意位置输入命令:whichjava像我这个已经安装过了,就会提示在哪个位置,你的肯定是找不到。一般我们在...

取消回复欢迎 发表评论: