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、新建数据库与数据库设备

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

sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原_第1张图片

 

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

 sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原_第2张图片

那这个大小如何设置呢?

 

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

 

例子:

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

 

然后再新建一个数据库  oa3

sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原_第3张图片

 

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

 sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原_第4张图片

 

所以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

 

 

你可能感兴趣的:(sybase数据库 Linux环境下,每天定时全量备份+sybase数据库 stripe on 还原)