提供7*24专业Sybase数据库远程及现场技术支持,Sybase ASE及Sybase SQL Anywhere数据库修复服务,
请联系手机:(微信),QQ:289965371!
We supply technical support for Sybase ASE and Sybase SQL Anywhere, also have many years of experience in recovering data from damanged Sybase devices.
Please contact us:
Phone:
Wechat: 13811580958
QQ: 289965371

Sybase ASE 15.0.3 for windows平台安装文档 – 1、安装前的准备工作

以前写的windows平台上安装Sybase ASE15.0.3的文档,内容比较详细。与大家共享一下!

主要包括:

一、安装前的准备工作

二、安装Sybase程序

三、升级到 Sybase 15.0.3 ESD #3

四、安装Sybase数据库服务

五、安装后的配置工作

 

下面是第一章:安装前的准备工作

 

一、    安装前的准备工作

1、系统要求

2 、添加sybase用户

3、 配置Windows系统的虚拟内存

ASE中xml服务使用方法简介

ASE自12.5.1开始在内部处理中支持xml;自15.x版本xml功能得到进一步完善。

ASE15.x中使用xml不需要额外的license。

一、导出xml文档

在ASE的select语句中加入关键字for xml即可以xml格式显示结果集。

语法:

限制:

  • for xml select语句不能包括into_clause、compute_clause、read_only_clause、isolation_clause、browse_clause 或 plan_clause。
  • 不能在命令create view、declare cursor、subquery 或 execute command中指定 for xml select。
  • 不能在以下命令中使用for xml 子查询:for xml select、create view、declare cursor、select into;亦不能将其用作定量判定子查询,如 any/all、in/not in、exists/not exists。

下面举例导出xml格式的SQL查询结果集:

ASE从表中随机选择数据的三种方法

mark:

rand2()  ASE 15.0.2

newid()  ASE 12.5.1

rand()    Any Version

set rowcount N
select * from table order by rand(convert(int,row1)+datepart(ms,getdate()))
set rowcount 0

查看ASE v15正在执行的SQL语句内容

本博客已经有一篇关于的:Sybase ASE 统计当前执行的SQL语句的存储过程! 

现在提供另外一种方法:使用系统存储过程sp_monitor查看当前数据库连接中正在执行的SQL语句信息!

sp_monitor connection

在执行上面语句之前需要启用对connection的监控, 执行:sp_monitor enable,connection。可以在监控完成后关闭该选项。

设置参数:max SQL text monitored为2048,该参数为静态参数,需要重启ASE。

sp_monitor connection的结果默认按照连接占用的cpu时间和等待时间的总和进行逆序排序。

sp_monitor connection的第二个参数有:cpu , diskio , elapsed time 分别表示按照cpu时间、物理读取次数、cpu时间+等待时间 进行逆序排序。

在查看完正在执行的SQL语句内容后,关闭对connection的监控以减少对生产服务器的影响。

执行的语句如下:

sp_configure "max SQL text monitored",2048
go
--reboot ASE
--...
sp_monitor enable,connection
go
sp_monitor connection
go
-- some SQL statement
-- ...
sp_monitor disable,connection
go

查找没有授予给其它用户权限的表以及权限

以将dbo创建的所有表授予相应权限给普通用户userA为例。

将dbo拥有的表的相应权限(select/insert/update/delete)授予给普通用户userA,使用以下SQL生成授权语句:

select 'grant select  on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant insert on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant update on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

union all

select 'grant delete on ' + user_name(uid) + '.' + name + ' to userA'  from sysobjects where type='U' and uid=user_id('dbo')

查看某张表的上用户的权限情况:

sp_helprotect table_name

查看用户所拥有的对象权限情况:

sp_helprotect user_name

手动创建ASE服务器

1、准备环境

    首先确保sql.ini中包含主、备服务器名称;
    创建master设备所在的目录;
    主服务器和备份服务器的RUN_file文件;

2、使用命令初始化master设备
D:\ASE\sybase157\ASE-15_0\bin\sqlsrvr.exe -dD:\ASE\sybase157\data2\master.dat -b100M -Z80M -z2048 -eD:\ASE\sybase157\ASE-15_0\install\ASE157_2K.log -sASE157_2K  -MD:\ASE\sybase157\ASE-15_0

3、使用RUN_file启动新创建的服务
在windows创建的主服务的默认字符集为:cp850;
默认包含以下系统数据库:
1> select dbid,name from sysdatabases order by dbid
2> go
 dbid   name
 ------ ------------------------------
      1 master
      2 tempdb
      3 model
  31513 sybsystemdb

(4 rows affected)

4、创建sybsystemprocs数据库

Sybase ASE设备属性dsync与directio

1、ASE的dsync和directio属性都是针对文件系统上的设备文件的,不适用于裸分区/原始分区。

2、dsync和directio是互斥的,也就是: dsync on对应 directio off , directio on对应dsync off。dsync和directio不能同时启用,但是可以同时关闭。

如果已将设备的dsync属性配置为on,那么不能再将directio设置为on;如果想设置directio为on,那么必须先将dsync设置为off。

3、dsync on/off表示ASE是否保证把数据写入到设备上面去;directio on/off表示ASE是否跳过操作系统的文件系统缓存。

  • dsync on和directio off表示ASE的写操作直接在存储介质上进行,能够保证数据完全写入到设备上以及数据库的可恢复性;
  • dsync off和directio on表示ASE的写操作跳过操作系统缓冲区高速缓存,直接将数据传输到磁盘,不能保证数据真正写入到设备上;
  • dsync off和directio off表示使用文件系统的缓存。

4、在SUSE上测试ASE 15.7使用文件系统设备文件时默认是directio on(dsync off),已经跳过文件系统缓存了。

修改ASE的服务器名称

ASE全局环境变量@@servername保存当前的服务器名称。

假如将ASE服务器名称从ase1503test修改成ase1503xen,

下面是修改ASE服务器名称的步骤:

1、在ASE服务器的interfaces文件中添加新服务器名称条目信息
vi $SYBASE/interfaces
添加:
ase1503xen
   master tcp ether XXXXX 75430
   query tcp ether XXXXX 75430
 
 
2、修改RUN_servername启动文件中的服务器名称
vi $SYBASE/ASE-15_0/install/RUN_ase1503test
将-sase1503test 改为 -sase1503xen
并将启动文件名称由RUN_ase1503test 修改为:RUN_ase1503xen
 
 
3、在ASE中添加新的服务器名称
用isql登录要修改的ASE服务器,执行:select @@servername查看当前的ASE服务器名称。
先删除旧服务器名称: sp_dropserver ase1503test
再添加新的服务器名称: sp_addserver ase1503xen,local,ase1503xen
这时,使用sp_helpserver查看到新服务器名称ase1503xen已经添加到ASE了。
但是全局环境变量@@servername仍为旧名称。
重启ASE服务器后,执行select @@servername发现名称已经改好了!