怎么做网站填内容,网站前段打不开 后台也进不去,东莞网页制作费用,宁波建设企业网站环境准备
linux下安装oracle 请看 oracle12c单节点部署 系统版本: CentOS 7 软件版本#xff1a; Oracle12c 备份策略与实现方法
此次备份依赖Oracle自带命令exp与linux下crontab命令#xff08;定时任务#xff09;
exp Oracle中exp命令是一个用于导出数据库数据和对象的…环境准备
linux下安装oracle 请看 oracle12c单节点部署 系统版本: CentOS 7 软件版本 Oracle12c 备份策略与实现方法
此次备份依赖Oracle自带命令exp与linux下crontab命令定时任务
exp Oracle中exp命令是一个用于导出数据库数据和对象的非常有用的工具。可以将整个数据库导出为一个文件也可以只导出一部分数据或对象。使用exp命令可以帮助我们备份整个数据库并将其转移到另一个服务器或重新加载到同一台服务器上的不同实例中。相较于rman 来说对于单用户的备份更加方便且具有较好的移植性。
exp命令参数
userid指定访问数据库的用户名和密码。
file指定导出的文件名可以包含完整的路径。
tables指定要导出的表的列表。可以以逗号分隔如表1,表2,表3。如果你不指定表名则导出整个数据库。
owner指定要导出的所有属主的名称。
rows指定是否导出表中的行。默认情况下也就是rowsy它将导出表中的所有行。
compress指定是否使用压缩来减小导出文件的大小。默认情况下也就是compressn它不进行压缩。
constrnts指定是否导出表中的限制。默认情况下也就是constrntsy它将导出表的所有限制。如果你不希望导出表的限制则设置constrntsn。
indexes指定是否导出表中的索引。默认情况下也就是indexesy它将导出表的所有索引。如果你不希望导出表的索引则设置indexesn。
triggers指定是否导出表中的触发器。默认情况下也就是triggersy它将导出表的所有触发器。如果你不希望导出表的触发器则设置triggersn。
feedback指定导出进度的显示方式。默认情况下也就是feedback100每处理100个行就显示一次进度。
buffer指定通过网络传输的缓冲区的大小。默认情况下也就是buffer4096。
corntab crond 是linux下用来周期性的执行某种任务或等待处理某些事件的一个守护进程与windows下的计划任务类似当安装完成操作系统后默认会安装此服务 工具并且会自动启动crond进程crond进程每分钟会定期检查是否有要执行的任务如果有要执行的任务则自动执行该任务。
参数 -e : 执行文字编辑器来设定时程表内定的文字编辑器是 VI如果你想用别的文字编辑器则请先设定 VISUAL 环境变数来指定使用那个文字编辑器(比如说 setenv VISUAL joe) -r : 删除目前的时程表 -l : 列出目前的时程表 备份策略 每天凌晨2点备份一次具体备份时间视情况而定–选择业务低峰期 备份文件保留自定义天数如果磁盘空间充足建议保留2周左右
创建本地存放备份文件的目录
mkdir /dbbakz/data创建存放备份脚本的目录
mkdir /dbbakz/scripts创建远端服务器备份文件存放目录
mkdir /dbbakz/data/对应ip
#例如本地服务器地址为 192.168.10.21 远端服务器地址为172.16.2.101
#则登录172.16.2.101 创建文件夹 /dbbakz/data/192.168.10.21 需对远端服务器提前配置好ssh免密登录 可参照 SSH免密登录 备份
备份脚本
vi /dbbakz/scripts/oraclebackup.sh
#!/bin/bash
#Create byzhangyongze
#为什么不问问神奇的海螺呢丶
#oracle备份至远端服务器本地不保留、远端保留60天export ORACLE_HOME/u01/app/oracle/product/12.2.0/dbhome_1
export ORACLE_SIDorcl
hostipip addr | grep inet | grep -v 127 | grep -v inet6 |awk {print $2}| grep -Eo [0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}|head -n 1
oracleport1521 #oracle端口
backNode172.16.2.101 #远端备份服务器地址需提前配置好免密
lbackPath/dbbakz/data/ #本地备份文件存放路径
sbackPath/dbbakz/data/$hostip/ #服务端备份文件存放路径
date$(date %Y%m%d%M%H%S) # 获取系统当前日期时间
days60 #保留时常
orownerbyyy #备份此用户下面的数据
bakuserbyyy #用此用户来执行备份必须要有备份操作的权限
bakpass123456 #执行备注的用户密码
bakdata$ORACLE_SID_$orowner_$date.dmp #备份文件名称
baklog$ORACLE_SID_$orowner_$date.log #日志文件名称
baktar$ORACLE_SID_$orowner_$date.tar.gz #压缩后备份文件echo ------------使用exp开始备份Oracle数据库---------------
$ORACLE_HOME/bin/exp $bakuser/$bakpass$hostip:$oracleport/$ORACLE_SID grantsy owner$orowner file$lbackPath/$bakdata log$lbackPath/$baklog #执行备份echo ------------备份数据库完成---------------cd $lbackPathtar -zcvf $baktar $bakdata $baklog #压缩备份文件和日志文件echo ------------备份文件已打包---------------#传入备份服务器
scp $lbackPath/$baktar $backNode:$sbackPathecho ------------备份文件已传入备份服务器---------------find $lbackPath -type f -name \*.dmp -exec rm {} \; #删除备份文件
find $lbackPath -type f -name \*.log -exec rm {} \; #删除日志文件
find $lbackPath -type f -name \*.tar.gz -daystart -mtime $days -exec rm -rf {} \; #删除60天前的备份注意{} \中间有空格echo ------------本地备份文件已删除---------------#删除60天之前的数据库备份文件
ssh $backNode find $sbackPath -type f -name *.tar.gz -daystart -mtime $days -exec rm -rf {} \;echo ------------远端备份文件保留60天备份完成---------------
定时任务脚本 #将备份操作加入到定时任务(每天凌晨2点定时执行)
crontab -e00 2 * * * /dbbakz/scripts/oraclebackup.sh
脚本中调用命令$ORACLE_HOME/bin/exp 是因为使用root用户操作、 同时兼顾备份-打包-传输-删除
可使用
whereis exp寻找当前服务器命令绝对路径