Sybase SQL Server是一个多库数据库系统。这些数据库包括系统数据库和用户数据库。 而不论是系统数据库还是用户数据库,都建立在数据库设备上。数据库对象名区分大小写
SYBASE中大小写敏感
所有的数据库都创建在数据库设备上。所谓数据库设备,不是指一个可识别的物理设备,而是指用于存储数据库和数据库对象的磁盘原始分区或操作系统文件。增加一个新的数据库设备时,必须对这些设备“初始化”。初始化的过程就是将物理磁盘、磁盘分区或操作系统文件变为SYBASE数据库可以识别的设备。初始化数据库设备使用DISK INIT命令
DISK INIT
NAME=设备名,
PHYSNAME=物理设备名,
VDEVNO=虚拟设备号,
SIZE=块数
master、model、tempdb数据库安装在主设备master上。
在没有指定设备的情况下,用户创建的任何数据对象自动存放在默认设备上。
初始安装后,系统的主设备master被预指定为默认设备,因此要尽快创建自己的默认设备。确保以下设备不是默认设备:系统主设备、指定仅被日志使用的设备。
数据库大小只能扩大,不能缩小
彻底删除一个数据库,并释放其所占用的空间:先删数据库,再删除设备,最后删除设备所对应的物理文件,释放空间。
磁盘镜像是出于数据库安全性的考虑,当介质失败时,磁盘镜像能提供不间断恢复。磁盘镜像是磁盘上的数据的绝对拷贝。如果某一硬盘事故发生,则该被损坏的拷贝就自动变成离线状态,因而所有的读写都被引向未被损坏的拷贝。
Sybase的磁盘镜像是在设备级上进行的,因此磁盘镜像实质上是设备镜像。当对某一设备进行镜像操作时,Sybase自动创建一个附加设备,由镜像处理程序将原设备上的所有数据拷贝到镜像设备上。
如果要使某一数据库成为镜像,被分配给该数据库的每一设备都必须成镜像。Master设备在服务器中地位特殊,如果它损坏了,SQL Server将崩溃。因此,如果有可能总是要镜像Master设备(在另一磁盘上)。
镜像命令语法:
Disk Mirror Name=’device_name’, Mirror=’physical_name’ [,writes=serial|noserial]
// ’device_name’为被镜像的设备
sp_dropdevice logical_name[,delfile]
含有数据库的设备不允许删除。
数据库对象的引用格式:
数据库名.对象属主名.对象名
在当前数据库中操作本数据库的对象,可以省略数据库名。
操作当前连接用户所拥有的数据库对象时可以省略对象属主名。
在当前数据库中操作当前用户所拥有的数据库对象,数据库名、属主名均可省略
例如:
1> select name from master..syslogins
2> go
name
------------------------------
probe
sa
testuser
段(Segment)是数据库设备上磁盘空间的逻辑组合,它可以看作是指向一个或多个数据库设备的标签。利用段可以控制数据库对象的存放位置,可以将数据库对象分类存放到不同的段上。
设备从逻辑上被划分为数据库段以允许将某一特定的对象放置在指定的段上(创建对象时指定),一数据库设备可拥有多达192个段,一段可使用255个逻辑设备上的存储空间。
当用户创建一个数据库时,SQL SERVER 会自动在该数据库中创建三个段: SYSTEM、LOGSEGMENT 、DEFAULT,这三个段分别用来存储数据库的系统表、事务日志和其他数据库对象
创建段
sp_addsegment 段名,数据库名,设备名
sp_exetendsegment 段名,数据库名,设备名
说明:设备在数据库中必须可用,否则需要扩展数据库到新的设备上;指定的段、数据库、设备必须存在。
缩小段的范围,sp_dropsegment 段名,数据库名,设备名
在段中创建新对象
create table 表名(列名 数据类型)[on 段名]
删除段是缩小段范围的一个特例:
sp_dropsegment 段名,数据库名
服务器配置是系统管理员的职责,正确的配置对系统性能有重大的影响。有两个系统表存储配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系统运行,sysconfigures的信息就拷贝到syscurconfigs中。显示配置和改变配置使用系统过程sp_configure。有两种配置值:动态的和静态的,动态值一旦改变立即生效,静态值要在系统重启动后才起作用。
Startserver 用来启动一SQL Server 或Backup Server:
Startserver -f RUN_SYBASE
Startserver -f RUN_SYB_BAKUP
可以通过showserver查看SQL ServerBackup Server是否已经启动,在$SYASE/INSTALL下运行showserver 查看SQL Server 是否启动
ASE-16位于目录: $SYBASE/ASC-16_0/install/showserver
关闭SQL Server可以在isql中使用T-SQL命令:
关闭SQL备服务器
shutdown SYB_BACKUP
关闭SQL主服务器
shutdown [with nowait]
关闭这个命令确实可用,但是启动命令好像不能识别。
先创建设备:
1> disk init
2> name="dbname",
3> physname="F:\sybasedatafile\testdata.dat" ,
4> size=30240
5> go
创建日志设备
3> disk init
4> name="dblog",
5> physname="F:\sybasedatafile\testlog.dat",
6> size=10240
7> go
PS: 删除数据库设备:sp_dropdevice device_name
创建数据库如下:
1> create database test on dbname log on dblog
2> go
CREATE DATABASE: allocating 1536 logical pages (6.0 megabytes) on disk 'dbname'
(1536 logical pages requested).
CREATE DATABASE: allocating 1536 logical pages (6.0 megabytes) on disk 'dblog'
(1536 logical pages requested).
Database 'test' is now online.
1> update statistics table1(name)
2> go
1> update statistics table1 idx_name
2> go
两个格式
Update statistics table_name [index_name]
或者update statistic table_name (column_name)
启用审计功能
需要sso_role角色。
如下
>sp_helpdb db_name //查看某一数据库信息
>go
查看物理设备、数据库device信息
1> use master
2> go
1> sp_helpdevice
2> go
1> disk resize name=master,size='9m'
2> alter database master on master='9m'
3> go
Extending database by 2304 pages (9.0 megabytes) on disk master
use master
go
disk init
name='NEW_MASTER',
physname='C:\new_data.dat',
size='2m'
go
3> select * from syscacheinfo
也可以查看syscachepoolinfo或syspoolinfo视图
sp_configure “number of device”
查看系统中最多可以有多少设备(有效设备号,有效不等于可用。)
1> online database test
2> go
sybase数据库空间日志会随着用户频繁访问数据而变得日益增大。而查看和截断空间日志是数据库管理员的日常维护工作之一。
1> dump tran test with no_log
主要是数据库日志空间的占用情况。
检查步骤:
sybase命令
sp_spaceused syslogs
(在使用的数据库中执行)
sp_helpsegment logsegment
判断一下数据库test能否做日志备份?
select tran_dumpable_status("test")
备份
1> dump transaction test to 'c:/sap/log.dump' with no_truncate
2> go
Backup Server session id is: 5. Use this value when executing the
'sp_volchanged' system stored procedure after fulfilling any volume change
request from the Backup Server.
Backup Server: 4.41.1.1: Creating new disk file c:/sap/log.dump.
Backup Server: 6.28.1.1: Dumpfile name 'test162450DABA ' section number 1
mounted on disk file 'c:/sap/log.dump'
Backup Server: 4.58.1.1: Database test: 8 kilobytes DUMPED.
Backup Server: 3.43.1.1: Dump phase number 3 completed.
Backup Server: 4.58.1.1: Database test: 12 kilobytes DUMPED.
Backup Server: 3.42.1.1: DUMP is complete (database test).
ASE有多级安全性。在服务器级,一个注册账号运行建立一个连接;在数据库级,一个用户可以访问数据存储结构;在对象级,许可允许使用数据创建和操作命令。
1> sp_addlogin testuser,testuser,test
2> go
Password correctly set.
Account unlocked.
New login created.
(return status = 0)
语法如下:
sp_addlogin loginame, passwd [, defdb] [, deflanguage] [, fullname] [, passwdexp] [, minpwdlen] [, maxfailedlogins] [, auth_mech]
1> sp_droplogin testuser
2> go
Account locked.
Login dropped.
(return status = 0)
Sybase是多数据库结构,为了对多个数据库中的用户进行统一管理,因此使用了登录用户和数据库用户。
登录用户:用来登录Sybase数据库,就是我们连接数据库时使用的用户。如果登录用户没有添加到某一个数据库中,它将无法操作某一数据库
数据库用户:用来管理使用数据库,在所属数据库中是唯一的。
因此同一个登录用户可以对应多个不同数据库的数据库用户。
use 数据库名
sp_adduser loginame[,name_in_db[,grpname]]
use dbname
go
sp_changedbowner user, "true"
go
use master
go
select * from syslogins
go
sp_locklogin "rusky","unlock"
sp_modifylogin rusky,"max failed_logins","2"
sp_helpuser username
删除数据库用户
sp_dropuser username
授予用户ultranms创建表、缺省值、规则、存储过程还有视图的权限
1>grant create table,create default,create rule,create procedure,create view to testuser
2>go
1>revoke create function from testuser
2>go
sp_addgroup grpname
例如:
2> sp_addgroup testgroup
3> go
New group added.
(return status = 0)
sp_changegroup newgrpname,username
查看用户组也可以使用sp_helpuser来查看当前所在组
1> sp_helpuser testuser
2> go
Users_name ID_in_db Group_name Login_name
---------- -------- ---------- ----------
testuser 4 public testuser
(1 row affected)
(return status = 0)
1> sp_changegroup testgroup,testuser
2> go
Group changed.
(return status = 0)
1> sp_helpuser testuser
2> go
Users_name ID_in_db Group_name Login_name
---------- -------- ---------- ----------
testuser 4 testgroup testuser
(1 row affected)
(return status = 0)
sa改变自己口令:sp_password oldpasswd,newpasswd
sa改变其他帐户口令:sp_password sa_password(null),newpasswd,loginame
常用数据类型
字符型:char(n),varchar(n)
数值型:numeric(p,s),int,float
日期时间型:datetime
列属性:
Null
not null
1> use test
2> go
1> sp_help table_name
2> go
create table 表名
(列名1 列数据类型 列属性,
列名2 列数据类型 列属性,
…... )
例如:
1> create table table1(name varchar(10))
2> go
同一表中列名必须唯一,不同表中列名可以相同
创建表的命令和其他数据库基本是一样的。
1> alter table table1 add sex char(2) null
drop table 表名
1> drop table table2
2> go
先看下官方描述如下:
If CIS is enabled, you cannot use drop for remote servers.
需要关闭CIS。
1> alter table table1 drop name
2> go
sp_rename 表名,新表名
Sp_rename 还可以用来修改索引、视图等数据库对象的名字
sp_addumpdevice ‘disk’,转储设备名,物理文件名(备份文件)
创建后,第一次使用该设备备份前,该物理文件不存在
dump database 数据库名 to 备份设备名
备份前要启动数据库备份服务
备份后备份文件存放于服务器上
备份时总是重写备份文件
备份文件,可以任意拷贝
备到设备:
dump database cwbase1 to cwbase1_dump
备到文件:
dump database cwbase1 to 'c:\data\cw1.dup'
语法:load database 数据库名 from 备份设备名
online database 数据库名(使数据库在线)
重载的数据库其空间大小要大于等于原数据库大小。
将一套帐的数据恢复到另一套帐中
建议:不要用直接拷贝*.dat文件的方式进行备份
1> dump database test to 'c:\sap_data1\test.dup'
2> go
Backup Server: 4.171.1.1: The current value of 'reserved pages threshold' is
85%.
Backup Server: 4.171.1.2: The current value of 'allocated pages threshold' is
40%.
Backup Server: 4.171.1.5: The current value of 'parallel scan' is 2.
Backup Server session id is: 20. Use this value when executing the
'sp_volchanged' system stored procedure after fulfilling any volume change
request from the Backup Server.
Backup Server: 4.41.1.1: Creating new disk file c:\sap_data1\test.dup.
Backup Server: 6.28.1.1: Dumpfile name 'test162450C128 ' section number 1
mounted on disk file 'c:\sap_data1\test.dup'
Backup Server: 4.188.1.1: Database test: 804 kilobytes (39%) DUMPED.
Backup Server: 4.188.1.1: Database test: 1074 kilobytes (100%) DUMPED.
Backup Server: 3.43.1.1: Dump phase number 1 completed.
Backup Server: 3.43.1.1: Dump phase number 2 completed.
Backup Server: 4.188.1.1: Database test: 1080 kilobytes (100%) DUMPED.
Backup Server: 3.43.1.1: Dump phase number 3 completed.
Backup Server: 4.188.1.1: Database test: 1084 kilobytes (100%) DUMPED.
Backup Server: 3.42.1.1: DUMP is complete (database test).
1>
进行恢复:
1> load database test from 'c:\sap_data1\test.dup'
2> go
Backup Server session id is: 27. Use this value when executing the
'sp_volchanged' system stored procedure after fulfilling any volume change
request from the Backup Server.
Backup Server: 6.28.1.1: Dumpfile name 'test162450C128 ' section number 1
mounted on disk file 'c:\sap_data1\test.dup'
Backup Server: 4.188.1.1: Database test: 4740 kilobytes (38%) LOADED.
Backup Server: 4.188.1.1: Database test: 12294 kilobytes (100%) LOADED.
Backup Server: 4.188.1.1: Database test: 12304 kilobytes (100%) LOADED.
Backup Server: 3.42.1.1: LOAD is complete (database test).
Started estimating recovery log boundaries for database 'test'.
Database 'test', checkpoint=(1559, 21), first=(1559, 21), last=(1559, 21).
Completed estimating recovery log boundaries for database 'test'.
Started ANALYSIS pass for database 'test'.
Completed ANALYSIS pass for database 'test'.
Started REDO pass for database 'test'. The total number of log records to
process is 1.
Completed REDO pass for database 'test'.
Use the ONLINE DATABASE command to bring this database online; ASE will not
bring it online automatically.
上线数据库
1> online database test
2> go
Started estimating recovery log boundaries for database 'test'.
Database 'test', checkpoint=(1559, 21), first=(1559, 21), last=(1559, 21).
Completed estimating recovery log boundaries for database 'test'.
Started ANALYSIS pass for database 'test'.
Completed ANALYSIS pass for database 'test'.
Recovery of database 'test' will undo incomplete nested top actions.
Database 'test' is now online.
1.开始---->sybase------>sybase config ------- >创建BackupServer
2.给备份服务器命名,点击“网络地址”进去之后点击增加,添加应用服务器名称和端口号,中间用逗号隔开,(端口号是未使用的)。继续。
3.更默认备份服务
运行‘开始’--‘sybase’—‘server config’
选择 adaptive server -- configure adaptive server
选择正确的server,输入sa口令,选择‘default backup server’,输入:SYBASE_BS(备份服务器名字)。
4.手动启动
调用
ASE-16_0/install文件夹中的启动脚本即可。
或在命令行执行
sp_configure "allow update",1
go
update sysservers set srvname='SYB_BACKUP', srvnetname='服务器名_BS' where srvid=1
go
sp_configure "allow update",0
go
Select * from sysservers(查看名字)
运行 SCC 脚本后,将出现SCC 主控台提示符。
在此提示符处,输入以下内容:(默认端口8282,https是8283)
scc-console> status
关闭直接执行 scc-console>shutdown
即可。
从16 SP02开始被cocopit替换了。Cockpit默认端口4283。
Cockpit可以使用sa登陆。
SCC使用sccadmin 登陆。
语法如下:
usage: bcp [[db_name.]owner.]table_name[:slice_num] [partition pname] {in | out} [filename]
注:命令行中的-U后面是用户名sa,-P后面是sa的口令,-S后面是服务器的名字.
Bcp只能转出一个表中所有数据,不能转出表中部分数据。转入的数据是添加到表中原数据的后面,而不是以覆盖的方式转入。
Bcp转出数据形成的文本文件是存放在本机上。
例如:
C:\Users>bcp test..table1 out test.txt -c -t -U testuser -P testuser –S sybase
Starting copy...
3 rows copied.
Clock Time (ms.): total = 31 Avg = 10 (96.77 rows per sec.)
C:\Users>bcp test..table1 in test.txt -c -t -U testuser -P testuser -S H sybase
Starting copy...
导入后查看已经存在。如果出错
You cannot run the non-logged version of bulk copy in this database.
查看常见错误。
sp_help 表名
sp_helpindex 表名
drop index 表名.索引名
规则是可以理解为对数据库、某一列、某用户数据类型的限制。
Create rule 规则名 as 变量=表达式
绑订:sp_bindrule 规则名,‘表.列名’
规则必须绑订,规则才能生效。
sp_unbindrule ‘表.列名’
drop rule 规则名
例如:
创建规则:
1> create rule rul_name as @state in ('ca','co','wa')
2> go
绑定列
2> sp_bindrule "rul_name","table1.name"
3> go
解绑
1> sp_unbindrule 'table1.name'
2> go
删除规则
1> drop rule rul_name
2> go
create proc 过程名 as
select_statement
直接写过程名,如果不是批处理的第一条命令,则要加“exec”。
You cannot run the non-logged version of bulk copy in this database.
答:原因为数据库没有启用bulk copy选项,解决办法如下:
1> use master
2> go
1> sp_dboption test,"select into/bulkcopy", true
2> go
master库sysservers表的SYB_BACKUP对应的srvnetname与dsedit中的备份服务名不一致
选择 adaptive server -- configure adaptive server
选择正确的server,输入sa口令,选择‘default backup server’,输入:SYBASE_BS(备份服务器名字)。
WINDWOS上,重启了SYBASE,然后启动SYBASE_BS就好了。
路径问题,在C:\SAP\bin中没有sybmbuf.exe文件。
退出登陆的数据库连接。
Name Owner Object_type
---------------------------- ----- ----------------
syscacheinfo dbo view
syscachepoolinfo dbo view
syspoolinfo dbo view
sysquerymetrics dbo view
ijdbc_function_escapes dbo user table
jdbc_function_escapes dbo user table
monCIPC dbo user table
monCIPCEndpoints dbo user table
monCIPCLinks dbo user table
monCIPCMesh dbo user table
monCLMObjectActivity dbo user table
monCMSFailover dbo user table
monCachePool dbo user table
monCachedObject dbo user table
monCachedProcedures dbo user table
monCachedStatement dbo user table
monClusterCacheManager dbo user table
monDBRecovery dbo user table
monDBRecoveryLRTypes dbo user table
monDataCache dbo user table
monDeadLock dbo user table
monDeviceIO dbo user table
monDeviceSpaceUsage dbo user table
monEngine dbo user table
monErrorLog dbo user table
monFailoverRecovery dbo user table
monHADRMembers dbo user table
monIOController dbo user table
monIOQueue dbo user table
monInmemoryStorage dbo user table
monLicense dbo user table
monLockTimeout dbo user table
monLocks dbo user table
monLogicalCluster dbo user table
monLogicalClusterAction dbo user table
monLogicalClusterInstance dbo user table
monLogicalClusterRoute dbo user table
monMemoryUsage dbo user table
monNetworkIO dbo user table
monOpenDatabases dbo user table
monOpenObjectActivity dbo user table
monOpenPartitionActivity dbo user table
monPCIBridge dbo user table
monPCIEngine dbo user table
monPCISlots dbo user table
monPCM dbo user table
monProcedureCache dbo user table
monProcedureCacheMemoryUsage dbo user table
monProcedureCacheModuleUsage dbo user table
monProcess dbo user table
monProcessActivity dbo user table
monProcessLookup dbo user table
monProcessMigration dbo user table
monProcessNetIO dbo user table
monProcessObject dbo user table
monProcessProcedures dbo user table
monProcessSQLText dbo user table
monProcessStatement dbo user table
monProcessWaits dbo user table
monProcessWorkerThread dbo user table
monRepCoordinator dbo user table
monRepLogActivity dbo user table
monRepMemoryStatistics dbo user table
monRepScanners dbo user table
monRepScannersTotalTime dbo user table
monRepSchemaCache dbo user table
monRepSenders dbo user table
monRepStreamStatistics dbo user table
monRepSyncTaskStatistics dbo user table
monRepTruncationPoint dbo user table
monSQLRepActivity dbo user table
monSQLRepMisses dbo user table
monServiceTask dbo user table
monSpinlockActivity dbo user table
monState dbo user table
monStatementCache dbo user table
monSysExecutionTime dbo user table
monSysLoad dbo user table
monSysPlanText dbo user table
monSysSQLText dbo user table
monSysStatement dbo user table
monSysWaits dbo user table
monSysWorkerThread dbo user table
monTableColumns dbo user table
monTableCompression dbo user table
monTableParameters dbo user table
monTableTransfer dbo user table
monTables dbo user table
monTask dbo user table
monTempdbActivity dbo user table
monThread dbo user table
monThreadPool dbo user table
monThresholdEvent dbo user table
monWaitClassInfo dbo user table
monWaitEventInfo dbo user table
monWorkQueue dbo user table
monWorkload dbo user table
monWorkloadPreview dbo user table
monWorkloadProfile dbo user table
monWorkloadRaw dbo user table
spt_ijdbc_conversion dbo user table
spt_ijdbc_mda dbo user table
spt_ijdbc_table_types dbo user table
spt_jdbc_conversion dbo user table
spt_jdbc_table_types dbo user table
spt_jtext dbo user table
spt_limit_types dbo user table
spt_mda dbo user table
spt_monitor dbo user table
spt_values dbo user table
syblicenseslog dbo user table
sysalternates dbo system table
sysattributes dbo system table
syscertificates dbo system table
syscharsets dbo system table
syscolumns dbo system table
syscomments dbo system table
sysconfigures dbo system table
sysconstraints dbo system table
syscurconfigs dbo system table
sysdams dbo system table
sysdatabases dbo system table
sysdepends dbo system table
sysdevices dbo system table
sysencryptkeys dbo system table
sysengines dbo system table
sysgams dbo system table
sysindexes dbo system table
sysjars dbo system table
syskeys dbo system table
syslanguages dbo system table
syslisteners dbo system table
syslocks dbo system table
sysloginroles dbo system table
syslogins dbo system table
syslogs dbo system table
syslogshold dbo system table
sysmessages dbo system table
sysmonitors dbo system table
sysobjects dbo system table
sysoptions dbo system table
syspartitionkeys dbo system table
syspartitions dbo system table
sysprocedures dbo system table
sysprocesses dbo system table
sysprotects dbo system table
sysqueryplans dbo system table
sysreferences dbo system table
sysremotelogins dbo system table
sysresourcelimits dbo system table
sysroles dbo system table
syssecmechs dbo system table
syssegments dbo system table
sysservers dbo system table
syssessions dbo system table
sysslices dbo system table
syssrvroles dbo system table
sysstatistics dbo system table
systabstats dbo system table
systestlog dbo system table
systhresholds dbo system table
systimeranges dbo system table
systransactions dbo system table
systypes dbo system table
sysusages dbo system table
sysusermessages dbo system table
sysusers dbo system table
sysxtypes dbo system table
mon_authorize_non_sa dbo stored procedure
mon_rpc_attach dbo stored procedure
mon_rpc_connect dbo stored procedure
sp_addconf dbo stored procedure
sp_autoformat dbo stored procedure
sp_aux_checkroleperm dbo stored procedure
sp_aux_getsize dbo stored procedure
sp_check_remote_tempdb dbo stored procedure
sp_configure dbo stored procedure
sp_dboption dbo stored procedure
sp_dboption_flmode dbo stored procedure
sp_dropdevice dbo stored procedure
sp_getmessage dbo stored procedure
sp_instmsg dbo stored procedure
sp_loaddbupgrade dbo stored procedure
sp_namecrack dbo stored procedure
sp_probe_xact dbo stored procedure
sp_procxmode dbo stored procedure
sp_prtsybsysmsgs dbo stored procedure
sp_remotesql dbo stored procedure
sp_validlang dbo stored procedure