oracle 数据库自动备份并自动上传

数据库备份说明

数据库服务器

目的:每日凌晨2:30自动备份数据库用户(myfw_Portal、LOA)文件,并上传至文件服务器。

1.添加操作系统定时任务(每日凌晨2:30):/var/spool/cron/oracle

定时任务知识点

1./var/spool/cron/ 这个目录下存放的是每个用户包括root的crontab任务,每个任务以创建者的名字命名如root,oracle

2.service crond status   //查看服务状态 

3.minute hour day-of-month month-of-year day-of-week commands 

合法值 00-59 00-23 01-31          01-12        0-6 (0 is sunday) 

4.特殊符号

² 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作。

² 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9”

² 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6”

² 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

//end

 2.编辑执行脚本(/home/backup2/bak.sh),备份数据库且上传文件服务器。

#!/bin/bash

#加载oracle的相关参数

#如果oracle参数不明确,请使用命令查看

# su - oracle

# echo $ORACLE_HOME

export ORACLE_BASE=/home

export ORACLE_HOME=/home/oracle/product/12.1.0/db_1

export ORACLE_SID=pdb_mmtp

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

#oracle字符集

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

#export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK

#获取当前时间,格式:20150210

DATE=$(date +%Y%m%d)

#获取7天之前的时间,格式:20150203

DATE_RM=$(date -d "60 days ago" +%Y%m%d)

#设置备份目录,

export DIR=/home/backup2

echo $DIR

#创建日期目录

mkdir $DIR/$DATE

#开始备份,此处采用exp方式导出,根据实际情况可选用expdb数据方式导出

echo 'Oracle backup...'

Exp LOA/cjxsl2018LOA@mmtp owner=LOA   file=$DIR/$DATE'/LOA_'$DATE'.dmp'

log=$DIR/$DATE'/LOA_log_'$DATE'.log'

exp myfw_Portal/myfw_Portal@mmtp  owner=myfw_Portal file=$DIR/$DATE'/myfw_Portal_'$DATE'.dmp' log=$DIR/$DATE'/myfw_Portal_'$DATE'.log'

scp -r /home/backup2/$DATE  root@119.97.130.91:/home/backup2

echo 'Oracle backup successfully.'

echo 'remove...'

#rm -rf $DIR/$DATE_RM

echo 'remove successsfully.'

数据库备份知识点

1.exp myfw_Portal/myfw_Portal@10.97.139.5:11521/mmtp owner=myfw_Portal file=d:\daochu.dmp log=d:\daochu.log

2.执行脚本添加权限

chmod +x ./clearlog.sh

chown -R oracle:oinstall  /home/backup2

文件传输知识点

  1. 免密码上传文件配置

v ssh-keygen -t rsa --生成RSA类型的公钥

root/.ssh/目录下多了两个文件id_rsa和id_rsa.pub

将公钥id_rsa.pub重命名传到目标服务器上

scp id_rsa.pub root@119.97.130.91:root/.ssh/id_rsa.pub_temp

将公钥的内容追加到目标服务器上的authorized_keys

cat id_rsa.pub_temp >> authorized_keys

传输整个文件夹 

scp -r /home/backup2/$DATE  root@119.97.130.91:/home/backup2

文件服务器

目的:每月第三周的第五天上午五点删除文件夹内的数据

1.添加操作系统定时任务(每月第三周第五天执行):/var/spool/cron/ root

2.编辑执行脚本(/home/backup2/clearlog.sh),删除7天历史数据。

find /home/backup2 -mtime +7 -name "*" -exec rm -rf {} \;

posted @ 2019-03-05 11:22  张巧便  阅读(888)  评论(0编辑  收藏  举报