sybase 基本操作.docx
- 文档编号:12531851
- 上传时间:2023-04-20
- 格式:DOCX
- 页数:17
- 大小:26.07KB
sybase 基本操作.docx
《sybase 基本操作.docx》由会员分享,可在线阅读,更多相关《sybase 基本操作.docx(17页珍藏版)》请在冰豆网上搜索。
sybase基本操作
1.用sybase身份安装:
CD20045-55-1252-01.tgz
建立sybase,家目录在/opt/sybase,加密码。
解压到/tmp/inst/。
修改/etc/hosts:
ip tank
2.用sybase登录,启动xwindow,运行/tmp/inst/setup进行图形安装。
3。
查看SYBASE服务命令:
$showserver
4.停止sybase服务:
$isql-Usa-STANK
>shutdownSYB_BACKUP --->停backupserver
>go
>shutdown------->停dataserver
>go
>quit
5.启动sybase服务:
$cd~ASE_125/install/
$startserver-fRUN_TANK
$startserver-fRUN_TANK_BS
$showserver
安装FORWIN
类似一般程序安装;在WIN服务管理里设置启动。
win下的SYBASE客户端sqladvantage和dsedit等无法启动(本机LAN原因)解决方法:
修改本机X:
\sybase\locales\locales文件里NT选项的locale=zh_CN,us_english,iso_1,加入本机LAN即可(如zh_CN)
常用操作:
1.su-sybase-c"isql-Usa-STANK"
2.修改SA的密码(SA默认密码为空):
用ISQL连接上后
sp_passwordnull,"新密码"or sp_password"旧密码","新密码"
3.开始和确认事务(注意:
有些命令不可以在事务里运行,见附录)
begintransaction和committransaction可将任意数目的SQL语句封装起来,这两名的简单语法为:
begintransaction
committransaction
or
begintran
commit
ps:
只有执行了commit数据才是真正写入库里。
4.回退事务
在committransaction命令提交前任何时候可取消或回退事务,该命令的简单语法为:
rollbacktransaction
or
rollback
5.检查事务状态
全局变量@@transtate记录了事务当前的状态。
在执行一个语句后SQLServer通过记录所有事务变化来确定返回何种状态。
@@transtate可包含下列值:
值 意义
0事务进行中:
一个显式或隐式事务有效;上一语句执行成功
1事务完成:
事务完成并提交其变化
2语句异常中止:
上一语句异常终止;对事务无影响
3事务异常中止:
事务异常中止并回退所有变化
举例:
在事务中,可在一个语句(如insert)后使用@@transtate确定该语句成功或失败对事务的影响。
committransaction
Begintransaction
Insertintopublishers(pub_id)values(‘9999’)
(1rowaffected)
select@@transtate
…………………
0
committransaction
select@@transtate
…………………
0
(1rowaffected)
6.备份系统数据
SYBASE系统的备份与恢复机制保证了在系统失败时重新获取数据的可能性。
SQLServer提供了两种不同类型的恢复机制:
一类是系统自动完成的恢复,这种措施在每次系统启动时都自动进行,保证了在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退;另一类是人工完成的恢复,这是通过DUMP和LOAD命令来执行人工备份和恢复工作。
因此定期备份事务日志和数据库是一项十分重要的日常维护工作。
7、备份数据库
每一个数据库都应在创建之后卸出,从而提供一个装入基点。
在此之后按排定的时间周期表卸出。
比如每周五卸出数据库。
对一般数据库系统卸出数据库周期建议为每周一次。
除了按计划周期卸出数据库之外,还需在每次运行没有日志的操作后卸出数据库。
例如:
·每次强制地运行了DUMPTRANWITHNO_LOG(因为数据库的磁盘空溢出);
·每次用sp_dboption允许selectinto/bulkcopy做快速拷贝,或用SELECTINTO命令创建一个永久性的表,或使用了WRITETEXT命令。
卸出数据库的命令为:
DUMPDATABASEdatabase_name
TOdump_device
database_name是要卸出的数据库名称,dump_device是卸出设备的名称。
用系统过程sp_helpdevice可以获得设备的信息。
下面一条命令用来卸出数据库my_db:
DUMPDATABASEmy_db
TOdb_bk_dev
默认导出到C:
\WINDOWS\SYSTEM32\下了。
也可以指定路径。
8、备份事务日志
如果事务日志与数据库放在同一个设备上,则事务日志不应与数据库分开备份。
master数据库和小于4M的用户数据库就是这种情况。
一般数据库系统的数据库和日志分别放在不同的设备上,因此,可以用DUMPTRAN命令单独备份日志。
备份事务日志的周期直接影响数据的恢复程度,因此建议每天备份。
备份事务日志的命令格式为:
DUMPTRANsactiondatabase_name
[TOdump_device]
[WITHTRUNCATE_ONLY|WITHNO_LOG|WITHNO_TRUNCATE]
其中database_name是要备份事务的数据库名称,dump_device是备份设备名称,仅当包含了WITHTRUNCATE_ONLY或WITHNO_LOG子句时,才可以备份到设备。
注意:
如果总是用DUMPDATEBASE(备份数据库及其日志),而不用DUMPTRAN,事务日志将不会刷新,而变得非常庞大。
对于master数据库和小型数据库每次运行DUMPDATEBASE之后应当运行DUMPTRANsaction命令刷新日志。
下面一条命令备份数据库db160的事务日志到备份设备上:
DUMPTRANsactiondb160
TOdb_log_bk_dev
WITHTRUNCATE_ONLY
9、备份数据库及其日志间的相互作用
在至少卸出一次数据库前,卸出事务日志是毫无意义的。
下图显示了备份数据库及其日志间的关系
如果在星期二下午5:
01出现非硬件故障,需要做的所有工作是装入磁带5(参见下一节:
数据恢复),由于磁带5是下午5:
00刚备份的,因此只有备份和装入之间的一分钟内的数据损失。
但是,如果在星期二下午4:
49失效会怎么样呢?
在这种情况下,要装入磁带1(在星期五下午5:
00的卸出)。
然后,依次装入磁带2,3以及4。
这样,系统将恢复到星期二上午10:
00点的状态,星期二的大部分工作丢失了。
此例显示了经常卸出事务的重要性。
10、万一系统失败时恢复数据库系统
如果用户数据库存储的设备失效,从而数据库被破坏或不可存取,通过装入最新的数据库备份以及后来的事务日志备份可以恢复数据库。
假设当前的事务日志存在于一个并没有毁坏的设备上,带着WITHNO_TRUNCATE选项的DUMPTRANsaction命令卸出它。
要恢复数据库按如下步骤去做:
1)、如果日志存在于一个分离的设备上,用带着NO_TRUNCATE选项的DUMPTRANsaction命令卸出被毁坏的或者不可存取的用户数据库事务日志。
2)、用下面的查询检查设备分配已毁坏数据库的设备使用情况。
必须为同一目的赋同样的空间块。
下面的查询显示了分配给数据库mydb设备使用和尺寸情况:
SELECTsegmap,sizeFROM sysusages
WHEREdbid=
(SELECTdbidFROMsysdatabasesWHEREname=“mydb”)
3)、检查查询的输出。
在segmap列的‘3’代表数据分配,‘4’代表日志分配。
size列代表2K数据块的数目。
注意此信息的次序、使用和尺寸部分。
例如,输出为:
4)、用DROPDATABASE命令删除毁坏设备上的数据库。
如果系统报错,用DBCCDBREPAIR命令的DROPDB选项。
5)、删除数据库后,用sp_dropdevice删除毁坏了的设备。
6)、用DISKINIT初始化新的数据库设备。
7)、重建数据库。
用CREATEDATABASE命令从老的sysusages表拷贝所有的行,并包含第一逻辑设备。
对上例,命令为:
CREATEDATABASEmydb
ONdatadev1=20,datadev2=10
LOGONlogdev1=10
8)、用ALTERDATABASE命令重建其余入口。
在此例中,在datadev1上分配更多的空间,命令为:
ALTERDATABASEmydbONdatadev1=2
9)、用LOADDATABASE重新装入数据库,然后用LOADTRAN装入前面卸出的日志。
LOADDATABASE命令语法是:
LOADDATABASEdatabase_name
FROMdump_device
LOADTRANsaction命令的语法是:
LOADTRANsactiondatabase_nameFROMdump_device
卸出数据库和事务日志的缺省权限归数据库所有者,且可以传递给其他用户;装载数据库和事务的权限也归数据库所有者,但不能传递。
11、产生用户信息表,并为信息表授权;
系统维护人员的另一个日常事务是为用户创建新的信息表,并为之授权。
创建表以及为表授权的方法已经在讲过,在此只将有关命令语法写出来。
·创建表的命令为:
CREATETABLEtable_name
(column_1datatype[NULL|NOTNULL|IDENTITY],
column_2……
)
go
ALTERTABLEtable_name
ADDPRIMARYKEY(column_list)
go
·删除表的命令格式为:
DROPTABLEtable_name
go
·为表授权的命令格式为:
GRANT{ALL|permission_list}
ONtable_nameTOuser_name
go
·收回权限的命令格式为
REVOKE{ALL|permission_list}
ONtable_nameFROMuser_name
go
12、监视系统运行状况,及时处理系统错误;
系统管理员的另一项日常工作是监视系统运行情况。
主要有以下几个方面:
1)、监视当前用户以及进程的信息
使用系统过程:
sp_who
说明:
该命令显示当前系统所有注册用户及进程信息,如下表是某系统的信息。
SpidStatusLoginamehostnameblkdbnamecmd
---------------------------------------------------------------
1RunningSascosysv0MasterSELECT
2SleepingNULL0MasterNETWORKHANDLE
3SleepingNULL0MasterDEADLOCKTUNE
4SleepingNULL0MasterMIRRORHANDLER
5SleepingNULL0MasterHOUSEKEEPER
6SleepingNULL0MasterCHECKPOINTSLEEP
从左向右依次显示:
进程号、当前状态、注册用户名、主机名、占用块数、数据库名以及当前命令。
如果监视时发现进程总数接近最大连接数(用系统过程:
sp_configure“userconn”查看)时,应下掉不活动或无关进程,以保证系统正常运做;另外亦可监视非法用户或用户使用不属于自己使用范围的数据库等情况。
2)、监视目标占用空间情况
使用系统过程:
sp_spaceused
说明:
该过程显示行数、数据页数以及当前数据库中由某个目标或所有目标所占用的空间。
如下表是某数据库日志表的信息:
NameRow_totalreserveddataIndex_sizeunused
------------------------------------------------------------
SyslogsNotavail32KB32KB0KBNotavail
日常要监视的主要目标有:
用户数据库、数据库日志表(syslogs)以及计费原始数据表等。
如果发现占用空间过大,对日志表要进行转储;对其他目标则应扩充空间或清楚垃圾数据。
3)、监视SQLServer统计数字
使用系统过程:
sp_monitor
说明:
sp_monitor显示SQLServer的历史统计数字,下表是某系统的统计数字:
Last_runCurrent_runSeconds
---------------------------------------------------------------
May1320001:
27PMMay1320003:
01PM5678
CPU_busyIO_busyIdle
---------------------------------------------------------------
16(6)-0%0(0)-0%5727(5672)-99%
Packets_receivedPackets_sentPacket_errors
---------------------------------------------------------------
21(17)100(97)0(0)
Total_readTotal_writeTotal_errorsConnections
--------------------------------------------------------
785(366)311(113)0(0)3
(2)
上表依次给出该系统本次运行统计的上一次时间、本次时间、间隔秒数、CPU占用、IO占用、收发包情况、系统读入写出情况等信息
13、保证系统数据安全,周期更改用户口令;
为保证系统数据的安全,系统管理员必须依据系统的实际情况,执行一系列的安全保障措施。
其中,周期性的更改用户口令是比较常用且十分有效的措施。
更改用户口令是通过调用系统过程sp_password来实现的。
Sp_password的语法为:
sp_passwordcaller_password,new_password[,loginame]
其中caller_password是登录口令(老口令),new_password是新口令,loginame是登录名称。
14.如何修改IP地址改变后的interfaces文件?
A.安装SYBASEAdapiveServer的机器IP地址改变后,应修改interfaces文件及有关的设置。
如果interfaces文件中使用的是机器名而不是IP地址,则不需要变动。
但如果客户端联结服务器使
用的是服务器的IP地址而不是机器名,那么客户端需修改联结服务器的IP地址.。
如果interfaces文件中使用的是IP地址,那么需要修改interfaces文件中和地址有关的部分,
可使用dscp或dsedit进行修改。
如果客户端联结服务器使用的是服务器的地址而不是机器名,那么客
户端也需修改。
15。
实现开机时自动装载Sybase数据库
原先要使SybaseSQLServer启动,一般需要先以sybase用户登录,然后运行$SYBASE/install目录下的startserver命令启动SYBASE_XXXX服务进程和SYB_BACKUP_XXXX备份服务进程。
要实现Unix系统启动时就能在后台装载Sybase的功能,我们可在/etc/rc2.d/目录下新建一文件S99sybase,内容如下:
SYBASE=/usr/sybase
PATH=$PATH:
$SYBASE/bin
export$SYBASE$PATH
$SYBASE/install/startserver-f$SYBASE/install/RUN_SYBASE_XXXX>/dev/null
$SYBASE/install/startserver-f$SYBASE/install/RUN_SYB_BACKUP_XXX>/dev/null
然后修改Sybase的权限,重启系统即可。
16.实现关机时自动卸载Sybase数据库
为保证Sybase系统的正常运行,每次在关闭Unix系统时要先结束SybaseSQLServer的服务进程,从减轻系统管理人员操作的角度出发建立一用户halt,修改/etc/passwd文件,将halt用户的uid改为0(或其他可运行shutdown的用户id),在/usr/halt/.profile中添加以下语句:
SYBASE=/usr/sybase
DSQUERY=SYBASE_XXXX
PATH=$PATH:
$SYBASE/bin
exportSYBASEDSQUERYPATH
isql-Usa-Pabcabc-ihalt.sql>/dev/null
shutdown-y-g0
其中“abcabc”为sa用户的口令,halt.sql是一简单的文本文件,内容如下:
shutdown
go
这样每次只要以halt用户登录,就实现了自动卸下Sybase数据库,然后关闭Unix系统。
17.SybaseUTF-8中文字符集设置
(这里SYBASE的安装路径为c:
\sybase)
1.c:
\>cd\sybase\charsets\cp936
2.c:
\sybase\charsets\cp936>charset-U用户名-P密码-S数据库服务器名称binary.srtcp936
更改默认字符集为cp936
3.在SQL环境中
1>selectname,idfromsyscharsets(会列出字符集对应的id号)
2>go
找到name为cp936对应的id(假设为171)
1>sp_configure"defaultcharactersetid",171
2>go
5.重启server两次
(注:
第一次启动后,server会自动宕掉,需要第二次重启后才能使用)
18.创建用户数据库
以下通过一个建立数据库的脚本说明建立数据库的过程:
//创建数据库设备,设备大小以页(2K)为单位
diskinit
name="test_dbdev",
physname="/home/bk/test_dbdev.dat",
vdevno=5,
size=10240
go
diskinit
name="test_logdev",
physname="/home/bk/test_logdev.dat",
vdevno=6,
size=5120
go
//创建数据库TEST_DB,其大小为20M,日志大小为10M
createdatabaseTEST_DB
ontest_dbdev=20
logontest_logdev=10
go
//打开数据库
useTEST_DB
go
-----------
举例说明:
DISKINIT
Name=’My_Device’,
Physname=’D:
\database\My_device.dat’,
Vdevno=3
Size=5000
注释:
逻辑名、物理名、设备虚拟号、设备大小
------------------------
创建用户数据库
CreateDatabase数据库名
On设备_1=Size_1,//单位:
M
设备_2=Size_2,
……
logon日志设备=Log_Size
[WithOverride]//在同一设备上创建数据库和事务日志时使用该选项
[ForLoad] //禁止用户访问直到数据库的装入或恢复操作完成为止
举例:
CreateDatabasetest_db
Ondata_dev=100,//单位:
M
Index_dev=50
Logonlog_dev=30
说明:
(1)将日志放在单独的设备上,有利于数据库性能的提高;
(2)如果将数据库和日志放在同一设备上,就不能实现增量备份;
(3)通常将System和Default段缩减范围到一个设备上,如删除设备Index_dev上的System段和Default段,创建新的段,用来存放专门的数据库对象
19.备份和恢复DB数据
dumpdatabasemydbto'/u01/mydb_full.bk'
go
dumptranactionmydbto'/u01/mydb_tran.bk'
go
loaddatabasemydbfrom'/u01/mydb_full.bk'
loadtransactionmydbfrom'/u01/mydb_tran.bk'
onlinedatabasemydb
go
ps:
采用增量备份后,严禁日志截断!
即禁止使用:
dumptransactionsctftruncate_only 命令!
增量备份必须是在完整备份后的或上一次增量备份后,中间若遇到日志截断,后续的增量备份均告失败!
增量备份可以根据需要,如每小时备份一次,每次备份所需时间约2-5秒,所以时间极快。
ps:
单引号和双引号都能关闭shell对特殊字符的处理。
不同的是,双引号没有单引号严格,单引号关闭所有有特殊作用的字符,而双引号只要求shell忽略大多数,具体的说,就是①美元符号②反引号③反斜杠,这3种特殊字符不被忽略。
不忽略美元符号意味着shell在双引号内部也进行变量名替换。
*********************************************
下面资料来自SYBASE白皮书
1。
客户端字符集修改locales.dat
2.可以通过设置CHARSET驱动程序属性指定在应用程序中使用的字符集。
或者设置jconnect字符集的方法来设置。
3。
查看字符集:
SERVER:
sp_helpsort
go
CLIENT:
select@@client_csname
go
4.段+阀值:
默认是三个段:
systemdefau
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- sybase 基本操作 基本 操作