Shell实现Oracle自动备份

2019-06-04 06:01江苏缪振龙
网络安全和信息化 2019年5期
关键词:数据备份脚本备份

■ 江苏 缪振龙

编者按: Shell脚本一直是Linux运维管理的必备工具之一。通过Shell脚本,管理员可以轻松地完成复杂而重复性的维护工作。

单位机房有一台Sun小型机,运行Solaris 10系统,安装Oracle 10g数据库。该小型机通过iSCSI协议连接到远程存储服务器。因为业务数据的重要性,需要对数据进行日常备份。

为提高备份效率,我们通过一个简单的shell脚本实现,由于白天业务流量较大,为不影响业务系统运行,采用crontab在每天晚间自动执行备份脚本,将服务器本地数据备份到远程存储服务器上。经过近一周测试,数据备份运行正常。

图1 创建数据备份目录

图2 数据自动备份

图3 备份脚本内容

编写shell脚本备份数据

1.通 过SecureCRT连接到Sun小型机,创建数据备份目录并赋权,如图1所示。

2.编写shell脚本,实现数据自动备份,如图2所示。

3.编写shell脚本,实现自动备份。

-bash-3.2$ vi oracle_bak.sh

备份脚本内容,如图3所示。脚本结束后,使用wq保存。为防止Oracle在导出过程中出现异常错误,可在业务空闲期执行该脚本测试。确认无误后,再配置Crontab计划任务。

配置Crontab计划任务,实现每天定时备份数据

在向Crontab添加定时任务前,先设置环境变量。

-bash-3.2$ EDITOR=vi

-bash-3.2$ export EDITOR

-bash-3.2$ crontab -e

#每天晚间11点自动执行脚本备份数据

0 23 * * * /export/home/oracle/oracle_bak.sh

图4 备份情况

查看数据备份情况

配置脚本和Crontab计划后的第二天,查看前一天的备份情况,如图4所示。

可以看出,备份过程中没有出现警告。有的表是通过直接路径方式导出,通过查阅相关资料。备份如果采用直接导出模式,数据将直接从磁盘中读取到导出session的UGA中,跳过SQL命令处理层,避免了不必要的数据转换,比传统导出方式提高2至3倍速度。

除了采用将数据备份到远程iSCSI磁盘,我们还可以在内网中搭建NFS服务器,将数据备份到NFS共享盘中。两种方式相比,NFS是基于文件级的存储,具有较高的可视性。而iSCSI方式则是基于数据块级的存储,提供数据块集合供用户访问。两种方式孰优孰劣,业界暂无定论。由于业务需求为备份数据库,从安全性和传输性能方面来看,笔者更倾向于采用iSCSI方式。

现在运维技术已经越来越向自动化、智能化方向发展。这就要求运维人员一定要紧跟新时代发展步伐,不断提高自身运维能力。

更正声明:在2019年第4期“基础设施与数据管理”栏目中文章“安装Kali Linux”的署名更正为“潍坊工程职业学院信息工程系 赵培元”。

猜你喜欢
数据备份脚本备份
泉州高速公路收费系统远程数据备份研究
利用云备份微信聊天记录
程控交换机的数据备份与恢复技术分析
如何只备份有用数据而不备份垃圾数据
No.4 IDC:2019年上半年数据备份与恢复市场同比增长10.0%
Windows10应用信息备份与恢复
自动推送与网站匹配的脚本
旧瓶装新酒天宫二号从备份变实验室
任务驱动法在数控机床电气检修教学中的应用
举一反三新编