Linux ORCLE数据库增量备份脚本

ORCLE数据库备份策略
1.通过使用exp和imp命令实现数据库导出和导入。
有三种模式:
a. 用户模式: 导出(导入)用户所有对象以及对象中的数据;
b. 表模式: 导出(导入)用户所有表或者指定的表;
c. 整个数据库: 导出(导入)数据库中所有对象。
如:
普通导出
a.导出一个完整数据库
exp system/manager file=f.dmp full=y
b.导出数据库定义而不导出数据
exp system/manager file=f.dmp full=y rows=n
普通导入:
a.完全导入
imp system/manager file=f.dmp full=y
b.数据库结构存在时,只导入数据
imp system/manager file=f.dmp full=y ignore=y
2.每周进行数据库备份,以防数据库被意外破坏后恢复数据
安排如下:
周一: 完全备份(f1) exp xxx/xxx inctype=complete file=f1.dmp
周二: 增量备份(f2) exp xxx/xxx inctype=incremental file=f2.dmp
周三: 增量备份(f3) exp xxx/xxx inctype=incremental file=f3.dmp
周四: 增量备份(f4) exp xxx/xxx inctype=incremental file=f4.dmp
周五: 累积备份(f5) exp xxx/xxx inctype=cumulative file=f5.dmp
周六: 增量备份(f6) exp xxx/xxx inctype=incremental file=f6.dmp
周日: 增量备份(f7) exp xxx/xxx inctype=incremental file=f7.dmp
比如数据库在周日被破坏,则可用以下方式恢复:
1.创建空的数据库,同之前的结构。
2.imp xxx/xxx inctype=RESTORE FULL=y FILE=f1.dmp
3.imp xxx/xxx inctype=RESTORE FULL=y FILE=f5.dmp
4.imp xxx/xxx inctype=RESTORE FULL=y FILE=f6.dmp
说明:
完全导出:对整个数据库的备份
增量导出:是备份上一次完全导出后改变的数据。
累积导出:是备份自上次完全导出后改变的数据。
EXAMPLE:LINUX下备份数据库
BACKUP_DIR=/home/oracle/backups
if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
DAYS=(Sun Mon Tue Wed Thu Fri Sat) #创建数组
TYPES=(incremental complete incremental incremental incremental cumulative incremental)
day=`date +%w` #取得本周天数,0代表周日,1代表周一
DAY_NAME=${DAYS[$day]} #取得数组的值
TYPE=${TYPES[$day]}
DATE_NAME=`date +%F`
FILE_NAME=${DATE_NAME}-${DAY_NAME}-${TYPE}.dmp #2008-12-8-Mon-complete.dmp
exp xxx/xxx inctype=$TYPE file=${BACKUP_DIR}/${FILE_NAME} > /dev/null
gzip ${BACKUP_DIR}/${FILE_NAME}
find $BACKUP_DIR -mtime +7 -delete #删除七天前更改过的文件

时间: 2009-11-18

mysql mysqldump数据备份和增量备份

本篇文章主要讲如何使用shell实现mysql全量,增量备份.增量备份在周一-周六凌晨3点,会复制mysql-bin.00000*到指定目录:而全量备份则使用mysqldump将所有的数据库导出,每周日凌晨3点执,并会删除上周留下的mysq-bin.00000*.然后对mysql的备份操作会保留在bak.log文件中.如下图:开始:2013年05月02日 15:10:57 结束:2013年05月02日 15:12:16 20130502.sql.tgz succ是由DBFullyBak.sh产生

mysql自动增量备份的实例方法(本地备份与远程备份)

1.本地备份编写自动备份脚本:vim /var/lib/mysql/autobak内容如下: 复制代码 代码如下: cd /data/home/mysqlbakrq=` date +%Y%m%d `/usr/local/mysql/bin/mysqldump sqldb --flush-logs -uroot -p123456 --opt > 777city_$rq.sql 保存退出. chmod -777  /var/lib/mysql/autobak crontab -e00 00 * *

使用mysqldump导入数据和mysqldump增量备份(mysqldump使用方法)

1.各种用法说明 A. 最简单的用法: 复制代码 代码如下: mysqldump -uroot -pPassword [database name] > [dump file] 上述命令将指定数据库备份到某dump文件(转储文件)中,比如: 复制代码 代码如下: mysqldump -uroot -p123 test > test.dump 生成的test.dump文件中包含建表语句(生成数据库结构哦)和插入数据的insert语句. B. --opt 如果加上--opt参数则生成的dump文件

infobright导入数据遇到特殊字符报错的解决方法

目前在用的是社区版的infobright,不支持DML功能,只能用LOAD DATA方式导入数据. 如果元数据中有特殊控制字符,导入过程中经常会报错,很是恼火.应对策略有两种方法: 1.设置Reject File导入之前,设定 @BH_REJECT_FILE_PATH 和 @BH_ABORT_ON_COUNT 就可以忽略多少条导入失败的记录,并且将这些记录保存在指定文件 复制代码 代码如下: /** when the number of rows rejected reaches 10, abo

python 导入数据及作图的实现

我们经常需要导入数据,按列提取 XY作图 方法一. filename='/home/res/user/csluo/test.txt' #将文件名赋值为变量 X,Y,Z=[ ],[ ],[ ] #给三个空列表 with open(filename, 'r') as f: #打开文档 lines=f.readlines() #按行读取数据 for i in lines: value=[ float(s) for s in line.split( ) ] #将 行数据 以空格分开,并以浮点型赋给val

mysqldump备份还原和mysqldump导入导出语句大全详解

MYSQLdump参数详解 mysqldump备份: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a -w "sql条件" –lock-all-tables > 路径 mysqldump还原: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 < 路径 mysqldump按条件导出: 复制代码 代码如下: mysqldump -u用户名 -p密码 -h主机 数据库 a –where "条件语句&

MySQL数据库使用mysqldump导出数据详解

mysqldump是mysql用于转存储数据库的客户端程序.它主要产生一系列的SQL语句,可以封装到文件,该文件包含有所有重建您的数据库所需要的 SQL命令如CREATE DATABASE,CREATE TABLE,INSERT等等.可以用来实现轻量级的快速迁移或恢复数据库.是mysql数据库实现逻辑备份的一种方式. 在日常维护工作当中经常会需要对数据进行导出操作,而mysqldump是导出数据过程中使用非常频繁的一个工具:它自带的功能参数非常多,文章中会列举出一些常用的操作,在文章末尾会将所有

MySql使用mysqldump 导入与导出方法总结

导出数据库数据: 首先打开cmd进入MySQL的bin文件夹下 1.导出education数据库里面的users表的表数据和表结构(下面以users表为例) mysqldump -u[用户名] -h[ip] -p[密码] -P[端口号] 数据库名 表名 >导出的文件名.sql mysqldump -uroot -h127.0.0.1 -proot -P3306 education users>d:/user.sql 导出多张表: mysqldump -uroot -proot --databa

Mysql数据库性能优化三(分表、增量备份、还原)

接上篇Mysql数据库性能优化二 对表进行水平划分     如果一个表的记录数太多了,比如上千万条,而且需要经常检索,那么我们就有必要化整为零了.如果我拆成100个表,那么每个表只有10万条记录.当然这需要数据在逻辑上可以划分.一个好的划分依据,有利于程序的简单实现,也可以充分利用水平分表的优势.比如系统界面上只提供按月查询的功能,那么把表按月拆分成12个,每个查询只查询一个表就够了.如果非要按照地域来分,即使把表拆的再小,查询还是要联合所有表来查,还不如不拆了.所以一个好的拆分依据是 最重要的

mysql增量备份及断点恢复脚本实例

简介 增量备份是指在一次全备份或上一次增量备份后,以后每次的备份只需备份与前一次相比增加或者被修改的文件.这就意味着,第一次增量备份的对象是进行全备后所产生的增加和修改的文件:第二次增量备份的对象是进行第一次增量备份后所产生的增加和修改的文件,如此类推. 目的 解决完全备份中时间长.恢复慢的问题,采取了增量备份 特点 优:无重复数据,备份量不大,时间短 缺:需要上次完全备份及完全备份后的增量备份才能恢复,需对增量备份逐个反复恢复,操作繁琐 实现方式 通过mysql的二进制日志间接实现增量备份:

MySQL如何快速导入数据

前言: 日常学习和工作中,经常会遇到导数据的需求.比如数据迁移.数据恢复.新建从库等,这些操作可能都会涉及大量数据的导入.有时候导入进度慢,电脑风扇狂转真的很让人崩溃,其实有些小技巧是可以让导入更快速的,本篇文章笔者会谈一谈如何快速的导入数据. 注:本篇文章只讨论如何快速导入由逻辑备份产生的SQL脚本,其他文件形式暂不讨论. 1.尽量减小导入文件大小 首先给个建议,导出导入数据尽量使用MySQL自带的命令行工具,不要使用Navicat.workbench等图形化工具.特别是大数据量的时候,用My