免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4126 | 回复: 2
打印 上一主题 下一主题

NBU下的Sybase备份 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-07-13 23:00 |只看该作者 |倒序浏览
呵呵,应刚才一个CUer的朋友要求,
在俺的本本上查了些关于NUB的东东,
觉得这个还是挺不错的,写得算是比较典型!
不过,因年代久远,俺也不知道是谁写的,
敬请原谅,如有转载,请多说两句,
以表示对这文章作者谢意!

Sybase备份
一.        内容(略)
二.        前言(略)
三.        介绍(略)
四.        安装要求和许可证密钥注册
1.NetBackup for Sybase for Windows平台支持
参考:http://www.support.veritas.com

    2.安装的先决条件
在启用NetBackup for Sybase之前,确信完成了以下过程:
●在服务器上安装NetBackup server software。
●在需要备份数据库的客户端上安装NetBackup client软件,这一步也安装了NetBackup for Sybase。
在群集中安装的先决条件:
●Sybase软件必须被安装到每个节点上。
●NetBackup server或Client软件必须被安装到每个群集节点上。

3.注册NetBackup for Sybase
NetBackup for Sybase跟NetBackup Server和Client软件一起被安装,要使用此代理,你必须要在其master或media server上注册一个有效的许可证密钥。在一个群集环境里,许可证密钥必须被注册到安装了NetBackup Server的每个节点。
如果在你的机器上有多个Sybase ASE实例,那么你需要拷贝NetBackup for Sybase库文件到每个Sybase实例。

注册一个许可证密钥
使用NetBackup管理控制台里的Help > License Keys。

拷贝NetBackup for Sybase库文件
拷贝install_path \NetBackup\dbext\sybase\libsybackup.dll文件到合适的位置:
●对于Sybase ASE 12.0 或 12.5         %SYBASE%\ASE-12_*\lib\
●对于Sybase ASE 11.9.2               %SYBASE%\lib\

五.        配置
配置过程主要包括:
●使用windows的NetBackup管理控制台进行配置(略)
●使用UNIX的NetBackup管理控制台进行配置(略)
●创建脚本
●配置NetBackup客户端
●用户授权
●启用条带化的(striped)dumps和loads
●测试NetBackup for Sybase配置(略)

1.使用windows的NetBackup管理控制台进行配置(略)
2.使用UNIX的NetBackup管理控制台进行配置(略)
3.创建脚本
Sybase SQL脚本使SQL Server发送命令到Sybase ASE Backup Server,初始化dump或load一个数据库或事务日志。Sybase isql工具与SQL Server通信。
下面的例子脚本包含在NetBackup for Sybase的安装中:
sybase_mydb_backup.cmd
sybase_mydb_load
sybase_mydb_restore.cmd
它们具体位于下面的文件夹中:
install_path\NetBackup\dbext\sybase\samples\
如果有必要,你可以拷贝脚本到客户端的任何其它位置。尽管每个脚本可以执行多个Sybase ASE Backup Server操作,但每种类型的操作需要单独的脚本。例如:备份和还原就需要单独的脚本。
小心:当配置自动备份或通过NetBackup启动操作时,总是指定正确的脚本。如果一个还原脚本用于备份操作或反之,NetBackup for Sybase不会产生一个错误。

    (1)修改Sybase ASE备份脚本的指导
①如果有必要,你可以拷贝脚本到客户端的任何其它位置。
②确保存在对脚本的共享访问。
③修改sybase_mydb_backup.cmd例子脚本。
a.用文本编辑器(如记事本)打开sybase_mydb_backup.cmd例子脚本。
b.按照脚本里的指导,进行修改,参考下面:
@set SYBASE=C:\Sybase
SYBASE应该设置为SYBASE主目录文件夹。一般就是SYBASE环境变量的值。
@set SYBSERVER=SYBASE
SYBSERVER应该设置为Sybase Adaptive Server的名称。通常跟DSQUERY环境变量的值相同。
@set %DATABASE_NAME%=SYB_DB
DATABASE_NAME应该设置为Sybase数据库的名称。
if "%SYBACKUP_SCHED%" == “database_dump” goto dbdump
用计划进行数据库dump的自动备份时间表来替换database_dump。
@echo dump %DUMP_TYPE% %DATABASE_NAME% to
"sybackup::-SERV %SYBACKUP_SERVER%
-POLICY %SYBACKUP_POLICY%
-SCHED Default-Application-Backup
-STAT_FILE %STATUS_FILE%" > .\syb_%DATABASE_NAME%_dump
这一行建立isql处理的dump命令。你可以更改下列名称,以符合你的环境:
NetBackup server (%SYBACKUP_SERVER%)名称
Sybase policy (%SYBACKUP_POLICY%)名称
Application Backup schedule (Default-Application-Backup)名称
@REM echo stripe on "sybackup::-SERV %SYBACKUP_SERVER%
-POLICY %SYBACKUP_POLICY%
-SCHED Default-Application-Backup
-STAT_FILE %STATUS_FILE%" >> .\syb_%DATABASE_NAME%_dump
如果你要使用多个条带(stripe)来备份Sybase ASE数据库,那么删除此行的REM,并且你需要更改NetBackup server名称,policy名称和schedule名称以匹配上面的dump命令。你需要为每个用于备份的其它条带重复此行。
set CMD_LINE=%SYBASE%%OCS_QUAL%\bin\isql
-Usa -Pmanager -I%SYBASE%\ini\sql.ini -S%SYBSERVER%
用Sybase数据库管理员的实际用户名和密码替换sa和manager。在这里不一定要使用sa。
c.可以修改sybase_mydb_backup.cmd例子脚本来备份多个数据库。
例如下面的例子使用两个不同的Policy来备份两个不同的数据库db1和db2。
dump database db1 to "sybackup:OLICY db1-policy"
go
dump database db2 to "sybackup:OLICY db2-policy"
go
    ④测试你修改后的脚本。

  (2)修改Sybase ASE还原脚本的指导
①如果有必要,你可以拷贝脚本到客户端的任何其它位置。
②确保存在对脚本的共享访问。
③修改sybase_mydb_restore.cmd例子脚本。
a.用文本编辑器(如记事本)打开sybase_mydb_restore.cmd例子脚本。
b.按照脚本里的指导,进行修改,参考下面:
@set SYBASE=C:\Sybase
SYBASE应该设置为SYBASE主目录文件夹。一般就是SYBASE环境变量的值。
@set SYBSERVER=SYBASE
SYBSERVER应该设置为Sybase Adaptive Server的名称。通常跟DSQUERY环境变量的值相同。
@set LOADDB=".\sybase_mydb_load"
LOADDB应该设置为包含Sybase ASE LOAD命令的脚本的完全路径名。只在该脚本文件所在位置跟sybase_mydb_restore.cmd脚本不同时,才需要设置。
set CMD_LINE=%SYBASE%%OCS_QUAL%\bin\isql
-Usa -Pmanager -I%SYBASE%\ini\sql.ini -S%SYBSERVER%
用Sybase数据库管理员的实际用户名和密码替换sa和manager。在这里不一定要使用sa。
c.修改sybase_mydb_load例子脚本
load database mydb from "sybackup::SYBASE11.mydb.D.0.24312.20-12-1996.23:05:25"
go
load transaction mydb from "sybackup::SYBASE11.mydb.T.0.44532.21-12-1996.22:01:00"
go
load transaction mydb from "sybackup::SYBASE11.mydb.T.0.14142.22-12-1996.20:45:00"
go
online database mydb
go
用实际的数据库名称替换mydb。
用实际的备份映像名替换双引号中“sybackup::”后面的部分。
你可以在LOAD命令中指定NetBackup server的名称,如:
load database mydb from "sybackup::SYBASE12.mydb.D.0.24312.20-12-2001.23:05:25 -SERV saturn"
go
online database mydb
go
-SERV指定了NetBackup server的名称,这将替换在NetBackup客户端配置里指定的任何NetBackup server。
④测试你修改后的脚本。

(3)环境变量
当备份计划运行时,NetBackup为脚本设置环境变量,这些变量包括:
SYBACKUP_SERVER              NetBackup server的名称
SYBACKUP_POLICY               NetBackup 策略的名称
SYBACKUP_SCHED               NetBackup自动备份时间表的名称
SYBACKUP_SCHEDULED          如果是一个计划备份,那么设置为1
SYBACKUP_USER_INITIATED      如果是用户发起的备份,那么设置为1
注意:SYBACKUP_POLICY和SYBACKUP_SCHED只在备份从服务器发起(包括自动或手动)时,才需要设置。

4.配置NetBackup客户端
当启动NetBackup for Sybase操作时,NetBackup按以下顺序搜索定义的POLICY, SERVER和SCHEDULE:
●Sybase ASE DUMP命令中的-SERV, -POLICY和-SCHED。
●NetBackup客户端配置:打开Backup, Archive, and Restore,点击File > NetBackup Client Properties。点击Backups选项。
注意:NetBackup使用客户端配置里指定的Policy或Schedule来备份客户端的全部备份,包括文件系统和Sybase数据库备份。因为这个原因,如果配置了一个非Sybase策略或时间表,Sybase ASE DUMP命令必须使用-POLICY或-SCHED选项来指定正确的策略或时间表。
如果NetBackup不能发现定义的POLICY和SCHEDULE,那么NetBackup for Sybase默认使用第一个相同类型的策略。

5.用户授权
因为NetBackup Client service默认以SYSTEM帐号启动,值得注意的是,这也用于数据库用户认证,如果你正使用操作系统认证,那么SYSTEM帐号没有访问目标数据库的权限,那么你必须使用有SYSDBA权限的帐号来启动NetBackup Client service,如下:
①选择 开始 > 设置 > 控制面板。
②打开 管理工具 里的 服务。
③双击 NetBackup Client service。点击 停止。
④点击 登录。在登录身份下,选择 此帐户。
⑤输入有SYSDBA权限的系统帐号及密码。或通过浏览按钮来选择。
⑥点击 常规 选项卡,点击 启动。
以上是win2000 server下的设置,windows nt可能稍有不同。

6.启用条带化的(striped)dumps和loads
NetBackup for Sybase支持Sybase ASE Backup Server同时打开多个数据流执行平行的dumps和loads,在dump和load能够进行之前,所有的数据流必须同时有效。另外,load过程中指定的条带数量必须跟dump时指定的数量相同。
小心:当Sybase数据库备份使用Sybase ASE条带和NetBackup multiplex (MPX)时,NetBackup复制必须使用multiplex选项来执行。当多个Sybase ASE条带被multiplexed到单个磁带,而磁带复制没有使用-mpx选项时,将产生问题。用bpduplicate命令创建的复制磁带必须使用-mpx选项。另外,来自Sybase ASE multiplex会话的所有备份必须被包含在复制的multiplexed group里。
如果multiplex条带化的Sybase ASE数据库备份,你可能需要一个特别的配置来还原它们。默认下,从multiplexed备份还原时,NetBackup使用12个数据缓冲区,这应该足够了,除非你使用了超过12个条带。如果你使用了超过12个条带,那么按照如下步骤增加数据缓冲区数量:
①在有存储单元的NetBackup server上创建如下文件:
●对于UNIX的NetBackup server:
install_path/netbackup/db/config/NUMBER_DATA_BUFFERS_RESTORE
●对于Windows的NetBackup server:
install_path\NetBackup\db\config\NUMBER_DATA_BUFFERS_RESTORE
②指定缓冲区数量,此数字是该文件的唯一条目。

用于条带化dump的脚本实例:
dump database mydb to "sybackup::"
stripe on "sybackup::"
stripe on "sybackup::"
go

用于条带化load的脚本实例:
load database mydb from "sybackup::SYBASE11.mydb.D.0.27997.20-10-1997.10:55:52" stripe on "sybackup::SYBASE11.mydb.D.1.27999.20-10-1997.10:55:52"
stripe on "sybackup::SYBASE11.mydb.D.2.28001.20-10-1997.10:55:52"
go

8.测试NetBackup for Sybase配置(略)

六.        使用NetBackup for Sybase
安装和配置完成之后,你可以从NetBackup界面来启动Sybase数据库备份和还原,你也可以从isql工具直接执行dump和load命令来备份和还原数据库。
这一章包含下列部分:
●执行一个备份
●浏览备份
●执行一个还原

1.        执行一个备份
有两种类型的Sybase ASE备份:完全备份和增量备份。
完全备份:这个数据库的拷贝,包括数据和事务日志,使用数据库dump来完成。
增量备份:包含自最后一次数据库或事务日志dump以来更改过的数据的事务日志的拷贝。你可以只在数据库保存它的日志到一个独立的部分时,才备份事务日志。
为了确保一致和精确备份,总是在备份之前使用DBCC进行一致性检查。DUMP命令甚至在数据库损坏时也可以成功完成。

(1)备份策略
设计一个备份计划的主要任务之一是决定多久备份一次数据库。备份的频率决定了在介质失败时,你可以保留多少工作,在你创建每个数据库之后,进行dump,作为一个基准点,然后在以后使用固定的计划进行dump。
一个数据库备份策略的例子如下:
①每周五晚上,执行一次数据库完全备份。
②每周五晚上,备份重要的Sybase文件。你也可以在其它时间备份它们。
③为了进一步的保护,Sybase推荐你保留全部重要的Sybase脚本。这些脚本包含disk init, create database和alter database命令。
④Sybase也推荐你在每次提交这些命令之一时,保留一份sysdatabases, sysusages和sysdevices表的硬拷贝。另外,保留一份syslogins等的拷贝。

(2)Sybase策略的自动备份
    备份数据库的最方面的方法是为自动备份建立时间表,当NetBackup scheduler(计划程序)提交一个自动备份的时间表时,Sybase脚本:
●跟出现在File list里的顺序一样运行。
●在策略所包含的所有客户端上运行。

(3)Sybase策略的手动备份
NetBackup master server的管理员可以手动执行Sybase策略的自动备份计划。

(4)用户直接备份
    你可以从客户端上的isql工具来执行Sybase ASE DUMP命令:
dump transaction mydb to "sybackup::"
go

2.浏览备份
    你可以使用bplist命令来浏览master server上的Sybase备份历史,结果是dump文件名列表,下面的例子使用bplist命令搜索candytuft服务器上的copper客户端的所有Sybase备份:bplist -S candytuft -C copper -t 7 -R \


    -t 7指搜索Sybase备份。

    3.执行一个还原
还原一个Sybase数据库的过程依赖于数据库的复杂性和系统存在的问题。如果数据库和设备被丢失:
①初始化一个新设备。
②重建一个数据库。
下面的例子如何还原一个例子数据库mydb,到一个最新的数据库dump加上两个事务日志dump。
③从SQL Server直接运行LOAD命令。这将装载数据库dump和事务日志dump。
④使用DBCC命令检查数据库的一致性。

(1)使用isql还原一个Sybase数据库
恢复数据库的步骤可能包括:
①为系统数据库使用buildmaster, installmaster和installmodel。
②重建数据库设备。
③重建数据库。
④Load数据库dump。
⑤应用事务日志dump。

Load可能比dump要花费更长的时间,Load数据库需要的时间跟数据库里页的总数成正比。load database命令从dump装载所有使用过的页到目标数据库,并运行syslog恢复,确保数据库一致。Load过程初始化任何未使用过的页。
你可以从客户端上的isql工具手动提交Sybase ASE LOAD命令,来装载数据库dump和事务日志dump。

    (2)客户端上的重定向还原配置
如果你想浏览和还原属于另一个客户端的备份,按照如下步骤:
在NetBackup server上配置允许重定向还原。
在LOAD命令里使用-CLIENT选项指定客户端名称,例如:
load database mydb from "sybackup::SYBASE.mydb.D.0.14693.12-12-1997.09:28:37 -CLIENT saturn"
go

七.        故障处理
NetBackup, NetBackup for Sybase和Sybase ASE Backup Server都提供数据库备份和还原操作的报告,这些报告对于查找跟这些程序有关的错误非常有用。
这一章包含下面部分:
●NetBackup和NetBackup for Sybase日志
●设置Debug级别
●Sybase ASE Backup Server日志和信息
●防止超大数据库还原时的超时失败

    1.NetBackup和NetBackup for Sybase日志
启用NetBackup for Sybase日志:
①在客户端上创建下列文件夹:
install_path\NetBackup\logs\bphdb
install_path\NetBackup\logs\sybackup
install_path\NetBackup\logs\bporaexp
install_path\NetBackup\logs\bporaimp
install_path\NetBackup\logs\bporaexp64
install_path\NetBackup\logs\bporaimp64
②确保存在日志文件夹的共享访问。
下面是一个例子日志


NetBackup for Sybase发送指定dump文件名的信息给Sybase ASE Backup Server。下面部分描述在日志目录里创建的日志,使用文本编辑器来查看日志内容。
Bphdb目录
install_path\NetBackup\logs\bphdb包含以下类型的信息,这些日志是确认发生的问题类型的开始部分。
sybase_stdout.mmddyy.hhmmss.txt
除非重定向到了其它地方,NetBackup在此文件中放置Sybase脚本输出。
sybase_stderr.mmddyy.hhmmss.txt
除非重定向到了其它地方,NetBackup在此文件中放置Sybase脚本错误。
log.mmddyy.log
bphdb是NetBackup数据库备份程序,此日志包含bphdb进程的Debug信息,NetBackup for Sybase使用此客户端进程来执行Sybase脚本,它在执行自动备份计划时产生。

Sybackup目录
install_path\NetBackup\logs\sybackup包含下面的执行日志。
log.mmddyy.log
此日志包含链接到NetBackup for Sybase所提供的库程序的NetBackup客户端进程的Debug信息和执行状态。

bporaexp(bporexp64)目录
install_path\NetBackup\logs\bporaexp(bporaexp64)包含下面的执行日志。
log.mmddyy.log
此日志包含用于XML exports的bporaexp(bporaexp64)程序的Debug信息和执行状态。

bporaimp(bporaimp64)目录
install_path\NetBackup\logs\bporaimp(bporaimp64)包含下面的执行日志。
log.mmddyy.log
此日志包含用于XML imports的bporaimp(bporaimp64)程序的Debug信息和执行状态。

NetBackup server报告
NetBackup提供其它报告,对于隔离问题非常有用。

2.设置Debug级别
你可以通过更改General选项来控制写入到install_path\NetBackup\logs目录内的Debug日志的信息数量,值越高,日志的信息越多。在每天的日常操作里,默认值0就足够了。但在分析问题时,VERITAS技术支持可能让你设置高一点的值。
①选择 开始 > 程序 > VERITAS NetBackup > Backup, Archive, and Restore。
②选择File > NetBackup Client Properties。
③选择Troubleshooting选项。默认下,这些设置都为0。
④设置Database的Debug级别。


3.Sybase ASE Backup Server日志和信息
    Sybase ASE Backup Server日志提供关于操作的Sybase ASE Backup Server部分的信息。这是数据库管理员必须要检查的日志,以确定数据库备份或还原是否最终成功或失败。

(1)DUMP和LOAD进程的信息
Sybase ASE Backup Server发送DUMP和LOAD进程的信息到启动dump或load请求的客户端,当你使用NetBackup启动Sybase备份时,NetBackup for Sybase路由Sybase ASE Backup Server进程信息到下面的文件里:
install_path\NetBackup\logs\bphdb\sybase_stdout.mmddyy.hhmmss.txt

(2)错误日志
Sybase ASE Backup Server执行它自己的错误日志到配置时指定的文件。发送到Sybase ASE Backup Server日志文件的信息包括来自Archive API的信息。你可以通过在backup server命令行上指定-DTRACEIO选项来启用Archive API的详细诊断跟踪。
下面是一个显示dump成功的Sybase ASE Backup Serve日志信息:
Backup Server: 3.43.1.1: Dump phase number 1 completed.
Backup Server: 3.43.1.1: Dump phase number 2 completed.
Backup Server: 4.58.1.1: Database model: 238 kilobytes DUMPed.
Backup Server: 3.43.1.1: Dump phase number 3 completed.
Backup Server: 4.58.1.1: Database model: 242 kilobytes DUMPed.
Backup Server: 3.42.1.1: DUMP is complete (database model)

4.防止超大数据库还原时的超时失败
当多个还原会话竞争资源时,超大数据库的还原有时会失败,在这种情况下,一个还原会话在等待介质或设备访问时可能被延时,如果延时太长,还原会话将超时。
超时问题可以通过增加NetBackup Client Read Timeout来解决。使用NetBackup Administration Console来更改每个包含数据库还原的客户端的属性。Client Read Timeout的默认值为300秒(5分钟)。你可能需要设置非常高的值。


八.        索引(略)

论坛徽章:
0
2 [报告]
发表于 2011-12-17 14:19 |只看该作者
基本就是那份英文手册的完整翻译,支持,反复看了几遍

论坛徽章:
0
3 [报告]
发表于 2012-01-10 15:46 |只看该作者
最近碰到棘手的问题,用7.1的NBU备份Sybase的12.5.4一直不成功,已经在厂商上开了CASE,现在是开CASE后的第5天了,问题还没有解决,现在估计是libsybackup.dll的问题,哎,国内用Sybase的用户太少了,遇到问题都不知道怎么解决。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP