随着Sybase被完全整合到SAP下,Sybase原来的支持网站被SAP Support Portal取代。
只有购买了SAP服务的用户才能使用账号登录SAP Support Portal进行介质下载、补丁升级、报Incident等。
目前,原Sybase所有产品(包括:Adaptive Server Enterprise、Sybase IQ、Replication Server、PowerDesigner等)的官方手册仍然可以从https://infocenter.sybase.com/help/index.jsp进行浏览或下载。暂不清楚该网站https://infocenter.sybase.com/help/index.jsp何时会被完全迁移到SAP Support上!
Sybase官方手册英文版有html和pdf两种格式,而中文版手册只有pdf一种格式。为了国内Sybase用户更方便、快捷地搜索Sybase常见产品的官方手册内容,特将中文版Sybase官方手册转为html格式!
Sybase产品官方手册中文版的html格式所有内容的版权归SAP公司所有!本博客站长是Sybase数据库的铁杆粉丝!
如有Sybase数据库技术问题需要咨询,请联系我!
以下官方手册为ASE 15.7 ESD#2中文版:
- 新增功能公告 适用于 Windows、Linux 和 UNIX 的 Open Server 15.7 和 SDK 15.7
- 新增功能摘要
- 新增功能指南
- ASE 15.7 发行公告
- 配置指南(windows)
- 安装指南(windows)
- 参考手册:构件块
- 参考手册:命令
- 参考手册:过程
- 参考手册:表
- Transact-SQL® 用户指南
- 系统管理指南,卷 1
- 系统管理指南,卷 2
- 性能和调优系列:基础知识
- 性能和调优系列:锁定和并发控制
- 性能和调优系列:监控表
- 性能和调优系列:物理数据库调优
- 性能和调优系列:查询处理和抽象计划
- 性能和调优系列:使用 sp_sysmon 监控 Adaptive Server
- 性能和调优系列:利用统计分析改进性能
- 程序员参考 jConnect for JDBC 7.0.7
- Adaptive Server Enterprise 中的 Java
- 组件集成服务用户指南
- Ribo 用户指南
- 内存数据库用户指南
- Sybase Control Center for Adaptive Server® Enterprise
- 安全性管理指南
- 实用程序指南
使用公式估计对象大小
此处讨论的公式可帮助您估计数据库中表和索引的未来大小。包含可变 长度字段的表和索引中每一行的开销量比只包含固定长度字段的表中每 一行的开销量大,因此需要有两套公式。
这一过程包括计算每一行的数据和开销的字节数,然后用该数除以某数 据页上可用的字节数。每一页都需要一些开销,这就限制了数据可用的 字节数:
• 对于所有页锁定表,页开销为 32 字节,在 2K 字节的页上可留出
2016 字节供数据使用。
• 对于 DOL 锁定表,页开销为 46 字节,可留出 2002 字节供数据使用。
要进行最准确的估计,可用 round down 除法计算每页的行数 (不跨页 拆分行),用 round up 除法计算页数。
可影响存储大小的因素
使用空间管理属性可增加表或索引所需的空间。请参见 第 89 页的 “空 间管理属性的影响”和 第 90 页的 “ max_rows_per_page”。
如果表中包含 text 或 image 数据类型或 Java 行外列,请在计算中使用 16 作为列的大小 (存储在行中的文本指针的大小)。然后参见 第 90 页的 “ LOB 页 ”,了解如何计算实际 text 或 image 数据所需的存储空间。
受以下两个因素影响, DOL 锁定表上的索引数可能要比公式预测的少:
• 重复键只存储一次,继之以该键的行 ID 列表。
• 非叶级上的键压缩;仅存储足以区别于相邻键的键。这对于在使用 长字符键时减少大小特别有效。
如果配置参数 page utilization percent 设置为小于 100, Adaptive Server 可 能会在填充已分配扩充上的所有页前分配新扩充。这样做不会改变对象 使用的页数,但会在分配给对象的扩充中留出空页。
数据类型的存储大小
数据类型的存储大小如 表 4-2 所示:
表 4-2:Adaptive Server 数据类型的存储大小
数据类型 大小
char 定义的大小
nchar 定义的大小 * @@ncharsize
unichar n* @@unicharsize (@@unicharsize equals 2)
univarchar 实际字符数 * @@unicharsize
varchar 实际字符数
nvarchar 实际字符数 * @@ncharsize
binary 定义的大小
varbinary 数据大小
int 4
smallint 2
tinyint 1
float 4 或 8,取决于精度
double precision 8
real 4
numeric 2 - 17 ,取决于精度和标度
decimal 2 - 17 ,取决于精度和标度
money 8
smallmoney 4
datetime 8
smalldatetime 4
bit 1
text 16 字节 + 2K *使用的页数
image 16 字节 + 2K *使用的页数
timestamp 8
numeric 或 decimal 列的存储大小取决于它的精度。 1 或 2 位数列的最小 存储要求为 2 个字节。精度每增加 2 位,存储大小增加 1 字节,最大可
达到 17 字节。
任何定义为 NULL 的列都被视为可变长度列,因为它们涉及与可变长度 列有关的开销。
下例中的所有计算都基于 varchar、 univarchar、 nvarchar 和 varbinary 数据 的最大大小 — 定义的列大小。同时假设列被定义为 “非空”。
公式中使用的表和索引
本例说明对一个有 9,000,000 行的表的计算:
• 固定长度列大小合计为 100 字节。
• 可变长度列大小合计为 50 字节;共有 2 个可变长度列。 该表有两个索引:
• 一个固定长度列上的聚簇索引,大小为 4 字节
• 一个包含以下列的组合非聚簇索引:
• 一个固定长度列,大小为 4 字节
• 一个可变长度列,大小为 20 字节
所有页锁定表和 DOL 锁定表需要使用不同的公式,因为它们的页及每 一行的开销量不同:
• 有关所有页锁定表使用的公式,请参见 第 78 页的 “为所有页锁定 表计算表及聚簇索引大小 ” 。
• 有关 DOL 锁定表使用的公式,请参见 第 84 页的 “计算 DOL 锁定 表的大小 ” 。
为所有页锁定表计算表及聚簇索引大小
所有页锁定表的公式和示例分为几套步骤在下面列出。 1 至 6 步概述了
有聚簇索引的所有页锁定表的计算,并提供了表大小和索引树大小。 7
至 12 步概述了对非聚簇索引所需空间的计算。所有的公式均使用可变 长度字段的最大大小。步骤如下:
这些公式显示了计算表及聚簇索引大小的方法。如果表中没有聚簇索引, 可跳过第 3、 4 和 5 步。在第 2 步中计算数据页页数时,跳至第 6 步与 OAM 页数相加。
optdiag 输出包括数据行和索引行的平均长度。如果想使用平均长度而不 使用最大长度,这些值可用于数据和索引行长度。
存储可变长度数据的行比只存储有固定长度数据的行要求的开销更多, 因此计算数据行的行宽有两个不同的公式。
仅固定长度列
如果表只包含固定长度列,且都定义为 NOT NULL,请使用:
公式
4 |
(开销) |
|
+ |
所有固定长度列的字节之和 |
|
= 数据行大小 |
某些可变长度列
如果表包含任何可变长度列或允许空值的列,请使用此公式。 由于示例中的表包含可变长度列,因此算式显示在右列。
公式 |
示例 |
||||
4 |
(开销) |
4 |
|||
+ |
所有固定长度列的字节之和 |
+ |
100 |
||
+ |
所有可变长度列的字节之和 |
+ |
50 |
||
= 小计 |
154 |
+ |
(小计/ 256) + 1 (开销) |
1 |
||
+ |
可变长度列的列数 + 1 |
3 |
||
+ |
2 |
(开销) |
2 |
|
= 数据行大小 |
160 |
公式
2016 /数据行行宽 = 每页数据行行数 行数/每页行数 = 所需数据页页数
示例 |
||
2016 / 160 |
= |
每页 12 个数据行 |
9,000,000 / 12 |
= |
750,000 个数据页 |
包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。 如果所有键的长度固定,使用第一个公式。如果键包含可变长度列或允 许空值,则使用第二个公式。
仅固定长度列
示例中的聚簇索引只有固定长度键。
公式 示例
5 (开销) 5
+ 固定长度索引键字节之和 + 4
= 聚簇行行宽 9
某些可变长度列
5 |
(开销) |
|
+ + |
固定长度索引键字节之和 可变长度索引键字节之和 |
|
= 小计 |
+ (小计/ 256) + 1 (开销)
+ 可变长度列的列数 + 1
+ 2 (开销)
= 聚簇索引行行宽
除法运算 (小计/ 256)的结果向下舍入。
公式 |
示例 |
|||
(2016 /聚簇行行宽) - 2 |
= |
每页聚簇索引行行数 |
(2016 / 9) - 2 |
= 222 |
行数/每页聚簇索引行行数 |
= |
下一级索引页页数 |
750,000 / 222 |
= 3379 |
如果 “下一级索引页页数”的结果大于 1,重复下面的除法步骤,将商 作为下一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:
公式
上一级索引页页数 / 每页聚簇索引行行数 = 下一级索引页页数
示例 |
||
3379 / 222 |
= |
16 个索引页 (级别 1) |
16 / 222 |
= |
1 个索引页 (级别 2) |
将每级的页数相加,以确定索引中的总页数:
公式 示例
索引级 页 页 行
2 1 16
1 + + 16 3379
0 + + 3379 750000
索引页总数 3396
每个表和表中的每个索引都有一个对象分配映射 (OAM)。单个 OAM 页 可容纳 2,000 到 63,750 个数据页或索引页的分配映射。在绝大多数情况 下,所需的 OAM 页数接近最小值。要计算表的 OAM 页数,应使用:
公式 |
示例 |
||||
保留的数据页数/ 63,750 |
= |
最少 OAM 页数 |
750,000 / 63,750 |
= |
12 |
保留的数据页数/ 2000 |
= |
最多 OAM 页数 |
750,000 / 2000 |
= |
376 |
要计算索引的 OAM 页数,应使用:
公式 |
示例 |
|||
保留的索引页页数/ 63,750 |
= |
最少 OAM 页数 |
3396/ 63,750 |
= 1 |
保留的索引页页数/ 2000 |
= |
最多 OAM 页数 |
3396 / 2000 |
= 2 |
所需总页数
最后,将 OAM 页数与之前的总计值相加,以确定所需的总页数:
公式 示例
聚簇索引页 |
最小 |
最大值 |
最小 3396 |
最大值 3396 |
OAM 页 |
+ |
+ |
1 |
2 |
数据页 |
+ |
+ |
750000 |
750000 |
OAM 页 |
+ |
+ |
12 |
376 |
总计 |
753409 |
753773 |
包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。
仅固定长度键
如果索引只包含固定长度键,且都定义为 NOT NULL,请使用:
公式
7 (开销)
+ 固定长度键之和
= 叶索引行行宽
某些可变长度键
如果索引包含任何可变长度键或定义为 NULL 的列,请使用:
公式 示例
9 (开销) 9
+ 固定长度键的长度之和 + 4
+ 可变长度键的长度之和 + 20
+ 可变长度键数 + 1 + 2
= 小计 35
+ (小计/ 256) + 1 (开销) + 1
= 叶索引行行宽 36
公式 示例
(2016 /叶行行宽) = 每页叶索引行行数 2016 / 36 = 56
表的行数/每页叶行行数 = 下一级索引页页数 9,000,000 / 56 = 160,715
公式 示例
叶索引行行宽 36
+ 4 开销 + 4
= 非叶行行宽 40
公式 |
示例 |
||
(2016 /非叶行行宽) - 2 |
= |
每页非叶索引行行数 |
(2016 / 40) - 2 = 48 |
如果第 8 步中的叶页页数大于 1,请重复下面的除法步骤,将商作为下 一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:
公式
上一级索引页页数 / 每页非叶索引行行数 = 下一级索引页页数
示例
160715 / 48 = 3349 索引页,级别 1
3349 / 48 = 70 索引页,级别 2
70 / 48 = 2 索引页,级别 3
2 / 48 = 1 索引页,级别 4 (根级)
将每级的页数相加,以确定索引中的总页数:
索引级 4 |
页 |
页 1 |
行 2 |
|||
3 |
+ |
+ |
2 |
70 |
||
2 |
+ |
+ |
70 |
3348 |
||
1 |
+ |
+ |
3349 |
160715 |
||
0 |
+ |
+ |
160715 |
9000000 |
||
使用的 2K 数据页总数 |
164137 |
公式 |
示例 |
||||
索引页页数/ 63,750 |
= |
最少 OAM 页数 |
164137 / 63,750 |
= |
3 |
索引页页数/ 2000 |
= |
最多 OAM 页数 |
164137 / 2000 |
= |
83 |
所需总页数 将 OAM 页数与第 11 步的总计值相加,以确定索引页的总页数:
公式 |
示例 |
|||
最小 |
最大值 |
最小 |
最大值 |
|
非聚簇索引页 |
164137 |
164137 |
||
OAM 页 |
+ |
+ |
3 |
83 |
总计 |
164140 |
164220 |
计算 DOL 锁定表的大小
下面的公式和示例显示如何计算表和索引的大小。以下示例使用与前一 个示例相同的列大小和索引。所有的公式均使用可变长度字段的最大大 小。有关说明,请参见 第 78 页的 “公式中使用的表和索引”。
DOL 锁定表的公式分为两套步骤:
• 步骤 1 — 3 概述 DOL 锁定表的计算。紧接步骤 3 的示例说明对一个 有 9,000,000 行的表的计算。
• 步骤 4 — 8 概述索引所需的空间计算,紧接的示例使用了有
9,000,000 个行的表。
optdiag 输出包括数据行和索引行的平均长度。如果想使用平均长度而不 使用最大长度,这些值可用于数据和索引行长度。
步骤如下:
存储可变长度数据的行比只存储有固定长度数据的行要求的开销更多, 因此计算数据行的行宽有两个不同的公式。
仅固定长度列
某些可变长度列
如果表只包含定义为 NOT NULL 的固定长度列,请使用:
6 (开销)
+ 所有固定长度列的字节之和 数据行大小
注释 DOL 锁定表必须为每个行留有空间才能存储 6 字节的转移行 ID。如 果 DOL 锁定表的行不足 10 字节,在插入每行后会将该行填充为 10 字节。 这种改变只影响数据页,而不会影响索引,也不会影响所有页锁定表。
如果表包含可变长度列或允许空值的列,请使用:
公式 示例
8 |
(开销) |
8 |
|||
+ |
所有固定长度列的字节之和 |
+ |
100 |
||
+ |
所有可变长度列的字节之和 |
+ |
50 |
||
+ |
可变长度列列数* 2 |
+ |
4 |
||
数据行大小 |
162 |
公式
2002 /数据行行宽 = 每页数据行行数 行数/每页行数 = 所需数据页页数
在此步骤的开始部分,每页的行数向下舍入:
示例
2002 / 162 |
= |
每页 12 个数据行 |
9,000,000 / 12 |
= |
750,000 个数据页 |
分配开销
每个表和表中的每个索引都有一个对象分配映射 (OAM)。 OAM 存储在 分配给表或索引的页上。单个 OAM 页可容纳 2,000 到 63,750 个数据页 或索引页的分配映射。在绝大多数情况下,所需的 OAM 页数接近最小 值。要计算表的 OAM 页数,应使用:
公式 示例
保留的数据页数/ 63,750 = 最少 OAM 页数 750,000 / 63,750 = 12
保留的数据页数/ 2000 = 最多 OAM 页数 750,000 / 2000 = 375
所需总页数
将 OAM 页数与之前的总计值相加,以确定所需的总页数:
公式 示例
最小 |
最大值 |
最小 |
最大值 |
|
数据页 |
+ |
+ |
750000 |
750000 |
OAM 页 |
+ |
+ |
12 |
375 |
总计 |
750012 |
750375 |
对于 DOL 锁定表的聚簇索引和非聚簇索引,应使用这些公式。 包含可变长度列的索引行比只包含固定长度值的索引行要求的开销更多。
仅固定长度键
如果索引只包含定义为 NOT NULL 的固定长度键,请使用:
9 (开销)
+ 固定长度键之和 索引行行宽
某些可变长度键
如果索引包含任何可变长度键或允许空值的列,请使用:
公式 |
9 |
(开销) |
示例 |
9 |
|
+ |
固定长度键的长度之和 |
+ |
4 |
||
+ |
可变长度键的长度之和 |
+ |
20 |
||
+ |
可变长度键的数目* 2 |
+ |
2 |
||
索引行行宽 |
35 |
公式
2002 /索引行行宽 = 每页的行数 表中行数/每页行数 = 叶页页数
示例
2002 / 35 = 57 (每页非聚簇索引行行数)
9,000,000 / 57 = 157,895 个叶页
公式
叶页页数 / 每页索引行行数 = 下一级页数
如果上面的下一级索引页页数大于 1,重复下面的除法步骤,将商作为 下一次的被除数,直到商等于 1 为止,则表明已到达索引的根级:
公式
上一级索引页页数 / 每页非叶索引行行数 = 下一级索引页页数
示例 |
|
157895/57 = 2771 2770 / 57 = 49 |
索引页,级别 1 索引页,级别 2 |
48 / 57 =1 |
索引页,级别 3 |
将每级的页数相加,以确定索引中的总页数:
公式 索引级 |
页 |
示例 页 |
行 |
||
3 |
1 |
49 |
|||
2 |
+ |
49 |
2771 |
||
1 |
+ |
2771 |
157895 |
||
0 |
+ |
157895 |
9000000 |
||
使用的 2K 页总数 |
160716 |
公式
索引页页数/ 63,750 = 最小 OAM 页数 索引页页数/ 2000 = 最多 OAM 页数
示例
160713 / 63,750 = 3 (最小值)
160713 / 2000 = 81 (最大值)
所需总页数
将 OAM 页数与第 8 步的总计值相加,以确定索引页的总页数:
公式 示例
最小 |
最大值 |
最小 |
最大值 |
|
非聚簇索引页 |
160716 |
160716 |
||
OAM 页 |
+ |
+ |
3 |
81 |
总计 |
160719 |
160797 |
影响对象大小的其它因素
除随时间推移数据修改施加的影响外,其它可影响对象大小和大小估计 的因素有:
• 空间管理属性
• 计算使用的是平均行宽还是最大行宽
• 文本行非常短
• 使用 text 和 image 数据
fillfactor、 exp_row_size、 reservepagegap 和 max_rows_per_page 的值可影 响对象的大小。
填充因子
创建索引时,应用为 create index 指定的 fillfactor。向表执行插入操作期间 并不维护 fillfactor。如果已使用 sp_chgattribute 为索引存储了 fillfactor,在 用 alter table 命令和 reorg rebuild 重新创建索引时应使用这个值。 fillfactor 的主要功能是在索引页上留出空间,以减少页面拆分。fillfactor 值如果非 常小则可能导致表或索引所需的存储空间显著增大。
请参见 第 47 页的 “减少索引维护 ”,了解有关设置 fillfactor 值的详细 信息。
exp_row_size
设置表的预期行宽可增加所需的存储空间。如果表中有许多行的行宽比 预期的行宽短,设置此值并运行 reorg rebuild 或更改锁定方案可增加表所 需的存储空间。但之前使用 max_rows_per_page 的表的空间使用情况应 大致保持不变。
请参见 第 53 页的 “减少行转移 ”,了解有关设置 exp_row_size 值的详细 信息。
为表或索引设置 reservepagegap 会于执行扩充分配命令时在分配给对象 的扩充上留下空页。将 reservepagegap 设置为小值将增加空页的数目, 并将数据扩展到更多的扩充上,因此在诸如 create index 或 reorg rebuild 的命令刚执行完时,所需的额外空间最大。行转移和向表中插入将填充 这些保留页。
max_rows_per_page 值 (由 create index、 create table、 alter table 或
sp_chgattribute 指定)会限制数据页上的行数。
要想在使用 max_rows_per_page 时计算出正确的值,应使用 max_rows_per_page 值,或使用在 第 80 页的 “计算数据页的数量” 和 第 83 页的 “计算索引中叶页的数量”中计算出的每页的数据行行数, 以较小者为准。
请参见 第 66 页的 “在所有页锁定表上使用 max_rows_per_page”。
很短的行
对于所有页锁定表, Adaptive Server 无法在页上存储 256 个以上的数据 行或索引行。即使行极短,数据页的最少页数也为:
行数/ 256 = 所需数据页页数
每个 text 或 image 或 Java 行外列可在数据类型为 varbinary(16) 的数据行 中存储一个 16 字节的指针。已初始化的每列需要至少 2K(一个数据页) 的存储空间。
列存储隐式空值,即数据行中的文本指针仍为 NULL,且没有为该值初 始化文本页,从而节约了 2K 的存储空间。
如果某一 LOB 列定义为允许空值,且该行是用包括该列的 NULL 的
insert 语句创建的,则不会初始化该列,也不会分配存储空间。
如果用 update 对 LOB 列进行了任何更改,则分配文本页。向列中放置实 际数据的插入或更新操作会初始化该页。如果随后将该列设置为 NULL, 则单个页将保持已分配状态。
每个 LOB 页大约可存储 1800 个字节的数据。要估计一个特定条目将使 用的页数,应使用此公式:
数据长度/ 1800 = 2K 页页数
在任何情况下,结果都应向上舍入;即 1801 字节的数据长度需要两个
2K 的页。
由于一些 LOB 页为列中其它页链存储指针信息,数据所需空间的总计 值可能会比计算出的值稍大。在访问 LOB 列时,Adaptive Server 利用此 指针信息进行随机访问和预取数据。存储指针信息所需的额外空间取决 于存储在列中的数据的大小总计值和数据类型。使用 表 4- 3 估计为 LOB 列中的数据存储指针信息所需的额外页数。
表 4-3:估计的存储 LOB 列中指针信息所需的额外页数
数据大小和类型 存储指针信息所需的额外页数
400K image 0 到 1 页
700K image 0 到 2 页
5MB image 1 到 11 页
400K 多字节 text 1 到 2 页
700K 多字节 text 1 到 3 页
5MB 多字节 text 2 到 22 页
使用公式估计对象大小的优点
使用公式的优点有:
• 可了解数据和索引存储内部的更多细节。
• 使用公式可灵活地为字符或二进制列指定平均大小。
• 在计算索引大小时,可了解每个索引的级数,这样有助于估计性能。
使用公式估计对象大小的缺点
使用公式的缺点有:
• 估计的精度只能达到对可变长度列的平均大小的估计精度。
• 对象的实际大小可能与计算的值不同,具体取决于使用情况。
Sybase SQL Anywhere数据库恢复工具ReadASADB:
之前就已经研发成功了能够从Sybase SQL Anywhere的DB文件中恢复数据的工具: ReadASADB。此工具支持ASA v5.0, v6.0, v7.0, v8.0, v9.0, v10.0, v11.0, v12.0, v16.0, v17.0等版本。
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具。
恢复Sybase SQL Anywhere的工具在国内处于领先水平。
Sybase SQL Anywhere数据库恢复工具ReadASADB功能
能够从损坏的SQL Anywhere数据文件(.db)和UltraLite数据文件(.udb)上提取数据的非常规恢复工具
- 适用于所有的SQL Anywhere版本 包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.x
- 适用于所有的UltraLite版本
- 能够恢复出来表结构和数据
- 能够恢复自定义数据类型
- 能够恢复存储过程等对象的语法
- 能够导出到目标数据库
- 能够导出到SQL文件并生成导入脚本
- 支持多种字符集,包括:cp850、cp936、gb18030、utf8等
- 能够恢复未加密或者简单加密类型的数据
- 简单易用
- 限制:不支持AES加密的数据文件
SQL Anywhere数据库非常规恢复工具ReadASADB使用介绍
Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景
各种误操作:
- 误截断表(truncate table)
- 误删除表(drop table)
- 错误的where条件误删数据
- 误删除db或log文件
- 误删除表中的字段
Sybase SQL Anywhere数据库恢复工具ReadASADB的应用场景:
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
7、*** ERROR *** Assertion failed: 201417 (7.0.4.3541) Invalid count or free space offset detected on a table page
8、Internal database error *** ERROR *** Assertion failed: 201425 (8.0.3.5594) Invalid count or free space offset detected on a free list page -- transaction rolled back.
9、Internal database error *** ERROR *** Assertion failed: 100702 (8.0.1.2600) Unable to modify indexes for a row referenced in rollback log -- transaction rolled back
Sybase ASE数据库恢复工具READSYBDEVICE:
一个不依赖数据库管理系统、直接从Sybase数据库设备文件上提取数据的业内领先的恢复工具!能够从损坏的Sybase ASE设备文件(.dat)上提取数据的非常规恢复工具。
Sybase ASE数据库恢复工具READSYBDEVICE的主要功能:
- 被勒索病毒加密数据文件及备份文件情况下的恢复;
- 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
- 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
- delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
- 各种Sybase内部系统表损坏、索引错误的修复;
- master数据库损坏而无法正常运行情况下的恢复;
- Sybase数据库被标记为可疑,不可用等情况的恢复;
- Sybase数据库中数据文件内部出现坏块情况下的恢复;
- Sybase数据库无数据文件但有日志文件的情况下的恢复;
- Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
- Sybase数据文件被误删除情况下的碎片提取恢复;
- 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
- 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
- Sybase数据库还原数据库出现失败情况下的恢复;
- Sybase数据库只剩下损坏的备份文件情况下的恢复。
Sybase ASE数据库恢复工具READSYBDEVICE支持的版本:
Sybase ASE 11.0.x,11.5.x,11.9.x,12.0.x,12.5.x,15.0.x,15.5.x,15.7.x,16.0.xSQL Server数据库恢复工具SQLRescue:
一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。
SQL Server数据库恢复工具SQLRescue的主要功能:
- 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
- 断电导致数据库文件损坏情况下的恢复;
- 硬盘坏道造成数据库损坏情况下的恢复;
- 数据文件内部存在坏页情况下的恢复;
- 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
- 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
- 无法读取并闩锁页sysindexes失败情况下的修复;
- 数据文件被误删除情况下的碎片提取恢复;
- 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
- master数据库损坏而无法正常运行情况下的恢复;
- 数据文件无法附加情况下的数据恢复;
- 数据库被标记为可疑,质疑,不可用等情况的恢复;
- 数据库sysobjects等系统表损坏情况下的恢复;
- 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
- 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
- 数据库被误格式化等情况下的数据库恢复;
- 日志收缩造成数据库损坏情况下的恢复;
- 仅剩损坏的备份文件情况下的恢复。
SQL Server数据库恢复工具SQLRescue技术特点:
只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。- 从数据文件中直接恢复数据
- 不能附加时直接恢复数据并生成新的数据库
- 系统表损坏的数据库修复
- 快速修复SQL 823错误、连接中断错误
SQL Server数据库恢复工具SQLRescue支持的版本:
Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。+-------------------------------------华丽的分割线-------------------------------------------------------------------------