远程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. 实用程序指南

 


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

恢复数据库:分步指导

介质出现故障时的状况因故障原因的不同而异。如果磁盘上仅有一 个块损坏,那么,除非您经常运行 dbcc 命令,否则,在损坏发生后, 数据库看上去会正常运行一段时间。如果整个磁盘或磁盘控制器损 坏。Adaptive Server 将该数据库标记为可疑数据库并显警告消息。如 果存储 master 数据库的磁盘出现故障,则用户将无法登录到服务器, 已登录的用户将无法执行需要访问 master 中的系统表的任何操作。


当数据库设备出现故障时,Sybase 会建议您执行下列步骤:

1 获取设备上每个数据库的当前日志转储。

2 检查设备上每个数据库 的空间使用情况。

3 在为设备上的所有数据库收集了这些信息之后,删除每个数 据库。

4 使用 sp_dropdevice 删除有故障的设备。请参见《参考手册: 过程》。

5 使用 disk init 初始化新数据库设备。请参见《系统管理指南, 卷 1》中的第 7 章“初始化数据库设备”。

6 重新创建数据库,一次创建一个。

7 将最新的数据库转储装载到每个数据库中。

8 按各个事务日志转储的创建顺序应用这些转储。

这些步骤需要的信息比此处列出的信息更加详细,以下各节对其进 行了讨论。


获取事务日志的当前转储

使用 dump transaction with no_truncate 为出故障设备上的每一数据库获 取当前事务日志转储。例如,若要获取 mydb 的当前事务日志转储, 请输入:

dump transaction mydb

to "/dev/nrmt0" at REMOTE_BKP_SERVER with init, no_truncate,

notify = "operator_console"


检查空间使用情况


使用本节中讨论的步骤确定您的数据库使用哪些设备、在每个设备 上分配多少空间以及该空间是用于数据、日志还是两者。您可以在 重新创建数据库使用这些信息,以确保日志、数据和索引驻留在单 独的设备上并保留已创建的任何用户段的作用域。


image

注释 您也可以使用这些步骤在将数据库转储从一个服务器移到另 一个服务器(在同一硬件和软件平台上)时保留段映射。

image


如果不使用此信息为损坏的数据库重新创建设备分配,则 Adaptive Server 会在 load database 指明差异之后重新映射 sysusages 表。这意 味着数据库的系统定义的段和用户定义的段将不再匹配相应的设备 分配。sysusages 中的信息不正确可能导致日志与数据存储在相同的 设备中,即使数据和日志在恢复前是分开的也是如此。它也可以通 过无法预测的方式更改用户定义的段,并且可能会生成无法使用标 准 create database 命令创建的数据库。

检查和记录所有损坏的数据库的设备分配:

1 master 中,检查损坏的数据库的设备分配和使用情况:

select segmap, size from sysusages where dbid = db_id(" database_name")

2 检查查询的输出。每个 segmap 3 的行都表示数据分配。每个 segmap 4 的行都表示日志分配。较高的值指示用户定义的段; 将这些段作为数据分配处理,以保留这些段的作用域。size 列指 示数据块的数目。记录每一磁盘区段的顺序、用途和大小。

例如,以下输出来自使用 2K 逻辑页的服务器,它转换为 13-6

中所述的大小和用途:

segmap

size

-------

--------

3

10240

3

5120

4

5120

8

1024

4

2048


13-6:设备分配示例

设备分配

兆字节

数据

20

数据

10

日志

10

数据(用户定义的段)

2

日志

4


image

注释 如果 segmap 列包含 7,则表示您的数据和日志位于同一 设备上,并且您最多只能恢复到最新的数据库转储。不要将 log on 选项用于 create database。只需确保您分配的空间等于或多于 sysusages 报告的总量。

image


3 为数据库运行 sp_helpdb database_name。以下查询列出保存数 据和日志的设备:

name

db_size

owner

dbid

created

status

-------

-------

------

----

-----------

-------------

mydb

46.0 MB

sa

15

May 26 2005

no_options set


device_fragments

size

usage

created

free kbytes

----------------

-----

--------

------------

-----------

datadev1

20

MB

data

only

June

7

2005

2:05PM

13850

datadev2

10

MB

data

only

June

7

2005

2:05PM

8160

datadev3

2

MB

data

only

June

7

2005

2:05PM

2040

logdev1

10

MB

log only

June

7

2005

2:05PM

not applicable

logdev2

4

MB

log only

June

7

2005

2:05PM

not applicable


删除数据库


在您为出现故障的设备上的所有数据库执行了前面所述的步骤后, 使用 drop database 删除每一数据库。


image

注释 如果其它数据库中的表包含对您尝试删除的数据库中任何表 的引用,则必须先使用 alter table 删除参照完整性约束,然后再删除 数据库。

image


如果当您发出 drop database 时,系统由于数据库受损而报告错误, 请使用:

dbcc dbrepair (mydb, dropdb)

如果您使用的是已复制的数据库,请使用 dbcc dbrepair 将转储从以前 版本的 Adaptive Server 装载到较新的版本中。例如:

将转储从早期版本的 Adaptive Server 的生产系统装载到当前版 本的 Adaptive Server 的测试系统,或者,

在热备份应用程序中,使用早期版本的 Adaptive Server 的活动数 据库中的数据库转储初始化当前版本的 Adaptive Server 的备用数 据库。


请参见《错误消息和故障排除指南》以及《参考手册:命令》。


重新创建数据库


使用以前收集的段信息重新创建每个数据库。


image

注释 如果您选择了不收集与段使用率有关的信息,则使用 create database...for load 创建大小至少与原始大小相等的新数据库。

image


1 create database for load 选项一起使用。从 sysusages 表中复 制数据库的每个行的所有设备段映射和大小,直到第一个日志设 备(包括该设备)。以这些行在 sysusages 中出现的顺序使用它 们。(sp_helpdb 的结果按设备名的字母顺序排列,而不是按分 配顺序排列。)例如,若要重新创建 366 页的表 13-6 中所示 的 mydb 数据库分配,请输入:

create database mydb on datadev1 = 20,

datadev2 = 10 log on logdev1 = 10 for load


image

注释 create database...for load 临时锁定新创建的数据库外的用 户,并且 load database 将数据库标记为脱机状态以供常规使用。 这防止用户在恢复期间执行记录的事务。

image


2 alter database for load 选项一起使用以按顺序重新创建其余 的条目。请记住,应像您处置数据分配一样为用户段处置设备 分配。

在此示例中,为了在 datadev3 上分配更多的数据空间,在

logdev1 上分配更多的日志空间,使用的命令是:

alter database mydb

on datadev3 = "2M" log on logdev1= "4M" for load


装载数据库


装载事务日志


使用 load database 重装数据库。如果原始数据库在用户定义的段上 存储了对象(sysusages 报告 segmap 大于 7),并且您的新设备分配 匹配转储的数据库的设备分配,则 Adaptive Server 保留用户段映射。

如果您没有创建新设备分配以匹配转储的数据库的设备分配,则 Adaptive Server 会将段重新映射到可用的设备分配。此重新映射还 混合同一物理设备上日志和数据。


image

注释 如果在装载数据库时发生了其它故障,则 Adaptive Server 将 不恢复部分装载的数据库,并且向用户通知这一情况。您必须通过 重复执行 load 命令重新开始数据库装载。

image


使用 load transaction 以事务日志备份的生成顺序应用事务日志备份。

Adaptive Server 检查每一转储的数据库和事务日志上的时间戳。如果 转储以错误顺序装载,或者用户事务在两次装载之间修改了事务日 志,则装载将失败。

如果您使用 with standby_access 转储了事务日志,则也必须使用

standby_access 装载数据库。

在您使数据库处于最新状态后,使用 dbcc 命令检查其一致性。


装载事务日志到某个时间点

您可以恢复数据库,一直恢复到其事务日志中某个指定的时间点。 为此,请使用 load transaction until_time 选项。例如,在用户无意 中删除了某个重要的表的情况下可以使用这一选项;您可以使用 until_time 将对包含该表的数据库进行的更改一直恢复到刚删除该表 之前那一时刻的状态。

为了在数据已被损坏后有效使用 until_time,您必须知道发生错误的 确切时间。您可以通过在出现错误时发出 select getdate 来找到这一 时间。例如,假定用户无意中删除了一个重要的表,然后在几分钟 之后您以毫秒为单位获取当前时间:

select convert(char(26), getdate(), 109)

-------------------------- Mar 26 2007 12:45:59:650PM


在转储包含错误的事务日志并装载最新的数据库转储后,装载在最 后转储数据库后创建的事务日志。然后,使用 until_time 装载包含错 误的事务日志;在此示例中,大约是在 10 分钟之前:

load transaction employees_db from "/dev/nrmt5"

with until_time = "Mar 26 2007 12:35:59:650PM"

在使用 until_time 装载了事务日志之后,Adaptive Server 重新启动数 据库的日志序列。这意味着,在您再次转储该数据库之前,不能在 使用 until_time 执行 load transaction 命令后装载之后的事务日志。您 必须首先转储该数据库,然后才能转储其它事务日志。


使数据库处于联机状态

将所有事务日志转储应用到数据库之后,使用 online database 使其 可供使用。例如,若要使 mydb 数据库联机,请输入:

online database mydb


复制型数据库


在将复制型数据库升级到 Adaptive Server 的当前版本前,这些数据 库必须处于联机状态。但是,在清除日志前,不能使复制型数据库 处于联机状态。如您尝试在日志清除之前使复制型数据库联机,则 Adaptive Server 将发出:

Database is replicated, but the log is not yet drained.This database will come online automatically after the log is drained.

Replication Server 通过 Log Transfer Manager (LTM) 清除日志后, 将自动发出 online database

有关具有复制型数据库的 Adaptive Server 用户的升级指导,请参考 所用平台的安装文档。

装载序列 装载复制型数据库的装载序列是:load databasereplicateload transactionreplicate 等。在装载序列的末尾,发出 online database 以 使数据库处于联机状态。由于数据库处于装载序列中而处于脱机状 态的数据库不被 Replication Server 自动进入联机状态。


image

警告!在装载了所有事务日志前不要发出 online database

image




--------------------------------------华丽的分割线-------------------------------------------------------------------------
之前就已经研发成功了能够从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等等。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------