Chapter
这时并没有完全创建完,我们会发现,系统默认安装的是通用字符,代码页 850、437 等,而不是 我们通常所要的中文。单击 OK 按钮以后,系统会提示你是否要设置语言相关选项,如图 1-22 所示。
图 1-22 语言设置
假设我们这里将新建 Adaptive Server 中的语言设置成中文,则确认此提示,进入具体的语言 设置,如图 1-23 所示。
图 1-23 设置语言选项
我们将默认语言 English 改为 Chinese,将默认字符 cp850 改为 GB 18030-2000,对应的字符集 排序规则也相应地改为 GB18030 的二进制排序方式。单击 OK 按钮以后,即可完成中文字符集的 设置。当然,为了支持中文,也可将默认字符集改为 UTF-8。最后得到成功的提示。
我们可以在 Linux 机器 seanlinux 上进行简单的测试:
iihero@seanlinux:/opt/sybase/ASE-15_0/bin> isql -Usa -SSEANDEMO 保密字:
1> create table #t(id varchar(32))
1 Chapter 2> go
1> insert into #t values('中文测试') 2> go
(1 row affected) 1> select * from #t 2> go
id
--- 中文测试 (1 row affected) 1>
1.2.7 验证服务器是否在运行
一旦 ASE 服务器启动以后,管理员有必要确认 ASE 是否启动成功,服务器是否存在 ASE 服 务进程。
在 Windows 各平台下,我们有多种方式可以判断 ASE 是否已经启动。
第一种方法是在服务的控制台管理器里查看 Sybase SQL Server _ <servername>的状态是否为 已启动(这里 servername 是实际的 ASE 数据库服务名)。这种方法适用于通过服务方式来启动 ASE 的情形。
第二种方法是通过任务管理器,直接查看是否有我们需要的 sqlsrvr.exe 进程,如果 ASE 启动 成功,则该进程肯定存在。
第三种方法是通过查询对应端口号的进程 ID,再查询对应 ID 的进程名,看是否是我们启动的 ASE服务器进程 sqlsrvr.exe。请看下边的查询过程:
C:\Documents and Settings\hex>netstat -ano | grep 5000
TCP 127.0.0.1:1369 127.0.0.1:5000 ESTABLISHED 5532
C:\Documents and Settings\hex>tasklist | grep 7844
1
Chapter
sqlsrvr.exe 7844 0 3,692 K
C:\Documents and Settings\hex>tasklist | grep 5532
jsagent.exe 5532 0 400 K
我们先用 netstat -nao | grep 5000,查出所有与端口 5000 相关的进程。其中,ID 为 7844 的进程 正在监听(listening),顺便我们还查出了 5532 进程正在建立到 5000 商品上的连接。再通过 tasklist,
查询得到对应的进程名。
这里用到了 grep 命令,通过安装工具包 MKS Tookit,可以得到全套的仿 UNIX 命令集。
在我们的工作中,我还经常用到另外一个工具 Debugging tools for Windows,这个工具里边也 有功能很强大的命令 tlist(列出所有正在运行的线程信息)。前边的 tasklist 命令完全可以使用 tlist 来代替,非常方便。
在 UNIX/Linux 平台下,执行$SYBASE/$SYBASE_ASE/install 目录下的可执行程序 showserver,
可以得到已经运行的 ASE 服务器程序的列表。
1.2.8 修改 sa 用户口令
刚安装完的 ASE 一点安全性也没有,因为超级用户 sa 的口令密码为空,这无论是在测试环境 还是生产环境里都是无法接受的。
使用 isql 连接数据库:
D:\SybaseASE\ini>isql -Usa -Sxionghe
保密字为:
1>
然后直接运行以下代码:
1> sp_password null, 'sybase1', sa 2> go
Password correctly set.
(return status = 0)
这样即把密码从空改为 sybase1 了。
也许有人会问,想把密码再改回 NULL,如何操作?
运行以下代码:
1> sp_password 'sybase1',null,sa 2> go
Msg 10317, Level 14, State 1:
Server 'XIONGHE', Procedure 'sp_password', Line 118:
The specified password is too short. Passwords must be at least 6 character(s) long.
Msg 17720, Level 16, State 1:
Server 'XIONGHE', Procedure 'sp_password', Line 128:
1 Chapter
1> sp_configure minimum 2> go
(1 row affected) (return status = 0)
> sp_configure "minimum password length", 0 2> go
(1 row affected)
Configuration option changed. ASE need not be rebooted since the option is dynamic.
Changing the value of 'minimum password length' does not increase the amount of memory Adaptive Server uses.
(return status = 0)
1> sp_password 'sybase1', null, sa 2> go
Password correctly set.
(return status = 0)
即又将密码恢复为 null 了。
1.2.9 Runserver 文件
服务器创建完毕,会生成相应的 Runserver 文件,它包含了主要的启动参数。该文件通过这些 参数启动 dataserver 进程。这些参数主要有服务器名、master 设备的物理位置、errorlog 文件的物理 位置、页大小、共享内存的位置等。Runserver 文件的默认名为 RUN_<SERVERNAME>,统一创
1
rem Backup Server Information:
rem name: SEANLAPTOP
D:\sybase\ASE-15_0\bin\sqlsrvr.exe -dD:\sybase\data\master.dat –sSEANLAPTOP -eD:\sybase\ASE-15_0\install\SEANLAPTOP.log -iD:\sybase\ini -MD:\sybase\ASE-15_0
UNIX下的 Runserver 文件示例如下:
#!/bin/sh
#
# ASE page size (KB): 2k
# Master device path: /opt/sybase/data/master.dat
# Error log path: /opt/sybase/ASE-15_0/install/SEANLINUX.log
# Configuration file path: /opt/sybase/ASE-15_0/SEANLINUX.cfg
# Directory for shared memory files: /opt/sybase/ASE-15_0
# Adaptive Server name: SEANLINUX
#
1 Chapter
-i:interfaces 文件的位置和名称。
-M:共享内存目录的路径。
-r:master 镜像的路径。
-s:服务器名。
-z:服务器逻辑页的大小,只作文档记录用,实际启动用的页大小是配置文件中的页大小。
-m:master 恢复模式,用于单用户启动 Server,以恢复出错的 Master 数据库。
-p:密码恢复模式,用于在启动时生成一个 SSO 密码,便于恢复你想要的 sa 用户密码。
-u:登录解锁模式,在启动时对一个已经锁定的用户进行解锁。
1.3 如何卸载已经安装的 Sybase ASE
有时候,我们还需要卸载已经安装的 Sybase ASE 数据库,原因可能多种多样,比如:
1.数据库的安装位置不合要求。
2.数据库的有关参数配置不理想。
3.想抛弃旧版本的数据库,装一个新版本的数据库。
在 Windows 平台下,正确的使用方法是,先停掉所有的 ASE 相关服务:BCKServer、MONServer、
SQLServer、Unified Agent 以及 XPServer。然后再通过添加/删除程序面板,来删除 Sybase ASE 数 据库,最后重启机器即可。
如果是手动删除,那么在停掉所有的 ASE 相关服务以后,通过运行 regedt32 进入系统注册表,
首先备份整个注册表。然后查找 Sybase 关键字,清除注册表中 Sybase ASE 数据库的相关注册项:
HKEY_LOCAL_MACHINE\SOFTWARE\Sybase\SQLServer、HKEY_LOCAL_MACHINE\SYSTEM\
CurrentControlSet\Services\SYB_<servername>、HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\
Enum\Root\LEGACY_SYB_<servername>等。
尤其是相关服务的注册项,如 LEGACY_SYBSQL_<servername>,在注册表中无法直接删除,
如图 1-24 所示。