在linux和windows下自动备份数据库
摘要:
详细介绍在windows和linux下自动备份数据库的过程,希望可以让新手立即上手吧!
本文档内容共分为2大部分:linux和windows
Linux和windows都分为:准备工作和操作阶段。
Linux的详细步骤为:1.准备文件. 2.连接linux 3.实际操作也就是写命令
windows的详细步骤为:1.准备文件. 2.编辑任务和计划程序。
所用软件:notepad++,ssh
一.linux
1、准备工作(可以在windows下执行本操作)
创建三个文件
1.1文件名:exp.list (本文件主要用于存储连接数据库的用户名和密码。)
内容:oracle数据库的用户名和密码
创建好了之后如下图:

1.2.文件名:exp.log (本文件主要用于存储在自动备份数据库时的日志信息)
内容:为空就行
1.3.文件名:exp.sh (本文件主要用于执行备份脚本)
内容:#!/bin/sh
#找到数据库的路径
export ORACLE_BASE=/u01/app/oracle
export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db_1
export PATH=$ORACLE_HOME/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=orcl
export NLS_LANG=American_America.ZHS16GBK
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib
#执行路径
cd /home/oracle/dbbackup
exptime=$(date +%Y-%m-%d_%H)
#读取创建的exp.list文件里的用户名及密码
cat exp.list | while read dbUser dbPasswd
do
echo $dbUser
exp $dbUser/$dbPasswd GRANTS=Y file=$dbUser"_"$exptime.dmp #执行导出
if [ "0" == $? ]
then
tar -zcvf $dbUser"_"$exptime.dmp.tar.gz $dbUser"_"$exptime.dmp
rm $dbUser"_"$exptime.dmp
fi
done
#导出文件名
find . -mtime +6 -name "*.dmp.tar.gz" |xargs rm
写完如下图2:

准备工作完成。
2 开始连接linux
2.1.先用ssh连接到oracle服务器(这个过程就不一一赘述了)
2.2.因为上面的文件里的执行路径是 /home/oracle/dbbackup 所以我们写好的三个文件放到本目录下面。
用chmod命令给dbbackup文件夹权限:如:chmod 777 dbbackup
用chmod命令给三个文件执行权限.
2.3把本脚本加入定时任务里面
如果在root用户下,先进入oracle用户.
命令是:su – oracle
编辑本用户下的定时任务
命令是:crontab -e
编辑命令:30 23 * * 0 /home/oracle/dbbackup/exp.sh >> /home/oracle/dbbackup/exp.log 2>&1
本命令的意思是:每星期周日的晚上23时30分执行/home/oracle/dbbackup下的exp.sh脚本,如果脚本执行报错会把错误信息放到exp.log下面。
退出并保存。
用crontab –l查看添加的命令有没有成功:

如果出现上图,就说明成功了。
二.windows系统下创建
2.1先去安装oracle的文件夹下面找到exp.exe文件。
把这个文件复制到你要执行脚本的文件夹。
比如我要执行的脚本是在D:\backup文件夹就放到本文件夹下面。
2.2编写脚本
exp xjshz_1104/123456@orcl file=d:\backup\xjshz%date:~8,10%.dmp log='d:\backup\xjshz%date:~8,10%.log' compress=n buffer=8092 consistent=y direct=n constraints=y feedback=10000 grants=y record=y indexes=y triggers=y rows=y
本语句的意思是从用户名为:xjshz_1104密码为123456sid为:orcl的库里备份。
备份的文件名是:xjshz时间的第8到10位.dmp文件。日志文件同上。
保存文件名为:expbackup.bat
可以先试着双击执行一下本文件,看看会不会生成dmp文件。
2.3在控制面板处找到“任务计划”—>创建任务—> 在操作选项卡点击新建—> 把刚才写的脚本加进来。
2.4在触发器那里设置触发事件时间。
完成。谢谢!
在linux和windows下自动备份数据库的更多相关文章
- mysql 在Windows下自动备份
1.一般备份方法主要为两种: 直接保存数据库data文件夹 mysqldump 用sql命令备份(文件存放目录必须存在) 首先cmd进入MySQL\bin,然后mysqldump --default- ...
- windows服务自动备份数据库
最近写了几个windows服务用于自动备份与删除数据: services代码如下: public partial class Service1 : ServiceBase { public Servi ...
- MySql在Windows下自动备份的几种方法
以下几种全部是批处理命令中对于备份文件 1.复制date文件夹备份============================假想环境:MySQL 安装位置:C:\MySQL论坛数据库名称为:bbs数 ...
- Aix/Linux下自动备份oracle数据库
曾经有个同事,来回操作开发和生产的数据库,结果误删了生产的数据库,那种心情我想不是一般人能理解的,虽然说oracle可以有方法还原,但并不是彻底的. 所以,在工作中,不管是开发还是维护,备份数据库是非 ...
- Linux下自动备份MySQL数据库并上传到远程FTP服务器
Linux下自动备份MySQL数据库并上传到远程FTP服务器且删除指定日期前的备份Shell脚本 说明: 1.备份MySQL数据库存放目录/var/lib/mysql下面的xshelldata数据库 ...
- Linux下自动备份Oracle数据库并删除指定天数前的备份
说明: Oracle数据库服务器 操作系统:CentOS IP:192.168.0.198 端口:1521 SID:orcl Oracle数据库版本:Oracle11gR2 具体操作: 1.root用 ...
- Linux下自动备份MySQL数据库详细操作步骤(转载)
环境说明操作系统:CentOSIP:192.168.150.214Oracle数据库版本:Oracle11gR2用户:root 密码:123456端口:3306数据库:ts_0.ts_1.ts_2.t ...
- CentOS下使用crontab+mysqldump实现定时自动备份数据库
一 : 为什么要进行数据库的备份? 最主要的原因:尽可能地减少损失,包括时间上.精神上和金钱上的损失.很多人都不注意备份数据,以致在发生问题后丢失大量的重要数据.要知道,在地球上网是很危险的,即使做好 ...
- MySql在Linux上实现每天自动备份
Mysql自动备份 创建存放备份sql的文件夹 mkdir /jimisun/mysqlBackup 测试命令行备份数据库 /usr/bin/mysqldump --opt -uroot -pjimi ...
随机推荐
- 解决T400\T500\W500等安装win10驱动后黑屏问题
T400.W500.T500等机型有双显卡的机型,在安装WIn10后会在驱动后黑屏,但可见启动画面: 原因:没有对应的双显卡驱动程序,导致系统无法正确识别显卡: 解决方法:开机按F1进入Bios,在显 ...
- Maven3简介
Maven3简介 百度百科 maven官网: http:\/\/maven.apache.org\/ Maven下载安装 Maven 下载:http:\/\/maven.apache.org\/dow ...
- MDK的一些设置(尤其是部分代码无法断点问题的解决)
转自http://www.cnblogs.com/worldsing/p/3412323.html
- angular中的代码执行顺序和$scope.$digest();
angular中,在一个controller里$scope.whatever=function(){...} ,这样写只是在这个scope作用域里定义了一个函数,如果要执行的话还得在这个control ...
- c#调用c++动态链接库的问题
1. Server Error in '/' Application. Object reference not set to an instance of an object. 这个问题是接口中的方 ...
- OC面向对象—多态
OC面向对象—多态 一.基本概念 多态在代码中的体现,即为多种形态,必须要有继承,没有继承就没有多态. 在使用多态是,会进行动态检测,以调用真实的对象方法. 多态在代码中的体现即父类指针指向子类对象. ...
- POJ 1094 Sorting It All Out 拓扑排序 难度:0
http://poj.org/problem?id=1094 #include <cstdio> #include <cstring> #include <vector& ...
- 在Ubuntu上安装JDK、Ant、Jmeter和Jenkins
一.前期准备 1. 在win7下载VMware.Ubuntu(用迅雷下比较快) 2. 安装完VMware后新建虚拟机,选择iso: 3. 具体配置参考如下,至此Ubantu安装完成 二.在Ubuntu ...
- Node.js 创建HTTP服务器
Node.js 创建HTTP服务器 如果我们使用PHP来编写后端的代码时,需要Apache 或者 Nginx 的HTTP 服务器,并配上 mod_php5 模块和php-cgi. 从这个角度看,整个& ...
- 删除Windows 服务
删除的办法有两个: 办法一: 用sc.exe这个Windows命令 开始--运行--cmd.exe,然后输入sc就可以看到了.使用办法很简单: sc delete “服务名” (如果服务名中间有空格, ...