在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 ...
随机推荐
- 深入浅出设计模式——策略模式(Strategy Pattern)
模式动机 完成一项任务,往往可以有多种不同的方式,每一种方式称为一个策略,我们可以根据环境或者条件的不同选择不同的策略来完成该项任务.在软件开发中也常常遇到类似的情况,实现某一个功能有多个途径,此时可 ...
- [bzoj3555]企鹅QQ(hash)
3555: [Ctsc2014]企鹅QQ Time Limit: 20 Sec Memory Limit: 256 MBSubmit: 1645 Solved: 616[Submit][Statu ...
- Android Activity的加载模式和onActivityResult方法之间的冲突
前言 今天在调试程序时,发现在某一Activity上点击返回键会调用该Activity的onActivityResult()方法.我一开始用log,后来用断点跟踪调试半天,还是百思不得其解.因为之前其 ...
- HTML的基本认识
就目前学的HTML,感受最深的就是很多标签.HTML不怎么需要逻辑,只需记忆大量标签.不懂的可以参照W3C的文档.里面有很多学习的东西,很受用. 关于CSS基础: 基本选择器: 1.标签选择器 ...
- iOS MD5加密字符串
参考:http://stackoverflow.com/questions/1524604/md5-algorithm-in-objective-c 在线测试MD5:http://www.cmd5.c ...
- Less入门到上手——前端开发利器<一>
摘录less官网的解释: LESSCSS是一种动态样式语言,属于CSS预处理语言的一种,它使用类似CSS的语法,为CSS的赋予了动态语言的特性,如变量.继承.运算.函数等,更方便CSS的编写和维护. ...
- C++学习笔记一 —— 两个类文件互相引用的处理情况
先记录一些零碎的知识点: 1. 一个类可以被声明多次,但只能定义一次,也就是可以 class B; class B; class B; ……; class B {……}; 这样子. 2. 一个 ...
- Python类的实例属性详解
实例属性 1.类被实例化后才会具有的属性 2.一般在_init_()方法中创建并初始化 3.直接使用即定义:self.<属性名> 4.引用方法:self.<属性名> 5.sel ...
- Node.js在不同平台的安装方法步骤详解
Mac平台下搭建node.js开发平台 安装方式 1 步骤: 下载mac版的.pkg文件(简单直接和Windows差不多) 安装方式 2 步骤: 安装xcode(命令:xcode-select --i ...
- 判断json数据是否为空
json数据是没有length这个属性的 ,所以不能直接用.length()方法 我们可以先遍历,然后根据遍历次数求长度 1.在IE上这样遍历json:(js代码) var jsonLength = ...