oracle数据库自动备份系统

oracle数据库自动备份系统,第1张

Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。它是在数据库领域一直处于领先地位的产品。下面我为大家分享一下oracle数据库自动备份系统的 方法 ,有需要的可以参考一下!

oracle数据库自动备份系统

实现过程:

1. 建立文件 backup.bat (自定义文件名.bat)

@echo off

REM ###########################################################

REM # Windows Server 2003下Oracle数据库自动备份批处理脚本

REM ###########################################################

REM 取当前系统时间,可能因 *** 作系统 不同而取值不一样

set CURDATE=%date:~0,4%%date:~5,2%%date:~8,2%

set CURMON=%date:~0,4%%date:~5,2%

set CURTIME=%time:~0,2%

REM 小时数如果小于10,则在前面补0

if "%CURTIME%"==" 0" set CURTIME=00

if "%CURTIME%"==" 1" set CURTIME=01

if "%CURTIME%"==" 2" set CURTIME=02

if "%CURTIME%"==" 3" set CURTIME=03

if "%CURTIME%"==" 4" set CURTIME=04

if "%CURTIME%"==" 5" set CURTIME=05

if "%CURTIME%"==" 6" set CURTIME=06

if "%CURTIME%"==" 7" set CURTIME=07

if "%CURTIME%"==" 8" set CURTIME=08

if "%CURTIME%"==" 9" set CURTIME=09

set CURTIME=%CURTIME%%time:~3,2%%time:~6,2%

REM 设置所有者、用户名和密码

set OWNER=orcl

set USER=bktcgl

set PASSWORD=bktcgl

REM 创建备份用目录,目录结构为oraclebak/YYYYMMDD/

if not exist "oraclebak" mkdir oraclebak

cd oraclebak

if not exist "%CURMON%" mkdir %CURMON%

set FILENAME=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%.DMP

set EXPLOG=%CURMON%/%OWNER%_%CURDATE%_%CURTIME%_log.log

REM 调用ORACLE的exp命令导出用户数据

exp %USER%/%PASSWORD%@%OWNER% file=%FILENAME% log=%EXPLOG% owner=%USER% grants=n

exit

注:

1.bat文件可双击或直接在命令行执行,检查正确与否

2.检查时可注释掉exit

3.以上文件实现按月份创建文件夹,按时间生成备份文件

2.建立windows任务

步骤:

开始 ->所有程序 ->附件 ->系统工具 ->任务计划程序 -> *** 作 ->创建基本任务

->任务名输入"oracle_backup"(自定义任务名),执行这个任务选择每天,下一步

->起始时间下午12:00,起始日期2012-7-11,下一步 ->(启动程序)下一步

->在 浏览 中查找刚刚写好的 backup.bat 文件 >下一步 >完成

注:

1.在任务计划栏目下新增一个名为"oracle_backup"的任务计划,表明已经配置完毕。

2.不同系统的任务计划略有不同,但基本换汤不换药,不做一一例举

问题:系统警告"已创建新任务,但可能不能运行,因为无法设置账户信息。指定的错误是:Ox80041315:任务计划程序服务没有运行"

原因:电脑的任务计划程序服务没有启动起来。

解决:开始 >所有程序 >管理工具 >服务,找到"Task Scheduler"服务,发现启动类型为"已禁用",

右键单击更改为"自动",并把它启动起来,然后重新添加一次任务计划就可以了。

3.简单解释

1. bat:是dos下的批处理文件。批处理文件是无格式的文本文件,它包含一条或多条命令。在命令提示下键入批处理文件的名称,或者双击该批处理文件,系统就会调用 Cmd.exe按照该文件中各个命令出现的顺序来逐个运行它们。

2. Echo 命令:打开回显或关闭请求回显功能,或显示消息。

3. @ 命令:表示不显示@后面的命令

4. Rem 命令:注释命令

5. If命令:if表示将判断是否符合规定的条件,从而决定执行不同的命令。

6. exit :退出命令行

7. GRANTS: 是权限的意思,在你导出的目标数据库中可能会有一些表的如select 权限等赋给了别的用户。

【GRANTS=Y】导出的时候将这些权限导出,导入的时候将这些权限导入。

【GRANTS=N】权限不被导入。

三种方法:冷备份、热备份和Export导出数据库对象备份

Oracle作为目前世界上市场份额占有率最高的大型通用数据库,在世界上各行各业的信息化建设中起着核心首脑的作用。它(软件自身以及它所依赖运行的硬件)一旦出现问题,轻则导致业务中断,重则丢失部分数据,严重则全部数据不可逆转性损毁。备份方法如下:

1、冷备份

冷备份是Oracle最简单的一种备份;执行冷备份前必须关闭数据库;然后使用 *** 作系统实用工具或者第三方工具备份所有相关的数据库文件。

2、热备份

对于热备份来说,故名思议就是刚出炉的数据还是热乎的就开始执行备份的 *** 作。实现热备份的方式目前主要有两种方式,逻辑方式和物理方式。

3、Export导出数据库对象备份

导出导入是一种最初级的备份方式,它采用定时将全量、增量或者差异数据以表、用户或者全库为单位导出到某种格式的文件中达到备份的目的。

优点:能执行对象或者行恢复。备份和恢复速度更快。能够跨 *** 作系统平台迁移数据库。数据库可一直运行。

缺点:export并不是冷备份和热备份的替代工具。冷、热备份可保护介质失效。export备份可保护用户或应用错误。

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

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

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

2、数据库的备份脚本

db_full_backup.sh :数据库全备脚本

db_l0_backup.sh :数据库0级备份脚本

db_l1_backup.sh :数据库1级备份脚本

ftp.sh :数据FTP上传脚本

ftp_del.sh :数据FTP清理脚本

rman_bak.sh :数据备份主程序

3、备份原理

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

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

备份文件上传到FTP服务器

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

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

4、备份目录含义

arc :数据库归档目录

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

rmanscripts :数据库脚本存放路径

5、FTP目录

ftp上必须手动建立目录

L0:

---1

---3

---6

---6.bak

L1:

---2

---4

---5

---0

---0.bak

rman_bak.sh脚本主程序

#!/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/9.2.4

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_america.ZHS16GBK

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="122.120.150.155"

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_backup.sh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ftp_del.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log

else

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

mkdir $L0_PATH/$WEEK

$SH_PATH/db_l0_backup.sh $L0_PATH/$WEEK

cd $L0_PATH/$WEEK

$SH_PATH/ftp.sh $IP $FTPUSER $FTPPASS $FTPROOT0 $WEEK $WEEK_$LOG_TAG.log

else


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

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

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

发表评论

登录后才能评论

评论列表(0条)

保存