提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系电话: (微信),QQ: 289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371 联系我们获取数据库技术支持!
Email: 289965371@qq.com
扫描下方微信,联系我们:
扫描雨翰数据恢复官方微信获取专业数据库恢复服务

 

随着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数据库技术问题需要咨询,请联系我!

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

 


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

ddlgen ‌ ‌

说明 这是一个基于 Java 的工具,可生成 Adaptive Server 中服务器级和数据库 级对象的定义。

若要为以下对象生成 DDL,用户必须具有 sa_role 或 sso_role:

• 加密密钥

• 登录名

• 角色 对于所有其它对象,用户无需任何特定权限或角色即可生成 DDL。

ddlgen 的命令行版本位于 ASE-15_0/bin (对于 UNIX)和 ASE-15_0\bin

(对于 Windows)中。

语法 ddlgen

-Ulogin

-Ppassword

-S[[ssl:]server | host_name :port_number] [-I interfaces_file]

[-Tobject_type]

[-Nobject_name] [-Ddbname]

[-Xextended_object_type] [-Ooutput_file]

[-Eerror_file]

[-Lprogress_log_file] [-Jclient_charset]

[-LC -N logical_cluster_name

-F[ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR | PC]

或

ddlgen -v

参数 -U login

指定一个区分大小写的登录名。

-P password

指定口令。

如果未在 ddlgen 语句中包含 -P 参数, ddlgen 会提示用户指定口令。

有关如何隐藏口令的说明,请参见 第 173 页的 “隐藏 ddlgen 中的口 令”。


-S [[ssl:]server | host_name :port_number]

指定 Adaptive Server 的名称。ddlgen 在 interfaces 文件或 LDAP 配置文 件中查找该名称。如果指定:

• [ssl:] – 将允许为启用 SSL 的服务器中的对象生成 DDL。该参数 是可选的。

• -S [host_name:port_number] – ddlgen 将使用所提供的 host_name 和

port_number,不读取或解析 interfaces 文件和 LDAP 配置文件。

• -S[server] -I – ddlgen 将对在用户位置指定的 interfaces 文件进行解 析,以查找服务器名 (有关详细信息,请参见 -I 参数说明)。

• -S[server] – 由于没有指定 interfaces 文件, ddlgen 将执行以下操 作:

a ddlgen 先尝试从标准位置读取 LDAP 配置文件

b 如果 LDAP 文件不存在,或者虽然存在但不包含 Adaptive Server 条目,那么将对位于标准位置的 interfaces 文件进行解 析,以查找服务器名

c 如果 LDAP 文件存在,则 ddlgen 将使用该文件搜索服务器 名。此时不解析 interfaces 文件,而是解析该 LDAP 配置文 件。


image

注释 必须使用 -S 选项,因为 ddlgen 不连接到缺省服务器。

image


-I

指定 interfaces 文件名,与 UNIX 中的 $SYBASE/interfaces 及 Windows

中的 %SYBASE%\ini\sql.ini 相对应。此可选参数与 -S 一起使用。

-Tobject_type

指定正在创建的对象类型。如果没有使用 -T, ddlgen 将为登录的缺省 数据库生成 DDL。-T 的对象类型为:

image

对象类型 说明

C 高速缓存

D 缺省值

DB 数据库

DBD 数据库设备

DPD 转储设备

EC 执行类

EG 引擎组

EK 加密密钥


image

对象类型 说明

GRP 组

I 索引

KC 键约束

L 登录名

LK 逻辑键

P 存储过程

R 规则

RI 参照完整性

RO 角色

RS 远程服务器

SGM 段

TR 触发器

U 表

UDD 用户定义的数据类型

USR 用户

V 视图

WS 用户定义的 Web 服务

WSC Web 服务消耗程序

XOD 本地高速缓存

XOU 全局高速缓存

XP 扩展存储过程


-Nobject_name

指定要创建的对象的完全限定名,例如

-Ndb_name.owner_name.table_name.object_name 。-N 选项:

• 当在 -T 参数中指定任意 object_type 而不是 DB (数据库)时是必 需的。

• 接受使用 % 作为通配符。

• 若要为表的某一触发器生成 DDL,请使用

-Ndb_name.table_owner.table_name.trigger_name 格式。

若要为表的所有触发器生成 DDL,请将 trigger_name 替换为 %, 因而将使用 -N db_name . table_owner . table_name .% 格式。

• 使用 -N db_name.owner.key_name 为加密密钥生成 DDL 。

• 为服务器上某一特定对象类型的所有项生成 DDL。

• 以 -Ndb_name.owner_name.table_name.object_name 格式强制实施它 分析名称的严格顺序。如果您仅提供三个参数,则 ddlgen 假定它 们的顺序依次是 owner_name、 table_name 和 object_name。或者, 也可以使用 -Nowner_name.table_name -Ddb_name。如果 object_name 是一个索引 ( I ) , ddlgen 并不强加这一限制。

-Ddbname

指定在 -N 选项中所指定对象的数据库名。缺省情况下是用户的缺省 数据库。

为表的所有触发器生成 DDL 时,不能使用 -D 参数。


-Xextended_object_type

区分以下情况:

• 当将表指定为对象类型 (-TU) 时,将用户表 (OU) 与代理表 (OD) 区 分开。

• 当将数据库指定为对象类型 (-TDB) 时,将临时数据库 (OD) 与常 规数据库 (OU) 或存档数据库 (OA) 区分开

• 当指定过程作为对象类型 (-TP) 时,将 SQLJ 过程 (OD) 和存储过 程 (OU) 区分开。

如果 object_type ( -T ) 为 U (表)并且没有指定 -X, ddlgen 会同时为用 户表和代理表生成 DDL。若仅为以下内容生成 DDL:

• 用户表 – 使用带有 -X 选项的 OU 扩展对象类型。

• 代理表 – 对 -X 选项使用 OD 扩展对象类型。

• 内存数据库、高速缓存和设备 – 对 -X 选项使用 OI 扩展对象类 型。

image

image

• 内存临时数据库 – 对 -X 选项使用 OIT 扩展对象类型。 注释 ddlgen 不支持为系统表生成模式。

-Ooutput_file

为生成的 DDL 指定一个输出文件。如果没有指定 -O,则所创建的

DDL 会显示在主控台窗口中。

-Eerror_file

指定一个用来记录错误的日志文件。如果没有指定 -E,生成的错误会 显示在主控台窗口中。

-Lprogress_log_file

指定用于记录 ddlgen 的进度的日志文件。如果您没有指定 -L,将不记 录进度。

-Jclient_charset

指定用于客户端的字符集。-J client_charset 请求将 Adaptive Server 字符 集与客户端上使用的字符集 client_charset 进行相互转换。过滤器在 client_charset 和 Adaptive Server 字符集之间转换输入内容。

如果省略 -J,则将字符集设置为平台的缺省字符集。缺省字符集不必 是客户端正在使用的字符集。


image

注释 对于 HP 平台 – 必须使用 -Jiso_1 指定正确的字符集。

image


-LC

为服务器上的一个或多个逻辑集群生成 DDL。

-F

在表级和数据库级对象的 DDL 中将索引、触发器和约束从表和数据 库定义中过滤出去。有效的过滤器是:

• 对于表 – [ % | I | RI | KC | TR | PC ]

• 对于数据库 – [ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR]

过滤器选项有:

image

选项 过滤出

% 所有内容。检索数据库或表的纯模式定义。

SGM 段

GRP 组

USR 用户

R 规则

D 缺省值

UDD 用户定义的数据类型

U 用户表

V 视图

P 存储过程

PC 分区条件

XP 扩展存储过程

I 索引

RI 参照完整性约束

KC 主键约束和唯一键约束

TR 触发器


如果您使用无效过滤器参数, ddlgen 将生成一个警告,忽略该参数, 并继续处理您指定的其余有效参数。

如果您指定 % 以及其它过滤器参数,ddlgen 将忽略所有其它可过滤参 数,只显示纯模式定义。 ddlgen 然后继续评估应用于数据库的可过滤 参数的子集内的依赖性。

-v

显示 ddlgen 的版本和版权消息,然后返回到操作系统。


示例 示例 1 (高速缓存)为名为 HARBOR 的计算机 (使用端口 1955)上称 作 default data cache 的高速缓存生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TC -N"default data cache"

为所有高速缓存生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TC -N%

示例 2 (缺省值)为名为 HARBOR 的计算机 (使用端口 1955)上

pubs2 数据库中 jones 所拥有的 “phondflt”缺省值生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TD -Njones.phonedflt -Dpubs2

或者,由于 ddlgen 允许在 -N 标志中使用全限定名,因此可以忽略

-Ddbname 而在 -N 选项中包括数据库名:

ddlgen -Ulogin -Ppassword -Sserver:port -TD -Ndbname.owner.defaultname

为数据库中 “owner”所拥有的所有缺省值生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TD -Nowner.% -Ddbname

示例 3 (数据库)为名为 HARBOR 的计算机 (使用端口 1955)上的

pubs2 数据库生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Npubs2

如果没有指定 dbname, ddlgen 将为 login 的缺省数据库生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port

如果没有使用 -T 参数, ddlgen 将为缺省类型数据库生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -Ndbname

为所有数据库生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%

示例 4 (数据库设备)为名为 HARBOR 的计算机 (使用端口 1955)上 运行的 master 数据库设备生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDBD -Nmaster

为所有数据库设备生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TDBD -N%

示例 5 (临时数据库)为包括 tempdb 在内的所有数据库生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -N%

若要为所有临时数据库生成 DDL,请使用 OD 扩展数据库类型:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOD -N%


可以在 Adaptive Server 版本 12.5.0.3 和更高版本中使用 OD 扩展类型,但 在早于 12.5.0.3 的版本中使用将发出警告消息。您可以放心地忽略这一 消息;ddlgen 将继续处理该命令。

若要为临时数据库之外的所有数据库生成 DDL,请使用 OU 扩展类型:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -XOU -N%

下面的命令将为名为 tempdb1 的临时数据库生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ntempdb1

输出中包含以下内容:

• create temporary database 语句

create temporary database tempdb1 on master = 4, asdas = 2

go

• sp_tempdb bind 语句,其中 isql 应用程序被绑定到 tempdb1:

sp_tempdb 'bind','ap', 'isql', 'DB', 'tempdb1' go


image

注释 视图、存储过程和表之类对象的 DDL 不与临时数据库的 DDL 一 起生成,因为这些对象是临时对象,并且在服务器重新启动后重新创 建。

为数据库对象生成 DDL 时,如果使用 -F 参数过滤表,则会自动过滤索 引、参照完整性、键约束和触发器,因为它们都是该表对象的子集。

image


示例 6 (内存数据库)为内存数据库生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_1

示例 7为内存临时数据库生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nimdb_temp1

示例 8 (存档数据库)若要为所有存档数据库生成 DDL,请使用扩展过 滤器选项 “OA”。

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -N% -XOA

若要为单个存档数据库生成 DDL,请使用常规数据库的语法。本示例 为存档数据库 adb1 创建 DDL。

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Nadb1


示例 9 (转储设备)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 tapedump1 转储设备生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDPD -Ntapedump1

为所有转储设备生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TDPD -N%

示例 10 (加密密钥)在包含扩展选项 –XOD 时,为加密密钥生成系统 加密口令和 DDL。输出会为所有加密密钥生成 sp_encryption 语句,然后 再生成 DDL 语句。此示例为名为 HARBOR 的计算机(使用端口 1955) 中的登录名 “george”生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Ngeorge -XOD

为名为 HARBOR 的计算机 (使用端口 1955)上 authors 数据库中的所 有加密密钥生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK -Nauthors.dbo.%

示例 11为名为 “HARBOR”的计算机 (使用端口 1955)上 accounts 数 据库中的所有加密密钥生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEK

-Naccounts.dbo.%

或者,使用 -D 选项指定数据库名。

示例 12为 SampleKeysDB 数据库中的加密密钥 “ssn_key”生成 DDL:

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

示例 13以下示例在为 “ssn_key”加密密钥生成 DDL 时,使用 -FEKC 来 避免为密钥副本创建 DDL:

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

-FEKC

示例 14为 “ssn_key”及其密钥副本生成 DDL:

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key

示例 15此示例对名为 employee 的表发出 ddlgen 命令,该表包含一个 “ssn”列,该列使用加密密钥 “ssn_key”进行加密,其解密缺省值设 置为 “100”:

ddlgen -Usa -P -Sserver -TU -N db1.dbo.employee

示例 16 (引擎组)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 LASTONLINE 引擎组生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEG -NLASTONLINE


为所有引擎组生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TEG -N%

示例 17 (执行类)为名为 HARBOR 的计算机 (使用端口 1955)上运 行的 EC2 执行类生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEC -NEC2

为所有执行类生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TEC -N%

示例 18 (扩展存储过程)通过在 -N 选项中使用完全限定的

dbname.owner.extendedstoredprocedure 格式,为名为 HARBOR 的计算机

(使用端口 1955)上运行的、 Jones 所拥有的 pubs2 数据库中的

xp_cmdshell 扩展存储过程生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TXP -Npubs2.jones.xp_cmdshell

或者,可以使用 -D 选项来代替使用全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TXP

-Nowner.extendedstoredprocedure -Ddbname

为所有扩展存储过程生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TXP -Ndbname.owner.%

示例 19 (过滤器)为 pubs2 数据库中的 authors 表生成 DDL,从表的 DDL 中过滤出所有索引 (I)、参照完整性约束 (RI)、主键约束和唯一键约 束 (KC)、触发器 (TR) 和分区条件 (PC):

ddlgen -Uroy -Proy123 -TU -Nauthors -Dpubs2 -F%

或者,可以分别指定每个过滤器:

ddlgen -Ulogin -Ppassword -TU -Ndbname.owner.table

-FI,RI,KC,TR

下面的命令生成 table_name 的定义,同时过滤出外键和唯一主键:

ddlgen -Ulogin -Ppassword -TU -Ntable_name -Ddbname

-FRI,KC

下面两个命令都会在整个数据库中为指定用户生成外键:

ddlgen -Ulogin -Ppassword -TRI -N%.%.% -Ddbname

或:

ddlgen -Ulogin -Ppassword -TRI -Ndbname%.%.%


下面两个命令为数据库中所有以 “PK”开头的表的主键和唯一键生成

DDL:

ddlgen -Ulogin -Ppassword -TKC -Ndbname.%.%.PK%

或:

ddlgen -Ulogin -Ppassword -TKC -N%.%.PK% -Ddbname

下面的命令生成数据库的纯模式定义:

ddlgen -Ulogin -Ppassword -Sserver:port -TF -Ndbname

-F%

或者,可以分别指定每个过滤器:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FSGM,GRP,USR,R,D,UDD,V,P,XP,I,RI,KC,TR

下面的命令在生成数据库 DDL 时跳过已编译对象:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FTR,D,XP,V,R

下面的命令生成数据库定义,但不生成表定义:

ddlgen -Ulogin -Ppassword -Sserver:port -TDB -Ndbname

-FU

示例 20 (组)通过在 -N 选项中使用完全限定的 dbname . groupname 格 式,为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数据 库中的 “public”组生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TGRP -Npubs2.public

或者,可以使用 -D 选项来指定 dbname:

ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ngroupname -Ddbname

为所有组生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TGRP -Ndbname.%

示例 21 (索引)为 pubs2 数据库中 dbo 所拥有的 authors 表的 au_lname

索引生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TI -Ndbo.authors.au_lname -Dpubs2

或者,由于 ddlgen 允许在 -N 标志中使用全限定名,因此可以忽略

-Ddbname 而在 -N 选项中包括数据库名:

ddlgen -Ulogin -Ppassword -Sserver:port

-TI -Ndbname.owner.tablename.indexname

如果使用一个全限定名,就可以忽略 -D 选项。


为单个表的所有索引生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TI

-Ndbname.owner.tablename.%

为数据库中所有表的所有索引生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TI

-Ndbname.%.%.%

例如,以下命令将为 pubs2 数据库中所有表的所有索引生成 DDL:

ddlgen -Usa -P -SHARBOR:1955 -TI -Npubs2.%.%.%

示例 22 (键)以下两条命令为数据库中所有以 “PK”开头的表的主键 和唯一键生成 DDL:

ddlgen -Usa -P -TKC -Ndbname.%.%.PK%

或:

ddlgen -Usa -P -TKC -N%.%.PK% -Ddbname

示例 23 (逻辑键) LK 生成由 sp_primarykey、 sp_commonkey、 sp_foreignkey 语句定义的表的逻辑键。由于这些键没有名称,在此情况 下对象的名称将作为表名称。此示例为名为 HARBOR 的计算机 (使用 端口 1955)上运行的 pubs2 数据库中的表作者的逻辑键生成 DLL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors

若要为数据库 pub2 中的所有逻辑键生成 DDL,请使用:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.%.%

若要从表作者的 DLL 中过滤出在 -F 参数中使用 LK 的逻辑键定义,请 使用:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors -FLK

示例 24 (登录名) TL 为一个登录名或所有登录名生成 DDL。本例为名 为 HARBOR 的计算机 (使用端口 1955)中的所有登录名生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -N%

image

image

注释 为所有登录名生成的 DDL 中的口令为 “password”。 或者,也可以使用 -N username 代替 -N% 来指定单个登录名:

ddlgen -Ulogin -Ppassword -Sserver:port -TL -Nusername


如果已经为登录名指定了服务器范围的口令复杂程度选项,则会首先生 成所有 sp_addlogin 和 sp_loglogin DDL 语句,然后再生成用于口令选项的 DDL 语句。此示例为名为 HARBOR 的计算机 (使用端口 1955)中的 登录名 “george”生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -Ngeorge

示例 25 (远程服务器)为名为 HARBOR 的计算机 (使用端口 1955) 上的 ORANGE 远程服务器生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRS -NORANGE

为所有远程服务器生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TRS -N%

示例 26 (角色)为名为 HARBOR 的计算机 (使用端口 1955)上的 sa_role 生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRO -Nsa_role

为所有角色生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TRO -N%


image

注释 为所有角色生成的 DDL 中的口令为 “password”。

image


示例 27 (规则)为名为 HARBOR 的计算机 (使用端口 1955)上与

authors 相关联的所有规则生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TR -Nauthors.dbo.%

% 符号指示 ddlgen 为服务器上存在的所有规则都创建 DDL。 您还可以给出规则的全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TR -Ndbname.owner.rulename

或者,也可以使用 -D 参数:

ddlgen -Ulogin -Ppassword -Sserver:port -TR -Nowner.rulename -Ddbname

示例 28 (段)通过在 -N 选项中使用完全限定的 dbname . segmentname 格 式,为名为 HARBOR 的计算机 (使用端口 1955)上 pubs2 数据库的 logsegment 段生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TSGM -Npubs2.logsegment

或者,可以使用 -D 选项指定 dbname:

ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Nsegmentname -Ddbname


为所有段生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TSGM -Ndbname.%

示例 29(SQLJ 函数)为 master 数据库中 dbo 所拥有的 region_of 的 SQLJ

函数生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TF –Nmaster.dbo.region_of

或者,也可以使用 -D 参数:

ddlgen -Ulogin -Ppassword -Sserver:port -TF –Ndbo.region_of –Dmaster

若要为数据库中的所有 SQLJ 函数生成 DDL,可使用对象类型 F:

ddlgen -Ulogin -Ppassword -Sserver:port -TF –Ndbname.owner.%

示例 30 (SQLJ 过程)是一种存储过程。在为 SQL 过程生成 DDL 的同 时将为存储过程生成 DDL。下面的命令将为 master 数据库中 dbo 所拥有 的所有存储过程 (包括 SQLJ 过程)生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP –Nmaster.dbo.%

要为 master 数据库中仅由 dbo 所拥有的所有 SQLJ 过程生成 DDL,请使 用下面的命令,其中扩展类型 OD 指的是 SQLJ 过程:

ddlgen -Ulogin -Ppassword-Sserver:port -TP –Nmaster.dbo.% -XOD

要为 master 数据库中 dbo 所拥有的除 SQLJ 过程之外的所有过程生成 DDL,请使用下面的命令,其中扩展类型 OU 指的是除 SQLJ 过程外的 所有存储过程:

ddlgen -Ulogin -Ppassword-Sserver:port -TP –Nmaster.dbo.% -XOU

示例 31 (存储过程)通过对 -N 选项使用完全限定的 dbname . owner . procedure_name 格式,为名为 HARBOR 的计算机 (使用 端口 1955)上 pubs2 数据库的 sp_monitor 存储过程生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP -Npubs2.dbo.sp_monitor

或者,可以使用 -D 选项指定 dbname:

ddlgen -Ulogin -Ppassword -Sserver:port -TP -Nowner.procedurename -Ddbname

为所有存储过程生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TP -Ndbname.owner.%

示例 32 (启用 SSL 的服务器)为名为 HARBOR 的计算机 (使用端口 1955)上运行的、启用 SSL 的 Adaptive Server 的 pubs2 数据库中的对象 生成 DDL:

ddlgen -Uroy -Proy123 -Sssl:HARBOR:1955 -TDB -Npubs2


示例 33 (表)为名为 HARBOR 的计算机 (使用端口 1955)上运行的、 “dbo”所拥有的 pubs2 数据库中的所有用户表生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TU -Ndbo.% -Dpubs2

您也可以使用 -N 参数给出表的全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ndbname.tableowner.tablename

或者,也可以使用 -D 参数指定数据库:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.tablename -Ddbname

若要为所有代理表生成 DDL (使用值 OD),请改用 -XOD,其中 X 是扩 展类型, OD 表示代理表:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.% -Ddbname -XOD

若要为所有用户表生成 DDL (使用值 OU),请改用 -XOU,其中 X 是扩 展类型, OU 表示用户表:

ddlgen -Ulogin -Ppassword -Sserver:port -TU

-Ntableowner.% -Ddbname -XOU

为包括用户表和代理表在内的所有表生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TU -Ndbname.tableowner.%

示例 34 (触发器)通过对 -N 选项使用完全限定的 dbname . owner . trigger_name 格式,为名为 HARBOR 的计算机(使用端口 1955)上 pubs2 数据库的 checksum 触发器生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TTR -Npubs2.dbo.checksum

或者,可以使用 -D 选项指定 database_name:

ddlgen -Ulogin -Ppassword -Sserver:port -TTR

-Nowner.triggername -Ddbname

也可以使用以下格式为表的某一触发器生成 DDL:

-Ndb_name.table_owner.table_name.trigger_name

为数据库的所有触发器生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TTR -Ndbname.owner.%

也可以使用以下格式为表的所有触发器生成 DDL:

-Ndb_name.table_owner.table_name.%


image

注释 为表的所有触发器生成 DDL 时,不能使用 -D 参数。

image


示例 35 (用户定义的数据类型)通过对 -N 选项使用完全限定的 dbname . userdefined_datatype 格式,为名为 HARBOR 的计算机 (使用端 口 1955)上 pubs2 数据库的用户定义数据类型 “Identype”生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUDD -Npubs2.Identype

或者,可以使用 -D 选项来指定 dbname:

ddlgen -Ulogin -Ppassword -Sserver:port -TUDD

-Nuserdefined_datatype -Ddbname

为所有用户定义的数据类型生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TUDD -Nbname.%

示例 36 (视图)通过对 -N 选项使用完全限定的 dbname . owner . viewname 格式,为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数 据库中 Miller 所拥有的 retail 视图生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TV -Npubs2.miller.retail

或者,可以使用 -D 选项来代替使用全限定名:

ddlgen -Ulogin -Ppassword -Sserver:port -TV -Nowner.viewname -Ddbname

为所有视图生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TV -Ndbname.owner.%

示例 37 (用户)通过对 -N 选项使用完全限定的 dbname . username 格式, 为名为 HARBOR 的计算机 (使用端口 1955)上运行的 pubs2 数据库中 的用户 Smith 生成 DDL:

ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUSR -Npubs2.smith

或者,可以使用 -N 和 -D 选项来代替在 -N 中使用全限定名:

ddlgen -Ulogin -Ppassword -Shost_name:port -TUSR -Nusername -Ddbname

为所有用户生成 DDL:

ddlgen -Ulogin -Ppassword -Sserver:port -TUSR -Ndbname.%

示例 38 (逻辑集群)为服务器 “ase1”上的 “my_lcluster”生成

DDL,用户应输入:

ddlgen -Usa -P -Sase1 -TLC -Nmy_lcluster

示例 39 (逻辑集群)为服务器 “ase1”上的所有逻辑集群生成 DDL, 用户应输入:

ddlgen -Usa -P -Sase1 -TLC -N%

示例 40 (用户定义的 Web 服务)通过对 -N 和 -T 选项使用完全限定的

dbname.username.webservice_name 格式,为在名为 HARBOR 的计算机

(使用端口 1995)上运行的 pubs2 数据库中用户定义的指定 Web 服务

sp_who_service 生成 DDL:


ddlgen -Uroy -Proy123 -SHARBOR:1995 -TWS

-Npubs2.dbo.sp_who_service

为指定的用户定义的 Web 服务生成 DDL 的语法如下所示:

ddlgen -Ulogin -Ppassword -Shost_name:port -TWS

-Ndbname.owner.webservice_name

为数据库 dbname 中所有用户拥有的所有用户定义的 Web 服务生成 DDL:

ddlgen -Ulogin -Ppassword -Shost_name:port -TWS -Ndbname.%.%


image

注释 仅在为所有用户定义的 Web 服务或数据库生成 DDL 时,才会生 成 sp_webservices 'addalias' 语句。

image


用法 • ddlgen 不识别视图、存储过程或触发器中的现有序列。因此,如果 为数据库生成 DDL,则在对具有依赖性的视图、存储过程和触发器 运行 ddlgen 之前,必须先对这些独立的项目运行 ddlgen。例如,如 果视图 B 依赖于视图 A,那么必须先对视图 A 运行 ddlgen,然后再 对视图 B 运行该命令。

• ddlgen 的缺省信息是:


选项

参数

必需

缺省值

-U

username

是

无

-P

password

是

无

-S

host_name:port_number

是

无

-T

object_type

请参见用于一系列有效对象类型的 -T 参数 说明

否

数据库

-N

object_name

是,如果 -T 的

object_type 不是 DB

(数据库)

username 的缺省数据库 名,如果 -T object_type 是 db 或如果没有指定 -T

-D

database_name

否

username 的缺省数据库

-X

extended_object_type

否;仅在 -T 的

无

选项有:

• OU – 用于用户表、用户数据库 (不包 括临时数据库)和存储过程 (不包括

object_type 为以下对

象时才使用:

• U (用户表)

SQLJ 过程)。

• P (过程)

• OD – 用于代理表、临时数据库和

• DB (数据库)

SQLJ 过程。

-O

output_file_name

否

标准输出

-E

error_file_name

否

标准输出

-L

log_file_name

否

无

-V

ddlgen的 version_number

否

无


• 在命令行中,使用包括在 Adaptive Server 安装中的 ddlgen shell 脚本 文件 (Windows 中的 ddlgen.bat)来调用 ddlgen。 DDLGen.jar 中的 主类是 com.sybase.ddlgen.DDLGenerator。

• 在 Adaptive Server 的 Sybase Central 插件中启动 ddlgen:

a 右键单击要为其生成 DDL 的对象。

b 选择 Generate DDL。

• 在 create table 的输出 DDL 中,绑定语句作为独立 DLL 而不是相关

DLL 生成。

下节提供有关以下内容的详细信息:

• 第 173 页的 “隐藏 ddlgen 中的口令”

• 第 174 页的 “将 ddlgen 用于加密列”

隐藏 ddlgen 中的口令

当您在 UNIX 命令行环境中发出 ddlgen 实用程序命令时,该 UNIX 计算 机上的其他用户会看到 ddlgen 命令。如果这些用户发出 ps 进程管理命 令 (显示该计算机上运行的进程的状态),则他们还会看到该命令的口 令。

使用 ddlgen -P 口令参数选项,您可以从脚本调用 ddlgen,这样便可向其 他用户隐藏口令。

要实现此目的,请将 $PSWD 环境变量设置为指向 Adaptive Server 登录 口令,并在 -P 参数中包括字符串 “ext”。 ext 充当伪口令,以便您在下 一脚本行中提供实际口令。在命令行或 Bourne shell 脚本中设置

$PSWD,但不要从 C-shell 中设置。

使用 $PSWD 运行 ddlgen:

1 设置 $PSWD 环境变量:

setenv PSWD pass_word

2 运行 ddlgen:

ddlgen -Ulogin -Pext -Sserver:port -Ttype -Nname << END

$PSWD END

如果您希望将口令保存在文件中,请将 $PSWD 替换为 'cat filename ',其 中 filename 是口令文件的位置。例如:

ddlgen -Ulogin -Pext -Sserver:port -Ttype -Nname << END 'cat filename'

END


将 ddlgen 用于加密列

• ddlgen 实用程序支持早于 15.0.2 的加密。早于 15.0.2 的 ddlgen 支持 包括为数据库中的加密密钥生成 DDL,以及生成用于在服务器之间 同步加密密钥的 DDL。

如果在 Adaptive Server 15.0.2 版或更高版本中使用 ddlgen 为加密密 钥生成 DDL,则该 DDL 可能会导致在版本早于 15.0.2 的 Adaptive Server 上出现错误,特别是加密密钥通过用户指定的口令进行加密 或具有密钥副本时更是如此。

• 表示加密密钥的 EK 类型可生成用于创建加密密钥并向其授权权限 的 DDL。 ddlgen 可生成加密列信息和 grant decrypt 语句以及表定义。

• 如果未指定 -XOD 选项,并且已使用 with passwd 子句在源数据库中 创建了要迁移的密钥,则 ddlgen 会生成 create encryption key 命令, 该命令使用 password 作为其显式口令。这与 ddlgen 处理角色和登录 口令的方法相同。

• -XOD 生成 create encryption key,该语句指定用 sysencryptkeys 表示的 密钥加密值。在移动数据时使用 -XOD 可在服务器之间同步加密密钥。

ddlgen -XOD 可生成包含系统加密口令 (如果已设置系统加密口令 并为使用系统加密口令加密的密钥生成 DDL)的 DDL 以及密钥的 DDL。

❖ 生成 DDL 而不指定 -XOD 标志

• 如果用户未在 ddlgen 中指定 -XOD 标志,则会发生以下两种情况:

• 创建加密密钥时,如果用户未指定口令, ddlgen 将生成不带口 令的 DDL。

• 最初创建加密密钥时,如果用户指定了口令, ddlgen 将生成缺 省口令 “password”。这与 ddlgen 处理角色和登录口令的方法 相似,其输出类似以下内容:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password – 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go


❖ 生成带有 -XOD 标志的 DDL

• 当用户在 ddlgen 命令中指定 “-XOD”时, ddlgen 将生成包含系统 加密口令的 DDL (如果已设置系统加密口令并为使用系统加密口 令加密的密钥生成 DDL)和密钥的 DDL。

以下语法将生成系统加密口令:

ddlgen -Usa -P -Sserver -TEK -NsampleKeysdb.dbo.ek1 -XOD

该命令的输出为:

-- System Encryption Password


use SampleKeysDB go


sp_encryption 'system_encr_passwd', '0x8e050e3bb607225c60c7cb9f59124e99866ca22e677b2cdc9a4d09775850f4721',

NULL, 2, 0

go


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

-- DDL for EncryptedKey 'ek1'

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


print '<<<<< CREATING EncryptedKey - "ek1" >>>>>' go


create encryption key SampleKeysDB.dbo.ek1 for AES with keylength 128

passwd 0x0000C7BC28C3020AC21401

init_vector NULL keyvalue

0xCE74DB1E028FF15D908CD066D380AB4AD3AA88284D6F7742DFFCADCAABE4100D01

keystatus 32 go


image

注释 在使用 ddlgen 将密钥从源服务器迁移到目标服务器时,如果 要为使用 “-XOD”参数生成的加密密钥运行 ddlgen 输出 (在源服 务器中),请在目标服务器中将系统加密口令设置为 NULL (如果 存在)。否则,在尝试针对目标服务器执行 ddlgen 输出时,将出现 错误。

image


密钥副本支持 ddlgen 实用程序还可为密钥副本以及基本密钥生成 DDL。 例如,以下语法将为 “ssn_key”及其密钥副本生成 DDL:

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key


ddlgen 的输出如下所示:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password – 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go


print 'Key Copies for ssn_key'

-- Generating DDL for Key Copies for 'ssn_key' alter encryption key 'ssn_key'

with passwd 'password'

add encryption with passwd 'passwd' for user 'dbo'.

如果包含 -XOD 标志,则密钥副本的 DDL 如下所示:

alter encryption key SampleKeysDB.dbo.ssn_key add encryption with keyvalue

0x84A7360AA0B28801D6D4CBF2F8219F634EE641E1082F221A2C58C9BBEC9F49B501 passwd 0x000062DF4B8DA5709E5E01

keystatus 257 for user 'user1' go

EKC 加密密钥副本过 滤器

在 Adaptive Server 15.0.2 中,ddlgen 可支持 -F 过滤器参数的 EKC (加密 密钥副本)扩展类型,以禁止为加密密钥生成密钥副本。

在为 “ssn_key”加密密钥生成 DDL 时,以下示例使用 -FEKC 来避免为 密钥副本创建 DDL:

ddlgen -Usa -P -Sserver -TEK -NSampleKeysDB.dbo.ssn_key -FEKC

ddlgen 的输出如下所示:

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

-- DDL for EncryptedKey 'ssn_key'

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

print 'ssn_key'


--The DDL is generated with a default password – 'password' as

--a password was specified when this key was created.


create encryption key SampleKeysDB.dbo.ssn_key for AES with keylength 128

passwd 'password' init_vector random go

创建表 DDL ddlgen 可以生成 decrypt_default 语句 (如果已对加密列进行设置)以及 表的 DDL。

以下示例对名为 employee 的表发出 ddlgen 命令,该表具有一个 “ssn” 列,该列使用加密密钥 “ssn_key”进行加密,其解密缺省值设置为 “100”:

ddlgen -Usa -P -Sserver -TU -Nemployee

该命令的 DDL 输出为:

create table employee (

ssn int not null encrypt with ssn_key decrypt_default

last_name

int

not

null ,

first_name

int

not

null

last_name

int

not

null ,

first_name

int

not

null

100 ,


)

lock allpages on 'default'

go

权限 若要为以下对象生成 DDL,用户必须具有 sa_role 或 sso_role:

• 加密密钥

• 登录名

• 角色 对于所有其它对象,用户无需任何特定权限或角色即可生成 DDL。




--------------------------------------华丽的分割线-------------------------------------------------------------------------

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)上提取数据的非常规恢复工具
  1. 适用于所有的SQL Anywhere版本    包括:5.x,6.x,7.x,8.x,9.x,10.x,11.x,12.x,16.x,17.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使用介绍

Sybase SQL Anywhere数据库恢复工具ReadASADB适用场景

各种误操作:

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

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的主要功能:

  1. 被勒索病毒加密数据文件及备份文件情况下的恢复;
  2. 系统崩溃只剩下数据文件的情况下的恢复,甚至数据库文件不存在而只有损坏的备份文件情况下的恢复;
  3. 因断电、硬盘坏道等造成数据库文件损坏情况下的恢复;
  4. delete数据恢复、误update数据恢复、误删除表(drop)恢复、误truncate表恢复 等;
  5. 各种Sybase内部系统表损坏、索引错误的修复;
  6. master数据库损坏而无法正常运行情况下的恢复;
  7. Sybase数据库被标记为可疑,不可用等情况的恢复;
  8. Sybase数据库中数据文件内部出现坏块情况下的恢复;
  9. Sybase数据库无数据文件但有日志文件的情况下的恢复;
  10. Sybase数据库只有数据文件无任何日志文件的情况下的恢复;
  11. Sybase数据文件被误删除情况下的碎片提取恢复;
  12. 磁盘阵列上的Sybase数据库被误格式化情况下的数据库恢复;
  13. 数据库sysobjects等系统表损坏无法正常应用情况下的恢复;
  14. Sybase数据库还原数据库出现失败情况下的恢复;
  15. 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.x


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

SQL Server数据库恢复工具SQLRescue:

一个不依赖数据库管理系统、直接从SQL Server数据库文件上提取数据的业内领先的恢复工具!
能够从损坏的SQL Server数据库文件(.mdf)上提取数据的非常规恢复工具。

SQL Server数据库恢复工具SQLRescue的主要功能:

  1. 系统崩溃只剩下数据文件的情况下的恢复,即无日志文件或者日志文件损坏情况下的恢复;
  2. 断电导致数据库文件损坏情况下的恢复;
  3. 硬盘坏道造成数据库损坏情况下的恢复;
  4. 数据文件内部存在坏页情况下的恢复;
  5. 企业管理器误删除数据表记录,管理软件误删除数据表记录的恢复;
  6. 并闩锁错误、格式化、误删除后导致软件不能使用的情况;
  7. 无法读取并闩锁页sysindexes失败情况下的修复;
  8. 数据文件被误删除情况下的碎片提取恢复;
  9. 系统表损坏、索引错误、误删除数据库表、删除记录的数据找回;
  10. master数据库损坏而无法正常运行情况下的恢复;
  11. 数据文件无法附加情况下的数据恢复;
  12. 数据库被标记为可疑,质疑,不可用等情况的恢复;
  13. 数据库sysobjects等系统表损坏情况下的恢复;
  14. 数据被误(drop、delete、truncate)删除表数据的恢复,误update后的数据恢复等;
  15. 还原时报一致性错误,错误823等情况下的数据恢复,各种错误提示的数据库文件修复;
  16. 数据库被误格式化等情况下的数据库恢复;
  17. 日志收缩造成数据库损坏情况下的恢复;
  18. 仅剩损坏的备份文件情况下的恢复。

SQL Server数据库恢复工具SQLRescue技术特点:

只要SQL Server数据库的数据文件存在,我们就有办法帮您从数据文件中找回重要数据。
  1. 从数据文件中直接恢复数据
  2. 不能附加时直接恢复数据并生成新的数据库
  3. 系统表损坏的数据库修复
  4. 快速修复SQL 823错误、连接中断错误

SQL Server数据库恢复工具SQLRescue支持的版本:

Microsoft SQL Server 7.0, 2000, 2005, 2008, 2008R2, 2012, 2014, 2016, 2017,2019。
+-------------------------------------华丽的分割线-------------------------------------------------------------------------