Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1272247
  • 博文数量: 185
  • 博客积分: 50
  • 博客等级: 民兵
  • 技术积分: 3934
  • 用 户 组: 普通用户
  • 注册时间: 2007-09-11 13:11
个人简介

iihero@ChinaUnix, ehero.[iihero] 数据库技术的痴迷爱好者. 您可以通过iihero AT qq.com联系到我 以下是我的三本图书: Sybase ASE in Action, Oracle Spatial及OCI高级编程, Java2网络协议内幕

文章分类

全部博文(185)

文章存档

2014年(4)

2013年(181)

分类: Sybase

2013-07-22 14:04:14

现在使用Sybase ASE数据库的人不太多,在国内,人们往往笼而统之的叫ASE为Sybase数据库。实际上,Sybase有多款数据库产品。

以Windows平台为例,我个人觉得Sybase ASE还是挺简单易用的。我对简单易用的定义是:

1. 容易安装
2. 容易迁移,最好是接近绿色
3. 使用简单

以前打包过Oracle安装以后的文件,需要一大堆的预处理。让人心烦。尤其是碰到我这种懒人,只想装一次,换一台机器,就直接拷贝,还想继续使用,而不想重新安装。Oracle能让你吃些苦头。至少要不少手动步骤才能让另一份拷贝能完全工作。

MySQL和PostgreSQL可以直接自己build一个非安装版本,自己定义预装脚本。换一台机器,迁移起来也非常方便。

比较起来,其实Sybase ASE也是非常方便。我在机器HostA上装了一份ASE,后来添加机器了,我只想在HostB上搞一份基本上一样的ASE,又不想重新安装。拷贝一份过去试试。(不考虑license的问题)。居然只需要很少的改动就可以运行。

以ASE12.5为例,版本较老:-),新版本更好用。
在机器A上的目录结构如下:

D:/SybaseASE125>dir/b

ASE-12_5
ASEP
charsets
collate
data
docs-45_55
EFTS-12_5
EJB-12_5
ini
installed
jConnect-5_5
JS-12_5
jutils-2_0
locales
log.txt
OCS-12_5
ODBC
OLEDB
RPL-12_5
Shared
shared-1_0
SNMP-1_0
sqladv-12_5
SQLRemote
SYBASE.bat
SYBASE.env
sybcent41
SYSAM-1_0
uninstall
WS-12_5
_jvm

其中最关键的就是Sybase.bat这个环境变量文件。将整个根目录SybaseASE125拷贝到HostB的D:/下,你就有机会运行ASE数据库服务了。也不需要把Sybase.bat文件中的变量值手动设定到用户/系统环境变量当中。

进到ASE-12_5/install目录当中,有一个文件:RUN_SEANLAPTOP.bat

rem
rem Adaptive Server Information:
rem  name:                          SEANLAPTOP
rem  master device:                 d:/SybaseASE125/data/master.dat
rem  server page size:              2048
rem  master device size:            30
rem  errorlog:                      d:/SybaseASE125/ASE-12_5/install/SEANLAPTOP.log
rem  interfaces:                    d:/SybaseASE125/ini
rem
call d:/sybasease125/sybase.bat
d:/SybaseASE125/ASE-12_5/bin/sqlsrvr.exe -dd:/SybaseASE125/data/master.dat -sSEANLAPTOP -ed:/SybaseASE125/ASE-12_5/install/SEANLAPTOP.log -id:/SybaseASE125/ini -Md:/SybaseASE125/ASE-12_5

在其中添加粗体里的内容。

再一步就是改动ini目录下边的sql.ini,将其中的机器名hostA换为机器hostB。

[hostA_XP]
master=NLWNSCK,hostA,5004
query=NLWNSCK,hostA,5004

[hostA]
master=NLWNSCK,hostA,5000
query=NLWNSCK,hostA,5000

[hostA_BS]
master=NLWNSCK,hostA,5001
query=NLWNSCK,hostA,5001

[hostA_MS]
master=NLWNSCK,hostA,5002
query=NLWNSCK,hostA,5002

 

最后运行RUN_SEANLAPTOP.bat即可。

至于查询工具, 12.5中有sql advantage, jisql。一个是c开发的,一个是java开发的。都还可以使用。

进到SybaseASE125/sqladv-12_5目录,写一个批处理文件(start_sqladv.bat):

@echo off

call d:/SybaseASE125/sybase.bat

start sqladv.exe

运行这个批处理即可启动SQL Advantage.

以下是运行示例图:

1. 查询所有数据库中的“进程(会话)"

select * from sysprocesses

2. 找到某个会话运行的SQL语句:

dbcc traceon(3604)
go
dbcc sqltext(17)
go

 

3. 改密码

sp_password null, 'new123',sa

(1 row affected)
(return status = 0)

再把密码改回去:

sp_password 'new123', null, sa

出错:

Server Message:  Number  10317, Severity  14
Procedure 'sp_password', Line 110:
The specified password is too short. Passwords must be at least 6 character(s) long .
Server Message:  Number  17720, Severity  16
Procedure 'sp_password', Line 120:
Error:  Unable to set the Password.
(1 row affected)
(return status = 1)

默认有密码长度限制,那就把密码长度限制去掉了,再改:

sp_configure "minimum password length", 0

 

sp_password 'new123', null, sa

OK. 改回来了。

阅读(1192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~