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

 


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

transfer table

说明 启动增量表传输。

语法 transfer table [[db.]owner.]table [to | from] destination_file

[ for { ase | bcp | iq | csv } ]

[ with {column_separator=string}, {column_order=option},

{encryption=option}, {row_separator=string},

{resend=id}, {progress=sss}, {tracking_id=nnn}

{sync = true | false]}, {fixed_length = true | false}

, null_byte = true | false}]

参数 table

Adaptive Server 中的任何有效表。transfer table 需要 sa_role 或表的所有 权。表所有者可以授予自己拥有的表的 transfer table 权限。

to | from

指示传输方向。不能对 transfer table...from 使用用于 transfer table...to 的 所有参数。 from 参数的参数是:

column_order=option (不适用于使用 for ase 进行的装载;保留以 备后用)

column_separator=string (不适用于使用 for ase 进行的装载;保留 以备后用)

encryption={true | false}(不适用于使用 for ase 进行的装载;保留以 备后用)

progress= nnn

row_separator=string (不适用于使用 for ase 进行的装载;保留以 备后用)

destination_file

对操作系统有效的、 Adaptive Server 可以访问的任何文件或路径名。 如果文件是相对文件路径,则 Adaptive Server 提供其绝对路径。如果 Adaptive Server 无法打开 destination_file,它将发出错误消息。

如果满足以下所有条件, Adaptive Server 将删除目标文件:

文件是常规文件,不是命名管道、符号链接或其它特殊文件。

• Adaptive Server 在此传输过程中打开文件。

传输失败,或没有发送任何行。


for 子句

指定目标数据格式之一。如果省略 for 子句,则指定表的第一次传输 的缺省值为 for ase。后续传输的缺省值为以前的成功传输使用的格 式,除非命令指定格式 with resend = id,在这种情况下,缺省值是以 前指定的传输格式。

ase – 用于将数据导入 Adaptive Server 的格式。此输出格式是许 可的功能,可供 RAP 客户和具有内存数据库许可证的客户使用。 不应用任何数据转换。此文件格式包括用于描述表的标头,其中 包括源计算机的字节顺序、字符集和缺省排序顺序。这是以前没 有成功传输的表的缺省值。

bcp – 用于将数据作为 bcp 二进制格式数据导入的格式。将行作 为可使用 bcp 装载的二进制数据输出。不应用任何数据转换。在 传输过程中, Adaptive Server 创建一个 bcp 用于描述数据的格式 文件,并与输出文件显示在同一目录中。

不能使用 for bcp 传输命名管道。

如果输出文件是命名管道以外的任何文件类型,则 Adaptive Server 对格式文件使用以下命名约定:


{table_name},{database_id},{object_id}.fmt

iq – 采用适合使用 IQ load table 命令装载到 Sybase IQ 中的格式 写入数据。 Adaptive Server 采用二进制格式将数据写入到文件 中,并应用任何必要的数据转换以将其数据类型转换为与 IQ 兼 容的版本。除非包括 with fixed_length='true' with null_byte='true' 修 饰符,否则 for iq 会采用缺省格式写入数据:

缺省格式 – 可为空的数据包括一个后续的 “空字节”,这个 单字节标识符包含:

• 0 (如果列非空)

• 1 (如果列为空)

不可为空的数据不包括此空字节 (请参见 IQ 文档的 load table)。可变长度的字符串前面有指示字符串长度的一个或两 个字节,其中前缀字节数由列的最大长度决定:一个字节代 表字符串最多有 255 个字节,而两个字节代表字符串有 256 个 字节或更长 (Adaptive Server 支持字符串最多有 16000 个字节 左右)。除了字符串以外,将每个列作为固定宽度进行传输, 如有必要,将进行填补以将其扩展到此固定宽度大小。

使用以下修饰符确定数据格式:

with fixed_length='true' – 将所有列 (包括字符串)填补到 其完整宽度。使用空白填补字符串;使用 <NUL> 0x00 填补其它列。没有任何列具有长度指示符

with null_byte='true' – 所有列都必须具有空字节,而不管 列是否可为空。此修饰符强制 for iq 使用 fixed_length='true 修饰符,而不管命令指定的是什么

csv – 字符编码值格式。将行作为字符编码数据输出。用指定的 列分隔符分隔列,用指定的行终结符终结行。分隔符和终结符由 用户定义。

with 子句 提供用于修改命令操作的选项。

column_separator = string

声明在 csv 格式的输出列之间写入的字符串,替换缺省值。为后续传 输写入的字符串缺省为以前指定的 column_separator


column_order = option

声明将列数据写入到输出的顺序。这些选项有:

id – 按 syscolumns 中提供的列 ID 排序。这是传输为 for bcp 时唯 一可接受的列顺序,并且是这些传输的缺省值。

name – 使用 Adaptive Server 当前字符集和排序顺序,按

syscolumns 中提供的列名排序。

name_utf8 – 按 syscolumns 中提供的列名排序,在排序之前将列 名转换为 UTF8 字符。

offset – 按数据行中的列偏移排序。这是传输为 for ase 时唯一可 接受的列顺序,并且是这些传输的缺省值。

如果使用的 column_order for 子句格式不匹配,则 Adaptive Server 会 发出错误消息。列顺序有:

for ase – 使用 offset 列顺序

for bcp – 使用 id 列顺序

encryption = option

指定命令如何处理加密列。选项有:

true – 在传输前解密列。该值为缺省值。用户必须有权解密任何 加密列。

false – 完全按照加密列在数据行中的显示传输加密列。


image

注释 若要恢复数据,接收方必须知道加密密钥和用于加密数据的算 法。如果 Adaptive Server 将加密数据写入文件,则会按照数据第一次存 储在表中时的加密方式写入数据。传输数据不会更改该方式。若要恢复 该数据,接收方必须知道加密数据的密钥和加密算法的任何特殊功能

(例如,是否使用初始化矢量)。

image


progress = sss

指示传输应在操作期间每 sss 秒生成一次进度消息。缺省设置为省略 进度消息。

row_separator = string

声明要在 csv 格式的每个输出行末尾写入的字符串,替换缺省值。此 选项无效,除非传输为 for csv。与 column_separator 一样,第一次之后 的 csv 模式的所有传输的缺省值为最近成功的传输的缺省值。缺省行 分隔符因平台而异:在 Linux UNIX 上为换行符 (Ctrl+J),在 Windows 上为回车和换行符 (Ctrl+M Ctrl+J)


resend =id

标识其序列 ID 列获取此数据传输的开始时间戳的表的历史记录条 目。此选项重新发送以前发送的数据。除非命令中指定的表标记为增 量传输,否则将忽略 resend = id。如果此表中不存在指定的 sequence ID,则 Adaptive Server 将重新发送整个表。

Adaptive Server 选择指示的条目的开始时间戳作为此传输的开始时间 戳,并选择指示的条目的目标类型 (asebcp 等)作为传输的缺省 目标类型。

id 的负值会检索指定表的以前成功完成的传输的历史记录条目。- 1 指 定最近成功完成的传输,- 2 指定下一个最近的,依次类推。传输历史 记录表同时存储成功的和失败的传输的条目。

tracking_id =nnn

指定帮助跟踪给定传输的可选整数标识符。使用 spt_TableTransfer.tracking_id 列确定 nnn 的值并在查询中使用该值。此 示例返回跟踪 ID 123 的编辑状态和序列 ID,以及输出数据文件的 完整路径 (如果这些值不存在,则返回 NULL):

select end_code, sequence_id, pathname from spt_TableTransfer where id = object_id('mytable') and tracking_id = 123

image

image

Adaptive Server 不控制 tracking_id 或要求它是唯一的。 注释 此跟踪 ID 不是用于 resend = id 的序列 ID


sync = true | false

确定传输如何与事务交互。选项有:

true – 将同步传输,以便将传输中包括的表中的行作为组进行捕 获。 transfer 等待影响此表的所有事务结束后才开始。在 transfer 等待开始期间,影响此表的新事务将无法修改此表。它们将等待 transfer 开始。在 transfer 进行过程中,事务在经过 transfer 检查之 前无法修改此表中的行。

false – 不同步传输。 transfer 发送所选时间戳范围内的行,而不 管是否可以发送表中的其它行。这是缺省行为。


image

注释 sync 只影响要传输的表。 transfer 不考虑跨表约束。

image


fixed_length = true | false

确定 transfer...for iq 是否传输输出文件中作为固定长度字段的所有列。 通常, Adaptive Server 传输具有 1 2 个字节前缀长度的可变长度字 符串。将 fixed_length 设置为 true 会导致 Adaptive Server 使用空白填补 字符串,直到它们到达列的最大宽度。必须将此参数与 for iq 参数结 合使用。将 fixed_length 设置为:

true Adaptive Server 将字符串填补到其完整宽度,而不是使用 前缀长度。

false Adaptive Server 使用缺省行为发送字符串,即,使用前缀 长度发送字符串。

null_byte = true | false

确定 transfer...for iq 是否在每个传输列末尾附加一个字节,以指示列是 否为空。通常, Adaptive Server 只为可为空的列提供此字节。选项有:

true Adaptive Server 在所有列末尾包括一个空字节,如果列为 空,则为 0,否则为 1,而不管列是否可为空。true 强制 for iq 使用 fixed_length='true 修饰符,而不管您使用 transfer 命令指定的是什 么。

false Adaptive Server 只为可为空的列提供空字节。


image

注释 注意:不管 null_byte 是设置为 true 还是 false,它只适用于包括 for iq 子句的传输。

image


示例 示例 1 为用户 “john”授予传输表 mytable 的权限:

grant transfer table on mytable to john


示例 2 mytable 传输到输出文件,其格式设置为用于装载到 Sybase IQ。 如果此示例未包括 name_utf8,则缺省顺序将为列 ID 顺序:

transfer table mytable to '/path/to/file' for iq with column_order = 'name_utf8'

示例 3 传输 mytable,其格式设置为 Adaptive Server 文件格式,使用 offset 的列输出顺序。此示例请求从不存在的历史记录条目执行 resend;因 此,将传输整个表:

transfer table mytable to '/path/to/file3/'for ase with resend=10

此示例更改 for ase 传输的缺省列顺序。传输后,缺省接收方为 ase,列 顺序为偏移,列和行分隔符为空。

用法 transfer table 只发送上一次传输后更改的提交数据。

with 子句中的 column_separator row_separator string 参数最多可 为 64 个字节长,并且可以包含格式设置指令:

\b”指示退格 <BS> (Ctrl+H)

\n”指示换行符 <LF> (Ctrl+J)

\r”指示回车 <CR> (Ctrl+M)

\t”指示 <TAB> (Ctrl+I)

\\”指示反斜杠。

字符串中不属于这些序列之一的任何 “\”是实际的反斜杠,并 在字符串中显示为反斜杠。

transfer table .. from 不会在更新或插入期间引发触发器。

transfer table 在运行中发生错误(如重复键)时,Adaptive Server

会仅显示错误号,很难了解错误原因。例如:

Msg 2633, Level 20, State 1 Server 'SYB155', Line 1

TRANSFER TABLE failed to insert a row to table 'my_tab'. The indicated error was 2601.

Msg 16025, Level 16, State 1 Server 'SYB155', Line 1

TRANSFER TABLE my_tab:command failed with status 2633.

若要检索错误消息,可手动查询 master..sysmessages。例如,如果

2601 是错误号,请输入:

select * from master..sysmessages where error = 2601

有关错误 2601 的详细信息,请参见 《故障排除指南》。


传输未标记为增量传输的表

可以对未标记为增量传输的表使用 transfer table,并具有以下限制:

并非总是传输所有行。如果用户在传输进行过程中更新表,则可能 不会传输更新的行。

传输不是增量的;您只能传输整个表,并且不会向以后的传输通知 此传输。

不会向 spt_TableTransfer 写入任何历史记录条目。在传输持续期间, 传输显示在 monTableTransfer 中,但一旦传输完成,记录便消失。

权限 传输表的权限不会自动授予解密该表中数据的权限。若要解密任何加密 列,必须从表所有者获得特定权限。

下文说明了基于您的细化权限设置的 transfer table 的权限检查。

image

细化权限已启用 在启用细化权限的情况下,您必须是表所有者或是对表拥有 tranfer table 权限 的用户。

细化权限已禁用 在禁用细化权限的情况下,您必须是表所有者、具有 transfer table 权限的用户 或具有 sa_role 的用户。


审计 sysaudits event extrainfo 列中的值如下:

image

事件

审计选项

审计的命令或访问权限

136

transfer table

transfer table

事件

审计选项

审计的命令或访问权限

136

transfer table

transfer table

extrainfo 中的信息


另请参见 命令 create tablealter table .




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