1、登录数据库服务器并切换到数据库用户下

[root@*** ~]# su - oracle

2、测试用户名密码是否能正确连接数据库

[oracle@*** ~]$ sqlplus username/passwd

3、创建本地每日备份脚本文件exp_day.sh(创建在当前目录下)

[oracle@*** ~]$ vi exp_day.sh

#编辑添加以下内容

date=`date "+%Y%m%d"`
USERID=username/passwd
DMPFILE=/home/oracle/db_backup/backup_备份文件名_$date
LOGFILE=/home/oracle/db_backup/backup_$date
exp $USERID file=${DMPFILE} log=$LOGFILE

4、设置文件执行权限

[oracle@*** ~]$ chmod 755 exp_day.sh

5、创建保存目录

[oracle@*** ~]$ mkdir db_backup

6、执行脚本文件,测试脚本

[oracle@*** ~]$ ./exp_day.sh

脚本正确的话界面会出现数据库对象export过程;

此外,也可通过[oracle@*** ~]$ ls -ltr 命令查看/home/oracle/db_backup目录下是否生成下面的.dmp和.log文件验证:

-rw-r--r-- 1 oracle oinstall 12140544 8月 8 13:50 backup_devmng_20180808.dmp
-rw-r--r-- 1 oracle oinstall 3554 8月 8 13:50 backup_20180808.log

7、创建ftp.sh脚本文件,将上面导出的dmp文件上传到其他服务器,进行异地备份(本地需安装并启动ftp服务)

[oracle@*** ~]$ vi ftp.sh

# 编辑添加以下内容,把本次备份传至备份服务器

date=`date "+%Y%m%d"`
ftp -in <<!
open 10.46.*.*   #备份服务器ip
user root 123  #备份服务器用户 密码
bin
lcd /backup/dmp/  #本地待备份文件
cd crm  #指定备份服务器目录
mput *$date.dmp
bye

8、上面的异地备份也可以通过scp服务进行

[oracle@*** ~]$ vi scp.sh

# 把本次备份传至备份服务器

date=`date "+%Y%m%d"`
scp backup_备份文件名_$date.dmp(注释:上面的导出文件) 备份服务器用户@备份服务器IP:/back_up/xxx(注释:备份目录)

9、测试异地备份脚本

[oracle@*** ~]$ ./ftp.sh

然后到备份服务器相应目录下查看是否存在;测试完成后删除异地服务器备份文件。

10、将执行脚本文件添加到crontab计划任务中

[oracle@***~]$ crontab -e  #说明:-e:编辑该用户的计时器设置;-l:列出该用户的计时器设置

#编辑添加以下内容

02 22 * * * /home/oracle/exp_day.sh  # minute hour day month week 指令:分 时 日 月 周 指令

01 23 * * * /home/oracle/ftp.sh  # minute hour day month week 指令:分 时 日 月 周 指令

如果oracle用户没有设置相应的环境变量可能会导致脚本文件执行失败,也可以通过下面方式,在root用户下添加crontab计划任务:

[oracle@*** ~]$ exit  #切换到root用户

[root@***~]$ crontab -e

#编辑添加以下内容

02 22 * * * su - oracle -c  "/home/oracle/exp_day.sh"

=================================================================================================================================

以上就是数据库备份的过程。需要说明的是,本文只是提供一种借鉴方法,可能大家会因系统环境的不同而出现不可预见的问题。后续本文将继续更新和完善,增加对备份文件的压缩和定期删除。

2018-08-0811:30:13

Linux下数据库备份的更多相关文章

  1. Linux下数据库备份恢复过程

    1. 远程进入Linux服务器. 2. 一般登录的是root用户, 第一步切换到Oracle用户, 命令: su - oracle 3. 查看服务器上面数据库的监听的状况 lsnrctl 之后输入命令 ...

  2. Linux下自动备份MySQL数据库并上传到远程FTP服务器

    Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明:  1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...

  3. Linux下定时备份MySQL数据库的Shell脚本

    Linux下定时备份MySQL数据库的Shell脚本   对任何一个已经上线的网站站点来说,数据备份都是必须的.无论版本更新还是服务器迁移,备份数据的重要性不言而喻.人工备份数据的方式不单耗费大量时间 ...

  4. Linux下自动备份Oracle数据库并删除指定天数前的备份

    说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...

  5. Linux下mysql备份 恢复

    转载自http://blog.chinaunix.net/uid-20577907-id-161611.html 比如我们要备份mysql中已经存在的名为linux的数据库,要用到命令mysqldum ...

  6. linux c数据库备份第四版

    该版本算是比较成熟的啦,欢迎大伙拿来试用!!!1.新增数据库连接和备份时间配置文件conf2.新增日志文件,程序运行的一些异常会记录在log文件下 后续的工作:1.将代码切割为多个文件,分类存放代码2 ...

  7. linux c数据库备份第二版

    #想知道更多请查看第一版"linux c数据库备份第一版" #include<sys/types.h> #include<sys/wait.h> #incl ...

  8. Linux下远程备份、上传工程,重启服务器

    Linux下远程备份.上传工程,重启服务器 Linux服务器实现远程,原项目的备份.删除,新项目上传,以及远程重启服务器!分成一个主shell调用三个shell文件步骤完成.mainsh.sh一次按顺 ...

  9. Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程

    Linux下手动备份还原硬盘主引导记录MBR跟硬盘分区表DPT教程 二 18 奶牛 Linux, Ubuntu, Windows 1,885 views查看评论 最近奶牛一直在折腾linux下的gru ...

随机推荐

  1. python生成可执行exe文件

    为什么要生成可执行文件 不需要安装对应的编程环境 可以将你的应用闭源 用户可以方便.快捷的直接使用 打包工具 pyinstaller 安装pyinstaller pip install pyinsta ...

  2. 单端测序(Single- ead)和双端测序(Pai ed-end和Mate-pai )的关系

    Roche 454,Solexa和ABI SOLID均有单端测序和双端测序两种方式.在基因组De Novo测序过程中,Roche454的单端测序读长可以达到400p,经常用于基因组骨架的组装,而Sol ...

  3. Vue-admin工作整理(六):路由元信息

    路由源信息:每一个路由对象,可以配置一个meta字段,它里面可以存放一些我们定义的信息,比如说页面是否需要一个权限 to.meta && setTitle(to.meta.title) ...

  4. JS 作用域(执行环境)与作用链---JS 学习笔记(二)

    一  作用域(执行环境) 作用域:定义了变量和函数有权访问的其他数据,决定了他们各自的行为.--------<JS高级程序设计>4.2 好难理解啊~参考了参考尤克希的博客内容,大体上理解了 ...

  5. vmstat命令参数介绍

    vmstat命令是最常见的Linux/Unix监控工具,可以展现给定时间间隔的服务器的状态值,包括服务器的CPU使用率,内存使用,虚拟内存交换情况,IO读写情况.这个命令是我查看Linux/Unix最 ...

  6. Spring MyBatis多数据源(同包)

    创建基本的包 entity service dao 为了区分多数据源 一个用的是Mysql 一个是Oracle 方便测试, 创建MyBatis dao 映射 xml 文件 创建db.propertie ...

  7. leecode第二百三十八题(除自身以外数组的乘积)

    class Solution { public: vector<int> productExceptSelf(vector<int>& nums) { int len= ...

  8. 雷林鹏分享:jQuery EasyUI 数据网格 - 自定义排序

    jQuery EasyUI 数据网格 - 自定义排序 如果默认的排序行为不满足您的需求,您可以自定义数据网格(datagrid)的排序行为. 最基础的,用户可以在列上定义一个排序函数,函数名是 sor ...

  9. Python函数分类及操作

    为什么使用函数? 答:函数的返回值可以确切知道整个函数执行的结果   函数的定义:1.数学意义的函数:两个变量:自变量x和因变量y,二者的关系                      2.Pytho ...

  10. Kotlin 随笔小计

    最近准备学Kotlin 现在Kotlin也能支持IOS开发了,准备后面买个Mac也能进行IOS开发 当然目标还是看着能不能把一些小的Android项目重构下 也算是定个目标吧,由于沉迷吃鸡,日志都没怎 ...