远程Sybase数据库技术支持,联系手机:13811580958,QQ:289965371!

 

随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从http://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站http://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!

如有Sybase数据库技术问题需要咨询,请联系我!

  QQ :289965371 点击这里给我发消息
  Email:

以下官方手册为ASE 15.7 ESD#2中文版:

  1. 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
  2. 新增功能摘要
  3. 新增功能指南
  4. ASE 15.7 发行公告
  5. 配置指南(windows)
  6. 安装指南(windows)
  7. 参考手册:构件块
  8. 参考手册:命令
  9. 参考手册:过程
  10. 参考手册:表
  11. Transact-SQL® 用户指南
  12. 系统管理指南,卷 1
  13. 系统管理指南,卷 2
  14. 性能和调优系列:基础知识
  15. 性能和调优系列:锁定和并发控制
  16. 性能和调优系列:监控表
  17. 性能和调优系列:物理数据库调优
  18. 性能和调优系列:查询处理和抽象计划
  19. 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
  20. 性能和调优系列:利用统计分析改进性能
  21. 程序员参考 jConnect for JDBC 7.0.7
  22. Adaptive Server Enterprise 中的 Java
  23. 组件集成服务用户指南
  24. Ribo 用户指南
  25. 内存数据库用户指南
  26. Sybase Control Center for Adaptive Server® Enterprise
  27. 安全性管理指南
  28. 实用程序指南

 


< 上一个 | 内容 | 下一步 >

恢复 master 数据库

受损的 master 数据库可能是由存储 master 的区域中的介质故障导致, 也可能是由数据库的内部损坏导致。如果出现以下情况,将会损坏 master 数据库:

• Adaptive Server 不能启动。

出现频繁或破坏性的分段故障错误或输入/输出错误。

dbcc 在定期检查数据库期间报告损坏。

本节讲述如何恢复 master 数据库以及如何重建主设备。本节假定:

master 数据库已损坏,或主设备已损坏。

您拥有系统表的最新输出,《系统管理指南,卷 1》中的第 2 章 “系统及可选数据库”列出了这些输出。

主设备只包括 master 数据库、tempdbmodel sybsystemdb

您拥有 master 数据库的最新备份,并且,自上次转储 master 以 来,您尚未初始化任何设备,也未创建或修改任何数据库。

您的服务器使用缺省排序顺序。

《错误消息和故障排除指南》更加完整地介绍了恢复方案。


关于恢复进程


由于 master 数据库和主设备具有中央控制特性,因此需要采用特殊 的步骤。master 中的表用于配置和控制所有 Adaptive Server 的功能、 数据库和数据设备。恢复进程包括:

将主设备重建为第一次安装服务器时的缺省状态

master 数据库恢复为缺省状态

master 数据库恢复为上次备份时的状态

在恢复 master 数据库的早期阶段,不能使用系统存储过程。


恢复过程总结


必须遵循以下步骤来恢复损坏的主设备。以下各页更加详细地讨论 了每个步骤。

1 查找恢复磁盘、数据库和登录名所需的系统表的书面副本。

2 关闭 Adaptive Server,并使用 dataserver 构建新 master 数据库和 主设备。

3 以主恢复方式重新启动 Adaptive Server

4 sysusages 中正确地重建 master 数据库的分配。

5 更新 sysservers 表中 Backup Server 的网络名。

6 检验 Backup Server 以确保其正在运行。

7 使用 load database 装载 master 的最新数据库转储。成功装载

master 后,Adaptive Server 将自动停止。

8 在配置文件中更新 number of devices 配置参数。

9 在单用户模式下重新启动 Adaptive Server

10 检验 master 的备份是否拥有最新的系统表信息。

11 重新启动 Adaptive Server

12 如果自上次备份 master 后添加了新的登录名,则检查 syslogins

13 恢复 model 数据库。

14 sysusages sysdatabases 的书面副本与新的联机版本进行比 较,针对每个数据库运行 dbcc checkalloc,并检查每个数据库中 的重要表。

15 转储 master 数据库。


查找系统表的副本


查找已保存到文件中的系统表的副本:sysdatabasessysdevicessysusagessysloginroles syslogins。在这些过程结束时使用它们, 以确保已经完全恢复了系统。

请参见《系统管理指南,卷 1》中的第 2 章“系统及可选数据库”。


建立新的主设备


仅当旧的主设备的损坏无法修复时,才应构建新的主设备。否则, 您可以在现有主设备上重新创建 master model 数据库。

重新创建 master 数据库有两个过程:替换主设备,并强制 Adaptive Server 重新创建配置区域。当 master 数据库损坏时替主设备。如果 主设备的配置区域也损坏,请强制 Adaptive Server 重新创建配置区 域。您可以经常检测配置区域是否由于服务器无法运行而损坏,并 生成错误消息来指明该区域已损坏。

以下示例使用 UNIX dataserver 命令。在 Windows 平台上,使用

sqlsrvr 命令。


替换主设备

1 dataserver -w 选项重建主设备:

dataserver -w master


image

注释 dataserver 命令可以包括其它选项,如指定设备路径名、 服务器名、接口文件名等等的命令行标志。这些选项列在以正 常方式启动此服务器的 RUN_servername 文件中。

image


-w master 选项可使 Adaptive Server 为属于 master 数据库的数据 库片段搜索设备。Adaptive Server 找到这些片段后,它会将缺省 的 master 数据库写入该空间,然后关闭。

2 RUN_servername 文件重新启动 Adaptive Server

重建配置区域

如果配置区域损坏,则必须使用 -f 选项强制 Adaptive Server 重建该 区域。


image

注释 dataserver 命令可以包括其它选项,如指定设备路径名、服务 器名、接口文件名等等的命令行标志。这些选项列在以正常方式启 动此服务器的 RUN_servername 文件中。

image


但有以下限制:

如果页大小错误,则您可以指定页大小(例如,-z8k)。

如果设备大小错误,则您可以指定设备大小(例如, -b125M)。


磁盘上显示为损坏或当前未分配的所有分配单元都将分配给

master 数据库。


image

警告! 不要 尝试使用此过程更改服务器的逻辑页大小。这样做会将 设备进一步损坏到无法恢复的程度。所指定的任何设备大小都必须 准确无误。dataserver -w 不会更改设备的大小,但是,如果指定的大 小太小,则它可能找不到某些数据库的某些部分,如果指定的大小 太大,则它将完全失败。

image


带或不带 -f -w master 选项仅重新创建 master 数据库。磁盘上的所 有其它分配单元保持不变,因此,您可以使用 disk refit 恢复数据。

如果整个主设备已损坏(例如,如果磁盘发生故障),请通过使用 dataserver -z page_size .. .-b device_size 启动 Adaptive Server 来更换整个 设备:

1 如果现有主设备不在原始分区上,并且您打算重新使用该设备, 请删除旧的主设备文件。

2 使用 dataserver -zpage_size.. .-bdevice_size 启动服务器。


image

警告!此时,无法使用此命令更改服务器的页大小。该服务器的所 有其它设备都使用已配置的页大小,如果您使用不同的页大小,将无 法正确恢复。但是,于您要创建新文件,因此可以更改设备大小。

image


确定将主设备设置为多大时,请记住,此设备会保留 8KB 作为其配 置区域。例如,如果指定的设备大小为 96MB,则会因为没有足够的 空间用于完整分配单元,而浪费一些空间。在所需的空间中额外添 加 .01MB 以供设备用于此开销。例如,若要为设备使用全部 96MB, 请指定 -b96.01M

在使用此方法重建主设备时,Adaptive Server 会为 mastermodeltempdb sybsystemdb 创建新的缺省数据库。这些数据库都尽可能 小,以适应您的安装的逻辑页大小。如果想要向这些数据库中装载 备份,它们会显得太小。装载这些备份之前,使用 alter database 增 加数据库的大小。

无论使用何种方法恢复主设备, master 数据库中的所有用户和口令都 将消失。唯一一个有权限的登录名是“sa”,该用户名没有口令。

有关重新创建用户和口令的信息,请参见《实用程序指南》。


在主恢复方式下启动 Adaptive Server

使用 -mUNIX Windows)选项在主恢复方式下启动 Adaptive Server

UNIX 平台上,复制 runserver 文件,并将其命名为 m_RUN_server_name。编辑该新文件,在 dataserver 命令行添加 参数 -m。然后在主恢复方式下启动服务器:

startserver -f m_RUN_server_name

Windows 平台上 — 从命令行使用 sqlsrver 命令启动 Adaptive Server。除其它必要的参数外,指定 -m 参数。例如:

sqlsrver.exe -dD:\Sybase\DATA\MASTER.dat -sPIANO

-eD:\Sybase\install\errorlog -iD:\Sybase\ini -MD:\Sybase -m

有关这些命令的复杂语法,请参见《实用程序指南》。

在主恢复方式下启动 Adaptive Server 时,只允许使用一个用户(系 统管理员)的一个登录名。之后立即对 master 数据库执行 dataserver 命令,此时只存在“sa”帐户,其口令为 NULL


image

警告!有些节点具有一些自动作业,这些作业可在服务器启动时使 用“sa”登录名登录到服务器中。应确保禁用了这些作业。

image


主恢复方式是必需的,这是因为使用 dataserver 创建的一般 master 数据库与 Adaptive Server 中的实际情况不一致。例如,此数据库中 没有数据库设备的任何信息。对 master 数据库的任何操作都可能会 使恢复更加复杂而且耗时。

在主恢复方式下启动的 Adaptive Server 被自动配置为允许直接更新 系统表。不允许某些其它操作。


image

警告! 不要对系统表进行特定更改,有些更改可致使 Adaptive Server 无法运行。只进行本章中描述的更改,并始终在用户定义的 事务中进行更改。

image


重新创建 master 的设备分配

如果您根据上面步骤 2 中描述的过程重新创建了主设备,则您的

master 数据库现在可能太小。为 master 数据库分配更多空间:

1 sysusages 的书面副本中,对为 dbid 1master 数据库的 dbid) 显示的 size 值求和。将这些值与当前 master 数据库的大小进行 比较。您可以通过发出以下命令来确定它们:

select sum(size) from sysusages where dbid = 1

2 如果当前的 master 数据库太小,请使用 alter database 将它扩大 至所需的大小。若要将逻辑页转换为 MB 级页,请使用:

select N / (power(2,20) / @@maxpagesize)

其中 N 是逻辑页的数量。

如果使用 -m master 选项重新编写了 master 数据库,则不必更改 master 数据库的大小。由于 Adaptive Server 已记录了设备上所有数 据库使用的分配单元,因此,您应该已有足够的空间装载 master 的 转储。


image

注释 如果没有 sysusages 的书面副本,可以通过尝试进行装载以 确定数据库需要再增加多大。如果数据库太小,Adaptive Server 会 显示一条错误消息,告诉您还需要使数据库增多大。

早于 15.0 Adaptive Server 版本需要执行一系列复杂的步骤来在新 的主设备上重新创建分配。现在不再需要此过程了。Adaptive Server 15.0 版及更高版本可动执行这项工作的大部分。

image


检查 Backup Server sysservers 信息

使用空口令以“sa”身份登录服务器。

如果 Backup Server 的网络名称不是 SYB_BACKUP,请更新 sysservers,以便 Adaptive Server 可以与其 Backup Server 进行通信。 在接口文件中检查 Backup Server 名称,然后发出:

select *

from sysservers

where srvname = "SYB_BACKUP"


从此命令的输出中检查 srvnetname。如果与服务器的 Backup Server 的接口文件条目匹配,则转至 384 页的“检验 Backup Server 是否 在运行”

如果报告的 srvnetname 与接口文件中的 Backup Server 不同,请更新 sysservers。下例将 Backup Server 的网络名更改为 PRODUCTION_BSRV

begin transaction update sysservers

set srvnetname = "PRODUCTION_BSRV" where srvname = "SYB_BACKUP"

执行此命令,并验证它是否仅修改了一行。重新发出 select 命令, 然后核实是否修改了正确的行,该行是否包含正确的值。如果 update 修改了多行,或者修改了不应修改的行,则应发出 rollback transaction 命令,然后尝试再次更新。

如果该命令正确地修改了 Backup Server 的行,则应发出 commit transaction 命令。


检验 Backup Server 是否在运行

UNIX 平台上,使用 showserver 命令核实 Backup Server 是否正在 运行;如果必要,重新启动 Backup Server。请参见《实用程序指南》 中的 showserver startserver

Windows 平台上,安装在本地的 Sybase Central Services Manager 指明 Backup Server 是否在运行。

有关用于启动 Backup Server 的命令,请参见《实用程序指南》。


装载 master 的备份


装载 master 数据库的最新备份。

例如,在 UNIX 平台上,使用:

load database master from "/dev/nrmt4"

Windows 平台上,使用:

load database master from "\\.\TAPE0"

有关命令语法的信息,请参见 13 章“备份和恢复用户数据库”


load database 成功完成之后,Adaptive Server 会关闭。注意在装 载过程和关闭过程中是否有错误消息。


更新 number of devices 配置参数

仅当使用的数据库设备数比缺省值多时才执行此步骤。否则,转至 385 页的“在主恢复方式下重新启动 Adaptive Server

除非恢复 master 数据库,否则 Adaptive Server 无法使用配置值,因 此,请指示 Adaptive Server 在启动时从配置文件中读取适当的 number of devices 参数值。

如果最新配置文件不可用,请编辑配置文件以反映 number of devices

参数的正确值。

编辑 runserver 文件。在 dataserver sqlsrver 命令的末尾添加 -c 参 数,以指定配置文件的名称和位置。Adaptive Server 启动时,将从 指定的配置文件中读取参数值。


在主恢复方式下重新启动 Adaptive Server

使用 startserver,以主恢复方式重新启动 Adaptive Server (请参见 382 页的“在主恢复方式下启动 Adaptive Server )。在恢复过 程中注意是否有任何错误消息。

装载 master 的备份时,会使“sa”帐号恢复到先前的状态。如果 “sa”帐户有口令,则恢复该口令。如果在进行备份之前使用 sp_locklogin 锁定了此帐户,则“sa”帐户会立即锁定。将帐户与 sa_role 配合使用来执行其余恢复步骤。


检查系统表以检验 master 的当前备份

如果在发出最新的 disk initcreate database alter database 命令后, 已备份了 master 数据库,则 sysusagessysdatabases sysdevices 的内容会与书面副本匹配。

依据书面副本,检查恢复后服务器中的 sysusagessysdatabases

sysdevices 表。尤其注意以下问题:


如果书面副本中的设备有的未包括在已恢复的 sysdevices 中, 则自上次备份以来已经添加了设备,并且您必须运行 disk reinit disk refit 。请参见 394 页的“使用 disk reinit disk refit 复系统表”

如果书面副本中列出的数据库有的未包括在已恢复的 sysdatabases 表中,则意味着自上次备份 master 以来添加了数据 库。您必须运行 disk refit


image

注释 您必须首先用跟踪标志 3608 启动 Adaptive Server,然后运行 disk refit。但是,一定要先阅读《故障排除和错误消息指南》,然后 再用任何跟踪标志启动 Adaptive Server

image


重新启动 Adaptive Server

以常规(多用户)模式重新启动 Adaptive Server


恢复服务器用户 ID


检查 syslogins 的书面副本和恢复的 syslogins 表。

如果自上次备份 master 以来已经添加了服务器登录名,请重新 发出 create login 命令。

如果已删除了服务器登录名,则应重新发出 drop login 命令。

如果已锁定了服务器帐户,则应重新发出 sp_locklogin 命令。

检查由于用户或系统管理员使用 alter login 而引起的其它差别。

确保指派给用户的 suids 正确。数据库中不匹配的 suid 值会导致权 限问题,用户可能不能访问表或运行命令。

检查现有 suid 值的有效方法是对用户数据库的每个 sysusers 表执行

union。如果用户有权使用 master,则可以在此过程中包括 master

例如:

select suid, name from master..sysusers union

select suid, name from sales..sysusers union

select suid, name from parts..sysusers union


select suid, name from accounting..sysusers

如果结果列表显示的已跳过的 suid 值介于您在其中恢复登录名的范 围内,请为跳过的值添加占位符,然后使用 drop login 删除它们或者 使用 sp_locklogin 锁定它们。


恢复 model 数据库


恢复 model 数据库:

装载 model 的备份(如果您拥有备份)。

如果您没有备份,请运行 installmodel 脚本(大多数平台上都提 供此脚本):

cd $SYBASE/$SYBASE_ASE/scripts

isql -Usa -Ppassword -Sserver_name < installmodel

Windows 中:

cd $SYBASE/$SYBASE_ASE/scripts

isql -Usa -Ppassword -Sserver_name < instmodl

重复对 model 所做的任何更改。


检查 Adaptive Server

仔细检查 Adaptive Server

1 sysusages 的书面副本与新的联机版本进行比较。

2 sysdatabases 的书面副本与新的联机版本进行比较。

3 针对每个数据库运行 dbcc checkalloc

4 检查每个数据库中重要的表。


image

警告! 如果在 sysusages 中发现差异之处,请与 Sybase 技术支 持部门联系。

image


备份 master


完全恢复 master 数据库并运行全部 dbcc 完整性检查后,使用常规转 储命令备份此数据库。




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具:ReadASADB。
此工具支持ASA v5.0,v6.0,v7.0,v8.0,v9.0,v10.0,v11.0,v12.0等版本。
恢复Sybase SQL Anywhere的工具在国内应该算首创。

ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具

  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x
  2. 适用于所有的UltraLite版本
  3. 能够恢复出来表结构和数据
  4. 能够恢复自定义数据类型
  5. 能够恢复存储过程等对象的语法
  6. 能够导出到目标数据库
  7. 能够导出到SQL文件并生成导入脚本
  8. 支持多种字符集  包括:cp850、cp936、gb18030、utf8等
  9. 能够恢复未加密或者简单加密类型的数据
  10. 简单易用
  11. 限制:不支持AES加密的数据文件
请参考:研发成功了从Sybase SQL Anywhere的DB文件上恢复数据的工具
            SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍

ReadASADB适用场景

各种误操作:

  1. 误截断表(truncate table)
  2. 误删除表(drop table)
  3. 错误的where条件误删数据
  4. 误删除db或log文件
  5. 误删除表中的字段

本工具的应用场景:

1.因为物理磁盘故障、操作系统、系统软件方面或者掉电等等原因导致的Sybase SQL Anywhere数据库无法打开的情况;
2.误操作,包括truncate table,drop table,不正确的where条件导致的误删除等;
Sybase SQL Anywhere无法打开时,比较常见的错误是:Assertion failed。
如:
1、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Checkpoint log: invalid bitmap page -- transaction rolled back
2、Internal database error *** ERROR *** Assertion failed:201819 (8.0.1.2600) Page number on page does not match page requested -- transaction rolled back
3、Internal database error *** ERROR *** Assertion failed:200502 (9.0.2.2451) Checksum failure on page 23 -- transaction rolled back
4、File is shorter than expected
5、Internal database error *** ERROR *** Assertion failed: 201116 Invalid free list index page found while processing checkpoint log -- transaction rolled back
6、*** ERROR *** Assertion failed: 51901 Page for requested record not a table page or record not present on page等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------