存档
本文给出sybase IQ15.1试用版在试用一个月到期之后继续试用的两种方法。
第一种:删除注册表后重新安装
Sybase IQ作为数据分析以及数据仓库的一款数据库管理系统,目前最新版本为15.5。我手头上使用的这份为公司从sybase公司那里领用的试用版,有效期只有一个月。
Sybase IQ15.1 for windows的安装介质CD光盘包含32bit和64bit两类平台的安装程序。我在自己的windows-xp(32bit)上安装了sybase IQ15.1。在安装过程中要求选择产品类型的时候,我从两个备选项:开发版和体验版中选择了开发版,一个月之后sybase IQ就启动不起来了,报没有可用license的问题。
在我的pc上ASE15.0.3和IQ15.1是共用d:\sybase这个%SYBASE%目录的,所以默认的认证文件夹也在D:\sybase \SYSAM-2_0,该文件夹内只有一个文件:SYBASE_ASE_DE.lic;且这个文件的修改日期也是很早之前了。心里有点疑惑。
不管三七二十一先重装一遍IQ再说,结果装完之后,原来的iq库还是因为没有可用license而启动不起来。心里很窝火哦。
又想到一个办法,把sybase IQ的注册表项目都删除,然后又重装了一遍,这次IQ可以启动起来了。
步骤如下:
第一步:删除sybase IQ的相关服务项目
在控制面板>管理工具>服务里面,我发现对于sybase IQ数据库仅有一个相关的服务: Sybase IQ Agent 15.1。在这一服务名Sybase IQ Agent 15.1上点右键,查看其属性,得知其服务名称为:SybaseIQAgent15。 实际上,SybaseIQAgent15此名即为该项服务的ServiceKeyName。
要想删除windows系统中的系统服务, 除了用其它的管理工具外, 系统自带了一个命令行工具sc。语法为:
C:\Documents and Settings\Administrator>sc delete
DESCRIPTION:
Deletes a service entry from the registry.
If the service is running, or another process has an
open handle to the service, the service is simply marked
for deletion.
USAGE:
sc <server> delete [service name]
直接执行: sc delete SybaseIQAgent15 就可以删除此iq代理服务了。
第二步:删除的注册表项目
在开始>运行里面输入regedit打开注册表编辑器。
定位到:HKEY_CURRENT_USER\Software\SYBASE 下面将IQ相关的子项删除,其它的不要删错了。
然后将下面的四项都删除。
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\Sybase_IQ_15
HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Services\SybaseIQAgent15
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Sybase_IQ_15
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SybaseIQAgent15
之后,个人感觉为了使得上述删除生效,最好重启一下系统。我是在没重启的情况下也再次成功安装了iq15.1。
最好就是按照sybase IQ15.1了,安装过程比ASE简单多了。 因为IQ的安装过程中不牵涉到配置服务器,仅仅复制了安装程序而已。
最后启动IQ的时候,竟然成功了。 呵呵!
ps:我的pc上是先安装了ASE15.0.3,sybase的根目录是d:\sybase 。sybase的license文件是放在D:\sybase\SYSAM-2_0\licenses里面的。但是,我发现安装完iq后这个文件的修改日 期没有变,也就是说iq安装程序可能没有修改这个文件。心里一直疑惑:sybase IQ是怎么判断试用一个月到期的?
第二种: 调整系统时间
查看Sybase IQ15.1数据库的日志文件*.iqmsg,发现有下面的提示信息:
I. 04/30 15:07:33. 0000000000 License feature name: IQ_SECURITY
I. 04/30 15:07:33. 0000000000 License search path: D:\sybase\SYSAM-2_0\licenses\SYBASE_ASE_DE-Original.lic;
I. 04/30 15:07:33. 0000000000 D:\sybase\SYSAM-2_0\licenses\SYBASE_ASE_DE.lic;D:\sybase\SYSAM-2_0 -
I. 04/30 15:07:33. 0000000000 \licenses\SySAMLicenseServer.lic;D:\sybiq\*.lic
I. 04/30 15:07:33. 0000000000 FLEXnet Licensing error:-5,357
I. 04/30 15:07:33. 0000000000 For further information, refer to the Sybase Software Asset Management website at http://www.sybase.com/sysam
I. 04/30 15:07:33. 0000000000 WARNING: Sybase IQ functionality that requires the IQ_SECURITY license will be disabled on Sat May 01 00:00:00 2010, unless a suitable IQ_SECURITY license is obtained before that date.
是windows-xp的系统时间调整为早于:2010-05-01。最后再次启动数据库的时候,竟然启动成功了。不知道此种方法是否通用?
另外,在Sybase官网上只能下载到最新版的IQ,之前版本的介质官网不提供下载链接。想试用Sybase IQ,请联系Sybase公司,他们的销售会很热心的帮助解决的。毕竟这是帮着他们拓展市场嘛!Sybase北京公司的联系电话:(010)59215888
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:IQ 15.1 license outdate 试用 过期
————————————————————————————————-
在论坛中看到有人寻找从sybase数据 库中提取表结构的方法。用 dbartisan8.6.1这个第三方工具可以很轻松的实现,我自己也用pb编写过函数能够提取表结构和索引创建语法。
像sybase自带的sybase central也能从中导出ddl。我感觉从sybase central中导出语法时可能利用的就是ddlgen这个工具,原因我认为sybase central和ddlgen都基于java 编写。
先将整理的ddlgen说明以及使用方法贴在下面。
ddlgen
Description
A Java-based tool that generates definitions for server- and database-level objects in Adaptive Server. ddlgen supports Adaptive Server version 11.9.2 and later.
The command-line version of ddlgen is located in $SYBASE/ASEP/bin ( %SYBASE%\ASEP\bin in Windows ).
Syntax
ddlgen
-Ulogin
-Ppassword
-S[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 ]
-F[ % | SGM | GRP | USR | R | D | UDD | U | V |
P | XP | I | RI | KC | TR | PC ]
Parameters
-U login
specifies a login name, and is case-sensitive.
-P password
specifies your password.
-S [server | host _ name : port _ number ]
specifies the name of the Adaptive Server. ddlgen looks this name up in the interfaces file or LDAP configuration file. If you specify:
·
-S [host _ name :port _ number ] –
ddlgen uses the host _ name and port _ number provided, and neither interfaces nor LDAP configuration files are read or parsed.
·
-S[server ] -I – ddlgen parses the interfaces file specified at the user location for the server name (see the -I parameter description for more information).
·
-S[server ] – without specifying an interfaces file, ddlgen does the following:
a.
ddlgen first tries to read the LDAP configuration file from the standard location
b.
If the LDAP file does not exist, or exists but does not contain an Adaptive Server entry, then the interfaces file is parsed at its standard location for the server name
c.
If the LDAP file exists, then ddlgen uses it to search the server name. The interfaces file is not parsed, and the LDAP configuration file is parsed.
You must use the -S option because ddlgen does not connect to a default server.
-I
specifies the interfaces file name, and corresponds to $SYBASE/interfaces for UNIX , and %SYBASE%\ini\sql.ini for Windows. Use this optional parameter with -S .
-Tobject _ type
specifies the type of object you are creating. If you do not use -T , ddlgen generates DDL for the default database of login. The object types for -T are:
Object type Description C cache D default DB database DBD database device DPD dump device EC execution class EG engine group EK encrypted keys GRP group I index KC key constraints L login LK logical key P stored procedure R rule RI referential integrity RO role RS remote server SGM segment TR trigger U table UDD user-defined datatype USR user V view WS user-defined Web service WSC Web service consumer XP extended stored procedure
-Nobject _ name
specifies the fully qualified name of the object you are creating, such as -Ndb _ name .owner _ name .table _ name .object _ name . The -N option:
·
is required if you specify any object _ type other than DB (database) in the -T parameter.
·
accepts wildcards with the use of % .
·
generates DDL for all items of a specific object type on your server.
·
enforces strict order in which it parses the names in the -Ndb _ name .owner _ name .table _ name .object _ name format. If you only provide three arguments, ddlgen assumes they are owner _ name , table _ name , and object _ name , in that order. Alternatively, you can also use -Nowner _ name .table _ name -Ddb _ name . ddlgen does not impose this restriction if object _ name is an index (I ).
-Ddbname
specifies the name of the database for the object you specify in the -N option. The default is the user’s default database.
-Xextended _ object _ type
differentiates the following:
user tables (OU ) from proxy tables (OD ) when you specify a table as your object type (-TU )
temporary databases (OD ) from nontemporary databases (OU ) when you specify database as your object type (-TDB )
SQLJ procedures (OD ) from stored procedures (OU ) when you specify procedure as your object type (-TP ).
If object _ type (-T ) is U (table) and -X is not specified, ddlgen generates DDL for both user tables and proxy tables. To generate DDL only for:
user tables – use the OU extended object type with the -X option.
proxy tables – use the OD extended object type with the -X option.
ddlgen does not support schema generation for system tables.
-Ooutput _ file
specifies an output file for the generated DDL. If you do not specify -O , the DDL you create appears in a console window.
-Eerror _ file
specifies a log file for recording errors. If you do not specify -E , the generated errors appear in a console window.
-Lprogress _ log _ file
specifies a log file for recording the progress of ddlgen . If you do not specify -L , the progress is not recorded.
-Jclient _charset
specifies the character set to use on the client. -Jclient _charset requests that Adaptive Server convert to and from client _charset , the character set used on the client. A filter converts input between client _charset and the Adaptive Server character set.
Omitting -J sets the character set to a default for the platform. The default may not necessarily be the character set that the client is using.
HP platforms – You must use -Jiso_1 to specify the correct character set.
-F
filters out indexes, triggers, and constraints out of table and database definitions in the DDL of table- and database-level objects. The valid filters are:
For tables – [ % | I | RI | KC | TR | PC ]
For databases – [ % | SGM | GRP | USR | R | D | UDD | U | V | P | XP | I | RI | KC | TR]
The filter options are:
Filter option Filters out: % Everything, and retrieves the schema-only definition of a database or table. SGM Segments GRP Groups USR Users R Rules D Defaults UDD Uer-defined datatypes U User tables V Views P Stored procedures PC Partition condition XP Extended stored procedures I Indexes RI Referential integrity constraints KC Primary- and unique-key constraints TR Triggers
-v
displays the version and copyright message of ddlgen and returns to the operating system.
Examples
Example 1
Caches – Generates DDL for a cache called default data cache on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TC -N"default data cache"
To generate DDL for all caches:
ddlgen -Ulogin -Ppassword -Sserver :port -TC -N%
Example 2
Defaults – Generates DDL for a default called “phondflt” owned by jones in the pubs2 database on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TD -Njones.phonedflt -Dpubs2
Alternatively, because ddlgen allows you to use a fully qualified name in the -N flag, you can omit the -Ddbname and include the database name in the -N option:
ddlgen -Ulogin -Ppassword -Sserver :port -TD -Ndbname .owner .defaultname
To generate DDL for all defaults in a database owned by “owner”:
ddlgen -Ulogin -Ppassword -Sserver :port -TD -Nowner .% -Ddbname
Example 3
Databases – Generates DDL for a database called pubs2 on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDB -Npubs2
If you do not specify a dbname , ddlgen generates DDL for the default database of login :
ddlgen -Ulogin -Ppassword -Sserver :port
If you do not use the -T parameter, ddlgen generates DDL for a default-type database:
ddlgen -Ulogin -Ppassword -Sserver :port -Ndbname
To generate DDL for all databases:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -N%
Example 4
Database device – Generates DDL for a database device called master running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDBD -Nmaster
To generate DDL for all database devices:
ddlgen -Ulogin -Ppassword -Sserver :port -TDBD -N%
Example 5
Temporary databases – Generates DDL for all databases, including tempdb :
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -N%
To generate DDL for all temporary databases, use the OD extended database type:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -XOD -N%
Although you can use the OD extended type in Adaptive Server versions 12.5.0.3 and later, versions earlier than 12.5.0.3 issue warning messages. You can safely ignore this message; ddlgen continues processing the command.
To generate DDL for all databases except temporary databases, use the OU extended type:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -XOU -N%
The following generates DDL for a temporary database named tempdb1 :
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -Ntempdb1
The output includes the following:
·
A create temporary database statement
create temporary database tempdb1 on master = 4,asdas = 2
go
An sp_tempdb bind statement where the isql application is bound to tempdb1 :
sp_tempdb 'bind','ap', 'isql', 'DB', 'tempdb1'
go
DDL for objects such as views, stored procedures, and tables is not generated along with DDL for a temporary database because these objects are temporary, and are re-created when the server restarts.
When you use the -F parameter to filter a table while generating DDL for a database object, then indexes, referential integrity, key constraints and triggers automatically get filtered, as they are a subset of the table object.
Example 6
Dump device – generates DDL for a dump device called tapedump1 running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TDPD -Ntapedump1
To generate DDL for all dump devices:
ddlgen -Ulogin -Ppassword -Sserver :port -TDPD -N%
Example 7
Execution class – generates DDL for an execution class called EC2 running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEC -NEC2
To generate DDL for all execution classes:
ddlgen -Ulogin -Ppassword -Sserver :port -TEC -N%
Example 8
Engine groups – generates DDL for an engine group called LASTONLINE running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TEG -NLASTONLINE
To generate DDL for all engine groups:
ddlgen -Ulogin -Ppassword -Sserver :port -TEG -N%
Example 9
Extended stored procedures – generates DDL for the xp_cmdshell extended stored procedure in the pubs2 database, owned by Jones and running on a machine named HARBOR using port 1955, by using the fully qualified dbname .owner .extendedstoredprocedure format with the -N option:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TXP -Npubs2.jones.xp_cmdshell
Alternatively, you can use the -D option instead of using the fully qualified name:
ddlgen -Ulogin -Ppassword -Sserver :port -TXP
-Nowner .extendedstoredprocedure -Ddbname
To generate DDL for all extended stored procedures:
ddlgen -Ulogin -Ppassword -Sserver :port -TXP -Ndbname .owner .%
Example 10
Filters – Generates DDL for the authors table in the pubs2 database, filtering for all indexes (I ), and referential integrity constraints (RI ), primary and unique key constraints (KC ), triggers (TR ), and partition condition (PC ) from the DDL of a table:
ddlgen -Uroy -Proy123 -TU -Nauthors -Dpubs2 -F%
Alternatively, you can specify each of the filters individually:
ddlgen -Ulogin -Ppassword -TU -Ndbname .owner .table
-FI,RI,KC,TR
The following generates the definition of table _ name while filtering out foreign keys and primary-unique keys:
ddlgen -Ulogin -Ppassword -TU -Ntable_name -Ddbname
-FRI,KC
Both of these generate foreign keys for a specified user in the entire database:
ddlgen -Ulogin -Ppassword -TRI -N%.%.% -Ddbname
Or:
ddlgen -Ulogin -Ppassword -TRI -Ndbname %.%.%
Both of these generate DDL for the primary and unique keys of all the tables in a database that begin with “PK”:
ddlgen -Ulogin -Ppassword -TKC -Ndbname .%.%.PK%
Or:
ddlgen -Ulogin -Ppassword -TKC -N%.%.PK% -Ddbname
The following generates schema-only definition of a database:
ddlgen -Ulogin -Ppassword -Sserver :port -TF -Ndbname -F%
Alternatively, you can specify each of the filters individually:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -Ndbname
-FSGM,GRP,USR,R,D,UDD,V,P,XP,I,RI,KC,TR
The following generates the database DDL skipping the compiled object:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -Ndbname -FTR,D,XP,V,R
The following generates database definition without a table definition:
ddlgen -Ulogin -Ppassword -Sserver :port -TDB -Ndbname
-FU
Example 11
Groups – Generates DDL for a group called “public” in the pubs2 database, running on a machine named HARBOR using port 1955, by using the fully qualified dbname .groupname format in the -N option:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TGRP -Npubs2.public
Alternatively, you can use the -D option to specify the dbname :
ddlgen -Ulogin -Ppassword -Sserver :port -TGRP -Ngroupname -Ddbname
To generate DDL for all groups:
ddlgen -Ulogin -Ppassword -Sserver :port -TGRP -Ndbname .%
Example 12
Indexes – Generates DDL for an index called au_lname for the table authors owned by dbo, in the pubs2 database:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TI -Ndbo.authors.au_lname -Dpubs2
Alternatively, because ddlgen allows you to use a fully qualified name in the -N flag, you can omit the -Ddbname and include the database name in the -N option:
ddlgen -Ulogin -Ppassword -Sserver :port
-TI -Ndbname .owner .tablename .indexname
If you use a fully qualified name, you may omit the -D option.
To generate DDL for all indexes for a single table:
ddlgen -Ulogin -Ppassword -Sserver :port -TI
-Ndbname .owner .tablename .%
To generate DDL for all indexes of all tables in a database:
ddlgen -Ulogin -Ppassword -Sserver :port -TI
-Ndbname .%.%.%
For example, this generates DDL for all indexes for all tables in the pubs2 database:
ddlgen -Usa -P -SHARBOR:1955 -TI -Npubs2.%.%.%
ddlgen -Usa -P -SHARBOR:1955 -TI -Npubs2.%.%.%
Example 13
Keys – Both of these generate DDL for the primary and unique keys of all the tables in a database that begin with “PK”:
ddlgen -Usa -P -TKC -Ndbname .%.%.PK%
Or:
ddlgen -Usa -P -TKC -N%.%.PK% -Ddbname
Example 14
Logical keys – LK generates logical keys of table defined by sp_primarykey , sp_commonkey , sp_foreignkey statements. Since these keys do not have a name, the name of the object in this case would be the name of the table. This example generate a DDL for logical keys of table authors in database pubs2 running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors
To generate DDL for all logical keys in database pub2 use:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.%.%
To filter out logical keys definition from DDL of table authors use LK in -F argument, use:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TLK -Npubs2.dbo.authors -FLK
Example 15
Logins – Generates DDL for all logins on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TL -N%
The password in the DDL generated for all logins is “password”.
Alternatively, you can specify an individual login by using -Nusername instead of -N% :
ddlgen -Ulogin -Ppassword -Sserver :port -TL -Nusername
Example 16
Remote Servers – Generates DDL for a remote server called ORANGE on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRS -NORANGE
To generate DDL for all remote servers:
ddlgen -Ulogin -Ppassword -Sserver :port -TRS -N%
Example 17
Roles – Generates DDL for the sa _ role on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TRO -Nsa_role
To generate DDL for all roles:
ddlgen -Ulogin -Ppassword -Sserver :port -TRO -N%
The password in the DDL generated for all roles is “password”.
Example 18
Rules – Generates DDL for all rules associated with authors on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TR -Nauthors.dbo.%
The % symbol tells ddlgen to create DDLs for all rules that exist on the server.
You can also give the fully qualified name of the rule:
ddlgen -Ulogin -Ppassword -Sserver :port -TR -Ndbname .owner .rulename
Alternatively, you can also use the -D parameter:
ddlgen -Ulogin -Ppassword -Sserver :port -TR -Nowner .rulename -Ddbname
Example 19
Segments – Generates DDL using the fully qualified dbname .segmentname format in the -N option for a segment called logsegment for the pubs2 database, on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TSGM -Npubs2.logsegment
Alternatively, you can use specify the dbname using the -D option:
ddlgen -Ulogin -Ppassword -Sserver :port -TSGM -Nsegmentname -Ddbname
To generate DDL for all segments:
ddlgen -Ulogin -Ppassword -Sserver :port -TSGM -Ndbname .%
Example 20
SQLJ functions – Generates DDL for a SQLJ function named region _ of owned by dbo in database master :
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TF –Nmaster.dbo.region_of
Alternatively you can also use the -D parameter:
ddlgen -Ulogin -Ppassword -Sserver :port -TF –Ndbo.region_of –Dmaster
To generate DDL for all SQLJ functions in a database, use object type F :
ddlgen -Ulogin -Ppassword -Sserver :port -TF –Ndbname .owner .%
Example 21
SQLJ procedures – are a kind of stored procedure. You generate DDL for SQL procedures along with DDL for stored procedures. The following generates DDL for all stored procedures—including SQLJ procedures—owned by dbo in the master database:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP –Nmaster.dbo.%
To generate DDL for all SQLJ procedures that are only owned by dbo in the master database, use the following, where the extended type OD refers to SQLJ procedures:
ddlgen -Ulogin -Ppassword -Sserver :port -TP –Nmaster.dbo.% -XOD
To generate DDL for all procedures except SQLJ procedures owned by dbo in the master database, use the following, where the extended type OU refers to all stored procedures except SQLJ procedures:
ddlgen -Ulogin -Ppassword -Sserver :port -TP –Nmaster.dbo.% -XOU
Example 22
Stored procedures – Generates DDL for the sp_monitor stored procedure for the pubs2 database on a machine named HARBOR using port 1955, using the fully qualified dbname .owner .procedure _ name format for the -N option:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TP -Npubs2.dbo.sp_monitor
Alternatively, you can use specify the dbname using the -D option:
ddlgen -Ulogin -Ppassword -Sserver :port -TP -Nowner .procedurename -Ddbname
To generate DDL for all stored procedures:
ddlgen -Ulogin -Ppassword -Sserver :port -TP -Ndbname .owner .%
Example 23
Tables – Generates DDL for all user tables in the pubs2 database owned by “dbo” and running on a machine named HARBOR using port 1955:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TU -Ndbo.% -Dpubs2
You can also use the -N parameter to give the fully qualified name of the table:
ddlgen -Ulogin -Ppassword -Sserver :port -TU
-Ndbname .tableowner .tablename
Alternatively, you can also use the -D parameter to specify the database:
ddlgen -Ulogin -Ppassword -Sserver :port -TU
-Ntableowner .tablename -Ddbname
To generate DDL for all proxy tables, which uses the value OD , use -XOD instead, where X is the extended type, and OD denotes proxy tables:
ddlgen -Ulogin -Ppassword -Sserver :port -TU
-Ntableowner .% -Ddbname -XOD
To generate DDL for all user tables, which uses the value OU , use -XOU instead, where X is the extended type, and OU denotes user tables:
ddlgen -Ulogin -Ppassword -Sserver :port -TU
-Ntableowner .% -Ddbname -XOU
To generate DDL for all tables, including user tables and proxy tables:
ddlgen -Ulogin -Ppassword -Sserver :port -TU -Ndbname .tableowner .%
Example 24
Triggers – Generates DDL for the trigger checksum for the pubs2 database on a machine named HARBOR using port 1955, using the fully qualified dbname .owner .trigger _ name format for the -N option:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TTR -Npubs2.dbo.checksum
Alternatively, you can use specify the database _ name using the -D option:
ddlgen -Ulogin -Ppassword -Sserver :port -TTR
-Nowner .triggername -Ddbname
To generate DDL for all triggers:
ddlgen -Ulogin -Ppassword -Sserver :port -TTR -Ndbname .owner .%
Example 25
User-defined datatypes – Generates DDL for the user-defined datatype “Identype” for the pubs2 database on a machine named HARBOR using port 1955 using the fully qualified dbname .userdefined _ datatype format for the -N option:
ddlgen -Uroy -Proy123 -SHARBOR:1955 -TUDD -Npubs2.Identype
Alternatively, you can use the -D option to specify the dbname :
ddlgen -Ulogin -Ppassword -Sserver :port -TUDD
-Nuserdefined_datatype -Ddbname
To generate DDL for all user-defined datatypes:
ddlgen -Ulogin -Ppassword -Sserver :port -TUDD -Nbname .%
For example, this generates DDL for all indexes for all tables in the pubs2 database Usage
ddlgen does not identify existing sequences within views, stored procedures or triggers. For this reason, when generating DDL for a database, you must first run ddlgen on those views, stored procedures and triggers that are independent, before running ddlgen on those with dependencies. For example, if view B depends on view A, you must first run ddlgen on view A, before running it on view B.
The default information for ddlgen is:
Option Parameter Required Default -U username Yes None -P password Yes None -S host _ name :port _ number Yes None -T object _ type No Database See the -T parameter description for a list of valid object types -N object _ name Yes, if object _ type for -T is not DB (database) Default database name of username , if -Tobject _ type is db or if -T is not specified -D database _ name No Default database of username -X extended _ object _ type No; use only when the object _ type for -T is U (user table), P (procedure), DB (database) None Options are: o OU – for user tables, user databases (excluding temporary databases), and stored procedures (excluding SQLJ procedures). o OD – for proxy tables, temporary databases, and SQLJ procedures. -O output _ file _ name No Standard out -E error _ file _ name No Standard out -L log _ file _ name No None -V version _ number of ddlgen No None
At the command line, invoke ddlgen using the ddlgen shell script file ( ddlgen.bat for Windows), included in your Adaptive Server installation. The main class in DDLGen.jar is com.sybase.ddlgen.DDLGenerator .
To start ddlgen in the Sybase Central plug-in for Adaptive Server:
a.Right-click on the object for which you want to generate DDL.
b.Select Generate DDL .
In the output DDL of create table , bind statements are generated as independent DLL instead of dependent DLL.
Filters
If you use an invalid filter parameter, ddlgen generates a warning, ignores that parameter, and continues with the rest of the valid parameters you specify.
If you specify % along with other filter parameters, ddlgen ignores all other filterable parameters, and only shows schema-only definitions. ddlgen then continues to evaluate the dependencies within the subset of the applied as the filterable parameters for the database.
Permissions
Since ddlgen needs to obtain data from system catalogs, users must either be logged in as “dbo” or have select permissions on syscatalogs .
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:ddlgen 表结构
————————————————————————————————-
在用isql连接数据 库的时候,比较常见的错误有:服务 没启动报错,报密码错误,报服务名不存在。
分别为:
1.服务名不存在:
CT-LIBRARY error:
ct_connect(): directory service layer: internal directory control layer error: Req
uested server name not found.
2.服务没有启动:
CT-LIBRARY error:
ct_connect(): network packet layer: internal net library error: Net-Lib protocol d
river call to connect two endpoints failed
3.密码错误:
Msg 4002, Level 14, State 1:
Server 'TEST':
Login failed.
CT-LIBRARY error:
ct_connect(): protocol specific layer: external error: The attempt to connect to t
he server failed.
在执行isql命令连接数据库 的时候,报密码错误和服务名称不存在这两个错误的情况下,反映很快。也就是说:在isql命令行后敲入回车后很快就给你提示服务名不存在或密码错误。
但是在报因服务没有启动导致的错误时,要等一段时间才有结果。因为 isql 需要等待 ASE 服务器的响应。
连接sybase数据库的时候将依次尝试sql.ini文件 中相应服务名下面的所有监听信息。如果所有的监听信息都连接失败后,才给出无法连接的提示信息。
sybase尝试连接一个监听地址端口需要花费多长时间?失败后将继续尝试几次? 以后再总结。
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字: ASE isql login two endpoints failed 连接失败情况
————————————————————————————————-
此篇为对以前的问题的整理。
在solaris 10 64-bit上安装Sybase15.0.3 ESD#1,程序安装好了后用资源文件 resource-files来创建服务 。但是老是报不能创建共享内存 的错误。
Solaris环境为:
Sun OS 5.10 Generic_127111-11 sun4v sparc SUNW,SPARC-Enterprise-T5120
16G内存,64核CPU
共享内存已经配置为如下,故没有调整。
root@SERVER # more /etc/system | grep shm
set shmsys:shminfo_shmmin=1
set shmsys:shminfo_shmmni=100
set shmsys:shminfo_shmseg=10
set shmsys:shminfo_shmmax=4294967295
* exclude: sys/shmsys
set shmsys:shminfo_shmmax=10294967295
set shmsys:shminfo_shmmin=1
* set shmsys:shminfo_shmmni=100
* set shmsys:shminfo_shmseg=10
* set shmsys:shminfo_shmmax = 268435456
* set shmsys:shminfo_shmseg = 1024
* set shmsys:shminfo_shmmni = 1024
set shmsys:shminfo_shmmni = 4096
其中曾经重启过一次服务器 。
但是用资源文件创建服务时,srvbuildres -I /app/sybase/interfaces -r /app/sybase/srvbuild-adaptiveserver.res
一直下面的报错。
-bash-3.00$ more srvbuild0111.017
Mon Jan 11 22:55:57 2010: srvbuild/15.0.3 ESD #1/P/Sun_svr4/SunOS 5.8/EBF 16556/OPT/Mon Ma
r 9 02:14:53 PDT 2009
Mon Jan 11 22:55:57 2010: Getting attribute values from sybinit resource file `/app/sybase
/srvbuild.adaptive_server.rs'.
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
Mon Jan 11 22:55:57 2010:
type = 1
application_type = MIXED
server_page_size = 4k
master_device_physical_name = /app/sybdata/master.dat
master_device_size = 200
master_database_size = 160
sybsystemprocs_device_physical_name = /app/sybdata/rsystemprocs.dat
sybsystemprocs_device_size = 200
sybsystemprocs_database_size = 200
errorlog = /app/sybase/ASE-15_0/install/SYBASE.log
configfile = /app/sybase/ASE-15_0/SYB_XXXX_TEST.cfg
sybsystemdb_device_physical_name = /app/sybdata/rsystemdb.dat
sybsystemdb_device_size = 20
sybsystemdb_database_size = 20
tempdb_device_physical_name = /app/sybdata/tempdbdev.dat
tempdb_device_size = 100
tempdb_database_size = 100
shmem = /app/sybase/ASE-15_0
default_backup_server = SYB_XXXX_TEST_BS
ifiledir = /app/sybase
addl_cmdline_parameters =
do_configure_pci = no
sybpcidb_device_physical_name = PUT_THE_PATH_OF_YOUR_SYBPCIDB_DATA_DEVICE_HERE
sybpcidb_device_size = 48
sybpcidb_database_size = 48
server_name = SYB_XXXX_TEST
force_buildmaster = no
do_optimize_config = no
Mon Jan 11 22:55:57 2010: (Shell command) /app/sybase/ASE-15_0/bin/dataserver -d/app/sybda
ta/master.dat -b200M -z4k -sSYB_XXXX_TEST -e/app/sybase/ASE-15_0/install/SYBASE.log -T1623
> /tmp/sbAAAjCaGrf 2>&1
dataserver: master device size for this server: 200.0 Mb
dataserver: master database size for this server: 26.0 Mb
dataserver: model database size for this server: 6.0 Mb
00:00000:00000:2010/01/11 22:55:57.87 kernel SySAM: Using licenses from: /app/sybase/SYSA
M-2_0/licenses
00:00000:00000:2010/01/11 22:55:57.96 kernel SySAM: Checked out license for 1 ASE_CORE (2
009.1231/permanent/19B3 47BC 0B7E 8DC3).
00:00000:00000:2010/01/11 22:55:57.96 kernel This product is licensed to: ASE Developer E
dition - For Development and Test use only
00:00000:00000:2010/01/11 22:55:57.96 kernel Checked out license ASE_CORE
00:00000:00000:2010/01/11 22:55:57.96 kernel Adaptive Server Enterprise (Developer Editio
n)
00:00000:00000:2010/01/11 22:55:57.97 kernel Initializing device /app/sybdata/master.dat
from offset 0 with zeros.
00:00000:00000:2010/01/11 22:56:00.46 kernel Finished initialization.
00:00000:00000:2010/01/11 22:56:00.47 kernel Using config area from primary master device
.
00:00000:00000:2010/01/11 22:56:00.47 server Configuration Error: Configuration file, '/a
pp/sybase/SYB_XXXX_TEST.cfg', does not exist.
00:00000:00000:2010/01/11 22:56:00.66 kernel Warning: A configuration file was not specif
ied and the default file '/app/sybase/SYB_XXXX_TEST.cfg' does not exist. ASE creates the d
efault file with the default configuration.
00:00000:00000:2010/01/11 22:56:00.68 kernel Warning: Using default file '/app/sybase/SYB
_XXXX_TEST.cfg' since a configuration file was not specified. Specify a configuration file
name in the RUNSERVER file to avoid this message.
00:00000:00000:2010/01/11 22:56:00.69 kernel os_create_region: can't allocate 70795264 by
tes
00:00000:00000:2010/01/11 22:56:00.69 kernel kbcreate: couldn't create kernel region.
00:00000:00000:2010/01/11 22:56:00.69 kernel kistartup: could not create shared memory
Mon Jan 11 22:56:00 2010: Buildmaster return code: 0.
sybdata/master.dat -e/app/sybase/ASE-15_0/install/SYBASE.log -c/app/sybase/ASE-15_0/SYB_XXXX_TEST.cfg -M/app/sybase/ASE-15_0 -i/app/sybase -sSYB_XXXX_TEST -T1623 > /dev/null 2>&1
-bash-3.00$
是共享内存的问题吗?我不是已经按照安装文档上的说明修改了solaris的共享内存了吗?
后来,经过咨询solaris工程师,原来是solaris10和以前的solaris9在共享内存上有些不同。solaris10修改了共享内存方式,针对用户级别可以设置用户所能共享的内存段。
为sybase用户在项目数据库中添加一条记录,命令如下:
projadd -U sybase -p 1233 -c "sybase parameters" user.sybase
projmod -sK "project.max-shm-memory=(priv,6G,deny)" user.sybase
projmod -sK "project.max-sem-ids=(priv,100,deny)" user.sybase
projmod -sK "process.max-sem-nsems =(priv,256,deny)" user.sybase
另外,可以查看文件/etc/project来检查上面的配置是否生效。
修改完之后,再次执行srvbuildres命令创建sybase主服务,成功!
————————————————————————————————-
—- 本文为andkylee个人原创,请在尊重作者劳动成果的前提下进行转载;
—- 转载务必注明原始出处 : http://www.dbainfo.net
—- 关键字:ASE solaris 10 shared memory projadd 共享内存 couldn't create kernel region
————————————————————————————————-