存档
Sybase IQ和ASE中都有函数ascii,返回字符串表达式中第一个字节的整数 ASCII 值!
那么, 如何获得字符串的十六进制形式呢?
比如:以GBK编码的三个汉字“数据库”的十六进制形式为:0xcafdbeddbfe2
可以验证一下: select char(hextoint('ca')) + char(hextoint('fd')) , char(hextoint('be')) + char(hextoint('dd')),char(hextoint('bf')) + char(hextoint('e2'))
本文提供两种方法,主要涉及到的函数有: substring,ascii,inttohex,right,list,string以及sa_rowgenerator系统过程。
Sybase IQ分析型数据库的license控制很严格,安装介质也不好获得。想试用IQ的话,需要通过公司的名义联系Sybase公司取得一个月、三个月或者更长的免费试用期。
本文提供针对Sybase IQ15.2的可以免费试用一个月的体验版的下载地址。
首先需要到sybase网站上注册,否则下载不了。
在注册页面上简单填写一下就可以了。
http://response.sybase.com/forms/NAO10AUGDWNLDIQ152
下面是windows、linux、solaris三个平台上的IQ15.2的一个月体验版的下载地址:
Sybase IQ 15.2 Evaluation Edition on Windows
Sybase IQ 15.2 Evaluation Edition on Linux
Sybase IQ 15.2 Evaluation Edition on Solaris SPARC
Sybase IQ15.2英文版官方手册:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.help.iq.15.2/title.htm
Sybase IQ15.2中文版官方手册:
http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.help.iqzh.15.2/title.htm
最近Sybase官方上的下载链接失效了,只能到SAP官方下载IQ 15.2了。
来源于:http://www.sybase.com/detail?id=1091619
全球领先的企业级和移动软件公司Sybase,SAP(NYSE:SAP)旗下的公司近日宣布,在Gartner公司Donald Feinberg和Mark A. Beyer(2011年1月)共同撰写的《数据仓库(DW)数据库管理系统(DBMS)魔力象限》报告中位于“领导者”象限。
据该报告称,Gartner数据仓库DBMS“领导者”象限包括了“能够最大程度支持各种规模的数据仓库(处理大量并发用户,管理混合数据仓库 负载)的供应商。这些供应商凭借始终如一的客户满意度和强有力的支持,以及在数据仓库DBMS市场的资历和强大的硬件联盟,引领数据仓库市场。由于此项表 现,领导者也意味着拥有成功实施数据仓库的最低风险,如当增加混合负载、数据库规模和复杂性时,系统需要消耗更少的性能。此外,该市场的成熟度还要求领导 者对上一年的新兴热点,即对最终用户服务水平满意度的混合负载管理和数据量管理,充满信心。”
“Sybase已在数据仓库市场独占鳌头,从最初推出首款列式分析数据仓库Sybase IQ以 来,我们通过持续创新和客户至上的解决方案,采用先进的方法分析海量实时和历史信息,从而更深入地洞察企业实时动态。”Sybase公司数据管理产品部副 总裁Brian Vink说道,“位列‘领导者’象限让我们引以为豪,我们深信,从该报告对Sybase的定位可以印证一个事实——Sybase正在不断扩大市场份额,快 速赢得新客户,进入新的垂直行业市场,扩大企业数据仓库部署。我们与SAP商业智能(BI)解决方案的整合将使这一发展势头得到延续。”
安装SERVER FOR redhat
步骤一:
设置系统共享内存为服务器物理内存的7/8
以root身份登录
vi /etc/sysctl.conf,在此文件中加入如下2行
kernel.shmmax = 2106408960 #设置为系统共享内存的7/8,可到/proc目录下打开meminfo文件来查看共享内存大小
kernel.shmmni = 4096
修改完成后重启动服务器
步骤二:
创建sybiq用户(也可在图形界面中预先添加iq用户)
以root身份登录创建iq用户:
useradd –m –d /sybiq –s /bin/sh –g staff sybiq
passwd sybiq(并根据提示输入密码两次)
步骤三:
安装SybaseIQ
最好创建独立的文件系统/sybiq来安装SybaseIQ
将SybaseIQ的安装包sybiqserver.tar解压缩到/sybiq:
tar –xvf sybiqserver.tar
cd /sybiq/asiq125
执行以下命令使.profile配置文件生效:
. .profile
以sybiq用户开始安装运行./sybinstall脚本
1:
Welcome to Adaptive Server IQ 12.5
Welcome to Adaptive Server IQ. This script will install
Adaptive Server IQ and other supporting products on your
system. You may quit at any time by pressing ^C (Control-C).
Press return to continue:
2:
Select the location where you are installing the software
1) Americas (Mid/So.) and Asia Pacific General 17) Malaysia
2) Argentina 18) Mexico
3) Australia 19) Netherlands
4) Brazil 20) Norway
5) Canada 21) Philippines
6) China, Peoples Republic of (PRC) 22) Republic of Ireland
7) Europe, Middle East, and Africa - General 23) Singapore
Finland 24) Spain
9) France 25) Sweden
10) Germany 26) Switzerland - French
11) Hong Kong 27) Switzerland - German
12) India 28) Taiwan
13) Indonesia 29) Thailand
14) Italy 30) United Kingdom
15) Japan 31) United States of America
16) Korea
Please enter the number for the location you are installing (1..31, Q):6
3:
阅读license(可能是乱码)
I agree with the terms of the license, for the location specified <Y/N>?y
4:
Select Products
Destination Directory ($SYBASE) Free Space(k)
---------------------------------------------------------- -------------
/sybase/asiq125 103900845
# Product Size(k) Install Directory
-- ------------------------------- ------- ----------------------------
1) Adaptive Server IQ 12.5 190908 $SYBASE/ASIQ-12_5
2) Open Client Developer Kit 12.5 252936 $SYBASE
3) Sybase Central Java Edition 3.2 9240 $SYBASE/sybcentral
4) jConnect 5.5 15144 $SYBASE/shared
Options
--------------------------------------------
1..4) De/Select Product for Installation
C) Change Target Directory
S) Selection Completed
Q) Quit the Install
Please enter (1..4, C, S or Q ) s
5:
Installing
-----------------------------------
Installing Adaptive Server IQ 12.5
开始安装
安装完毕打补丁,还有一个补丁的安装包
将SybaseIQ的补丁EBFQ1532.tar解压缩到/sybiq:
tar –xvf EBFQ1532.tar
解压完毕执行补丁解压成的安装文件./sybinstall进行补丁的安装,安装方法与上述步骤相同。
步骤四:
编辑sybiq用户的环境变量
以sybiq用户登录,在/sybiq/asiq125目录下编辑.profile文件如下:
##copyright (c) 2001 by Sun Microsystems, Inc.
## All rights reserved.
##
## ident "@(#)local.profile 1.10 01/06/23 SMI"
#SYBPLATFORM=sun_svr464
#export SYBPLATFORM
LANG=zh_CN.GB18030
export LANG
SYBASE=/sybiq/asiq125 #指定安装路径(如路径不存在需新建安装路径mkdir)
export SYBASE
LD_ASSUME_KERNEL=2.4.1 #新加入一行(不同于SUN的solaris)
export LD_ASSUME_KERNEL
ASDIR=$SYBASE/ASIQ-12_5
export ASDIR
SYBASE_OCS=OCS-12_5
export SYBASE_OCS
SYBASE_JER=$SYBASE/shared/jre-1_22
export SYBASE_JRE
PATH=$ASDIR/bin:$SYBASE/$SYBASE_OCS/bin:$PATH:$SYBASE/:$SYBASE/ASIQ-12_5/bin:$SYBASE/ASIQ-12_0/sybiq/asiq125/zcdyiq
export PATH
IQLIB=$ASDIR/usrlib:$ASDIR/lib:$SYBASE/$SYBASE_OCS/lib:$SYBASE/ASIQ-12_5/lib
export IQLIB
LD_LIBRARY_PATH=$IQLIB
export LD_LIBRARY_PATH
步骤五:
修改语言环境
将/sybiq/asiq125/locales/locales.dat文件 [linux]小节中加入一行:
locale = zh, us_english, iso_1
启动iqserver ,进入demo库:
cd /sybiq/asiq125/ASIQ-12_5/demo
start_asiq @asiqdemo.cfg asiqdemo.db
在/sybiq/asiq125目录下创建interfaces文件,添加启动的数据库IP及端口信息:
asiqdemo
master tcp ether 192.168.2.113 2638
query tcp ether 192.168.2.113 2638
此时可以启用isql:
$isql -Udba –PSQL -Sasiqdemo
1>
创建用户数据库(在磁盘阵列中创建数据库)
步骤一:
启动demo库:
$cd /sybiq/asiq125/ASIQ-12_5/demo
$start_asiq @asiqdemo.cfg asiqdemo.db
步骤二:
创建用户数据库目录
cd /sybiq/asiq125
mkdir zcdyiq
步骤三:
把裸设备设置成可被IQ使用的数据库设备
- 使用命令绑定裸设备
将阵列中两个裸设备【执行fdisk将sda分为两个区其中sda1较大,sda2较小,sda1(用于指定iq path)和sda2(用于指定temporary path)】分别绑定到raw:
#raw /dev/raw/raw1 /dev/sda1
#raw /dev/raw/raw2 /dev/sda2
- 编辑 /etc/sysconfig/rawdevices文件,用于定义裸设备:
/etc/sysconfig/rawdevices格式如下:
# raw device bindings
# format: rawdev major minor
# rawdev blockdev
# example: /dev/raw/raw1 /dev/sda1
# /dev/raw/raw2 8 5
/dev/raw/raw1 /dev/sda1
/dev/raw/raw2 /dev/sda2
- 启动绑定信息/etc/rc.d/init.d/rawdevices
[root@legolas init.d]# sh rawdevices start
执行上面的命令后系统显示如下信息:
Assigning devices:
/dev/raw/raw1 --> /dev/sda1
/dev/raw/raw1: bound to major 3, minor 5
/dev/raw/raw2 --> /dev/sda2
/dev/raw/raw2: bound to major 3, minor 6
done
- 执行chkconfig命令确保重新启动时裸设备能被绑定
#/sbin/chkconfig rawdevices on
- 修改裸设备的属主和访问权限:
#chown sybiq:sybiq /dev/raw/raw1
#chown sybiq:sybiq /dev/raw/raw2
#chown sybiq:sybiq /dev/sda1
#chown sybiq:sybiq /dev/sda2
#chmod 777 /dev/rawctl
- 用raw 命令检查裸设备的配置情况:
$ raw –qa
正常的显示结果:
#/dev/raw/raw1: bound to major 3, minor 5
#/dev/raw/raw2: bound to major 3, minor 6
- 建立软连接
在 zcdyiq目录中创建于裸设备进行软连接的文件:
#ln –s /dev/raw/raw1 /sybiq/asiq125/zcdyiq/iqdatadyn(用于指定iq path)
#ln –s /dev/raw/raw2 /sybiq/asiq125/zcdyiq/iqtmpdyn(用于指定temporary path)
执行上面命令后,在/sybiq/asiq125/zcdyiq/目录下生成了iqdatadyn和iqtmpdyn连接符
- 修改连接符的属主
#cd /sybiq/asiq125/zcdyiq
#chown sybiq:sybiq iqdatadyn
#chown sybiq:sybiq iqtmpdyn
步骤四:
创建用户数据库zcdynadb.db
isql -Udba -PSQL –Sasiqdemo
1> drop database '/sybiq/ asiq125/zcdyiq/ zcdynadb.db'
2> go
3> create database '/sybiq/ asiq125/ zcdyiq/zcdynadb.db’
4> iq path '/sybiq/asiq125/zcdyiq/iqdatadyn’ #用于绑定裸设备的连接文件
5> temporary path '/sybiq/asiq125/zcdyiq/iqtemdyn’ # 用于绑定裸设备的连接文件
6> go
1> commit
2> go
1> quit
步骤五:
编辑用户数据库启动文件zcdynadb.cfg
cd $SYBASE/zcdyiq
vi zcdynadb.cfg
-n s1_zcdynadb
-c 64m
-gp 4096
-gd all
-gl all
-gm 100
-gc 6000
-gr 6000
-ti 4400
-tl 300
-iqmc 3000 #依据共享内存大小不同进行合理配置
-iqtc 3000 #依据共享内存大小不同进行合理配置
-x tcpip{port=2640}
其中:
-n 服务器名_库名
-iqmc IQ MAIN CACHE大小,单位M
-iqtc IQ TEMP CACHE大小,单位M
用例中给IQ分配了6000M的共享内存,MAIN CACHE和TEMP CACHE各3000M
步骤六:
修改interfaces文件,
加入所建数据库的ip及端口信息
zcdynadb
master tcp ether 192.168.2.113 2640
query tcp ether 192.168.2.113 2640
步骤七:
启动用户数据库
cd $SYBASE/zcdyiq
start_asiq @zcdynadb.cfg zcdynadb.db
步骤八:
添加用户、设置加载内存(单位M)
isql -Udba -PSQL –Szcdynadb
1> grant connect to zcss7db identified by zcss7db
2> go
1> commit
2> go
1> set option PUBLIC.LOAD_MEMORY_MB=400
2> go
1> commit
2> go
1> quit
步骤九:
IQ客户端配置
例如设置ODBC来访问用户数据库zcdynadb
ODBC:data source name 随意输入(例如:zcdyIQ)
LOGIN:userid:dba passwd:SQL
Database:servername:/sybiq/asiq125/zcdyiq/zcdynadb.cfg中对应的-n后面的信息,这里应该为s1_zcdynadb;
databasename:/sybiq/asiq125/下interfaces文件中可获得,这里为zcdynadb
Network:tcp/ip: host=ip地址:端口号(例如:host=192.168.2.110:2640),端口号也要由数据库对应的.cfg文件中-x tcpip{port=2640}中定义的port来确定。
本文给出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 IQ,抓紧时间研究一下。
在pc上安装了sybase IQ 15.1,版本号为:Sybase IQ/15.1.0.5027/090611/P/GA/MS/Windows 2003/ [32bit or 64bit]/2009-06-11 18:23:35
用sybase central连接iq服务器,在操作的时候遇到了一个致命的导致系统崩溃的错误。后来问题解决了,在此记录一下这个错误情况。
在sybase central的左边树形列表中定位到“过程和函数”列表上面,然后查找到过程“sa_get_user_status”,单击“sa_get_user_status”,就会出现一个严重警告的对话框。对话框的标题是:Microsoft Visual C++ Runtime Library ,内容为:Progarm D:\sybase\IQ-15_1\bin32\iqsrv15.exe
This application has requested the Runtime to terminate it in an unusual way.Please contact the application's support team for more information.
这个时候点确定,有弹出一个严重错误对话框。标题:iqsrv15.exe - 应用程序错误 ,内容:应用程序发生异常 unknown software exception (0x40000015),位置为0x0d9812e5。
要终止程序,请单击“确定”。
要调试程序,请单击“取消”。
最后点完确定,任务栏右边的IQ的图标也消失了。这个时候IQ服务算是崩溃了。看来sybase central这个客户端的一个小小的错误也能导致一个IQ服务崩溃啊!
解决的方法:
打上最新的IQ的补丁。截止到2010年3月,最新的iq15.1 for windows的补丁是在2010.1release的 sybase IQ 15.1 ESD #2
我打完补丁后select @@version 查询结果为:
Sybase IQ/15.1.0.5034/091215/P/ESD 2/MS/Windows 2003/32bit/2009-12-15 07:10:40
到此问题解决。个人感觉,IQ的测试部门工作太差劲了。测试的时候挨着点一下就能发现的问题,还要补丁来解决。