Sybase.ASE-15.Linux安装配置

注意:这是一个指导在Linux下安装ase15的指南,只可用于学习目的
作者:S.C.Yan( allan.yan@gmail.com ),版权:GNU/GPL v2.0或更高

内容目录导航:

-0.系统准备
-1.添加一个用户名为'sybase'的用户,为sybase/ase的安装,配置和管理之用(推荐)
-2.解压sybase/ase安装的压缩存单 *.tgz or *.tar.gz (本例中为ase1500_xe_linux.tgz) (必要)
-3.安装 sybase (用两种方法) (必要)
-4.安装后配置
-5.使用 isql/sybase central 进行系统管理和查询
-6.备份和恢复数据库 (dump method)
-7.重启你的服务器以检查设置是否正确

为了更好的描叙内容,本文使用了以下符号,请在开始之前查阅:
# 为root用户使用shell时候的提示符, $ 为普通用户(在本例中为'sybase'用户)的shell提示符
<next> 表示点击以进入下一设置页,<go back> 表示回到上一设置页
$SYB_SETUP 表示你将安装Sybase的目的目录,$SERVER_NAME 表示你数据服务器的名字
### ... 是注释,不应该(但不妨碍)被包括进shell脚本中
? 代表单个字符的通配符,* 代表字符串的通配符,你应该根据具体情况将其替换

******************************************************

0.系统准备
a.配置 kernel shared memory (必要):
为了使得Sybase可以正常启动,你应该配置单进程最大可申请的shared memory(shmmax)
### * = 你的物理内存以字节单位的数量,如: *=1000000000 (1GB物理内存)
# echo  * > /proc/sys/kernel/shmmax   ### 立即使内核启用这个新的shmmax
# echo kernel.shmmax=* >> /etc/sysctl.conf  ### 使得在系统启动时,内核自动启用此shmmax
b.推荐的磁盘空间
express edition 的最大空间 5GB
为了使用更多的空间,应该选择 developer edition   ### 更好的选择,以下叙述中将采用
c.创建自启动sybase的shell脚本(推荐)
# ls -l /etc/rc.local      ### 检查是否redhat风格的启动脚本
if (you do have the /etc/rc.local)
{
  break; ### 有此脚本,请跳到步骤1中
}
else {
  # echo '#!/bin/sh' >> /etc/rc.local   ### 创建启动脚本的头
  # chmod a+x /etc/rc.local    ### 使其可以被执行
  # ln -s /etc/rc.local /etc/init.d/rc.local  ### 天加到init.d 中
  # ln -s /etc/init.d/rc.local /etc/rc?.d/S99rc.local ### 添加到此runlevel的启动列表中 ?=$(runlevel)
}


******************************************************
1.添加一个用户名为'sybase'的用户,为sybase/ase的安装,配置和管理之用(推荐)
# adduser sybase
......# 设置密码,并将此用户的home dir定位到大磁盘空间的文件系统中
# su sybase
......# 在以后的安装和配置中使用此用户


******************************************************
2.解压sybase/ase安装的压缩存单 *.tgz or *.tar.gz (本例中为ase1500_xe_linux.tgz) (必要)
$ cd ~          ### 切换到sybase用户目录
$ mkdir setup       ### 创建安装文件的加压目录
$ move .../ase1500_xe_linux.tgz setup/
$ cd setup
$ tar zxvf ase1500_xe_linux.tgz     ### 解压
$ ./setup       ### 开始安装进程

******************************************************
3.安装 sybase (用两种方法) (必要)
(1)命令行界面,如以下图形安装方式相似
(2)图形界面GUI (推荐) ---以下我们只介绍这种方法
a.选择安装版本: Adaptive Server Enterprise Edition (Developer Edition) <next>
b.在下拉列表框中选择'All Region',并选择'(*Sybase* (A))'单选按钮以同意协议 <next>
c.选择sybase安装目录,如果是 '/home/sybase' ,则 $SYB_SETUP="/home/sybase" <next>
  ### 注意:也可以安装到其他目录,只要那个目录拥有大的空间和sybase用户可写的权限
  选择yes去创建你要创建的目录
d.选择 "custom" 去进行定制安装
e.添加语言模块 --- Chinese Language Module (如果你更倾向于查看中文格式的服务器返回信息) <next>
f.阅读安装配置总结的预览,如果有不适合的地方,可以<go backs>(s)去更改它们 <next>
g.安装 ...... <next>
h.选择'no'以取消email告警 <next>
i.一般情况下只选择 'Adaptive Server' 和 'Backup Server' <next>
j.你可以现则就选择去配置 'Adaptive Server' 和 'Backup Server' (推荐) <next>
  ### 实际上你可以在以后去运行'asecfg'去添加或者配置一个新的dataserver or backupserver
  ### 但是非常推荐现在就进行
k.给dataserver取名字(如'ecm3000'),并设置服务器端口(如'5000') <next>
  (如果端口已被使用,可以尝试重启得到,则需要跳过)
  请适当适当增大master设备大小,而其他的则默认其设置
m.给dataserver取名字(如'ecm3000_BS'),并设置服务器端口(如'5001')(类似上一步) <next>
n.阅读配置总结的预览,如果有不适合的地方,可以<go backs>(s)去更改它们 <next>
o.安装程序开始创建服务器并启动服务器,请等待(可能需要的等待几分钟) <finished>
  ### 如果在"starting server"时失败(failed),请查看 kernel.shmmax时候设置争取(0.a中所提到的)

******************************************************
4.安装后配置
$ export $SYB_SETUP=*  ### * 为你安装sybase的目录
a.如果已有的服务器不是你想要的 ,你可以进入到你安装sybase的目录 $SYB_SETUP 去运行反安装程序 ,
  $ $SYB_SETUP/uninstall/ASESuite/uninstall   ### ... 接着如果需要重安装 (跳回步骤 3)
b.设置自启动shell脚本,使得sybase服务器可以自动启动
$ cat $SYB_SETUP/SYBASE.sh >> /etc/rc.local  ### 将sybase的环境变量天加到自启动脚本中
$ ls $SYBASE/ASE-15_0/install/ | grep RUN_ ### 得到dataserver(形如'RUN_%s' )和backupserver(形如'RUN_%s_BS')
$ vi /etc/rc.local       ### 来到最后一行,添加以下内容 (请按按情况替换*!)
# ----------------------------------------------------------------
# autostart dataserver and backupserver at system start
export SYB_START=$SYBASE/ASE-15_0/install/
echo "Starting Sybase ASE-15 for Linux ... dataserver"
$SYB_START/startserver -f $SYB_START/RUN_* -f $SYB_START/RUN_*_BS &
# ----------------------------------------------------------------
### note:* in 'RUN_*'  is the server name referred in 4.b
c.配置sybase配置运行环境
### 注意:只有你启用了sybase环境变量,你才能使用sybase服务器的命令
# cat $SYB_SETUP/SYBASE.sh >> /etc/profile     ### 使得sybase变量可以在系统全局被使用
$ cat $SYB_SETUP/SYBASE.sh >> ~/.bashrc   ### 使得sybase变量可以被你的账户使用
$ source /etc/profile     ### 立即启用sybase环境变量
$ set | grep SYBASE      ### 检查sybase环境变量否已启用,应该有5个左右'*SYBASE*'
$ vi $SYB_SETUP/locales/locales.dat   ### 设置客户端locale转换
### 找到 [linux] 段,在其下部添加以下内容
locale = us_english,chinese,utf8
locale = zh_CN.UTF-8,chinese,utf8
locale = zh_CN.GBK,chinese,eucgb
d.开始,监视和停止sybase/ase dataserver/backupserver (或者在$SYB_SETUP/ASE-15_0/install下执行)
### 如果你不能找到合适字符集,请如下执行
$ export LC_ALL=C
(1) 运行'showserver'去检查dataserver是否在运行,并且是谁启动的,pid是多少
$ showserver
(2) 运行'startserver': 'startserver -f RUN_%replace_me%'去启动服务器,或者是
$ sh /etc/rc.local   ### 使用自启动脚本启动服务器
(3) 使用以下的方法去停止你的服务器
### showserver 以得到服务器的%pid%
$ kill %pid%   
e.如果你的sybase环境变量已经启用,宾且你的dataserver已经在运行
  运行'asecfg'以启动ase服务器配置对话框
$ asecfg
f.asecfg 对话框操作指南
  (1) add a new server :
     ### 你可以选择这项去创建服务器,类似于3.j->3.o
(2) update server :
     ### 这个不常使用,一般用于sybase服务器程序的升级
  (3) localization and sort order : 改变服务器的 language/charset/sortorder.
      <click> -> 选择你要配置的服务器 -> 登陆 -> 选择
       language     ### 选择你想sybase服务返回信息的语言
     charset   ### 设置服务器存储数据的字符集 (当数据库可能存在中文字符时候,特别需要注意)
      sort order  ### 设置服务器对数据的排序方式和大小写时候敏感的设施

使用[ 语言(language):english(为了防治乱码问题),
字符集(charset):UTF-8(兼容中文字符),
排序方式(sort order):case insentive sort ... utf8 ...    ]
注意: 如果你改变了locale,你应该重启服务器两次 (如在'd.1-d.3'中)

******************************************************
5.使用 isql/sybase central 进行系统管理和查询
a.使用 sybase ase 客户端 ---isql(命令行界面)
$ isql -Sservername -Usa -P
>
### '>' 意味着你已经顺利进入isql界面,如果失败请根据调试返回信息调节
### 大多数情况下,可以运行以下命令,但不总是可行
$ export LC_ALL=C
b.在Windows环境下使用 Sybase Central
a.安装 Sybase Central 并运行程序
b.点击 Default 连接的树列表的根节点,右击 -> new connection
c.填入用户名 'sa' 及空密码,填入地址 'ip:port' (如 192.168.0.78:5000)
d.(如果必要请选择连接的 language 和 charset)
(1) 连接服务器 (右击 | connect...)
(2) 你应该可以看到新增的一个树节点 'server:port'  (如 192.168.0.78:5000(sa))
database --- 创建/改变/删除数据库和数据库表的地方
logins --- 添加/删除数据库用户的地方
database device --- 创建/删除数据的地方 (在创建数据库前必须创建数据库设备)
c.创建sybase数据库设备和数据库
(运行'showserver'检查以保证服务器在运行) ,要不然 ('# sh /etc/rc.local' 以起动数据)
在以下操作以前,保真你对要创建设备的文件夹有写的权限 (一般 $SYB_SETUP/data 都可以)
如 如果你想在 /home/sybase/data(应该在大磁盘空间的文件系统上) 下创建设备
使用以下命令使得你在其下有写权限:
# chmod a+wrx /home/sybase/data
[isql 命令使用方法]-------------------------------------------------------------------------------------
### 创建数据库设备
> disk init
> name = "aserver",
> physname = "/home/sybase/data/aserver",
> vdevno = 3,      
> size =  3000     ### 这个数据乘以2K就是你要创建设备的大小
> go
......  ### 要耗费较长时间,如15分钟左右
### 在设备上创建设备,(如果sybase说设备offline,请退出isql并重启 )
> create database aserver
> on aserver = --- [, aserver_else = --- [, ... ]]
> log on aserver_log = --- [,aserver_log_else --- [,...]]
> go
......  ### --- 在设备上此数据库将使用的空间大小的数字(单位MB)
   ### 要耗费较长时间,如15分钟左右
[sybase central 使用方法]----------------------------------------------------------------------------------
启动 sybase central 程序, 连接服务器, 扩展树列表到节点 'database devices'
(1) 添加一个数据库设备
点击 'Add new database device' -> 填入设备在服务器上的路径,给设备取个名字 <next>
->  默认设备No.,设置你想要的设备的大小 <next>
-> ... <finished>
创建设备时候请耐心等待 (可能花费较长时间,并且你的服务器会相当的繁忙)
(2) 添一个加数据库
点击书列表 'databases' -> add new database -> 给数据库取名字 -> add (添加所使用的设备)
点击你想要用来创建数据库的设备 , 填入在设备上要使用的空间大小 ->
... ### 你可能希望将数据(data)和日志(log)分别存储在不同设备上,则添加它们
->... -> <finished>
在设备上创建数据库时候请耐心等待 (可能花费较长时间,并且你的服务器会相当的繁忙)


******************************************************
6.备份和恢复数据库 (dump method)
首先 ,保真你在想要创建dump设备的文件中拥有写的权限 (如5.c中所述)
[isql 命令用法]----------------------------------------------
### 创建dump设备,dump数据库(备份)
> sp_addumpdevice "disk","file_dump","/home/sybase/data/file_dump",1
> go
> dump database db_name to file_dump
> go
......  ### 需要花费时间,有进度显示
### 从dump文件中恢复数据库
>load database ecm3000
>from "/home/sybase/data/file_dump"
>go
......  ### 需要花费较长一段时间,有进度显示
[sybase central 用法]----------------------
启动 sybase central 程序, 连接服务器, 扩展树列表到节点 'databases'
(1) 备份数据库
右击你想备份的数据库 -> 备份 -> backup entire database -> add (一个dump设备)
-> 选择 'Explict dump device' -> 填入备份设备文件的在服务器上路径 (如 /home/sybase/data/file_dump)
-> OK/<next>(s) 开始备份数据库
请在备份服务器时耐心等待 (可能花费较长时间,并且你的服务器会相当的繁忙)
(2) 恢复数据库
### 请保真你的服务器在运行,并且你的想恢复的数据库已建立,并且数据拥有于dump相同的charset和sortorder(asecfg改)
右击你想恢复数据库 -> restore -> restore entire database -> add (a dump device)
->选择 'Explict dump device' -> 填入备份文件的在服务器上路径 (如 /home/sybase/data/file_dump)
-> OK/<next>(s) 开始恢复数据库
请在恢复服务器时耐心等待 (可能花费较长时间,并且你的服务器会相当的繁忙)

******************************************************
7. 重启你的服务器以检查设置是否正确
   如果不正确,请更改相应的设置.并对照 $SYB_SETUP/ASE_15-0/install/$SERVER_NAME.log 更改设置
   更多的设置和方法请自己尝试,
   如果必要,请联系我 (allan.yan@gmail.com).