安装oracle采用自动备份,Oracle,MySQL数据库自动备份实例

Oracle,MySQL数据库自动备份实例

1,关于Oracle,由于我需要备份的Oracle数据库较小,所以采用exp方式,脚本如下

#环境变量

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

export ORACLE_SID=test1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32

export LD_LIBRARY_PATH_64=$ORACLE_HOME/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

#进行备份

exp test/test@test1 file=/data/bakup/test_15day.dmp direct=y

#由于exp未主动覆盖备份文件,这里就采用mv重命名

mv -f test_15day.dmp test.dmp

#将备份进行压缩存档

gzip -c /data/bakup/test.dmp > /data/bakup/test_`date +%y%m%d%H%M`.gz

#环境变量

export ORACLE_BASE=/home/oracle

export ORACLE_HOME=$ORACLE_BASE/product/10.2.0/db

export ORA_CRS_HOME=$ORACLE_BASE/product/10.2.0/crs

export PATH=$PATH:$ORACLE_HOME/bin:$ORA_CRS_HOME/bin

export ORACLE_SID=test1

export LD_LIBRARY_PATH=$ORACLE_HOME/lib32

export LD_LIBRARY_PATH_64=$ORACLE_HOME/lib

export CLASSPATH=$ORACLE_HOME/JRE:$ORACLE_HOME/jlib:$ORACLE_HOME/rdbms/jlib

#进行备份

exp test/test@test1 file=/data/bakup/test_15day.dmp direct=y

#由于exp未主动覆盖备份文件,这里就采用mv重命名

mv -f test_15day.dmp test.dmp

#将备份进行压缩存档

gzip -c /data/bakup/test.dmp > /data/bakup/test_`date +%y%m%d%H%M`.gz

若是oracle备份,在远端主机,可以用scp拖回本地,这里采用expect工具自动登录

#!/usr/bin/expect -f

#定义密码

set password oracle

#下载过程

spawn scp oracle@10.0.0.1:/data/backup/test.dmp /data/oracle_backup_test/

set timeout 200

expect "oracle@10.0.0.1's password:"

set timeout 200

send "$password\r"

set timeout 200

send "exit\r"

expect eof

#!/usr/bin/expect -f

#定义密码

set password oracle

#下载过程

spawn scp oracle@10.0.0.1:/data/backup/test.dmp /data/oracle_backup_test/

set timeout 200

expect "oracle@10.0.0.1's password:"

set timeout 200

send "$password\r"

set timeout 200

send "exit\r"

expect eof

2,关于MySQL,这里采用mysqldump工具进行导出,命令较为简单

#命令中包含地址,用户名密码,数据库名称,其中数据库名称可以为多个

mysqldump -h 10.0.0.9 -ubackup -p123456 test > /data/mysql_backup/test.sql

#这里通过拷贝进行归档

cp /data/mysql_backup/test.sql /data/mysql_backup/backup-`date +%y%m%d%H%M`.sql

#命令中包含地址,用户名密码,数据库名称,其中数据库名称可以为多个

mysqldump -h 10.0.0.9 -ubackup -p123456 test > /data/mysql_backup/test.sql

#这里通过拷贝进行归档

cp /data/mysql_backup/test.sql /data/mysql_backup/backup-`date +%y%m%d%H%M`.sql

3,备份的压缩归档,通过压缩可以减少存储空间的占用

#压缩命令,这里加上参数p,是为了保留原始文件信息,便于恢复

tar -zcvpf /data/NAME.tgz file1 file2

#file1,file2可以为多个,中间用空格隔开,可以是目录,可以是文件

#压缩命令,这里加上参数p,是为了保留原始文件信息,便于恢复

tar -zcvpf /data/NAME.tgz file1 file2

#file1,file2可以为多个,中间用空格隔开,可以是目录,可以是文件

4,将备份上传到ftp服务器

#这是一个将数据库备份压缩归档并上传ftp服务器的脚本

#!/bin/sh

#定义日期,最小到天,并对数据库进行压缩打包

DATE=`date +%Y%m%d`

tar -zcvpf /data/ftp/db_$DATE.tgz /data/mysql/test.sql /data/other/ /data/oracle/

#定义ftp服务器地址,用户,密码信息

host="10.0.0.21"

id="admin"

pwd="666666"

#定义本地文件路径

basedir="/data/ftp"

#上传过程

ftp -n "$host" <

user $id $pwd

binary

prompt

lcd $basedir

cd backup

mput db_$DATE.tgz

bye

EOC

#!/bin/sh

#定义日期,最小到天,并对数据库进行压缩打包

DATE=`date +%Y%m%d`

tar -zcvpf /data/ftp/db_$DATE.tgz /data/mysql/test.sql /data/other/ /data/oracle/

#定义ftp服务器地址,用户,密码信息

host="10.0.0.21"

id="admin"

pwd="666666"

#定义本地文件路径

basedir="/data/ftp"

#上传过程

ftp -n "$host" <

user $id $pwd

binary

prompt

lcd $basedir

cd backup

mput db_$DATE.tgz

bye

EOC

5,添加为系统任务自动执行

采用crontab方法,具体参考上篇日志。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值