数据库备份说明
数据库服务器
目的:每日凌晨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
文件传输知识点
- 免密码上传文件配置
v ssh-keygen -t rsa --生成RSA类型的公钥
root/.ssh/目录下多了两个文件id_rsa和id_rsa.pub
v 将公钥id_rsa.pub重命名传到目标服务器上
scp id_rsa.pub root@119.97.130.91:root/.ssh/id_rsa.pub_temp
v 将公钥的内容追加到目标服务器上的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 {} \;