Linux下设置每天自动备份数据库的方法

本文以Centos7.6系统与Oracle11g为例:

  一.先找到数据库的环境变量

如果是在root账户下,须先登录到数据库所在账户  

su oracle
cat ~/.bash_profile

export PATH
export ORACLE_BASE=/home/nnc_db/app
export ORACLE_HOME=$ORACLE_BASE/product/11.2.0/dbhome_1
export PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_SID=orcl

环境变量就已经找到了!

二.编辑备份的脚本文件

vi bak.sh

先把环境变量复制粘贴到bak.sh文件,

然后定义一个变量date(它的作用是为每天备份的文件命名便于识别),使用expdp命令导出数据库,代码如下:

date=$(date +%Y%m%d)
expdp 数据库账号/数据库密码@数据库实例名 dumpfile=${date}_db_auto_backup.dmp schemas=数据库账号名 compression=all

退出保存。

三.使用Linux的crontab命令设置定时任务

crontab -e

crontab -e的作用是使用文本编辑器设置定时任务(crontab具体用法在此不赘述);

输入后在文本编辑器输入

0 0 * * * /home/nnc_db/bak.sh

以上代码意为每天的0点0分执行/home/nnc_db下的bak.sh文件,也就是第二步所创建的文件,需根据自身的备份时间以及文件目录调整;

然后重启crond服务即可

service crond restart

四.测试任务是否成功运行

根据我在网上收集的资料来看,有朋友说crontab -e设置成功后三分钟不会生效!也就是说假如你在上午10:00设置好任务,想要测试能否成功,把下次的定时任务设到10:02分,有可能会出现问题!但是这里我用

* * * * * /home/nnc_db/bak.sh

设置为每一分钟运行一次,发现没有问题。

还有一个新手大坑就是你直接运行脚本文件会在命令行输出详细过程,而设置定时任务运行是没有反应的!所以想要看自己的脚本是否自动运行了需要到/var/spool/mail/下看日志文件,如图

总结

以上所述是小编给大家介绍的Linux下设置每天自动备份数据库的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对我们网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

时间: 2019-09-19

Linux 自动备份oracle数据库详解

Linux 自动备份oracle数据: 曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非常有必要. 简单实用的晚间自动备份数据库小案例 步骤一.创建备份脚本,暂且命名为orabak.sh #路径名,指定备份的路径 FILEPATH = /oracle/orabak #根据指定日期格式,定义备份数据库文件名 FILENAME = `date + %

linux下Vps自动备份web和mysql数据库的脚本

用Vps什么事都要自己费心,备份也是.像Linode里的备份服务是要收费的,一个月是5美元.与其花这5美元,不如自己丰衣足食.为服务安装上了Dropbox,设定为每天4:00-6:00 开启同步服务.在之前运行两个脚本,自动备份web文件夹和mysql数据库. 两个脚本都是备份文件到/root/Dropbox/backup目录里,并自动删除10天前的备份.web备份是每周行一次,删除30天前的备份. 一.备份WEB文件夹 1.备份/home/users/public_html目录 2.修改cro

linux下mysql自动备份数据库与自动删除临时文件

一.每日23:00自动删除临时文件 首先查看一下crontab的任务列表:crontab -l然后新建:crontab -e添加一行:00 03 * * * rm -rf /www/cmstest/my120/public/scripts/jpgraph/*保存退出.重启服务:  /etc/rc.d/init.d/crond restart 二.每日24:00自动备份数据库 利用系统crontab来定时执行备份文件,按日期对备份结果进行保存,达到备份的目的. 1.创建保存备份文件的路径/mysq

Linux下通过脚本自动备份Oracle数据库并删除指定天数前的备份

说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用户登录服务器 mkdir -p /backup/oracledata #新建Oracle数据库备份目录 chown -R oracle:oinstall /backup/oracledata -R #设置目录权限为oinstall用户组的oracle用户(用户oracle与用户组oinstall是在

Linux 每天自动备份mysql数据库的方法

/usr/bin为mysql安装目录 建备份文件夹: mkdir mysql_data_bak 建脚本文件: touch autobackupmysql.sh 打开文件 vi autobackupmysql.sh 在脚本中加入如下内容: filename=`date +%Y%m%d` /usr/bin/mysqldump -opt mysql -u root -proot|gzip >/mysql_data_bak/name$filename.gz 这里注意了 一般的: ************

Linux自动备份MySQL数据库脚本代码

在脚本中可设置需要备份的数据库表清单,并且会将备份文件通过gzip压缩.需要注意的是,这段脚本仅适用数据一致性要求不高的环境. 复制代码 代码如下: #!/bin/bash mysql_pwd="password"mysql_dump="/usr/local/mysql/bin/mysqldump"cur_year=$(date +"%Y") cur_month=$(date +"%m") cur_day=$(date +&q

linux实现mysql数据库每天自动备份定时备份

 概述 备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程.而对于一些网站.系统来说,数据库就是一切,所以做好数据库的备份是至关重要的! 备份是什么? 为什么要备份 容灾方案建设 存储介质 光盘 磁带 硬盘 磁盘阵列 DAS:直接附加存储 NAS:网络附加存储 SAN:存储区域网络 云存储 这里主要以本地磁盘为存储介质讲一下计划任务的添加使用,基本的备份脚本,其它存储介质只是介质的访问方式可能不大一样. 1.

Linux下MongoDB数据库实现自动备份详解

本文主要给大家介绍的是关于Linux下MongoDB数据库实现自动备份的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 一.创建MongoDB备份目录 mkdir -p /data/mongodb_bak/mongodb_bak_now mkdir -p /data/mongodb_bak/mongodb_bak_list 二.新建MongoDB数据库备份脚本(/data/mongodb_bak/MongoDB_bak.sh) #!/bin/bash #backup MongoDB

LINUX下Oracle数据库用户创建方法详解

本文实例分析了LINUX下Oracle数据库用户创建方法.分享给大家供大家参考,具体如下: 1)登录linux,以oracle用户登录(如果是root用户登录的,登录后用 su - oracle命令切换成oracle用户) 2)首先要打开监听器命令如下:lsnrctl start,然后sqlplus /nolog ,然后conn /as sysdba,然后startup(这一部分命令是用来打开oracle数据库) 3)查看我们常规将用户表空间放置的位置:执行如下sql: SQL> select

Windows系统下Oracle数据库每天自动备份

linux和unix下面使用shell可以很方便实现,如果windows环境下可以结合计划任务实现 1.创建备份目录d:\backup, 创建批处理命令Bak.bat,编写备份脚本 exp user/passwd@orcl DIRECT=Y BUFFER=100000 FILE=D:\backup\scdd%date:~0,10% OWNER=('scdd') LOG=D:\backup\data.log forfiles /p "D:\backup" /s /m *.dmp /d -

Linux下tcpdump命令解析及使用详解

简介 用简单的话来定义tcpdump,就是:dump the traffic on a network,根据使用者的定义对网络上的数据包进行截获的包分析工具.tcpdump可以将网络中传送的数据包的"头"完全截获下来提供分析.它支持针对网络层.协议.主机.网络或端口的过滤,并提供and.or.not等逻辑语句来帮助你去掉无用的信息. 实用命令实例 默认启动 tcpdump 普通情况下,直接启动tcpdump将监视第一个网络接口上所有流过的数据包. 监视指定网络接口的数据包 tcpdum

Linux 下C语言连接mysql实例详解

Linux 下C语言连接mysql实例详解 第一步: 安装mysql, 参考:http://www.jb51.net/article/39190.htm 第二步: 安装mysql.h函数库 sudo apt-get install libmysqlclient-dev 执行之后就可以看到/usr/include/MySQL目录了 然后开始我们的链接. 首先看我的数据库 mysql> show databases; +--------------------+ | Database | +----

对linux下软件(库)的更新命令详解

在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任何在PyPI上已上传的先前版本的依赖包,个人认为是python相关的包和第三方包以及各种版本: apt-get可以用来安装软件.更新源.也可以用来更新自Ubuntu(https://launchpad.ne

在linux下升级软件包版本等方法详解

Linux环境下,要想查看某个软件(package)是否安装. rpm包方式安装的,使用 rpm -qa | grep "软件或者包的名字". yum方式安装的, yum list installed | grep "软件或者包的名字". 升级软件包版本. 我们经常会遇到依赖其他版本包的情况(一般是更新的版本),这时候我们需要升级包. 1.卸载后安装新的包. 首先要根据文首提到的查看软件包是否安装的方式查看你是否安装了这个软件,若没有安装,找到路径后使用wget命令

Linux 下redis5.0.0安装教程详解

Linux redis5.0.0安装,教程如下所示: 1.从官网下载,然后传到服务器,tar -zxvf解压 2.进入redis [root@localhost software]# cd redis-5.0.0/ 3.安装:make, (1)若提示:: gcc: Command not found 要安装gcc ,直接命令安装:yum -y install gcc (2)若:提示 fatal error: jemalloc/jemalloc.h: No such file or directo

Linux中MongoDB如何实现远程自动备份详解

前言 看过上一篇接手老项目的痛--MongoDB学习及集群搭建知道,最近接手了一个后妈养的项目,项目的数据库没有人维护,DBA以各种理由推脱暂时不接,面对裸奔没有备份的数据库,我的内心很焦灼,于是花了点时间把生产环境的自动备份给搞起来. 下面话不多说了,来一起看看详细的介绍吧 一些准备 既然都备份了,为了保险起见,备份与库就不放在同一台服务器上了,于是向运维申请了一台服务器,同时安装好mongo,如果不知道怎么安装mongo的话可以看我的上一篇文章. 安装完之后,首先测试下是否可以远程访问目标m