打印本文 打印本文 关闭窗口 关闭窗口
最近一段时间都在弄sybase和ms-sqlserver,写了一份学习笔记
作者:武汉SEO闵涛  文章来源:敏韬网  点击数5031  更新时间:2009/4/22 23:09:38  文章录入:mintao  责任编辑:mintao
设备大小):60 
Sybsystemprocs database size(MB)(系统存储过程数据库大小):60 
Error log path(错误日志路径):/opt/sybase-11.9.2/install/TEST.log 
Transport type(传输协议类型):tcp 
Host name(主机名):192.168.0.1 
Port number(监听端口号):4100 
点击OK按钮,进入下一配置过程。 
5、配置Backup Server。填写或选择以下内容: 
Error log path:/opt/sybase-11.9.2/install/TEST_back.log 
Tape configuration file:/opt/sybase-11.9.2/backup_tape.cfg 
Language:(不填) 
Character set:(不填) 
Maximum number of network connections:25 
Maximum number of server connections:20 
Transport type:tcp 
Host name:192.168.0.1 
Port number:4200 
点击OK按钮,进入下一配置过程。 
6、配置Monitor Server。填写或选择以下内容: 
Maximum number of connections:5 
Error log path:/opt/sybase-11.9.2/install/TEST_mon.log 
Configuration file path:/opt/sybase-11.9.2/install/TEST_mon.cfg 
Share memory directory:/opt/sybase-11.9.2 
Transport type:tcp 
Host name:192.168.0.1 
Port number:4300 
点击OK按钮,进入下一配置过程。 
7、配置XP Server。填写或选择以下内容: 
Transport type:tcp 
Host name:192.168.0.1 
Port number:4400 
点击Build Server按钮,开始创建Server,这时出现一个窗口,你可以看到整个创建过程。如果有显示以下类似信息,表示创建Server成功: 
…… 
Server TEST was successfully created. 
Done. 
…… 
8、创建Server成功后,系统就会问你是否将Server本地化(Localize),即是用另外一种语言代替默认的us_english language,以及改变默认的iso_1字符集和Binary索引顺序。选择是NO。为什么呢?曾经把中文(eucgb)设为默认字符集,反而不支持中文大字集,因为eucgb是基于GB2312标准的。查了Sybase的手册中一些关于本地化的说明,得出的印象是,在ASE中有Unicode转换机制,可以转换来自不同字符集的服务器或客户端的数据。应用也证明,使用ASE的默认的语言、字符集、索引顺序来处理中文是可行的。 
9、安装成功后要做的几件事。首先在Linux控制台模式下以sybase用户登录。 
① 确认Server是否在运行。使用$SYBASE/install/下的showserver命令($SYBASE表示sybase的安装目录),应该可看见系统有几个sybase相关进程。或者用$SYBASE/bin/下的isql -Usa -P -STEST命令来登录Server,应该可以看见isql的提示符"1>",再键入exit就可以退出了。
② 用sp_password null, 新口令
go将sa的用户口令改掉。
]
7、 成功后将自动启动数据库。可用isql -Usa -Ppassword -Sserver_name连进数据库。
isql -Usa -P -Ssybase
8、 执行1>sp_diskdefault master , defaultoff
        2>go
   将以后用户数据库数据文件不要建立在master所在的数据文件中。
9、 用sp_password oldpassword,newpassword设定sa的用户口令。
a) sp_password null,Sybase
b) go
10、 用shutdown关闭数据库。
11、 重新启动数据库用$SYBASE/ASE/install/RUN_sybase启动,这为前台启动方式。后台启动方式用。
   $SYBASE/ASE/install/startserver -f  RUN_Sybase
   RUN_sybase例子:
#!/bin/sh
#
# ASE page size (KB):   2048
# Master device path:   /opt/sybase-12.5/data/nextip.dat
# Error log path:       /opt/sybase-12.5/ASE/install/sybase.log
# Configuration file path:      /opt/sybase-12.5/ASE/sybase.cfg
# Directory for shared memory files:    /opt/sybase-12.5/ASE
# Adaptive Server name: sybase
#
/opt/sybase-12.5/ASE/bin/dataserver \
-d/opt/sybase-12.5/data/nextip.dat \
-e/opt/sybase-12.5/ASE/install/sybase.log \
-c/opt/sybase-12.5/ASE/sybase.cfg \
-M/opt/sybase-12.5/ASE \
-ssybase \

关闭数据库:
用sa用户进入数据库执行shutdown命令即可完成数据库的关闭。

数据库设备的建立
重启在sybase用户下,
1> use master
2> go
3> sp_diskdefault master , defaultoff
4> go
5> sp_helpdevice
6> go
1> disk init
2> ae''''sybsynxe'''',
3> phyae''''/opt/sybase-12.5/data/user_data/test.a'''',
4> vdevno=4,
5> ie=''0''''
6> 
7> go
建立数据库设备后就可以建立用户数据库
sa
create database userdb on db_dev_name=size M

1> disk init
2> ae''''tesbe'''',
3> phyae''''/opt/sybase-12.5/data/user_data/test.a'''',
4> vdevno=6,
5> size
6> go
8> use master
9> go
10> create database testdb on testdbdev=10
11> go
建立用户数据库的用户
1>sa connenction into database
2>use testdb
3>go
4>sp_addlogin ldai, password, null, null,bp''''daimn''''
5>go
6>sp_adduser ldai,dlm
7>go
isql -Uldai -Ppassword1 -Ssybase就可以连进testdb用户数据库了。
注意口令长度不得小于6位,如果口令以数字开头,还需要以单引号括起来。
Sp_addlogin提供用户能访问数据库的权限,如果没有指定用户具体访问那个数据库,则还需要在相应数据库中用sp_adduser user_name, user_password建一个相同名和口令的用户。
例如
1> sp_adduser ldai, dlm
2> go
3>

如果用sa用户创建了一个用户数据库,想将他的所有者由sa改为其他用户。
确定其他用户只具有addlogin,不具有adduesr。如果有addusers则要sp_dropuser删除掉,否则不能赋给他所有者权限。
Isql -Usa
1> use testdb
2> go
3> sp_changedbowner ldai, testdb
4> go
5> sp_default ldai, testdb
6> go
7> sp_helpdb testdb
8> go
将更改数据库owner了,注master不能更改

建用户有两中方式,上面这一种是建立用户帐号,再在具体数据库中建立该数据库应用帐号。较为繁琐。可通过sp_addlogin加其他参数,一步到位将数据库用户建立起来。
Sp_addlogin user_name,user_password,所用数据库名称,null,bp''''全备''''
例如:
sp_addlogin nextip, nextip, NEXTIPDB, null,bp''''neid''''s&nb;b''''

Msg 5106, Level 16, State 6:
Serverbp''''bs'''', Line 1:
Parameterbp;''SZ'''' requires value of typebp;''n''''.
1> disk init
2> ae''''sybsynxe'''',
3> phyae''''/opt/sybase-12.5/data/user_data/sybsyntaxd.a'''',
4> vdevno=4,
5> ie=''0''''
6> go
00:00000:00008:2003/10/22 14:33:19.21 kernel  Initializing virtual device 4,bp''''/opt/sybase-12.5/data/user_data/sybsyntaxd.a'''' with dsyn&s'''o''''.
00:00000:00008:2003/10/22 14:33:19.21 kernel  Virtual device 4 started using asynchronous i/o.
00:00000:00008:2003/10/22 14:33:19.22 kernel  Initializing device /opt/sybase-12.5/data/user_data/sybsyntaxdev.dat from offset 0 with zeros.
00:00000:00008:2003/10/22 14:33:19.25 kernel  Finished initialization.
1>

初次建立数据库对sa的口令要进行修改。
sp_password  old_password, new_password, login name
1> sp_password null, nextip, sa
2> go
3>

sp_dboption 是用来打开或关闭数据库的选项 [select into/bulkcopy]。只用这样数据菘獠拍苤葱腥鐂elect identity(int) id0,* into&nbssp;#temp1 from tablename这样的sql语句。查看是否打开option用sp_helpdb就可以查看。Sp_dboption只能在master 数据库中引用。是否允许列字段为空还是不为空也是用这个命令。
1> use nextipdb
2> go
3> master..sp_dboption nextipdb,"select into/bulkcopy","true"
4> go
5> checkpoint
6> go

1> dbcc checkdb
2> go
3> dbcc checkcatalog
4> go

1、增加自定义的数据类型为sp_addtype  datatypename ,"length",
FE: sp_addtype tid, "char(6)", "not null"
2、查看某一用户是否有什么权限,sp_helprotect user_name
4、 修改用户出始登陆的数据库,命令为sp_modifylogin
5、 检索identity字段可以用syb_identity=指定值来检索,如
t_dns_rezo_gs中有且一个identity字段[rzgs_id ],则可如下检索
select count(*) from t_dns_rezo_gs where syb_indentity=1
6、 sp_dboption可设置数据库通用的一些选项。
7、 当想要对表进行手工插入identity时,如果没有set identity_insert  table_name on/off打开,
就要打开,如果一旦打开,每一笔记录都要手工指明identity值,而不是自动插入形式,切记。如果变回off后,则identity记数从表中最大的identity值开始记数。例最大值为10,则记数从11开始,中间就有gap出现了。
8、 identity默认精度为18位,如果达到了,就需要增加其精度。可用alter table table-name
modify identity_col_name, numeric(20,0)进行修改精度。
9、 使数据库自动为新建表建立一个隐藏的identity字段为sp_dboption db_name , "auto identity", "true"
为identity设置精度,由管理员操作sp_configure "size of auto identity", 精度位数
如sp_configure "size of auto identity",15
10、 在当前数据库中创建另外一个数据库的表或其他对象, create other_db_name..object_name
如: create table newdb..t_dns_gs (name varchar(255))
11、 select user_name() /user  / db_name() 返回当前用户或数据库
12、 col_length("表名", "字段名") 返回指定字段的长度/ datalength("列名")实际存储长度对varchar/期于是创建时指定的长度
13、 isNull(exp1, exp_value) 为如果exp1为null则用exp_value替代
14、 convert(转换后的类型和长度,要转换的类型值)
如:select "my Test" + ""+convert(varchar(20),1211333)
1> select mmm="my Test" + ""+convert(varchar(20),1211333)
2> go
 mmm                          
 ---------------------------- 
 my Test 1211333              

(1 row affected)
15、 获取当前时间为select  getdate()
16、 当前变量申明 declare @变量名 类型
赋值操作select @变量名=变量值
如:
declare @sIpad varchar(20),@iNum numeric(2,0)
select @pd''''0A00'''',@iNum=32
17、 看过程的源码sp_helptext  过程名
例子:
1> sp_helptext p_convert_num_to_char
2> go
 # Lines of

上一页  [1] [2] [3] [4] [5]  下一页

打印本文 打印本文 关闭窗口 关闭窗口