NBU的Sybase配置
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分钟)。你可能需要设置非常高的值。
八. 索引(略)