linux sybase 自动备份,sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原...

一、数据库备份

OA数据库使用的是linux版本的sybase数据库,目前的备份方法是:

1、从windows server服务器上启动定时服务,执行一个bat脚本,远程启动linux上Sybase的备份,备份文件自动存放于linux的存储中。

2、从windows server服务器上启动定时服务,执行一个bat脚本,通过linux上的FTP服务,将文件获取到window server服务器上,同时删除linux服务器上备份文件(防止linux可用存储变小)。

3、从windows server服务器上启动定时服务,执行一个bat脚本,将windowsServer上的备份文件 同步到  另外一台的windows server服务器上,实现两块存储同时备份。

所有脚本文件放置于42服务器的桌面 dbBackup_56 文件夹

步骤详解:

1、定时器定时触发 backup 下的  sql.bat

sql.bat

内容:    isql -Usa -P-S56db -isql.sql>>0.txt

描述:远程登录56数据库,执行sql.sql中的语句,并将日志记录在0.txt中

sql.sql

内容:dump database oa to"/sybase/data/dbBackup/oa_1.dmp"

stripe on"/sybase/data/dbBackup/oa_2.dmp"

stripe on"/sybase/data/dbBackup/oa_3.dmp"

stripe on"/sybase/data/dbBackup/oa_4.dmp"

stripe on"/sybase/data/dbBackup/oa_5.dmp"

stripe on"/sybase/data/dbBackup/oa_6.dmp"

go

描述:将表结构和数据 备份并分成6个包。存放到sybase/data/dbBackup下。

2、定时器定时触发ftpGet文件夹下的 Update.bat,从56 linux服务器将/sybase/data/dbBackup下的6个备份文件通过FTP 下载到 42服务器

update.bat

@echo off

setbak=%date:~0,4%%date:~5,2%%date:~8,2% //生成时间戳

e: //进入E盘

cd dbBackup //进入dbBackup

md %bak% //创建以时间戳命名的文件夹

echo open139.0.31.56>a.txt //将内容写入到a.txt

echosybase>>a.txt //将内容写入到a.txt

echosybase>>a.txt //将内容写入到a.txt

echo cd/sybase/data/dbBackup>>a.txt//将内容写入到a.txt

echo bin>>a.txt//将内容写入到a.txt

echo get oa_1.dmp e:/dbBackup/%bak%/oa_1.dmp>>a.txt//将内容写入到a.txt

echo get oa_2.dmp e:/dbBackup/%bak%/oa_2.dmp>>a.txt//将内容写入到a.txt

echo get oa_3.dmp e:/dbBackup/%bak%/oa_3.dmp>>a.txt//将内容写入到a.txt

echo get oa_4.dmp e:/dbBackup/%bak%/oa_4.dmp>>a.txt//将内容写入到a.txt

echo get oa_5.dmp e:/dbBackup/%bak%/oa_5.dmp>>a.txt//将内容写入到a.txt

echo get oa_6.dmp e:/dbBackup/%bak%/oa_6.dmp>>a.txt//将内容写入到a.txt

echo deleteoa_1.dmp>>a.txt //将内容写入到a.txt

echo delete oa_2.dmp>>a.txt //将内容写入到a.txt

echo deleteoa_3.dmp>>a.txt //将内容写入到a.txt

echo deleteoa_4.dmp>>a.txt //将内容写入到a.txt

echo deleteoa_5.dmp>>a.txt //将内容写入到a.txt

echo deleteoa_6.dmp>>a.txt //将内容写入到a.txt

echo bye>>a.txt//将内容写入到a.txt

ftp -s:a.txt//以a.txt中的内容登录到56ftp下载文件

3、定时器定时触发ftpPut 文件夹下的 Update.bat,将42服务器内的6个备份文件传送到异地备份服务器,以防止磁盘崩溃

update.bat

@echo off

setbak=%date:~0,4%%date:~5,2%%date:~8,2% //生成时间戳

echo open139.36.0.249>a.txt

echogyoaFTP>>a.txt

echo gyoaFTP2015>>a.txt

echo cd/z-dbBackup>>a.txt

echo mkdir%bak%>>a.txt

echo cd%bak%>>a.txt

echo bin>>a.txt

echo pute:/dbBackup/%bak%/oa_1.dmp>>a.txt

echo pute:/dbBackup/%bak%/oa_2.dmp>>a.txt

echo pute:/dbBackup/%bak%/oa_3.dmp>>a.txt

echo pute:/dbBackup/%bak%/oa_4.dmp>>a.txt

echo pute:/dbBackup/%bak%/oa_5.dmp>>a.txt

echo pute:/dbBackup/%bak%/oa_6.dmp>>a.txt

echo bye>>a.txt

ftp -s:a.txt//通过a.txt的内容将备份文件传输至备份服务器

二、数据库还原

1、新建数据库与数据库设备

数据还原有一个前提,目标数据库一定要比原数据库大,这个大小指的是:

6f0752a8f375583f72dc59cd83e1707b.png

例如,正式环境中,OA数据库的大小是50000M,那你要还原的大小必须超过50000M

8bd1c62b3ce93ec157639e1c9461397b.png

那这个大小如何设置呢?

这个大小说的就是“数据库设备”的大小的综合,每个数据库都可以添加多个数据库设备,sybase将数据和日志 存储在数据库设备中,如果某一天发现数据库设备不够了,可以新建一个“数据库设备”,然后将这个数据库设备添加进  数据库。

3f5bf131f308b4cefca297b7337144e0.png

例子:

这里新添加了两个数据库设备,sysdump5(30000M)和sysdump6(32000M)

然后再新建一个数据库  oa3

f595984df0fa376a72484a2d2f6158a0.png

为oa3数据库添加两个“数据库设备”

7c4870223f9351edd8b8ff8730eb7610.png

所以oa3的总大小为  sysdump5分配的大小+sysdump6分配的大小

二、结构与数据还原

1、还原之前,首先断开所有数据库连接工具与应用的连接,确保数据库不被占用

2、将6个数据库备份文件拷贝到目标数据库所在的磁盘中。如 E:\dbBackup\20151210

3、确保sybase 备份与还原服务处于打开状态

SybaseBCKServer

4、打开一个客户端连接工具,数据库选中master

执行以下语句:

loaddatabase oa3 from "E:\dbBackup\20151210\oa_1.dmp"

stripeon "E:\dbBackup\20151210\oa_2.dmp"

stripeon "E:\dbBackup\20151210\oa_3.dmp"

stripeon "E:\dbBackup\20151210\oa_4.dmp"

stripeon "E:\dbBackup\20151210\oa_5.dmp"

stripeon "E:\dbBackup\20151210\oa_6.dmp"

onlinedatabase oa3

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值