Sybase数据库备份策略
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
3.5.3 Sybase数据库备份策略
数据库一般是采用热备份的方式进行,并且数据库本身提供热备份的工具。
Sybase ASE在正常安装时会自动安装和配置有SQL Server 与 Sybase ASE Backup Server。
SQL Server通过向Sybase ASE发送DUMP或LOAD命令指示Sybase ASE BackupServer去执行数据库的备份与恢复,这些命令指示告诉SybaseASE BackupServer要用哪些设备去备份或恢复数据库。
Sybase ASE BackupServer
可以和用户进程集成一起执行备份与恢复任务,例如Netbackup for Sybase on Unix。
Netbackup for Sybase on Unix 通过Archive API 与Sybase ASE BackupServer 集成在一起。
Sybase ASE BackupServer 利用Archive API把数据I/O请求转换成“an archive-byte stream”。
在执行备份或恢复动作时,Sybase ASE BackupServer加载 Netbackup for Sybase on Unix 库函数并向Archive API 发出对流设备的开/关、读/写等操作请求。
SQL Server 与Sybase ASE BackupServer 不产生备份记录,但是当执行数据库或事务(transaction)备份(DUMP)时,Netbackup for Sybase on Unix会为备份集自动产生一个文件名,在执行恢复(LOAD)时要指明这个文件名。
另外要说明的是,Sybase 数据库的备份分为DATABASE与TRANSACTION两种备份,在本系统中只执行DATABASE类型的备份。
数据库备份策略配置步骤和文件系统备份策略步骤基本相同(见3.5.2):
Step1: 启动并登录java管理界面
#/usr/openv/netbackup/bin/jnbSA&
Step2: 打开“Netbackup Management”,选择 Policy,在中间窗口中点击鼠标右键或点击toolbar上按钮打开一对话框
Step3: 在Add a New Policy对话框中输入new policy的名字
Step4: 进入policy参数配置窗口,选择“Policy Type”值为Sybase
Step5: 点击“schedule”标签,进入“schedule”配置窗口:
创建新的schedule 时,“Type of Backup”要选择Application Backup 或Automatic Backup
Application Backup可以使用户定义的备份动作得以在备份client端上执行,在sybase 数据库备份策略中至少有一个此类型的schedule。
Default-Application-Backup schedule是自动配置的Application Backup schedule,它的备份窗口(backup window)含盖了Automatic Backup schedule 的备份窗口,使得Automatic Backup schdule可以在任何时候执行。
Automatic Backup指明了Netbackup将自动执行sybase备份脚本来启动数据库备份的日期和时间,并且Netbackup catalog根据Automatic Backup schedule 管理备份集。
Step6: 点击Files 标签,配置sybase 备份脚本的全路径文件名
在本系统中,所有的脚本目录都相同:
/Sybase/scripts/Sybase_DATABASENAME_backup
DATABASENAME以sybase database name代替。
稍后介绍脚本的配置与修改。
Step7 :选择 Client 标签,配置备份主机,即要备份谁的数据
在窗口中选择“New”,增加备份主机,同时选择其OS类型和版本
对于HA环境中的数据库备份,备份主机对应的IP Address应是数据库的Service IP address。
Step8 :点击“close”,完成一个policy的配置
Step9 :重复step2-step8,配置所有的文件系统备份类型的policy
Step10:在数据库备份client上,创建$SYBASE/bp.conf文件
文件内容如下:
BPBACKUP_POLICY=policy_name/*指明数据库备份的policy名字
BPBACKUP_SCHED=schedule_name/*指明Application Backup schedule 名字
Step11:在数据库备份client,创建修改如下文件:
/usr/openv/netbackup/bp.conf, 增加参数:
SYBASE_HOME=/Sybase /*指明数据库的home目录
Step12: 在所有数据库备份client重复 Step10-Step11。
至此,在MasterServer上数据库备份策略配置完成。
在安装Netbackup for Sybase on Unix时,会产生备份与恢复脚本的模板,/usr/openv/netbackup/ext/db_ext/sybase/scripts目录下,把这些文件复制到预先创建的目录$SYBASE/scripts下,并且修改这些文件的访问权限为775。
对于备份脚本的修改,以P69WIPSH01主机上的model(database name)为例介绍(粗体字为作者加的注释)
#!/bin/sh
# sybase_mydb_backup $Revision: 1.7 $
#*********************************************************************** ****
# Replace /usr/sybase12 below with the actual Sybase home directory
#***********************************************************************
****
SYBASE=/SYBASE/*指明实际的Sybase 数据库home 目录
#*********************************************************************** ****
# Replace SYBASE12 below with the actual name of the SQL Server
#***********************************************************************
****
SYBSERVER=WIPS_SERV /*指明数据库 SQL Server的名字
#*********************************************************************** ****
# Replace SYB_DB below with the actual name of your Sybase database
#***********************************************************************
****
DATABASE_NAME=model /*指明要备份的数据库名字
#***********************************************************************
****
# Replace syb_files below with your actual name of the NetBackup
# server Policy to be used to backup the directory with Sybase script files
#*********************************************************************** ****
#SYB_FILES_POLICY=syb_files /*指明要备份的Sybase数据库scripts files 的策略名如果不备份这些文件,可以注释此行,否则指明策略名字,且在Netbackup中配
置关于此client的user-backup schedule-type 策略。
在本系统中不备份这些文
件
#*********************************************************************** ****
# Replace /usr/sybase12/scripts below with your actual path of the Sybase files
#*********************************************************************** ****
SYB_FILES_DIR=/usr/sybase12/scripts /*根据上一个参数进行相应配置
if [ ! -d "${SYBASE}"/ASE-12_0/ ]
then
#************** Sybase 11.9.2 or earlier *******************
ASE_QUAL=
OCS_QUAL=
else
#************** Sybase 12.0 ****************************
SYBASE_ASE=ASE-12_0; export SYBASE_ASE
SYBASE_OCS=OCS-12_0; export SYBASE_OCS
ASE_QUAL=/$SYBASE_ASE
OCS_QUAL=/$SYBASE_OCS
fi
echo "Started ‘date‘"
SYBASE=$SYBASE; export SYBASE
# These environment variables are set by NetBackup
echo "SYBACKUP_SERVER = $SYBACKUP_SERVER"
echo "SYBACKUP_POLICY = $SYBACKUP_POLICY"
echo "SYBACKUP_SCHED = $SYBACKUP_SCHED"
echo "SYBACKUP_SCHEDULED = $SYBACKUP_SCHEDULED"
echo "SYBACKUP_USER_INITIATED = $SYBACKUP_USER_INITIATED"
RETURN_STATUS=0
#*********************************************************************** ****
# Replace "database_dump" below with your actual NetBackup schedule name
# which is used for a full backup of the Sybase database.
#*********************************************************************** ****
if [ "${SYBACKUP_SCHED}" = "Auto-Full" ] /*指明在Policy中定义的Automatic
Backup schedule的名字
then
############# NetBackup has started a "database_dump" backup ##############
DUMP_TYPE=DATABASE
else
############# NetBackup has started a "transaction log" backup ##############
DUMP_TYPE=TRANSACTION
fi
#*********************************************************************** ****
# Replace "Default-Application-Backup" below with your actual NetBackup
# Application Backup type schedule name for the Sybase database.
#*********************************************************************** ****
echo dump $DUMP_TYPE $DATABASE_NAME to \"sybackup::-SERV $SYBACKUP_SERVER
-POL $SYBACKUP_POLICY -SCHED Default-Application-Backup\" >
./syb_${DATABASE_NAME}_dump /*产生SQL 脚本文件
#*********************************************************************** ***
# Remove the ’#’ from the beginning of the line below if you are going to
# use multiple stripes for the backup. Repeat this line for each stripe.
# Replace "Default-Application-Backup" below with your actual NetBackup
# Application Backup type schedule name for the Sybase database.
#
************************************************************************ **
# echo stripe on \"sybackup::-SERV $SYBACKUP_SERVER -POL $SYBACKUP_POLICY
-SCHED Default-Application-Backup\" >> ./syb_${DATABASE_NAME}_dump
echo go >> ./syb_${DATABASE_NAME}_dump
#*********************************************************************** ****
# Replace "manager" with your Sybase server Administrator’s Password
#*********************************************************************** ****
echo "$SYBASE$OCS_QUAL/bin/isql -Usa -Pmanager -I$SYBASE/interfaces
-S$SYBSERVER < ./syb_${DATABASE_NAME}_dump"
$SYBASE$OCS_QUAL/bin/isql -Usa -Pmanager -I$SYBASE/interfaces -S$SYBSERVER <./syb_${DATABASE_NAME}_dump /*执行SQL脚本文件,发起数据库备份
RETURN_STATUS=$?
if [ "${DUMP_TYPE}" = "DATABASE" ]
then
# Initiate a backup of any file related to the Sybase database, such as script files.
#echo "bpbackup -c $SYB_FILES_POLICY $SYB_FILES_DIR"
#/usr/openv/netbackup/bin/bpbackup -c $SYB_FILES_POLICY $SYB_FILES_DIR
#BPBACKUP_STATUS=$?
#if [ "$BPBACKUP_STATUS" -ne 0 ]
#then
#echo ""
#echo "bpbackup of $SYB_FILES_DIR returned $BPBACKUP_STATUS"
#fi
#fi /*如果执行Sybase 数据库相关文件的备份,则可以不
注释这几行,否则会返回不正常信息
echo "Finished ‘date‘"
echo "exit $RETURN_STATUS"
echo ""
exit $RETURN_STATUS
在不同的client端根据数据库的相关参数修改脚本参数。