Oracle数据库RMAN的自动备份脚本简介

Oracle数据库RMAN的自动备份脚本简介,第1张

Oracle数据RMAN的自动备份脚本简介

各位同学知道Oracle数据库RMAN如何自动备份脚本嘛下面我为大家整理了关于Oracle数据库RMAN的自动备份脚本文章,希望能为你提供帮助:

1、数据库设置为归档方式

2、数据库的备份脚本

db_full_backupsh :数据库全备脚本

db_l0_backupsh :数据库0级备份脚本

db_l1_backupsh :数据库1级备份脚本

ftpsh :数据FTP上传脚本

ftp_delsh :数据FTP清理脚本

rman_baksh :数据备份主程序

3、备份原理

每周1、3、6进行0级备份

每周日、2、4、5进行1级备份

备份文件上传到FTP服务器

FTP服务器每周清理一次,但是清理后将周六和周日的备份进行保留(6bak和0bak)

所有工作防暑crontab中自动执行备份

4、备份目录含义

arc :数据库归档目录

rmanbak :数据库备份文件的保存目录

rmanscripts :数据库脚本存放路径

5、FTP目录

ftp上必须手动建立目录

L0:

---1

---3

---6

---6bak

L1:

---2

---4

---5

---0

---0bak

rman_baksh脚本主程序

#!/bin/bash

#--------------------------------------------

# Oracle auto backup using rman

#

# author:songrh

# week:1,3,6 Level 0 backup

# 2,4,5,0 Level 1 backup

# Copyright by ChenLong Tec

#--------------------------------------------

#

#

export ORACLE_BASE=/u02/oracle

export ORACLE_HOME=/u02/oracle/product/924

export ORACLE_SID=PROD

export LD_LIBRARY_PATH=$ORACLE_HOME/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib:$ORACLE_HOME/network/jlib

export NLS_LANG=american_americaZHS16GBK

export TNS_ADMIN=$ORACLE_HOME/network/admin

export ORA_NL33=$ORACLE_HOME/ocommon/nls/admin/data

export PATH=/bin:/usr/bin:/usr/sbin:$ORACLE_HOME/bin:$PATH

export PATH=$PATH:/opt/local/bin

#

SH_PATH=/u02/rmanscripts

ARC_PATH=/u02/arch

RMAN_BAK_PATH=/u02/rmanbak

#

#FULL_PATH=$RMAN_BAK_PATH/full

L0_PATH=$RMAN_BAK_PATH/L0

L1_PATH=$RMAN_BAK_PATH/L1

#

#DAY_TAG=`date "%Y-%m-%d"`

LOG_TAG=`date "%Y-%m-%d"`

#FIRST_DAY=`date %e`

WEEK=`date %w`

#WEEK=1

#

# FTP configure

IP="122120150155"

FTPUSER="ftpbak"

FTPPASS=""

FTPROOT0="L0"

FTPROOT1="L1"

#

DISK_USE=`df -k |sed -n '/u02/'p | awk '{print $5}' |sed 's/%//'`

####check path function

############

if [[ $DISK_USE -ge 90 ]]; then

rm -rf $L0_PATH/

rm -rf $L1_PATH/

fi

if [ "$WEEK" = "6" -o "$WEEK" = "3" -o "$WEEK" = "1" ]; then

if [ ! -d $L0_PATH ]; then

mkdir $L0_PATH

fi

if [ "$WEEK" = "1" ]; then

rm -rf $L0_PATH/

rm -rf $L1_PATH/

mkdir $L0_PATH/$WEEK

$SH_PATH/db_l0_backupsh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ftp_delsh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAGlog

else

if [ ! -d $L0_PATH/$WEEK ]; then

mkdir $L0_PATH/$WEEK

$SH_PATH/db_l0_backupsh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ftpsh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAGlog

else

;

摘 要为了保证数据库的安全性和稳定性,通过对Oracle的备份以及恢复策略进行了分析和探讨,明确了数据库备份以及恢复技术在实际工程项目当中的应用,通过分析数据库备份的实际需求,同时选择了合理的数据备份策略以及数据恢复策略,采取了有效的数据库的管理和维护策略,有效保证了数据库中的相关数据以及整个系统的安全性和稳定性,为类似数据库的备份以及恢复策略提供了可供参考的经验。

关键字Oracle数据库;备份;数据;恢复;策略

对于企业而言,数据库中的数据是重要的数据资源,也是企业得以持续总结和发展的重要的要素,由此保证相应数据库的安全性和稳定性有着十分重要的影响。 随着数据库内数据量的逐渐增加,并且数据库发展以及运行所面临的环境也日益复杂,数据库中数据的安全性以及相关系统运行的稳定性对企业的发展尤为重要。数据库中的数据难以避免地受到了外界的侵袭,例如网络、硬件以及系统等方面的故障,甚至自然灾害也将导致则整个系统的崩溃,数据丢失,数据库中存储过程中的失误将给企业的发展带来严重的影响甚至巨大的损失,为了有效避开或者减少这些无法预测损失的到来,建立一系列安全稳定可靠的数据备份系统尤为重要。

1 建立备份策略

11 数据备份需求

(1)良好的可扩展能力

随着企业的发展和项目管理以及建设的持续发展和升级,企业数据库中的数据量将日益增长,所使用的数据库也应具有数据的扩展和升级的空间和可能。

(2)备份数据的可恢复性

为保证企业内部数据库的规范统一以及集中安全的数据恢复和备份的管理,相应的数据备份以及恢复策略应保证所备份的数据的可靠性以及可恢复性,为系统数据的恢复奠定了良好的基础。

(3)保持业务流程的连贯性

数据备份和恢复系统要以维持企业基本的业务流程和体系为基础,在保证了系统业务连续性的前提下开展数据库的数据备份,避免了数据存储设备时间较长对企业系统的使用和相关项目的运行造成影响。

12 备份设备的选型

在对PCEDM数据库备份需求分析的基础上,使用IBM的TSM作为备份数据备份的支持。TSM软件管理软件系统,是为企业级别的数据以及系统安全设计,以解决企业级数据和系统的安全性,为数据的备份提供解决方案,为石油、金融、电信管理和其他许多大型企业解决了数据的备份和管理问题。 TSM的管理结构,其高度的可扩展性和广泛的平台支持,集中式,自动化的存储管理等方面的优势,提供高效,自动,可扩展的备份管理系统。TSM专有的二进制格式,每个数据备份和恢复加密的数据传输格式,TSM自动CRC数据校验,从而保证了数据备份和恢复过程的完整性和安全。

2 制定备份策略

通过详细分析Oracle数据库的存储结构、数据库的运行模式、数据存储文件、数据增长的速度和数据增长密度等实际状况,结合几个备份Oracle数据库的优点和缺点分析,数据的备份策略表示如下:

21 使用RMAN与冷备份、逻辑备份相结合。使用Oracle数据库本身的RMAN和冷备份以及逻辑备份的方式结合起来,其中,Oracle数据库所提供的备份方式是主要的备份方式,而冷备份,逻辑备份作为辅助备份。

22 RMAN 备份包括全备份和增量备份 2 种方式。使用备份数据量小,低差异增量备份。在进行了一次级别为n的Differential增量的备份过程中,RMAN备份仅仅将那些最近一次等级等于或小于增量备份n相比,产生变化的数据块进行备份。差异增量备份策略RMAN的方法,设定在每个星期天,星期三0级备份数据库和日志文件的备份,周一,周二,周四,周五,周六为第一级增量备份和日志文件的备份。

23 备份触发方式,在Unix预定时间以及计划内启动。构建系统的CRON任务,根据备份策略编辑命令,在确定的时间内起动文件以及备份计划。

3 数据备份方案的具体实施

备份存储设备使用的磁盘阵列和磁带库的组合方式。TSM备份存储池,并最终利用RMAN备份的数据进行备份的IBM Ultrium3584磁带库EMC CX700磁盘阵列空间分割出的一部分作为备份的存储区域。数据库服务器放置在本地磁盘系统进行数据库冷备份以及逻辑备份过程中所产生的备份文件。

31 冷备份

在数据库以TRANSACTIONAL,IMMEDIATE 或 NORMAL 方式关闭后进行的数据备份称为冷备份或脱机备份,所以得到的是一个备份的一致性。在数据库关闭, *** 作系统的所有订单数据文件,控制文件和联机日志文件,初始化参数文件等进行备份,冷备份副本。一旦数据库发生故障,可以将这些文件拷贝覆盖原始文件的位置。这个备份数据库,它可以返回到之前的状态。 由于PCEDM数据库需要,以确保7天24小时运作,冷备份必须在封闭的数据库进行。冷备份在正常的服务维修期间进行每一年两次的备份。使用冷备份具有一致性的优势,可以保证系统恢复的迅速。

32 逻辑备份

逻辑备份使用Oracle导出工具将数据库中的对象模型得出的二进制文件,有一个需要重用Oracle导入工具将模型的二进制文件导入到对象数据库。基于整个数据库备份的逻辑模式,用户模式或表模型可以将数据输出,更灵活。对于一些重要的数据可以作为辅助备份方式。通过使用不同 *** 作系统平台,以及不同的数据库版本之间进行了数据库中数据的迁移,这成为了数据库物理备份的补充形式。

33 RMAN 备份

RMAN是Oracle提供的外部工具,专门用于数据库备份和恢复 *** 作。通过在RMAN备份系统中启动Oracle服务进程完成备份的任务。创建RMAN的备份的具体步骤如下:

(1)在数据库服务器上安装TSM客户端,选择相关文件进行编辑,设置DSMI_ORC_CONFIG,TDPO_ PSWDPATH参数,建立RMAN备份和TSM备份管理软件系统的连接。

(2)创建RMAN目录数据库备份恢复,以保存备份的索引信息。

(3)RMAN恢复管理器,同时开始在目标数据库的连接。

(4)目标数据库的注册。

(5)修改RMAN默认的配置参数。 CONFIGURE命令可以用来改变默认的RMAN设置,如配置自动通道,在指定的备份保留策略,激活或屏蔽备份优化功能。

(6)创建备份脚本。

4 Oracle 数据库恢复

41 RMAN 的完全恢复

在使用RMAN的完全恢复,在线和归档重做日志文件中的所有记录将被用于恢复数据库,从备份中恢复已损坏的文件,然后应用日志文件,将数据文件恢复到当前的时间。

42 RMAN的不完全恢复

通过RMAN中的不完全恢复数据库,将数据库恢复到指定的时刻或状态,通过将指定的SCN或者应用指定日期顺序归档重做日志之后的状态,也就是从时间、SCN或日志这三种方式中选择一种方式作为恢复终止的标记。

5 结语

实践证明,这种设计的备份策略,实现真正意义上的数据备份自动化管理,使系统的管理从传统的繁琐的手工备份中解放出来,提高工作效率和工作质量;有效避免了人为错误,提高数据备份的安全性和可靠性;减少了数据库的I / O *** 作,提高了数据备份恢复的速度以及数据备份的有效性。与此同时,也使备份系统具有良好的可扩展性,能够满足当前和今后几年的业务发展的实际需求。

参考文献:

[1]张自辉 ORACLE数据库的备份方法和策略[J] 吉首大学学报(自然科学版), 2009,(01)

[2]安亚强 Oracle备份与恢复及故障研究[J] 内蒙古煤炭经济, 2009,(04)

[3]王立新 Oracle数据库备份与恢复策略浅析[J] 才智, 2009,(28)

[4]杨志彬 Oracle数据库备份策略[J] 电脑知识与技术, 2009,(17)

都可以用作备份,但是exp类似冷备份, 你只能够恢复到某一点

而rman的话,需要开启归档,那样就可以进行无数据丢失的恢复。

详细点说就是:

在不开归档日志的情况下,Oracle数据库的备份只能依赖exp命令(逻辑备份)导出数据文件(注意:不包括日志文件以及控制文件等),导出的所有数据仅仅以一个大文件的方式来存放,但是这种备份容易导致丢失数据。举个例子:如果5号晚上进行了exp数据导出,但是在6号的运行过程中发生宕机,数据丢失,这个时候从5号备份后一直到6号宕机前的数据将全部丢失(即使将日志文件和控制文件拷出来都无法恢复,因为exp导出的数据无法与这些日志文件一一对应起来恢复)。所以采用exp方式备份数据还是存在很大风险的。

另一种方式就是使用Oracle自带的备份工具rman。一次rman备份(物理备份)的全过程如下:

因为使用rman备份不会产生数据丢失的情况,所以必须有一个全备份的文件,使用rman需要先进行一次全备份,相当于将当前数据库里面的所有文件以及日志都全盘拷贝一份到备份介质中,然后通过归档日志(实时更新的)的记录看每个进程都对数据库做了哪些修改,只要保留了一份物理备份以及物理备份之后的所有归档日志,就能够将数据库恢复到宕机前一刻的状态,将数据丢失降到最低。(每个redo log写满之后就开始写到achive log里面进行归档,这个里面还是有个时间段的,不能做到完全的实时)

方法/步骤

打开ArcCatalog软件。

在Catalog左侧的目录里找到合适的存储位置,点击右键-新建-filegeodatabase/personalgeodatabase。具体选择哪一个要看数据的大小。一般而言,文件数据库比个人数据库大一些,个人数据库一般存储的数据大小为2G左右。这里以个人数据库为例。

新建时选择personalgeodatabase,可以重新命名,这里我就不命名了,以默认为准。

选中刚建立的数据库,右键-新建-featuredataset(数据集),d出数据集对话框,输入一个名字后点击下一步。

选择一个合适的坐标投影系统。也可以暂时不设置,点击Unknown点击下一步。

最后一步选择默认即可,点击Finish完成。到此,数据集的建立完成。

最后,选中刚建立的数据集-右键-新建-新建数据。命名后选择合适的类型。点击下一步。

这里可以看到字段信息,没问题后点击finish完成建立。

此时可以看到三层结构。这样数据就更加好管理和存储了。

是的,rman在noarchivelog模式下是不能backup的。进行rman备份之前要将数据库至于archivelog模式下。下面两种方法仅供参考:

1在数据库运行期间可以用:alter system archive log start

2重启数据库进入mont状态,然后:alter database archivelog

C的数组下标从0开始,char str[20]的最后一个元素是str[19]

scanf("%s",str1[20]);

printf("%s\n",str2[20]);

if(str1[20]==str2[20]){

这几句都越界访问内存了,会产生一个SIGSEGV信号引发段错误

建用户和授权要用DBA

最简单得建用户:

create user 用户名 identified by 密码

用户解锁 alter user 用户名 account unlock(不解锁无法登陆)

授权用 grant

建完用户首先要授权登陆权限

grant create session to 用户名

授权可以授权给角色和用户

也可以把角色授权给角色和用户

其他得类似 创建表得权限类似如下格式:

grant create table to 用户

RMAN除了单纯的备份恢复功能 已经被赋予了越来越多的责任 比如创建Standby数据库 比如跨平台传输表空间中的表空间转换 Oracle g的RMAN倒是没有太多飞跃性的更新

自定义archivelog删除策略

我们知道在 g之前 只有backupset的删除策略可以定义 比如保留多长时间的备份或者保留多少份有效备份 而删除归档日志只有在delete命令中定义删除全部备份完毕的或者删除从哪一个时间点到哪一个时间点的 而在 g中我们已经可以通过configure命令来定义归档日志的删除策略的 比如增加了下面的语法 只有在磁带上备份了 次的归档日志才会被delete命令删除

CONFIGURE ARCHIVELOG DELETION POLICY TO BACKED UP TIMES TO DEVICE TYPE t

当然 仅仅是增加语法那就只能称为比较无聊的新功能了 除了configure语法之外 现在在 g中通过APPLIED ON STANDBY关键字可以定义只有对于所有的standby站点都已经applied的归档日志才会被删除 或者定义所有被成功传送到standby站点的归档日志就可以被删除 而以前这些都需要DBA自己撰写脚本从数据字典中查询到相关信息然后再通过脚本删除

直接通过网络复制数据库

在 g之前如果要使用duplicate命令来复制一份数据库 那么则需要源数据库 需要在目标机器上的一份有效备份 需要目标数据库 在 g中这一切被大大简化 通过FROM ACTIVE DATABASE关键字 我们只需要有一个源数据库 就可以简单地通过网络在另外一台机器上复制一个相同的数据库了 Oracle会通过一系列 Memory Script在内存中recover并且open目标数据库

另外 在 g之前 duplicate数据库是不会自动复制spfile的 而现在 我们通过下面的语句 就可以让Oracle在复制过程中自动生成一份spfile 并且其中的初始化参数允许额外定义

DUPLICATE TARGET DATABASETO aux_dbFROM ACTIVE DATABASESPFILE PARAMETER_VALUE_CONVERT /u /u SET SGA_MAX_SIZE = M SET SGA_TARGET = M SET LOG_FILE_NAME_CONVERT = /u /u DB_FILE_NAME_CONVERT /u /u ;

在 g中使用duplicate复制一个数据库的准备步骤只需要目标数据库(AUXILIARY实例)

a 通过一个最简单的pfile把实例启动到nomount状态 这个pfile中只需要包含DB_NAME和REMOTE_LOGIN_PASSWORFILE参数即可

b password文件必须事先建好 而且SYS密码需要跟source数据库中相同 这个通过orapwd可以轻松完成

c 目录结构需要事先创建好并且具有正确的权限

并行备份大文件

现在Oracle数据库中单个数据文件可以最大到 T 而在以前的版本中RMAN的最小备份单位就是datafile 那么对于以后可能出现的这种超大数据文件 RMAN备份就几乎无法 *** 作了 在 g中 通过backup命令中的SECTION SIZE关键字 我们可以对数据文件指定section了 每个section都作为一个独立单位来处理 每个数据文件可以最多指定 个 section

Section的好处在于 一可以并行备份多个section 提高备份速度 二可以分多个时间分别备份一个大文件的多个section 时间上化整为零 更具有 *** 作性

RMAN Catalog管理性增强

IMPORT CATALOG命令允许我们将一个catalog库中的信息转储到另外一个catalog库 这在以前完全需要手工 *** 作

lishixinzhi/Article/program/Oracle/201311/17666

以上就是关于Oracle数据库RMAN的自动备份脚本简介全部的内容,包括:Oracle数据库RMAN的自动备份脚本简介、数据库的备份和恢复 [Oracle数据库的备份与恢复策略分析]、ORACLE的RMAN备份和EXP备份,用哪个备份数据库比较好!!等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9492498.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-28
下一篇 2023-04-28

发表评论

登录后才能评论

评论列表(0条)

保存