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 SybaseNetBackup 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.cmdsybase_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:/SybaseSYBASE应该设置为SYBASE主目录文件夹。一般就是SYBASE环境变量的值。@set SYBSERVER=SYBASESYBSERVER应该设置为Sybase Adaptive Server的名称。通常跟DSQUERY环境变量的值相同。@set %DATABASE_NAME%=SYB_DBDATABASE_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:/SybaseSYBASE应该设置为SYBASE主目录文件夹。一般就是SYBASE环境变量的值。@set SYBSERVER=SYBASESYBSERVER应该设置为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 如果是一个计划备份,那么设置为1SYBACKUP_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和loadsNetBackup 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" go8.测试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::" go2.浏览备份 你可以使用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/bporaimpinstall_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.logbphdb是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分钟)。你可能需要设置非常高的值。八. 索引(略)
