Oracle数据库自动备份 您所在的位置:网站首页 linux删除oracle数据库用户 Oracle数据库自动备份

Oracle数据库自动备份

2023-05-02 07:47| 来源: 网络整理| 查看: 265

脚本写好了,可云盘下载,分Linux和windows 链接:https://pan.baidu.com/s/1pYt0GTzlDn0hBTLqLAqGew

提取码:fily

Oracle数据库 自动备份手册

1 目的

在linux环境下使用exp备份数据库,该方法适合于备份数据级别小余1TB的数据库,版本10g、11g皆可。

经测试,该方法在redhat5.x,redhat6.x,centos6.x等64位环境下正常执行。

2 系统用户一览

序号 1.

用户 root

所在组 root

权限 超级用户

密码 root123

2.

oracle

oinstall

dba

orcl

3 Oracle环境变量

标题

内容

ORACLE目录

/home/oracle

ORACLE_BASE

/usr/local/oracle/

ORACLE_HOME

/usr/local/oracle/product/1120

ORACLE_SID

orcl

4 备份方法4.1.1 创建备份目录

使用oracle创建备份文件存储目录

su oracle

df –hl 查询/home下空闲磁盘空间,保证空间充足

mkdir /home/oracle/backup

4.1.2 创建备份脚本

使用oracle用户创建自动备份脚本

cd /home/oracle

vi backup.sh

脚本内容如下,其中的红色部分需要根据实际情况调整

当前备份设置删除1个月之前的备份文件

#! /bin/sh

export LANG="en_US.UTF-8"

export NLS_LANG="Simplified Chinese_china".ZHS16GBK

export ORACLE_BASE=/usr/local/oracle/

export ORACLE_HOME=/usr/local/oracle/product/1120

export ORACLE_SID=orcl

export PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

#设置备份文件格式

#设置删除备份文件的格式,当前为删除1个月前的备份

backuptime=`date +"%Y%m%d%H"`

deletetime=`date -d "1 month ago" +"%Y%m%d%H"`

#开始删除1个月前的备份

rm -f /home/oracle/backup/orcl_$deletetime.dmp

rm -f /home/oracle/backup/orcl_$deletetime.log

#开始备份

exp count/count file=/home/oracle/backup/orcl_$backuptime.dmp log=/home/oracle/backup/orcl_$backuptime.log full=y

注意:date -d "1 month ago" 命令代表获取当前1个月之前的时间

date -d "1 week ago"命令代表获取当前1周之前的时间

date -d "1 day ago"命令代表获取当前1天之前的时间

提升权限

chmod +x backup.sh #需要先设置为可执行脚本,只需要设置一次

手动测试一下

./backup.sh

4.1.3 设置脚本定时执行

使用root执行

vi /etc/crontab

#在最后一行添加

10 17 * * * oracle /home/oracle /backup.sh #每天的17:10执行/home/oracle /backup.sh

命令用法

l * * * * * :代表执行时间间隔

分别表示:

分钟:0-59

小时:1-23

日期:1-31

月份:1-12

星期:0-6(0表示周日)

还可以用一些特殊符号:

*: 表示任何时刻

,: 表示分割

-:表示一个段,如第二端里: 1-5,就表示1到5点

/n : 表示每个n的单位执行一次,如第二段里,*/1, 就表示每隔1个小时执行一次命令。也可以写成1-23/1.

一些示例

43 21 * * * 21:43 执行

15 05 * * * 05:15 执行

0 17 * * * 17:00 执行

0 17 * * 1 每周一的 17:00 执行

0,10 17 * * 0,2,3 每周日,周二,周三的 17:00和 17:10 执行

0-10 17 1 * * 毎月1日从 17:00到7:10 毎隔1分钟 执行

0 0 1,15 * 1 毎月1日和 15日和 一日的 0:00 执行

42 4 1 * *     毎月1日的 4:42分 执行

0 21 * * 1-6   周一到周六 21:00 执行

0,10,20,30,40,50 * * * * 每隔10分 执行

*/10 * * * *        每隔10分 执行

* 1 * * *         从1:0到1:59 每隔1分钟 执行

0 1 * * * 1:00 执行

0 */1 * * *        毎时0分 每隔1小时 执行

0 * * * *         毎时0分 每隔1小时 执行

2 8-20/3 * * * 8:02,11:02,14:02,17:02,20:02 执行

30 5 1,15 * * 1日 和 15日的 5:30 执行

在实际使用过程中需要根据数据库膨胀的速度考虑备份定时的时间,一般膨胀越快,备份越频繁,如每天一次晚上23:00备份;数据库文件较大时,可适当降低备份频率,如2天或3天备份一次,同时增加删除频率,如只保留最近10天的数据。需要注意备份路径所在的磁盘空间大小,一般使用 df –hl 查询,如果空间太小需要及时手动清理或增大空间。

l oracle :执行脚本的用户

l /home/oracle /backup.sh:执行脚本的路径



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有