随着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
- 安全性管理指南
- 实用程序指南
创建和管理分区
若要在授权的节点处启用语义分区,请输入:
sp_configure ‘enable semantic partitioning’, 1
循环分区始终可用,它不受 enable semantic partitioning 值的影响。
启用语义分区命令可执行常用的管理和维护操作,如:
• 创建和截断表 — create table、 truncate table
• 改变表以更改锁定或修改方案 — alter table
• 创建索引 — create index
• 更新统计信息 — update statistics
• 重组表页以符合聚簇索引并充分利用空间 — reorg rebuild
在对表或索引进行分区之前,必须准备好磁盘设备和段或要用于分区的 其它存储设备。
可以为一个段分配多个分区,但一个分区只能分配给一个段。通过给每 个段分配一个分区,并将设备绑定到各个段,可确保最大限度地利用并 行和分的优势。
分区任务的一般顺序如下:
1 使用 disk init 初始化新的数据库设备。 disk init 会将物理磁盘设备或 操作系统文件映射到逻辑数据库设备名。例如:
use master disk init
name ="pubs_dev1",
physname = "SYB_DEV01/pubs_dev", size = "50M"
请参见 《系统管理指南第一卷》中的第 7 章 “初始化数据库设备”。
2 使用 alter database 将新设备分配给包含要分区的表或索引的数据库。 例如:
use master
alter database pubs2 on pubs_dev1
3 (可选)使用 sp_addsegment 在数据库中定义段。以下示例假定已经 用与创建 pubs_dev1 类似的方法创建了 pubs_dev2、 pubs_dev3 和 pubs_dev4。
use pubs2
sp_addsegment seg1, pubs2, pubs_dev1 sp_addsegment seg2, pubs2, pubs_dev2 sp_addsegment seg3, pubs2, pubs_dev3 sp_addsegment seg4, pubs2, pubs_dev4
4 从要分区的表中删除所有索引。例如:
use pubs2
drop index salesdetail.titleidind, salesdetail.salesdetailind
5 使用 sp_dboption 将表或索引数据成批复制到新分区中。例如:
use master
sp_dboption pubs2,"select into", true
6 使用 alter table 对表进行重新分区,或使用 create table 创建一个新的 分区表;使用 create index 创建一个新的分区索引;或使用 select into 根据现有表创建一个新的分区表。
例如,对 pubs2 中的 salesdetail 表进行重新分区:
use pubs2
alter table salesdetail partition by range (qty) (smsales values <= (1000) on seg1,
medsales values <= (5000) on seg2, lgsales values <= (10000) on seg3)
7 在分区表上重新创建索引。例如,在 salesdetail 表上:
use pubs2
create nonclustered index titleidind on salesdetail (title_id)
create nonclustered index salesdetailind on salesdetail (stor_id)
本节介绍如何使用 create table 创建域、散列、列表和循环分区表。请参 见 《参考手册:命令》。
创建域分区表
以下示例创建一个名为 fictionsales 的域分区表;它有四个分区,每个分 区与一年中的一个季度相对应。为了获得最佳性能,每个分区分别驻留 在一个段上:
create table fictionsales (store_id int not null, order_num int not null, date datetime not null)
partition by range (date)
(q1 values <= ( “3/31/2004” ) on seg1, q2 values <= ( “6/30/2004” ) on seg2, q3 values <= ( “9/30/2004” ) on seg3, q4 values <= ( “12/31/2004” ) on seg4)
分区键列是 date。q1 分区驻留在 seg1 上,包含 date 值到 3/31/2004 的所 有行。q2 分区驻留在 seg2 上,包含日期值从 4/1/2004 到 6/30/2004 的所 有行。 q3 和 q4 也是按类似的方式进行分区。
如果尝试插入晚于 “12/31/2004”的 date 值,则会出现错误且插入失败。 这样,通过限制可插入到表中的行,域条件可充当表的检查约束。
若要确保包含所有的值 (最大可达到数据类型的最大值),请使用 MAX
关键字作为最后创建的分区的上限。例如:
create table pb_fictionsales (store_id int not null, order_num int not null, date datetime not null)
partition by range (order_num) (low values <= (1000) on seg1, mid values <= (5000) on seg2, high values <= (MAX) on seg3)
分区边界必须依照分区创建顺序按升序排列。也就是说,第二个分区的 上限必须高于第一个分区的上限,依此类推。
此外,分区边界值必须与对应的分区键列的数据类型兼容。例如, varchar 与 char 兼容。如果边界值的数据类型与其对应的分区键列的数据 类型不同, Adaptive Server 会将该边界值转换为相应分区键列的数据类 型,但以下情况例外:
• 不允许显式转换。以下示例尝试执行从 varchar 到 int 的非法转换。
create table employees(emp_names varchar(20)) partition by range(emp_name)
(p1 values <=(1), p2 values <= (10))
• 不允许进行导致数据丢失的隐式转换。在以下示例中,如果 Adaptive Server 将边界值转换为 integer 值,则舍入假定可能会导致 数据丢失。分区边界与分区键的数据类型不兼容。
create table emp_id (id int) partition by range(id)
(p1 values <= (10.5), p2 values <= (100.5))
在以下示例中,分区边界与分区键的数据类型兼容。 Adaptive Server 直接将边界值转换为 float 值。不需要舍入,因而支持转换。
create table id_emp (id float) partition by range(id)
(p1 values <= (10), p2 values <= (100))
• 不允许从非二进制数据类型转换为二进制数据类型。不允许进行此 转换的示例如下所示:
create table newemp (name binary) partition by range(name)
(p1 values <= ( “Maarten” ), p2 values <= ( “Zymmerman” ))
以下示例创建一个具有三个散列分区的表:
create table mysalesdetail (store_id char(4) not null, ord_num varchar(20) not null,
title_id tid not null, qty smallint not null, discount float not null)
partition by hash (ord_num)
(p1 on seg1, p2 on seg2, p3 on seg3)
散列分区表很容易创建和维护。 Adaptive Server 会选择散列函数并尝试 在分区之间平均分配行。
利用散列分区,可保证所有行都属于某一分区。不存在插入和更新无法 找到分区的情况,而域或列表分区表可能会出现这种情况。
创建列表分区表
列表分区控制各行映射到特定分区的方式。列表分区没有顺序,因而对 于较小的基数值很有用。每个分区值列表必须至少有一个值,而任何值 都不能现在多个列表中。
以下示例创建一个具有两个列表分区的表:
create table my_publishers (pub_id char(4) not null, pub_name varchar(40) null, city varchar(20) null, state char(2) null)
partition by list (state)
(west values (‘CA’, ‘OR’, ‘WA’) on seg1, east value ( ‘NY’, ‘NJ’) on seg2)
如果尝试用 state 列中不是列表所提供的值插入行,则会失败。类似地, 如果尝试用不是列表所提供的键列值更新现有行,也会失败。与域分区 表一样,每个列表中的值充当对整个表的检查约束。
此分区策略不使用任何分区标准,因此是随机的。循环分区表没有分 区键。
以下示例指定循环分区:
create table currentpublishers (pub_id char(4) not null, pub_name varchar(40) null, city varchar(20) null,
state char(2) null)
partition by roundrobin 3 on (seg1)
所有面向分区的实用程序和管理任务都可用于循环分区表,无论是否已 授权或配置语义分区。
本节介绍如何使用 create index 创建分区索引。请参见 《参考手册: 命令》。
可以在串行或并行模式下创建索引,但只能在并行模式下在循环分区表 上创建全局索引。请参见 Performance and Tuning Series: Query Processing and Abstract Plans (《性能和调优系列:查询处理和抽象计划》)中的 第 7 章 “控制优化”。
创建全局索引
只能为循环分区表创建全局聚簇索引。 Adaptive Server 支持所有类型分 区表上的全局未分区非聚簇索引。
可以使用 Adaptive Server 版本 12.5.x 和更早版本所支持的语法,在分区 表上创建聚簇和非聚簇全局索引。
创建全局索引 在分区表上创建索引时,如果您执行以下操作, Adaptive Server 会自动 创建全局索引:
• 在任意分区表上创建非聚簇索引,并且未包含 local index 关键字。 例如,在散列分区表 mysalesdetail (详见 第 357 页的 “创建散列分 区表 ”)上输入:
create nonclustered index ord_idx on mysalesdetail (au_id)
• 在循环分区表上创建聚簇索引,并且未包含 local index 关键字。例 如,在 currentpublishers 表 (详见 第 358 页的 “创建循环分区表 ”) 上输入:
create clustered index pub_idx on currentpublishers
创建本地索引
Adaptive Server 支持所有类型分区表上的本地聚簇索引和本地非聚簇索 引。本地索引继承基表的分区类型、分区列和分区边界。
对于域、散列和列表分区表,无论 create index 语句中是否包含关键字
local index, Adaptive Server 始终会创建本地聚簇索引。
以下示例在分区表 mysalesdetail (请参见 第 357 页的 “创建散列分区 表 ”)上创建本地聚簇索引。在聚簇索引中,索引行的物理顺序必须与 数据行的相同;只能为每个表创建一个聚簇索引。
create clustered index clust_idx
on mysalesdetail(ord_num) local index
以下示例在分区表 mysalesdetail 上创建本地非聚簇索引。由 title_id 对该 索引进行分区。可以为每个表创建多达 249 个非聚簇索引。
create nonclustered index nonclust_idx on mysalesdetail(title_id)
local index p1 on seg1, p2 on seg2, p3 on seg3
在已分区表上创建聚簇索引
可以在以下情况下在分区表上创建聚簇索引:
• select into/bulkcopy/pllsort 数据库选项设置为 true,并且
• 可用的工作线程数与分区数同样多。
注释 在循环分区表上创建全局索引之前,请确保服务器配置为并行 运行。
为了加快恢复过程,应在创建聚簇索引之后转储数据库。 在已分区表上创建聚簇索引之前,可与系统管理员或数据库所有者联系。
若要从现有表创建分区表,请使用 select into 命令。可以使用带有 into_clause 的 select 创建域、散列、列表或循环分区表。从中进行选择 的表可以是分区或未分区的。请参见 《参考手册:命令》。
注释 在应用程序中,可以使用带有 into_clause 的 select 在 tempdb 中创 建临时分区表。
例如,若要从 salesdetail 表创建分区表 sales_report,请输入:
select * into sales_report partition by range (qty) (smallorder values <= (500) on seg1,
bigorder values <= (5000) on seg2) from salesdetail
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。+-------------------------------------华丽的分割线-------------------------------------------------------------------------