??xml version="1.0" encoding="utf-8" standalone="yes"?>亚洲精品综合在线影院,亚洲AV无码乱码在线观看性色扶,亚洲色图.comhttp://www.tkk7.com/os586/category/10207.html态度军_一切,思想军_\zh-cnTue, 07 Aug 2007 17:06:16 GMTTue, 07 Aug 2007 17:06:16 GMT60BCP 数据导入导出时经帔R见的错误http://www.tkk7.com/os586/archive/2007/08/07/135077.html水煮三国水煮三国Tue, 07 Aug 2007 13:25:00 GMThttp://www.tkk7.com/os586/archive/2007/08/07/135077.htmlhttp://www.tkk7.com/os586/comments/135077.htmlhttp://www.tkk7.com/os586/archive/2007/08/07/135077.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/135077.htmlhttp://www.tkk7.com/os586/services/trackbacks/135077.html ct_connect(): network packet layer: internal net library error: Net-Lib protocol driver call to connect two endpoints failed
Establishing connection failed.
无法q接q程服务?/font>

cs_convert: cslib user api layer: common library error: The conversion/operation was stopped due to a syntax error in the source field.
CSLIB Message: - L0/O0/S0/N36/1/0:
导入表对应的列数量不正确

cs_convert: cslib user api layer: common library error: The conversion/operation was stopped due to a syntax error in the source field.
导入数据存在自增长列Q但数据源不存在自增长列

blk_rowxfer(): blk layer: internal BLK-Library error: Data truncated while doing local character set conversion. col = 3
导入表对应的字段长度不

ct_sendpassthru(): network packet layer: internal net library error: Net-Library operation terminated due to disconnect
CTLIB Message: - L5/O3/S5/N5/5/0:



水煮三国 2007-08-07 21:25 发表评论
]]>
Sybase 我再一ơ把你拾?/title><link>http://www.tkk7.com/os586/archive/2007/07/05/128440.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Thu, 05 Jul 2007 13:13:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2007/07/05/128440.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/128440.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2007/07/05/128440.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/128440.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/128440.html</trackback:ping><description><![CDATA[ <p> <font face="Courier New" size="2">最早经手sybase数据库是在电力上使用Q那时对q东西很是模p。因为我只要配置一下自q客户端连l用就可以了。而较为系l较为全面的使用q是在以前的一个金融项目中使用?br /><br /><br /><br />当时Ҏ些东西只是刚刚接触,特别是对讑֤(主设备,日志讑֤Q{储设备。?QsegmentQ最gh的就是sybase的数据库日志问题D的数据库服务起不来的问题。那Ӟ有一全套手册Q真是大补。感觉对q东西有了些较ؓ全面的了解。但是一D|间后Q我因ؓ工作关系转到oracle上来了。当Ӟ感觉到非常的失望Q公叔R不用sybaseQ因此又要全新的学习oracle.好在Q公司内部还是有一些老项目用了sybase,呵呵Q可以有用武q地?......<br /><br /><br /><br />q次重新拾vQ是因ؓ我经手的q个目是在sybase上用,而且q台服务器上有很多数据库了?br />仔细看了一下,未知理员配|的数据库服务器Q感觉还是不错的?br /><br />Z使我l手的项目能够顺利的C去,我还是又拿出了我的全套手?<br /><br />因此Q借用javablog.net我会发一些sybase的一些文章?br /><br />我会把一些相关的数据库文仉接至?</font> </p> <img src ="http://www.tkk7.com/os586/aggbug/128440.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2007-07-05 21:13 <a href="http://www.tkk7.com/os586/archive/2007/07/05/128440.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase 数据库默认设备的更改http://www.tkk7.com/os586/archive/2007/07/04/128191.html水煮三国水煮三国Wed, 04 Jul 2007 14:01:00 GMThttp://www.tkk7.com/os586/archive/2007/07/04/128191.htmlhttp://www.tkk7.com/os586/comments/128191.htmlhttp://www.tkk7.com/os586/archive/2007/07/04/128191.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/128191.htmlhttp://www.tkk7.com/os586/services/trackbacks/128191.html Z防止用户数据库被分配到数据库pȝ主设备 master 上,应该在安装完数据库后修改默认讑֤—安装完 sybase ASE 后,master 是唯一的默认设备。Sybase Qmaster 讑֤只应该提供给pȝ数据库而不是用h据库。因此,对于用户数据库,我们应当单独创徏讑֤Qƈ且把用户讑֤讄成默认状态?br />


  比如我们可能要徏立几个用h据库讑֤QuserData,userLog

  首先我们需要先取消master的默认设备:



    sp_diskdefault "master","defaultoff"

    go

    sp_diskdefault "userData","defaulton"

    go

    sp_diskdefault "userLog","defaulton"

    go

  在后面创建用h据库的过E中Q如果不指定数据库设备,则该用户数据库理所当然地创建在默认讑֤?br />
  创徏数据库:本数据库创徏在设备 userData 上,而在分开的设备(userLogQ上创徏数据库日志?br />
  1>create database mydatabase //创徏一个名为 mydatabase 的数据库
  2> on userData = ?0M”?/数据库的存储I间为?0MQ数据库讑֤是 userDataQ而不是 master
  3>log on userLog =?0M”?/日志文g的存储空间ؓ 10M
  4>go






水煮三国 2007-07-04 22:01 发表评论
]]>
sybase数据库中分离日志与数据文?/title><link>http://www.tkk7.com/os586/archive/2006/09/30/72964.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Sat, 30 Sep 2006 02:29:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/30/72964.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/72964.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/30/72964.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/72964.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/72964.html</trackback:ping><description><![CDATA[ <p>详细步骤Q已试成功 </p> <p>1、备份数据库Q包?master 和你要分L据与日志的应用库,最好是备䆾所有数据库Q?/p> <p>2、检查数据库的日志是否有单独的存放设备,如有Q则直接到第Q步Q?/p> <p>3、如没有单独的日志设备,则增加一个设备:disk init .....Q?/p> <p>4、alter database db_name log on new_log_device=xxxQ?/p> <p>5、sp_logdevice dbname,new_logdev (Ud日志讑֤)Q?/p> <p>6、sp_dropsegment logsegment, db_name, device_name (如果数据库有多个讑֤既放数据又放日志Q则要相应的q行几次Q?/p> <p>7、创Z个时表Q然后往里面插入_的数据,然后截断日志Q?/p> <pre style="BORDER-RIGHT: black 1px solid; PADDING-RIGHT: 4px; BORDER-TOP: black 1px solid; PADDING-LEFT: 4px; PADDING-BOTTOM: 4px; BORDER-LEFT: black 1px solid; PADDING-TOP: 4px; BORDER-BOTTOM: black 1px solid; BACKGROUND-COLOR: #ededed"> <span>use </span> <span>db_name</span> <span>go</span> <span>create </span> <span>table</span> <span> t1 (id </span> <span style="FONT-WEIGHT: bold; COLOR: #000000">int)<br /><br />go</span> <span> </span> <span>declare </span> <span>@loop int</span> <span>select </span> <span>@loop</span> <span>= </span>1 <br /><span></span><span><br /><br /><br /><br /><br />while</span><span>(</span><span>@loop</span><span><</span><span style="FONT-WEIGHT: bold; COLOR: #800000">500</span><span>)<br /><br />b</span><span>egin<br /><br /></span><span>insert</span><span> t1 </span><span>values</span><span>(</span><span>@loop)<br /><br /></span><span>select </span><span>@loop </span><span><a href="mailto:=@loop + 1 "><font color="#000000">= </font></a></span><font color="#000000"><span>@loop </span><span>+ </span><span style="FONT-WEIGHT: bold; COLOR: #800000">1</span></font><br /><span><br />end<br /><br /></span><span>go<br /><br /></span><span>dump </span><span>tran </span><span>db_name </span><span>with </span><span>truncate_only<br /><br /></span><span>go</span></pre> <p>8、到此,数据与日志的分离已经完成Q用sp_helpdb db_name或sp_helplog查看是否已分R?/p> <p>增加和删?segment q不Ud当前的已分配I间。日志至有一个扩充(extendQ位于以前的 segment 上(q记得吗Qؓ对象分配存贮单元Ӟ实际是以 extend 为单位的。)。如果当?extend 被填满,需要再为日志分配时QASE会在新的 segment 上分配(segment U束它不得不q么做)。此Ӟ截断日志可以回收以前分配的 extend 了。最后,q是要备份所有数据库.</p> <img src ="http://www.tkk7.com/os586/aggbug/72964.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-30 10:29 <a href="http://www.tkk7.com/os586/archive/2006/09/30/72964.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase 数据库用L理的一些基本概?/title><link>http://www.tkk7.com/os586/archive/2006/09/29/72728.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Fri, 29 Sep 2006 02:02:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/29/72728.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/72728.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/29/72728.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/72728.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/72728.html</trackback:ping><description><![CDATA[ <p> </p> <p> 1.sybase 的登录用户与数据库用?</p> <p>   刚开始用sybase的时候感觉到很纳?l常使这两者؜?但是后来发现,它们q两个是有很大区别的.</p> <p>   Sybase必须在创建登录用户后,q用户以一个合法的w䆾q入了sybase server,同时该登录用户信息会?/p> <p>qmaster数据库的syslogins表中.</p> <p>   但是只有注册用户成ؓ某一数据库用?q且对该用户赋予某些权限?该注册用h能在限制条g下</p> <p>用数据库当中的表.</p> <p>   通常我都是这L解的:</p> <p>   首先我们需要在Sybase当中注册d:</p> <p>     sp_addlogin loginame,password,defaultdb</p> <p>   接下?我们首先要打开你要d的数据库,然后q行l或者是用户的注?/p> <p>     use dbname<br />     sp_addgroup grpname</p> <p>     sp_adduser loginame,name-in-db,grpname</p> <p>     q样该用户就可以讉K某一数据库了?同时我们可以通过grant对其q行权限或者是角色的给?</p> <p> </p> <p>2.Sybase 数据库用户分c?</p> <p>    一般在sybase当中可以分ؓ如下四种用户: sa用户,数据库属?数据库对象属?数据库普通用?</p> <p>    sa用户在sybase 中ؓ最高等U用?所有命令都可以执行.</p> <p>    数据库属?dbo):用户可以Ҏ数据库中所有对??视图,存储q程{?q行操作,一般有三种途径创徏</p> <p>      一是系l管理员的用?br />      二是pȝ理的用户将创徏数据库的权限赋予某个d用户,p用户q行数据库的创徏?自然形成</p> <p>Ҏ据库属主.<br />      三是pȝ理员的用户创徏数据库后,某个sybase中登录用户变为数据库的属?</p> <p>    数据库对象属Mؓ创徏该对象的用户,在实际的数据库的理?一般ؓ数据库属?数据库普通用户必</p> <p>d数据库属d本数据库中某些对??视图,q程)赋予某些权限?才可以对本数据库中某些对象进?/p> <p>允许的操?几者的关系是相互包含的.数据库管理员的用户在q入某个数据库后,自然成ؓ该数据库的属?/p> <p>,数据 属主可看作ؓҎ的数据库普通用?</p> <p> <br />3.别名 与?l?/p> <p>   别名 与组在数据库理中是l常用到?它能化数据库用户理.方便对用L监控.<br />   别名卛_sybase中的d用户以同一个数据库用户的n份来讉K数据?q且h与该用户相同的权?<br />   也就是说,在数据库中只要徏立一个数据库用户,对该数据库用户各U操作定义好,qsybase中已l定?/p> <p>好注册用h数据库用L别名用户?x有与该用L同的权限.q样一来,注册用户不必成ؓ?/p> <p>据库的用户即可访问数据库Q对所有别名用L权限的控制只需通过对一个数据库用户的控制达?/p> <p>.如:有一SQL SERVER名ؓTEST.SERQ有一名ؓEXAMPLE的数据库Q其中有一名ؓOK的表Q当pȝ?/p> <p>理员为TEST.SER创徏名ؓJOHN和KATE的注册用PEXAMPLE的数据库中有一名ؓOK_SELECT的数?/p> <p>库用P该数据库用户有对OK表的查询权限。将JOHN和KATEq两个注册用户变为OK_SELECT的别名后</p> <p>QJOHN和KATE卛_q入数据库,q拥有与OK_SELECT的数据库用户相同的权限。组QgroupQؓ数据?/p> <p>用户的集合,即通过对组(group)的权限的控制辑ֈ对该l中数据库用L控制Q但也可对该l中数据?/p> <p>某些用户q行格外的权限控制。在上例中的EXAMPLE的数据库中有一OK_INSERT的组Q它对OK的表有插</p> <p>入的权限Q数据库中有两个用户QMARRY和KITYQ当q两个用户加入到OK_INSERTl后QMARRY?/p> <p>KITY有对OK表的插入的权限。对MARRY和KITY相同的权限操作可通过对OK_SELECTl的控制可得?/p> <p>而MARRY对OK表有查询权限Q仅对MARRY用户赋权卛_。而别名则不行。?</p> <p>四、SYBASE SQL SERVER的角色?<br />一般在理分工较细的数据库pȝ中,sa用户往往被分ZU角Ԍpȝ理员角?SA role)pȝ安全?/p> <p>角色(SSO role)、操作员角色QOPER roleQ。sa用户往往被锁住,其权力被以上三种角色所瓜分。这三种</p> <p>角色分别用不同的数据库注册用户承担。因三种角色d较多Q所以不一一介绍。?</p> <p>SYBASE SQL SERVER 的用L理是很复杂的Q但首先掌握以上的内容,便对掌握SYBASE SQL SERVER</p> <p>的用L理有了一定的基础?/p> <img src ="http://www.tkk7.com/os586/aggbug/72728.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-29 10:02 <a href="http://www.tkk7.com/os586/archive/2006/09/29/72728.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase _֍问题整理 [转摘于ChinaUnix.net-Sybase论坛]http://www.tkk7.com/os586/archive/2006/09/28/72481.html水煮三国水煮三国Thu, 28 Sep 2006 02:09:00 GMThttp://www.tkk7.com/os586/archive/2006/09/28/72481.htmlhttp://www.tkk7.com/os586/comments/72481.htmlhttp://www.tkk7.com/os586/archive/2006/09/28/72481.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/72481.htmlhttp://www.tkk7.com/os586/services/trackbacks/72481.html1) 关于定时备䆾
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1233&show=390
crontab 中可以这样写Q?br />00 23 * * * /sybase/ASE-12_0/bin/DUMPDB.sh >;>;/sybase/ASE-12_0/install/DUMPDB.out

N里都无所谓,一个dumpdb.sh的例子:
#SUN Solaris 8
#!/bin/ksh
export SYBASE=/sybase
export SYBASE_FTS=FTS-12_0
export PATH=/sybase/ASE-12_0/bin:/sybase/OCS-12_0/binPATH:/sybase/ASE-12_0/install:/usr/sbin
export SYBASE_OCS=OCS-12_0
export SYBASE_ASE=ASE-12_0
export LM_LICENSE_FILE=/sybase/SYSAM-1_0/licenses/license.datLM_LICENSE_FILE
export LD_LIBRARY_PATH=/sybase/ASE-12_0/lib:/usr/local/openwin/lib:/sybase/FTS-12_0/lib:/sybase/OCS-12_0/lib:/usr/local/openwin/lib:/usr/lib:/sybase/SQLRemote/libLD_LIBRARY_PATH
export SYBASE_SYSAM=SYSAM-1_0
export HOME=$SYBASE
$SYBASE_OCS/bin/isql -Usa -SSYBASE -P <<!
dump database YOURDBNAME to "/sybdump/dump.01"
                stripe on "/sybdump/dump.02"
                stripe on "/sybdump/dump.03"
                stripe on "/sybdump/dump.04"
                stripe on "/sybdump/dump.05"
go
!
q里是一个典型的脚本Q用于实现full备䆾Q?
#!/usr/bin/sh
# *************************************************************************
#for full backup after excuted dbcc operation
# *************************************************************************
SHLIB_PATH=/opt/sybase/ASE-12_0/lib:/opt/sybase/FTS-12_0/lib:/opt/sybase/OCS-12_0/lib:/usr/lib:/lib:/usr/lib/Motif1.2:/opt/sybase/SQLRemote/
lib
export SHLIB_PATH
SYBASE_OCS=OCS-12_0
export SYBASE_OCS
SYBASE=/opt/sybase
export SYBASE

ISQL="/opt/sybase/OCS-12_0/bin"
ymd=`date +%y%m%d`
bk_user="unb"
bk_pwd="******"
bk_db="SYB_HP"
cd /sybase/backup
mkdir $ymd
LOG="/sybase/backup/$ymd"
echo $ymd >;$LOG/backup.log
echo "\n11*************************" >;>;$LOG/backup.log
echo "Check database $bk_db..." >;>;$LOG/backup.log
d1=`date`
su - sybase -c "isql -SSYB_HP -Usa -P****** <<DBCC >;$LOG/dbcc-$ymd.log 2>;&1
dbcc traceon(3604)
go
dbcc checkdb($bk_db)
go
dbcc traceoff(3604)
go
DBCC
echo $d1,`date` >;>;$LOG/backup.log
echo "\n22*************************" >;>;$LOG/backup.log
d1=`date`
dump_file="/sybase/backup/$dump-unb-full-$ymd.dat"
echo "Dump database $bk_db to " $dump_file >;>;$LOG/backup.log
su - sybase -c "isql -SSYB_HP -Usa -P****** <<DUMP >;$LOG/dump-$ymd.log 2>;&1
dump database $bk_db to "$dump_file"
go
DUMP
echo $d1,`date` >;>;$LOG/backup.log
echo "\n33*************************" >;>;$LOG/backup.log
h据自w系l,调试后再使用Q?
至于备䆾日志的脚本与此类|自己Ҏsybase的相兌法,E加变动卛_Q?



2) 有个关于游标的问题,h各位大虾 
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=429&show=390
在sybase数据库中用游标操作完表a的记录后Q关闭close游标Q在free游标。但接着想drop此表aQ结果失败,昄的错误信息是"游标在?Q记得不是很清楚了,大概是这个意思)?br />L到过q类问题的大虾支持支持。在informix和oracle中释放游标是用freeQ在sybase也是用free吗?

sybase 中正操作游标的序是:
1、DECLARE CUR_ACCTINFO CURSOR FOR SELECT .....    Q定义)
2、OPEN CUR_ACCTINFO                               Q打开Q?br />
3、WHILE @@SQLSTATUS = 0                            Q判断是否成功)
BEGIN
            
4、?       FETCH CUR_ACCTINFO INTO  .......     Q取数据Q?br />          IF @@SQLSTATUS  <>; 0
begin
                    ......
end
           ...........
5?CLOSE CUR_ACCTINFO               Q关闭)
6?DEALLOCATE  CURSOR CUR_ACCTINFO  Q释放)


3) 在sybase中有没有q行数据cd转换的函数 
  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1346&show=330

四舍五入用round,如round(123.4567,1)=123.5或round(123.4567,0)=123或round(123.67,0)=124
d用floor,如floor(123.4567)=123
q尾用ceiling,如ceiling(123.4567)=124


4) 新手问题Qؓ什么我的SYBASE的RUN_BACKUP老是自己DOWN啊!Q?br />  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1335&show=330
Z么我的SYBASE的RUN_BACKUP老是自己DOWN啊!Q?br />我用NetTerm登陆q行Q但只要一退出NetTermQBACKUPp己DOWN?br />?amp;q行也不行,怎么办啊Q?br />

命o前加nohup 试试

那是因ؓ你的backupq程是以你的d用户起动?所以当该用户退出unix?
q程也跟着退出操作系l了

5) 什么是BYPASS RECOVERY modeQ 
  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1371&show=300


在客L出现提示Q?br />Attempt to BEGIN TRANsaction in database "****" failed because database is in BYPASS RECOVERY mode.
请问如何解决Q?


select name,status from master..sysdatabases where db_name="你所说的数据?
看status是否?32768 ,若是,sysdatabasespȝ表相应记录的status字段改ؓ0Qreboot数据库服务器可以了?br />
谢谢各位Q问题已解决。中午去SYBASE|站查找到有兌个问题的详细信息Q包括问题成因及解决办法Q?
Error 3908
Severity
16
Error Message

Attempt to BEGIN TRANsaction in database '%.*s' failed because database is in BYPASS RECOVERY mode.
Explanation
Adaptive Server can start various types of transactions such as local (in response to a local command), internal (for the server's own use), external (started by an external client like a TP Monitor) and subordinate (child transactions started by a parent transaction in parallel).
Bypass recovery starts Adaptive Server without recovering one or more databases. A database in this mode can be accessed even though it is not recovered. You use this mode to allow access to the database for problem analysis, to copy out data, and so on.
Error 3908 is raised when a transaction is attempted while the database is in bypass recovery. Although certain commands are permissible in this mode, no transactions - regardless of type - can be started when the database is in bypass recovery.
Error 3908 is raised in the following states:



State Meaning
1 Attempted to start a transaction when the database is not available for update. Applies to all possible transaction types.
2 Attempted to start a subordinate transaction when the database is not available for update.
Action
Do not attempt to start a transaction while the database is in bypass recovery. Check if any automated jobs may have submitted a batch job that attempted such a transaction. First restore the database to the original working status it had (prior to bypass status) before attempting any transactions.
Use the following steps to reset the database status:
Note Although a status of zero is usually appropriate, it is not the only possible status value you can use. Reset the database to the actual, normal status it had prior to entering bypass recovery status.

1. Reset the database status to 0:
1>; sp_configure "allow updates", 1
2>; go
1>; begin tran
2>; go
1>; use master
2>; go
1>; update sysdatabases set status=0 where name=<database_name>;
2>; go
Check that the above update command affected only one row (if more than one row was affected, issue a rollback transaction.) Then commit the transaction and shut down Adaptive Server as follows:
1>;commit tran
2>;go
1>;shutdown with nowait
2>;go
2. Restart Adaptive Server. Run dbcc checkdb and dbcc checkalloc on the affected database to make sure there are no errors.
Version in Which This Error is Raised
All versions.
再次谢谢aladdinQfreebobQchanging?br />6) 数据库表BCP出来报错 
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1326&show=300
数据库表BCP出来报错
DB-LIBRARY error
I/O error while writing bcp data-file
bcp出来的文件正?GBQ实际应该更大?br />操作pȝSCO OpenServer5.0.4, SYBASE 11.0.3
请问是何原因Q谢谢?br />当在后备数据量大?GB的数据库Ӟ可能会遇C下错误:
I/Oerror:
operating system error,server device /backup/data. code 27 messages
file too large.
  q是׃后备文g的大超Z操作pȝ的用h大文仉制。而有些操作系l不支持大于2GB的文Ӟq时可以使用Backup Server一个数据库后备到多个文件中?
  1>;dump database pubs2 to "/usr/sybase/pubs2_dump.1"
  2>;stripe on "/usr/sybase/pubs2_dump.2"
  3>;stripe on "/usr/sybase/pubs2_dump.3"
  4>;go
  q种Ҏq可以提高后备及恢复的速度Q但注意恢复也必ȝ相应多的讑֤。例如:
  1>;load database pubs2 from "/usr/sybase/pubs2_dump.1"
  2>;stripe on "/usr/sybase/pubs2_dump.2"
  3>;stripe on "/usr/sybase/pubs2_dump.3"
  4>;go

7) sybase的sa口o丢失怎样恢复Q 
  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1239&show=270
在RUN-SERVER文g中加入一?psaQ重起dataserverQ在控制C可以看见新的口o
http://www.powerba.com/develop/database/sybase/article/20010505001.htm

sybase表中如何删掉多条相同的记录? 
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1438&start=0&show=180
sybase表中如何删掉多条相同的记录?
׃表出问题Q将没有q行处理?.txt文gbcp到表中,其中含有大量的重复记录?br />请问有没有办法将表中重复的记录删掉呢Q?br />
那好办,那你可以用下面语句将唯一的记录先插入C时表中:
select distinct a ,b,c,d ... into tempdb..tempdb_table from tablename
然后清空原表Q把临时表中的数据插入正式表中!
试试?

可以参考这U经典方法:
1---select * into tmp_tab from your_dup_tab where 1=2
2---若表无唯一性烦引则Z个唯一性烦引(一定能扑ֈ一个唯一性的索引建(复合索引Q)create unique index(列名1Q列?...) on tmp_tab with ignore_dup_key.
3----insert into tmp_tab from your_dup_tab
q样在新表中自动删出重复记录。但数据量过大请留意日志I间Qsp_spaceused syslogsQ?
很用的Ҏ.try it!

9) 关于阀?br />http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1231&show=180
发告警或者水自动溢出Q以保护pȝ不至于达到危险境界。对于数据库而言Q我们用的存储讑֤毕竟有限Q如果Q由数据或日志增长Q数据或日志日久天长l将占用所有存储设备,如果C没有I间的时候,pȝ挂Pq样业务暂停。所以对于一些要求数据库可用性很高的pȝQ必M证在可预见的情况下数据段或者日志段不至于没有空_为做到这一点,传统的数据库一般都需要系l维护h员经常的定期的进行数据库查,若数据段不够了,转储一部分数据或者增加一些设备,若日志空间不够了Q{储日志!但这Ll管理员有点篏了!
为减ȝl管理员的负担,提高pȝ的自动化E度Qsybase提出了用阀D行自动管理的q样一U模式,只要在开始定义好各段的阀|以及辑ֈ阀值后的处理存储过E,可以实现自动管理了Q?br />不过Q我先前也想q样做,也研I了一阵子Q但是后来还是放弃了q种懒惰的办法。因Z用阀值管理可能出C些意想不到的问题Q什么问题现在还没想刎ͼ只是sybase不推荐在大系l中q样做!再加上本w系l有omni back备䆾软gQ何必自N烦呢Q?br />
10) 什么SYBASE安装完后要增加TEMPDB的空_
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1444&show=180
扩展后sp_helpdb tempdb看应改master讑֤上是data/log?br />你use tempdb
sp_dropsegment 'default',tempdb,master
sp_dropsegment system,tempdb,master
sp_dropsegment logsegment,tempdb,master
后,
sp_helpdb tempdb
select db_name(dbid),segmap,lstart,size,vstart,pad,unreservedpgs
from sysusages
where dbid=2
贴出?br />如果W一行中segmap?,ok


你们回答的什么,驴唇不对马嘴Q呵呵,开玩笑Q?br />一般情况下数据库装好之后,都要ltempdb增加I间Q因为在用户数据库中的很多插入,删除{操作需要用到tempdb数据库作Z时存储空_所以要增大他的I间Q否则可能你的事务不能执?

http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=185&show=120

sybase 临时数据?
~省情况下,tempdb数据库是攄在master讑֤上,定w?MQ而时数据库是活动最为^凡的数据库常常被用来排序、创Z时表、重格式化等操作Q所以tempdb的优化应该受到特别的x。本文章目的在于你掌握时数据库的优化策略以及时表的优化用。本文中Q你以调整临时库的位置开始,有步骤的完成临时数据库的优化Qƈ在此q程中了解到优化临时数据库和临时表的一些方法和规则?br />实验环境的要求:你应hpȝ理员的权限Q系l中有auths和article表?br />步骤Q?br />W一步:调整临时库的位置
  tempdb数据库缺省放在master讑֤上,时数据库发在分离的设备上是更可取的?br />1Q  初始化一个用来存放时数据库的设?br />disk init
name="tempdb_dev",
physname="d:\sybase\example\tempdb.dat",
vdevno=13,
size=15360
(注意Q如果将tempdb数据库放在多个设备上Q需初始化多个数据库讑֤)
2)时数据库扩展到该一个设备上
  alter database tempdb on tempdb_dev=30
3)打开tempdb数据库,从段上删除master讑֤
sp_dropsegment "default",tempdb,master
sp_dropsegment logsegment,tempdb,master
4)发出如下命oQ检查defaultD中是否不再包含master讑֤
     select dbid,name,segmap from sysusages,sysdevices
where sysdevices.low<=syusages.size+vstart
and sysdevices.high>;=sysusages.size+vstart-1
and dbid=2
and(status=2 or status=3)
说明Q若时数据库攑֜多个盘讑֤上,可以更好的利用ƈ行查询特性来提高查询性能?br />W二步:时数据库与高速缓冲进行绑定?br />  ׃临时表的创徏、用,临时数据库会频繁C用数据缓存,所以应Z时数据库创徏高速缓存,从而可以其常d存ƈ有助于分散I/OQ?br />1、创建命名高速缓?br />sp_cacheconfig “tempdb_cache","10m","mixed"
2、重新启动server
3、捆l时数据库到tempdb_cache高速缓?br />sp_bindcache “tempdb_cache", tempdb
4、若有大的I/OQ配|内存池
W三步:优化临时?br />   大多C时表的用是单的Q很需要优化。但需要对临时表进行复杂的讉K?br />应通过使用多个q程或批处理来把表的创徏和烦引分开。以下两U技术可以改善时表的优?br />slash;         在时表上创建烦?br />1Q  时表必须存在
2Q  统计页必须存在Q即不能在空表上创徏索引Q?br />slash;         把对临时表的复杂的用分散到多个批处理或q程中,以便Z化器提供信息
下面的这个过E需要进行优化:
create proc base_proc
as
select * into #huge_result from auths
select * from article, #huge_result where article.author_code=
#huge_result.author_code and sex="0"
使用两个q程可以得到更好的性能
1Qcreate proc base_proc
as
select *
into #huge_result
from auths
exec select_proc
2)  create proc select_proc
     as
select *       from article,#huge_result
where  article.author_code=#huge_result.author_code and sex="0"
说明Q在同一个存储过E或批处理中Q创建ƈ使用一个表Ӟ查询优化器无法决定这个表的大?br />l论Q通过本实验我们知道,临时数据库经q优化可以极大的提高pȝ性能。实际工作中Q必考虑具体应用的情况,需长时间经验的U篏?br />
11) 怎样利用脚本自动关闭sybase数据库 
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1484&show=180
不知你什么^収ͼ如果是unix,ksh
#!/bin/ksh
LOGIN="`whoami`"
if [ "${LOGIN}" != "sybase" ]; then
echo "`basename $0`: You should login as 'sybase'\n"
exit 0
fi
echo "\n\n"
{
isql -Usa -P -Syourservername >; /dev/null 2>;&1 <<ISQL
use master
go
shutdown SYB_BACKUP
go
shutdown
go
ISQL
}

12) h存储q程动态用表 
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1488&show=180
你指动态sql
?2.0版本以上才支?br />CREATE PROCEDURE dbo.mytt
(@c varchar(25))  
AS
  BEGIN
declare @cc varchar(25)
select @cc = "select * from " + @c
exec (@cc)
  END

13) sybase中的跨库操作
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1489&show=150
假如本机server为loc_server,q程server为re_server
在这两个server 各自的interface文g里都必须有定?br />sp_configure "allow remote access"是否?;

在本机server上:
sp_addserver re_server
sp_addserver loc_server,LOCAL --->;q样你select @@servername有东西
在remote server 上:
sp_addserver loc_server
sp_addserver re_server,LOCAL
?个server ?br />sp_addremotelogin ......
查这两个参数
number of remote sites
number of remote connections .
然后Q?br />如果isql从loc_server 到rs_server
connect to rs_server
disconnect
rs_server...sp_who在loc_server上执行rs_server 上的sp_who
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1560&start=15&show=90
q里l你提供一这斚w的资料:
如何实现两个Sybase Adaptive Server之间的数据通信
在进行以Sybase作ؓ后台数据库的MISpȝ开发时Q经怼到需要在两个Sybase Adaptive Server之间q行数据通信的问题。要解决q一问题通常׃cL法:其一便是在前台来做;q种Ҏ一般是通过建立多个事务Q分别连接到不同的ServerQ在应用E序中通过~程实现数据的交换。这U方法的~点在于可维护性差Q还有一Ҏ׃需要多个事务肯定也会媄响效率。另外一cL法就是利用Sybase 的Transact SQL在后台来做。这cL法把数据的通信工作交给了SQL服务器自己去做。这U方法显而易见的一U有点便是可l护性好Q当业务发生变化或服务器讄改变时可以很修改大部分情况是不用修改应用程序。下面D一个简单的例子来介l一下如何利用Transact SQL在后台实现SQL服务器之间的数据通信?
---- 假设有两台操作系l都是Windows NT的Sybase SQL服务器LocalServer、RemoteServerQ两者能够相互访问即应是通过|络相连的;在LocalServer和RemoteServer上分别有数据库LS_database和RS_databaseQ在数据库LS_database和RS_database里分别有表LS_table和RS_table?
---- 假设现在业务规则是当LS_table更新旉要更新RS_table?
---- 要实现这U业务逻辑首先需要在RemoteServer的RS_database里徏立至一个带参数的存储过E设为pro_upd_rstQ用来更新RS_tableQ其ơ需要在表LS_table上徏立三个触发器Q设为update_rst、delete_rst和insert_rstQ在q些触发器中调用RS_database中的存储q程。即采用触发器传递参数进行远E存储过E调?Remote Procedure Calls)的技术来实现。当LS_table发生更新时触发器update_rst、delete_rst和insert_rst中有一个会被触发,通过临时表inserted和deleted能够得到更新的信息,赋给相应变量Q传递参数给pro_upd_rstq调用之?
---- 需要提到的一ҎSybase数据库的~省安装q没有设|RPCQ所以还要对LocalServerq行一些设|工作,q一Ҏ较有必要其是对于初学者来说。这些设|工作主要有以下几点Q?
q行LocalServer接口E序理器Dseditd一个ServerQServer Name讄?RemoteServer"(可以是其他字W串)Q编辑Server AddressQ添加网l协议和端口P通常选择TCP/IP协议QNetwork Address 设ؓ"RemoteServer,5000"Q其中RemoteServerQ这里指的是该服务器在网l中的机器名Q可以用其IP地址来代ѝ试一试能否Ping通RemoteServer。Ping通后q行下面的工作?
在LocalServerd一个远E服务器Q可以通过q行LocalServer的Sybase CentralQ打开LocalServer?remote servers"文g夹,双击"Add Remote Server"Q在~辑框内输入一个字W串设ؓ"Remote_Local"(注意区分大小?Q在下面的下拉列表框中选择"RemoteServer"Q这是第1步中的Server NameQ,点击下一步后在列表框中选择"sql_server"完成?
重新讄LocalServer一些与RPC有关的参敎ͼ也可以通过Sybase Central。右键点击LocalServerQ单击谈单的"configure"Q在下拉列表框种选择"Component Integration Services"Q注意下面的两个参数"cis rpc handling" ?"enable cis"Q这两个参数的缺省值都?0"Q应该把它们都改?1"。由?enable cis"是静态参数所以修改后需要重h据库才能生效。最后最好检查一下RemoteServer?enable remote access"参数的值是否ؓ"1"(~省情况应该?1"否则改ؓ"1"?
---- 其中W?步可以通过~辑接口文gsql.iniQ在Sybase根目录的"ini"子目录下Q来代替Q打开sql.ini在最后加入如下三行:
[RemoteServer] master=TCP,RemoteServer,5000 query= TCP,RemoteServer,5000
        保存q关闭?
---- W??步可以通过pȝ存储q程"sp_configure"来代替,在SQL Advantage或isql中执行下列语句:
sp_addserver Remote_Local,null,RemoteServer
        go sp_configure "enable cis",1 go sp_configure "cis rpc handling",1
        go
---- LocalServer配置号以后应该测试一下,q行SQL Advantage或isqlq接LocalServer执行下列语句"exec Remote_Local.master.dbo.sp_help"Q再ơ强调一点其中的Remote_Local区分大小写?
---- 上面所丄只是一个简单的例子Q只能在LocalServer上调用RemoteServer上的存储q程Q若要在RemoteServer调用上LocalServer上的存储q程则要在RemoteServerq行同样的设|?dRemote Server、重新配|RemoteServer的参数等)Qƈ且要保证LocalServer?enable remote access"的gؓ"1"?


14) ASE在windows xp/2000上安装的二个注意的问?br />http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1522&show=150
本hq日在Windows xp上安装Sybase ASE12.5开发版作学习之用。遇C一炚w烦,现将解决办法介绍l大家参考,如有q有cM的问题可联系我:email: learun@hotmail.com
一、ASE12.4 在XP下中文ؕ码解军_法:
  查看注册表,在键Qkey_local_machine\software\microsoft\windows NT\CurrentVersion\CurrentVerison中,可知当前pȝ版本?.1

  q入Sybase源安装目录,查看run.bat文gQ找C行:set JAVA_HOME=.\shared-1_0\jre1.2.2,
然后q入: .\shared-1_0\jre1.2.2\lib目录Q将文gfont.properties.zh.NT4.0的名U改为font.properties.zh.NT5.1卛_。如果源目录在光
盘上Q将jre1.2.2目录、run.bat文g拷到盘上,修改run.bat中的JAVA_HOME,然后q行run.bat.

安装后,Z中文的管理工具依然会出现乱吗Q按上面的方法更?sybase%\shared-1_0\jre1.2.2\lib中的font.properties.zh.NT4.0文g
名?
一些windows操作pȝ的版本号Q?
windows9898
windows nt4nt4.0
windwos 2000nt5.0
windows xpnt5.1

二、网l地址
安装q程中,需要配|sql server和sybase xp server的网l地址。在安装界面上,对网l地址没有什么说明,如果输入错了Q也没什么提
C。它其实与协议类型有养I如果是TCP协议Q它的构成ؓQ机器名Q或IP地址Q? 端口受例如:myserver,9001 。在安装后也可以?
“Dsedit"来编辑。网l地址很重要,如果错了Q服务器无法启动?
另:当启动信息中含有Qin module 'e:\rel12501\porttree\svr\sql\generic\ksource\strmio\n_winsock.c' 。不必ؓq句话迷惑,q是
SybaseE序的硬~码输出Q与你的E盘有无此文g无关?
15) 关于数据库锁
http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1118&show=120
SYBASE 11.9以上的版本提供行U锁?br />锁类型选择的确是sybase数据库设计的一个需要重要考虑的问题!见大家讨论的如此火热Q特上点q材支持一把,来点关于lock的借介l性资料!

所支持的加锁机?
2.1 全页加锁
  全页加锁既是一个新术语Q它又是由ASEQAdaptive Server EnterpriseQ在q去所支持的一U加锁类型。这U类型有下列Ҏ:
Ҏ有可被访问的面在页面加锁
当各U类型的面以Q何方式发生改变时Q对q些排它性的面q行加锁Q而且q种加锁机制一直保持到该事务终止;
当下一个所需的页面已l成功地获得Q对那些已经释放的的当前讉K进行共享页面加?如果采用了第三层ANSI隔离Q则把这U加锁机制保持到该事务终止ؓ?
采用旉印记QtimestampQ以定是否发生改变Q详l信息记录在事务日志中,以便在系l恢复时以向前或向后方式使用?
  q种加锁方式常常提供性能最高的解决ҎQ特别是当应用设计时已经考虑了这些特性时更是如此。但是,有一些应用系l,当发生某些活动时Q这U对整个面q行加锁的方式就可能会对pȝ性能产生有重大意义的影响。对于那些面对诸如文件系l或其它已经支持更细尺度加锁机制的数据库厂家品的一般环境而设计的应用pȝ而言Q这U情况尤其如此?
  此外Q还存在一pd问题Q它们要围绕着更加困难的条件进行工作。它们通常要采用更加具有SybaseҎ的解决Ҏ。对于商用的应用软g刉厂商而言Q对他们是一个挑战,因ؓq将要求他们必须跨越他们所支持的数据库q_Q去完成l护其原代码的工作,而这个工作有相当工作量。在q个领域的基本问题如下:
对已l按照升序值创建的非群聚性烦引的最末端叶型面存在着争议
寚w聚性烦引的表进行插入和查询时可能发生死锁;
在按照群聚性的索引D行更新和寚w聚性烦引的表进行查询访问之间可能发生死锁;
在没有作索引的表的最后一行可能发生冲H?管Ҏ后的特定地址可以使用分区) Q?
有可能行数很少的表之间发生潜在的冲H?管对特定的地址可以使用填充因子[ fillfactors]和每|大行数[ max_rows_per_page]q两个参?
Ҏ个页面两边进行加锁的需要常常被分割开来;
如果一个表特别,以致在一个单一面中进行驻留,那么对单一行的讉K实际上将破坏Ҏ个表的加锁机制?
2.2 仅对数据加锁
  仅对数据加锁机制试图去解x文前一节所x的主要问?其他的议题将在其它功能领域中加以解决)。这U加锁方式支持两cM同的工作方式Q?数据行加锁和数据加锁。在q两U情况中Q对于它们所支持的加锁方式,都与以前的加锁机制有所不同。仅Ҏ据加锁具有下列特性:
在烦引页面中不会破坏事务加锁。相反,而是采用了一U称之ؓ锁存的机制。锁存是一U类g旋{锁(spinlocksQ的同步ҎQ它们与事务无关q且只保留很短的周期Q一般而言Q当一个Q务在数据库中物理上改变一片数据Ӟq个周期相当于在׃n存贮Z在一?K的页面改变某些字节数据的旉Q一旦完成之后,q个d直接打开q个锁存。当q种情况q可能时同其它l块?Q因U锁存不能对服务器Q务进行有上下文的切换Q也不能涉及死锁Qƈ且只能保持主要的一段旉Q所以它们不能生有显著意义的争用?
采用一个RID对单一行进行数据行加锁(行标识[RID----Row ID]是逻辑号与所在页面上该行Ll合)Q?
支持固定的行标识 RIDs, 它可以是向前的,允许不进行其RID的改变,完成数据行的移动。当一行变大超q了它的可用I间Ӟ采用上述l果寚w聚索引不需要进行Q何改变?
不需要进行Q何争用就可以在表的尾部进行插入操作,q一功能已经增加q来?
支持采用范围加锁、下一个关键字加锁和无限大加锁{方式对逻辑范围D行加?
支持由最层操作所D的页面分剌Ӏ这些情늛接加以提交,"pȝ"事务可以D在更短一点的旉周期里保持分裂的面处于锁定状态?
  Z支持q些变化Q需要对采用的存贮表l构q行一pd改善。这些改q的主要效果如下Q?
聚索引现在被存贮ؓ象许多h所熟悉的IBM DB2产品所采用?攄索引"Q?placement indexes."Q方式。这U结构类g非群聚性的索引Q需要类似的I间总量。这U修正的l构D了在数据初始存贮时可以按照顺序跨数据进行存储,但是当发生插入时Q它们就要尽可能紧密存放以便在正的逻辑面中不存在面分割。此外,在数据页中的数据序在新行增加时是不q行l护整理的。这U烦引的应用使每个群聚化的烦引周游增加了一ơI/O操作?
行位U表已经增加到烦引页和数据页中。这U增加和新的行烦引行存贮格式h使每个烦引页面所存贮的烦引条目个数减的潜在能力?
固定行标识(RIDSQ。当一行移动时Q对于分配新行位|的向前地址被放在用于驻留该行的位置上。当q种Ud需要改变非聚性烦引时Q对该行的访问需要增加一ơI/O操作以得?向前'的位|?
一般而言Q烦引将更小和更短,q是因ؓ如下原因Q?
从每个叶U页面中采用双重键限制机制来限制双重键(Duplicate keyQ例如,如果?l?Q?GREEN"Q在下列行标识(RIDsQ值等?23-1Q?34-2Q和345-3的行? 分别存贮值“绿”("GREEN"Q,123-1Q?34-2Q?45-3Q而不是存贮?l?Q?GREEN,"Q三ơ。在每个索引中每个值只存贮一ơ?
在非聚性烦引树的非叶型l点中将后缀实行压羃(例如Q如果键值是"GREEN"?HAMILTON"Q而在q两个g间发生分裂,那么在非页U烦引页面中存储"G"?H"?br />2.3 数据和数据行加?
  只对数据加锁机制支持两种方式Q数据页加锁和数据行加锁。这些与它们的工作方式和所提供的功能相cM。这两种方式仅在Ҏ据访问生阻作用时Q在加锁的尺度上有所区别。在数据加锁方式下再采用数据行加锁方式h两种作用Q一Uv正向作用Q另一Uv反向作用Q。首先,较小度加锁机制的用可能导致减争用与冲突Q然而当大量数据发生变化Ӟ有可能对加锁生大量阻的情况发生?
2.4 特定使用的加锁类?
  除非寚w|参数加以特定,Ҏ有的表都予置了隐含的全页面加锁机制?
sp_configure 'lock scheme', [allpages | datapages | datarows]
  当数据库从原先版本的服务器中转储出来重新加蝲Ӟ所有的表都被定义ؓ全页面加锁的表。当建立一个新表时Q可以不使用q个~省|可采用如下的句法格式Q?
create table <tablename>;?lock [allpages | datapages | datarows]
  Z在用的一个表中改变加锁类型,可以采用如下的句法格式:
alter table <tablename>; lock [allpages | datapages | datarows]
  在一个现存的表中改变加锁方式Q将引v下列三种行动后果发生Q?
首先Q如果一张表从全加锁{变ؓ仅对数据加锁Q或者从仅对数据加锁转变为全加锁,在这两种cd之间p对表q行选择以允许进行存贮格式改变。如果这是一个分Q就要同时假定必要的q行U别和工作线E已l配|好的情况下Q才能执行?
其次, 对表中的聚性烦引必重新创建。因为我们能保证数据Q所以如果从全页加锁方式转换为只Ҏ据加锁时Q这U重新创建可以通过"with sorted_data"来完成。然而,当从仅对数据加锁机制转换为全加锁方式时Q就要进行ƈ行的索引创徏操作。(h意:如果q是一个分Ӟ那么q行{和工作线E的数目必须加以配置才能允许q行q种改变Q否则这U迁Ud会失败)
最后,非群聚性的索引被重徏Q如果服务器已经为ƈ行处理所加以配置Q当q行本步骤时加以采用?
  ׃q些zd同潜在的工作量有养I从全加锁机制改变ؓ仅对数据加锁或从仅对数据加锁改变为全加锁机刉可能是耗费旉的活动。ؓ了标注这一点,有以下一些选择Q?
如果可能的话Q应该配|用ƈ行方式。这臛_Ҏ行非聚性烦引的哈斯Q杂凑,即hashedQ创建方法是必须的,但是如果可能的话Q采用分和分区扫描将使系l得到更大的改进?
在选择q入和创建群聚性的索引之后Q该d被讄查点Qcheckpointed Q所以,如果有充分的g资源Q通过允许在Q何一个时间点上,查点d可以h多于10个(pȝ~省|的异步I/OhQ利用dbccq行调谐能够带来有益的效果?'maxwritedes', number)
q一步作为降低用检查点成本的一U方法,在相关的高速缓冲池Qcache poolQ、大数据量的I/O操作中,采用寚w淘汰E度q行标记的方法,q允许清z程序(好象家庭d一P保持特别z跃的状态,ؓ那些查点需要从高速缓冲池中刷新较"?的页面的而增加的I/O操作ơ数Qƈ因此p了在查点上的旉Q都能够大大减少作出贡献?
如果预先q行了配|,则可以对q行的选择q入可以使用预先分配的盘区。所以,通过sp_configure number of pre-allocated extents讄?6也将对系l性能有明昄U极的效果?
  备注Q在仅对数据加锁cd之间q行改变不需要对数据q行备䆾Q?而且执行h只需很短的一D|间?
[以上为摘自sybase公司站点上的资料]
据我个h使用l验Q我觉得对于q行性较高的应用要充分考虑使用行锁,q样对于提高q发性能臛_重要Q当Ӟ事务都存在利弊两斚wQ用行U锁Q也会带来一些相应的弊端Q比如用的锁越多,占用的内存也多Q在使用行锁的表上频繁的进行数据删除、插入操作久而久之会造成数据库碎片的大量生成Q数据库性能会下降,q就需要定时进行reorg操作Q但该操作比较耗时Q且影响业务Q?br />16) 请问Q怎样讄自动清log,和temp的阀|
  http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1507&show=120

一般我们可以ؓ某段讄多个阀|但只需在达到最后机会阀值时作些I间清理的操?
W一步,在你的数据库中设|阀|q指定达到阀值后的处理过E:
查看当前数据库某D늚最后机会阀|
sp_helpthreshold "default"
或者察看其他段的信息?br />修改某段的最后机会阀|
sp_modifythreshold 数据库名,D名,自由I间?[新过E名[,新自q间名[,新段名]]]
sp_modifythreshold mydb,"default",200,NULL,175
最后机会阀值由200调整到175c?br />具体其他操作Q可以参考相x册!
W二步,~写阀值处理过E:
create procedure sp_thresholdaction
               @dbname varchar(30),
               @segmentname varchar(30),
        @space_left int,
    @status int
as
       declare @SpaceLeft varchar(20),
               @Status varchar(20)
       select @SpaceLeft=str(@space_left,6,0)
       select @Status=str(@status,6,0)
       print "Log is dumpped('Q?!' for 'Q?!',SpaceLeft:'%3!',Status:'%4)',
       and is dumped.",@segmentname,@dbname,@SpaceLeft,@Status
       dump transaction tempdb to with truncate_only
return

不过Q我q是不徏议用最后机会阀值来q行自动l护?



17〉sybase 相关产品的中文显C问题:
问:
安装Sybase ASE 12.5Ӟ如果是中文字W的话,昄Ҏ字符的ؕ码,因ؓ安装E序使用java制作Q可能与什么有养I我不太懂Q?
{: 安装前将安装文g中此路径下的Qshared-1_0\jre1.2.2\lib\font.properties.zh.NT4.0->;改ؓ\shared-1_0\jre1.2.2\lib\font.properties.zh.NT5.0
试一下!
我的正版12.5没有出现q个问题Q估计你的SYBASE12.5没有打包JRE吧!
补充说明Q类似情况在安装 ASEQQ 和 sybase 客户端时视不同操作系l和机器都可能存在这个问题,出现q种情况Q就得考虑打补丁或修改jre名字?br />1 如何恢复受损的master数据?br />  本实验描qC如何在master数据库毁坏的情况下,如何重徏主设备,恢复master数据库,得以重新恢复pȝ?

q里假定Q?

l Master数据库已损坏Q或主设备已损坏?

l有系l表的最新打印输出?

l主设备只包括master数据库、tempdb和model

l有master数据库的最新备份,且上ơ{储master数据库后没有初始化Q何设备或创徏、变更Q何数据库?

关于恢复q程

l主讑֤重徏为第一ơ安装服务器时的~省状态;

lmaster数据库恢复ؓ~省状态;

lmaster数据库恢复ؓ上次备䆾时的状态;

注意Q在恢复master数据库的早期阶段Q不能用系l存储过E?

恢复步骤

步骤1Q查扄l表

查找已保存到文g的系l表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用q些副本可以保证在此q程l束时系l已l全部恢复?

步骤2Q徏立新的主讑֤

如果Adaptive Server正在q行Q关闭它Q然后重Z讑֤。重Z讑֤Ӟ必须指定讑֤大小。开始重建前Q记住以下几点:

l保留旧设备,以防遇到问题Q旧讑֤可提供至关重要的信息?

l使用buildmaster命o之前应关闭Adaptive Server?

l不同操作pȝ上创Z讑֤的命令有所不同Q如QbuildmastQunixQ、bldmasterQwindows NTQ,q安装通用master数据库的副本?

l命o中给Z讑֤的全名和大小?

CZQ重Z?0兆(15360?k的页Q?

在Window NT上:

bldmastr Qd d:\devices\master.dat –s15360

步骤3Q以L复方式启动Adaptive Server

使用-m选项以主恢复方式启动Adaptive Server。在Window NT上,使用sqlsrvr命o从命令行启动Aadaptive Server?

Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\sybase –m

说明Q以L复方式启动Adaptive ServerӞ只允怸个用Ppȝ理员)d?

步骤4Q重建master的设备分?

查sysusagespȝ表的书面副本Q如果有多行dbidQ?的记录,则需要增加master的大以便装载{储。最单情况下Q对masterq行额外分配只需要用alter database卛_。复杂情况,必须为其它数据库分配I间Q以侉K新构造恢复master所需的正的vstart倹{?

CZQ?


alter datbase master on master=2

步骤5Q检查Backup Server和sysserverspȝ表信息?

使用I口令以“sa“用L录服务器Q如果Backup Server的网l名不是SYB_BACKUPQ则必须更新sysservers以便Adaptive Server可以与其Backup Server通信Q?

l查interfaces文g中Backup Server的名Uͼ

lq发Z面的命oQ?

select * from sysservers

where srvname=”SYB_BACKUP?

l查此命o中输出结果的srvnetname。是否与服务器的backup Server的interfaces文g条目匚wQ若匚w跌步骤5Q?

l如不同,则必L新sysservers

CZQ?

begin tranaction

updata sysserver

set srvnetname=”backupserver_name?

where srvname=”SYB_BACKUP?

l核实该命令,如果updata修改了多行,或者修改了不应修改的行Q则发出rollback tranaction命oQ然后尝试再ơ更新?

如果该命令正修改了Backup Server的行Q则发出commit transaction命o?

步骤6Q核实Backup Server正在q行

Window NTq_上,本地安装的Sybase Central和服务管理器可以昄Backup Server是否正在q行?

步骤7Q装载master数据库的备䆾

在Window NT上:

load database master from “d:\device\master.bck?

在load database成功完成后,Adaptive Server关闭?

步骤8Q更新number of devices配置参数

仅当使用的数据库讑֤比缺省值多时才执行此步骤?

步骤9Q以L复方式方式重新启动Adaptive Server

Sqlsrvr.exe –d:\devices\master.dat –sserver_name –ed:\sybase\install\errorlog –id:\sybase\ini –MD:\sybase –m

注意Q装载master的备份将低쀜sa”帐h复到以前的状态。如果sa帐号有口令,则口令恢复?

步骤10Q检查系l表以检验master的当前备?

l如果发出最新的disk init、create database或alter database命o以后已备份了master数据库,则sysusages、sysdatabases、和sysdevice的内容将与书面副本匹配?

l如果副本中的M讑֤未包含在已恢复的sysdevices中,则上ơ备份以后已d了设备,必须q行disk reinit和disk refit?

步骤11Q重新启动Adaptive Server

以常规(多用P模式重新启动Adaptive Server

步骤12Q检查Adaptive server

lsysusages的书面副本与新联机版本比?

lsysdatabase的书面副本与新联机版本比?

l在每个数据库上运行dbcc checkalloc

l查每个数据库中重要的?

完全恢复master数据库ƈq行全部的dbcc完整性检查后Q用常规{储命令备份此数据库?/font>

水煮三国 2006-09-28 10:09 发表评论
]]>
׃南?5个理?/title><link>http://www.tkk7.com/os586/archive/2006/09/22/71318.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Fri, 22 Sep 2006 06:43:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/22/71318.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/71318.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/22/71318.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/71318.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/71318.html</trackback:ping><description><![CDATA[ <h4>从网上{载的Q嘿~我稍微修改了一下,U色标注的是我特别认同和赞可的~<br /><br />1?font color="#ff0000">南是全国最安全的城市,q箋Nq全国犯|率最低的城市?/font><br />2、济南有全国最大的镉K汽车站Q去哪里玩都有豪华大巴坐?<br />3、济南的烤肉串品U最全,说几十种都没重样的?<br />4、济南的男h好,保守而体_女作家ȝ说济南男人是有着温暖阛_味道的老棉袄?<br />5?font color="#ff0000">南女h好,巩俐是济南的名片Q但是把巩俐扔到南女里都不扎|说明南出美奟?/font><br />6?font color="#ff0000"><strong>南有鲁能泰山,可以让h在每个周末感受狂喜!</strong></font> <br />7、济南有扎啤Q走三步有一个扎啤摊Q连某些同志的网名都叫我爱喝扎啤?<br />8?font color="#ff0000">南的出UR便宜Q你在城里再怎么折腾也就?0来块钱?/font><br />9、济南出UR与h口的比例全国W一Q除了下雨,qx你一招手Q基本上能招?辆R?<br />10、济南出UR堵R的时候不跌Q不会象北京Q堵车的时候表跳的人心脏病发作?<br />11、济南有泉城q场Q网友见面很ҎU地方,你在泉标下面?分钟Q一定有Z来问你是不是忧郁的小宣宣?<br />12、济南的房租便宜Q?00块钱pU到一室一厅?<br />13、济南刚刚被评ؓ中国十大安静城市之一?<br />14?font color="#ff0000">南是个安逸的城市Q在南的\上你很少看见人在跑,大家都是悠然自得的安逸心?/font>?<br />15、济南的|吧可以玩CSQ在很多地方q都是不可能的?<br />16、星U酒店的巴西烤肉32元一位,外地人听了都瞪眼?<br />17、济南h不歧视外ChQ不觉得别h都是乡下人或者觉得别人都是自己部下?<br />18?font color="#ff0000">南q个城市有h情味Q没那么多商业气息?/font><br />19、济南值得一逛的地方都比较集中,而且商业街都不是很长Q陪x友逛街不会累死?<br />20、晚上可以去灰姑娘,花钱不多Q可以听歌可以蹦q还可以去静吧谈生意?<br />21、济南的街道横^竖直Q基本上不会掉向?<br />22、济南有z口市场Q再IL男h也敢带女朋友来买衣服?<br />23、济南有免费的植物园Q环境优,大大降低了恋爱成本?<br />24?font color="#ff0000">南人家庭观늉别强Q大部分南人宁愿呆在济南,ȝ母近一些,以照老h?/font><br />25、去体育中心游泳馆游泳经常能看到C和郭晶晶Q因为国家蟩水队镉K南训练?<br />26、济南的宽带|比较发达,竞争Ȁ烈,癄q电|通联通,南人接宽带的选择最多,宽带普及也相当高?<br />27、济南h的环保意识强Q很多家庭已l开始将废水二次利用了,南人盼望泉水复涌的热情和关注,过了Q何一个城市的居民对自己城市的x?<br />28、济南的开发区里R\宽,刚学出本的菜鸟可以去lR技?<br />29、济南的文化市场Q你可以买到各种真的或者假的怀旧的东东?<br />30?font color="#ff0000">老舍_南的冬天,天是响晴的,因ؓ南的冬天,所以喜Ƣ济?/font>?<br />31、济南的药是最的花。花,花香Q花下的莲藕同样惹h喜爱?<br />32、周末可以去爬山(大佛_Z山,华不住山Q浆水泉...)Q去锦云?挑战极限"。到舜花园顶层打毛球,壁球Q游泻I健n...想一展歌喉可以到"东方之韵""阿米?"q福时光""mbox"...随便你挑?<br />33、济南的交警长的帅又有礼貌~ q了路可以放心的把自己托付给他?<br />34?font color="#ff0000">南的饭店很多,其是有特色的小店很多,总能扑ֈ适合自己口味的?/font><br />35、济南的咖啡吧、酒吧有很多Qh׃不高Q自己去坐坐Q或U上几个好朋友去聊聊天,好不惬意?</h4> <img src ="http://www.tkk7.com/os586/aggbug/71318.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-22 14:43 <a href="http://www.tkk7.com/os586/archive/2006/09/22/71318.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase 修改字符集及 Sorthttp://www.tkk7.com/os586/archive/2006/09/22/71314.html水煮三国水煮三国Fri, 22 Sep 2006 06:17:00 GMThttp://www.tkk7.com/os586/archive/2006/09/22/71314.htmlhttp://www.tkk7.com/os586/comments/71314.htmlhttp://www.tkk7.com/os586/archive/2006/09/22/71314.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/71314.htmlhttp://www.tkk7.com/os586/services/trackbacks/71314.html今天同事因ؓ有一个项目中用到了Sybase数据?其中他机子上的sybae?2.5,安装后一切都是默认的.没有对字W集及sortq行更改.

然后在命令窗口中q行sql查询的时候显C的全是q.

而发现这个还是在后面?是因Z在webE序中给我看,然后把一切有兌|tomcat,jsp字符集的问题全都q行更改q是无补.只好打开数据库进行分?呵呵,蒙了,通过脚本建立h的全是ؕ?br />


但是全套E序UL到我的机器上来却能够正常昄,没有q.我现在明白了,是他的数据库字符集的问题.

Sybase数据库字W集的设|如?



 在sybase安装目录下面的charsets下执行charset -Usa -P -Sservername binary.srt iso_1

然后选择y卛_.

接下来可以用select id,name from syscharsets,

看一下iso_1的id?br />
然后q行sp_configure "defualt character set id",1

因ؓiso_1的id?

q样字符集就讄完成,可以正常昄中文?

然后你可以再讄一下sort,q个比较?

在config server当中选择language>default sort>Spanish case and accent insensitive dictionary order,然后保存,重启服务.可能不会成功,不过你可以启动一下机子就可以完成?




水煮三国 2006-09-22 14:17 发表评论
]]>
?Oracle9i与SYBASE ASE12.5相比的几个不?/title><link>http://www.tkk7.com/os586/archive/2006/09/20/70745.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Wed, 20 Sep 2006 03:51:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/20/70745.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/70745.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/20/70745.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/70745.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/70745.html</trackback:ping><description><![CDATA[Oracle9i与ASE12.5分别是世界主数据库厂商ORACLE、SYBASE公司的主打品,拥有相当大的市场份额。本文抛开两者之间在体系l构、技术\U上的差异,Ua从用者的角度出发Q整理了Oracle9i与SYBASE Adaptive Server Enterprise 12.5 (UASE12.5)相比的几个不I至于ASE12.5与Oracle9i相比的不_不在本文的讨围?br /><br />1 不支持正则表辑ּQ熟悉Unix/Linux及ASE12.0/12.5的h都知道正则表辑ּ的灵zR功能强大。像“查找所有包含数字的表名U”这L需求,在ASE12.5中极其简单:<br /><br />select name from sysobjects where type=”U?and name like ?[0-9]%?(q里sysobjects相当于Oracle9i中的all_objects)Q而Oracle9i的实现要颇费一番周折了Q一般情况下很多人都是写一个函数实玎ͼ以下是刚学Oracle的时候写的一个实现该功能的函敎ͼ<br /><br />CREATE OR REPLACE function is_number(p_str in varchar2)<br /><br />return number<br /><br />as<br /><br />  w_char char(1);<br /><br />  i      number :=1;<br /><br />begin<br /><br />  while  i <= length(p_str) loop<br /><br />       w_char := substr(p_str,i,1);<br /><br />       if w_char >='0' and w_char <='9' then<br /><br />          return 1;<br /><br />       end if;<br /><br />    i:=i+1;<br /><br />    end loop;<br /><br />  return 0;<br /><br />end;<br /><br />/<br /><br />在Oracle9i调用一个自定义的PL/SQL函数开销会很大;q不及ASE12.5的内部实现?br /><br />2  UPDATE语句的“蹩脚?在数据库的应用中Q两个表兌update是很常见的,如有如下两个表:t_a(id,name,point,?,t_b(id,point,? id均ؓ主键或unique index,现要实现Ҏid的对应关pdt_b表上point加至t_a表point。我们来看Oracle9i与ASE12.5的实?<br /><br />/** For Oracle9i **/<br /><br />Update t_a a<br /><br />Set   a.point=a.point+(select b.point from t_b b where b.id=a.id)<br /><br />Where exists (select 1 from from t_ b where b.id=a.id)<br /><br />/<br /><br />/** For ASE12.0/12.5 **/<br /><br />Update t_a <br /><br />Set    point=a.point+b.point<br /><br />From  t_a a,t_b b<br /><br />Where  a.id=b.id<br /><br />Go<br /><br />Oracle9i的语句似乎不清晰、容易误解,而且查看执行计划发现t_b表或索引扫描?遍!ASE12.5只扫描了1遍。虽然第2遍是逻辑读,但总觉得不甘心Q?br /><br />有时如果t_b表较,且id上无索引Q我宁愿采用cursor方式Q多ơ试验表?br /><br />比Create INDEX+兌UPDATE要快得多。还有就是采用Oracle9i的OLAPҎ,用merge 语句来完成?br /><br />3临时表技术的比较Q?br /><br /> <br /><br />ITEM<br /><br />存储位置<br /><br />DDL<br /><br />数据生命周期<br /><br />ORACLE9i<br /><br />M表空?br /><br />用户自己l护,表名是全局Q数据库用户Q唯一<br /><br />Session / Transaction<br /><br />ASE12.5<br /><br />Tempdb?br /><br />用户create;用户drop或系ldropQ表名SessionU唯一<br /><br />Session<br /><br /> <br /><br /> <br /><br /> <br /><br /> <br /><br /> <br /><br />虽然两者各有所长,但我觉得ASE12.5的实C乎更得”时”的_N—在每个会话期间Q“召之即来?不用担心与别人重名,#11 #22 #aa #bb随个人喜好创建,”挥之即厠Z? 会话l束亦不必显式删除,ql代劻I不必担心垃圾表存在?br /><br /> 4  Count的问题还是Distinct的问?在select 语句使用 distinct 关键字修Cq回唯一的行集,q在l计分析、剔除重复数据尤为重要,但是有时仅想l计一个L呢?我第一ơ是q样写的:<br /><br />Select count(distinct a,b,c) from my_table l果语法不对Q只好修改ؓQ?br /><br />Select count(*) from ( select distinct a,b,c from my_table ) 方得以通过Q心惌一定是distinct惹的,但随后发现distinct 被冤枉了Q因为即使是Q?br /><br />Select count(a,b,c) from my_table 也是不行的。只能写成:<br /><br />Select count(*) from ( select a,b,c from my_table )<br /><br />但在ASE12.5上无论是Select count(distinct a,b,c) from my_table q是Select count(a,b,c) from my_table 均能得出正确l果?br /><br />5  数据导入导出工具的比较:Exp/Imp在备份和恢复斚w用的比较多,且受版本(高低版本?2bit/64bit)、语a影响较大Q且sqlldr 只能作导入工具Q严格来说Oracle9i没有表数据的文本U的导出工具Q相反,ASE12.5的bcp 的在表数据导入导出方面的很灵z,格式也很单,很容易做应用E序的输入。还有视图、存储过E、触发器的导出工具defncopy也很好用Q至于Oracle9iQ我N+1ơ遇C下情况:<br /><br />问:我怎么得到某个存储q程的代码啊Q?br /><br />{:有没有装client阿?<br /><br />问:装了Q?br /><br />{:打开Enterprise Manager ConsoleQ登录后在方案下面找?br /><br />…?br /><br />问:怎么ȝ阿?<br /><br />{:那你有没有装Toad或者PL/Develop?q些工具好用?br /><br />问:没有啊!<br /><br />{:L<br /><br />或?<br /><br />问:我怎么得到某个存储q程的代码啊Q?br /><br />{:有没有装client阿?<br /><br />问:装了Q可我在L上啊Q?br /><br />{:那你用sqlplus看ŞQ?br /><br />set long 300<br /><br />select text from all_source where name=’YourName?br /><br />go<br /><br />问:哇,怎么ȝ?br /><br />{:L<br /><br />要是在ASE12.0<br /><br />问:我怎么得到某个存储q程的代码啊Q?br /><br />{:用defncopy ?br /><br />问:怎么用啊<br /><br />{:我靠Q这么简单!你还用问阿!J<br /><br />6  联机备䆾Q虽然Oracle9i提供了冷、热备䆾技?但是与ASE12.5ZOpen Server技术的联机实时备䆾Backup Server相比g逊色不少Q将备䆾的介质直接拿到另外一台ASE12.5q行LoadQ很快很单就能获得一个时效性极强的”镜像”数据库环境。而我觉得Exp/Imp比较琐碎Q且限制也较多?br /><br />Oracle9i附带的命令行工具如sqlplus exp/imp sqlldr{,执行时无一例外都将输出旉、版本、版权信息,l像我这样喜Ƣ用shell处理l果的h来说徒增不少ȝQ相比ASE12.5的isql bcp defncopy 的干净利落Q是Oracle9i的无聊和”自恋”,q是埃里克森的霸气呢?<img src ="http://www.tkk7.com/os586/aggbug/70745.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-20 11:51 <a href="http://www.tkk7.com/os586/archive/2006/09/20/70745.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase 数据库的优化http://www.tkk7.com/os586/archive/2006/09/20/70742.html水煮三国水煮三国Wed, 20 Sep 2006 03:44:00 GMThttp://www.tkk7.com/os586/archive/2006/09/20/70742.htmlhttp://www.tkk7.com/os586/comments/70742.htmlhttp://www.tkk7.com/os586/archive/2006/09/20/70742.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/70742.htmlhttp://www.tkk7.com/os586/services/trackbacks/70742.html一. SYBASE pȝ参数调整
1.内存
sp_configure "max memory",1500000 重启生效Q设|ؓ׃n内存?5%Q?br />sp_configure "allocate max shared mem",1 启动的时候自动分配max memory指定的最大内?br />sp_cacheconfig "default data cache","1500m" 讄数据~存Q设|ؓmax memory的一半)
sp_cacheconfig "default data cache","cache_partition=2" 是CPU数量的倍数,Ҏ据缓冲区分区
sp_poolconfig "default data cache","64m","16k" 讄16K 数据~存
sp_poolconfig "default data cache","128m","8k" 讄8K 数据~存
sp_configure "procedure cache size",90000 存储q程数据~存

2.cpu
sp_configure "max online engines",2 讄使用的CPU数量
sp_configure "number of engines at startup",2 启动时用CPU数量

3. |络
sp_configure "default network packet size",2048 讄|络传送包的大?重启动生?
sp_configure "max network packet size",2048

4. 其他资源使用
sp_configure "number of locks",100000 锁用数?br />sp_configure "number of open indexes",5000 打开索引
sp_configure "number of open objects",5000 打开对象
sp_configure "number of user connections",1000 用户q接?br />sp_configure "number of device",100 新徏讑֤最大数?/p>


? sybase 讑֤调整

数据讑֤与日志设备必d开Q添加时数据库讑֤

1. 数据讑֤
sp_deviceattr devname,"dsync",true
2. 日志讑֤
sp_deviceattr devname,"dsync",false
3. 临时数据库设?br />sp_deviceattr devname,"dsync",false


? sybase 数据l构调整

1. 数据库对象表、烦引。?br />(1)对表新徏合理的烦引,定期分析?br />update statistics tabname (不锁?
(2)整理数据库空?(锁表Q剩余空间必Mؓ最大表?.2?
reorg rebuild tabname
recreate clustered index
(3)重新~译存储q程与触发器
sp_recompile usertable (与表相关联的存储q程和触发器)


? sybase 数据库监?/p>

1. 数据库死q程
select * from master..syslogshold


? sybase 数据库启动参?/p>

-T3607 master
-T3608 其他数据
-m ?/p>

水煮三国 2006-09-20 11:44 发表评论
]]>
Sybase 数据库的一些常?函数 ȝhttp://www.tkk7.com/os586/archive/2006/09/20/70740.html水煮三国水煮三国Wed, 20 Sep 2006 03:43:00 GMThttp://www.tkk7.com/os586/archive/2006/09/20/70740.htmlhttp://www.tkk7.com/os586/comments/70740.htmlhttp://www.tkk7.com/os586/archive/2006/09/20/70740.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/70740.htmlhttp://www.tkk7.com/os586/services/trackbacks/70740.html

一.字符操作

1.替换指定字符

str_replace(string1,需要替换字W,替换成字W?

SUBSTRING(string1,,)

?数值操?/p>

?日期操作

getdate()
得到当前旉,可以讄得到各种旉格式.
datepart(日期部分,日期)
取指定时间的某一个部?q月天时分秒.
datediff(日期部分,日期1,日期2)
计算指定的日?和日?的时间差多少.
dateadd(日期部分,数D辑ּ,日期)
计算指定旉,再加上表辑ּ指定的时间长?

--取前几天

'dataadd(day,-10,getdate())'

--取时间的某一个部?
select datepart(yy,getdate()) --year
select datepart(mm,getdate()) --month
select datepart(dd,getdate()) --day
select datepart(hh,getdate()) --hour
select datepart(mi,getdate()) --min
select datepart(ss,getdate()) --sec

--取星期几


set datefirst 1
select datepart(weekday,getdate()) --weekday

--字符串时?

select getdate() -- '03/11/12'
select convert(char,getdate(),101) -- '09/27/2003'
select convert(char,getdate(),102) -- '2003.11.12'
select convert(char,getdate(),103) -- '27/09/2003'
select convert(char,getdate(),104) -- '27.09.2003'
select convert(char,getdate(),105) -- '27-09-2003'
select convert(char,getdate(),106) -- '27 Sep 2003'
select convert(char,getdate(),107) --'Sep 27, 2003'
select convert(char,getdate(),108) --'11:16:06'
select convert(char,getdate(),109) --'Sep 27 2003 11:16:28:746AM'
select convert(char,getdate(),110) --'09-27-2003'
select convert(char,getdate(),111) --'2003/09/27'
select convert(char,getdate(),112) --'20030927'
select rtrim(convert(char,getdate(),102))+' '+(convert(char,getdate(),108)) -- '2003.11.12 11:03:41'

--整数旉

select convert(int,convert(char(10),getdate(),112)) -- 20031112
select datepart(hh,getdate())*10000 + datepart(mi,getdate())*100 + datepart(ss,getdate()) -- 110646

--旉格式 "YYYY.MM.DD HH:MI:SS" 转换?"YYYYMMDDHHMISS"

declare @a datetime,@tmp varchar(20),@tmp1 varchar(20)
select @a=convert(datetime,'2004.08.03 12:12:12')
select @tmp=convert(char(10),@a,112)
select @tmp
select @tmp1=convert(char(10),datepart(hh,@a)*10000 + datepart(mi,@a)*100 + datepart(ss,@a))
select @tmp1
select @tmp=@tmp+@tmp1
select @tmp

--当月最后一?

declare
@tmpstr varchar(10)
@mm int,
@premm int,
@curmmlastday varchar(10)
begin
select @mm=datepart(month,getdate())--当月
select @premm=datepart(month,dateadd(month,-1,getdate())) --上个?
if (@mm>=1 and @mm<=8)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else if (@mm>=9 and @mm<=11)
select @tmpstr=convert(char(4),datepart(year,getdate()))+'.'+convert(char(2),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
else
select @tmpstr=convert(char(4),datepart(year,dateadd(year,1,getdate())))+'.0'+convert(char(1),datepart(month,dateadd(month,1,getdate())))+'.'+'01'
select @curmmlastday=convert(char(10),dateadd(day,-1,@tmpstr),102) --当月最后一?
end



水煮三国 2006-09-20 11:43 发表评论
]]>
SQL 面试?/title><link>http://www.tkk7.com/os586/archive/2006/09/19/70463.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Tue, 19 Sep 2006 03:28:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/19/70463.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/70463.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/19/70463.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/70463.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/70463.html</trackback:ping><description><![CDATA[ <p>假设只有一个tableQ名为pagesQ有四个字段Qid, url,title,body。里面储存了很多|页Q网늚url地址Qtitle和网늚内容Q然后你用一个sql查询url匚w的排在最前,title匚w的其ơ,body匚w最后,没有M字段匚w的,不返回?br /><br />是上面q道面试题,让我想了一个下午,在网上找资料Q最后用下面Ҏ实现<br /></p> <p>SELECT *<br />FROM page where url like '%baidu%' or title like '%baidu%' or like ''<br />ORDER BY CHARINDEX('baidu', url) DESC, CHARINDEX('baidu', title) DESC, <br />      CHARINDEX('baidu', body) DESC<br /><br />但我感觉q种Ҏq不是最单的Q后来把q个Ҏ发给面试的hQ他l我了一U更单方法,只要用基本的Sql语句可以实现。代码如?br /></p> <p> <br />select a.[id],a.mark from<br />(<br />select [page].[id],100 as mark from [page] where [page].[url] like '%baidu%'<br />union<br />select [page].[id],50 as mark from [page] where [page].[title] like '%baidu%'<br />union<br />select [page].[id],10 as mark from [page] where [page].[body] like '%baidu%'<br />) as a  order by mark desc<br /><br />用union 实现联合查询Q在每个查询语句中定义一个时变量mark q给mark赋|在最后的输出旉用mark来排序,q样实现真的好简单。其实这都考验我们对Sql的编成思想?/p> <img src ="http://www.tkk7.com/os586/aggbug/70463.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-19 11:28 <a href="http://www.tkk7.com/os586/archive/2006/09/19/70463.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>贴一道SQL面试?希望大家怺讨论http://www.tkk7.com/os586/archive/2006/09/19/70436.html水煮三国水煮三国Tue, 19 Sep 2006 02:07:00 GMThttp://www.tkk7.com/os586/archive/2006/09/19/70436.htmlhttp://www.tkk7.com/os586/comments/70436.htmlhttp://www.tkk7.com/os586/archive/2006/09/19/70436.html#Feedback2http://www.tkk7.com/os586/comments/commentRss/70436.htmlhttp://www.tkk7.com/os586/services/trackbacks/70436.htmll下面这L一个表记录Q?br />
------------------------------------

购物人    ?商品名称     数量
A            甲        ?2
B            乙        ?4
C            丙        ?1
A            丁        ?2
B            丙        ?5


l出所有购入商品ؓ两种或两U以上的购物?br />



水煮三国 2006-09-19 10:07 发表评论
]]>Sybase数据库日志详?/title><link>http://www.tkk7.com/os586/archive/2006/09/11/68921.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Mon, 11 Sep 2006 03:16:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/11/68921.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/68921.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/11/68921.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/68921.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/68921.html</trackback:ping><description><![CDATA[ <p>我们知道QSYBASE SQL Server用事务(TransactionQ来跟踪所有数据库的变化。事务是SQL Server的工作单元。一个事务包含一条或多条作ؓ整体执行的T-SQL语句。每个数据库都有自己的事务日志(Transaction LogQ,即系l表QSyslogsQ。事务日志自动记录每个用户发出的每个事务。日志对于数据库的数据安全性、完整性至关重要,我们q行数据库开发和l护必须熟知日志的相关知识? </p> <p> <strong>一、SYBASE SQL Server 如何记录和读取日志信?/strong> </p> <p>SYBASE SQL Server是先记Log的机制。每当用h行将修改数据库的语句ӞSQL Server׃自动地把变化写入日志。一条语句所产生的所有变化都被记录到日志后,它们p写到数据在~冲区的拯里。该数据保存在~冲ZQ直到别的数据页需要该内存Ӟ该数据页才被写到盘上。若事务中的某条语句没能完成QSQL Server回滚事务生的所有变化。这样就保证了整个数据库pȝ的一致性和完整性?/p> <p> <b>二、日志设?/b> <br /> <br />Log和数据库的Data一P需要存攑֜数据库设备上Q可以将Log和Data存放在同一讑֤上,也可以分开存放。一般来_应该一个数据库的Data和Log存放在不同的数据库设备上。这样做有如下好处:一是可以单独地备䆾Backup事务日志;二是防止数据库溢满;三是可以看到Log的空间用情c?br /><br />所建Log讑֤的大,没有十分_的方法来定。一般来_对于新徏的数据库QLog的大应为数据库大小?0%左右。Log的大还取决于数据库修改的频J程度。如果数据库修改频繁Q则Log的增长十分迅速。所以说LogI间大小依赖于用h如何使用数据库的。此外,q有其它因素影响Log大小Q我们应该根据实际操作情况估计Log大小Qƈ间隔一D|间就对Logq行备䆾和清除?<br /><br /><b>三、日志的清除</b><br /><br />随着数据库的使用Q数据库的Log是不断增长的Q必d它占满空间之前将它们清除掉。清除Log有两U方法:<br /><br /><strong>1.自动清除?br /><br /></strong><br /><br />开放数据库选项 Trunc Log on ChkptQ数据库系l每隔一D|间自动清除Log。此Ҏ的优Ҏ无须人工q预Q由SQL Server自动执行Qƈ且一般不会出现Log溢满的情况;~点是只清除Log而不做备份?br /><br /><strong>2.手动清除?/strong><br /><br />执行命o“dump transaction”来清除Log。以下两条命令都可以清除日志Q?/p> <p> </p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>dump transaction with truncate_only<br /><br />dump transaction with no_log </pre> </td> </tr> </tbody> </table> <p>通常删除事务日志中不z跃的部分可使用“dump transaction with trancate_only”命令,q条命o写进事务日志Ӟq要做必要的q发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用q条命o有很大的危险性,SQL Server会弹Z条警告信息。ؓ了尽量确保数据库的一致性,你应它作ؓ“最后一招”?br /><br />以上两种Ҏ只是清除日志Q而不做日志备份,若想备䆾日志Q应执行“dump transaction database_name to dumpdevice”命令?br /><br /><b>四、管理庞大的事务</b><br /><br />有些操作会大扚wCҎ据,如大量数据的修改QUpdateQ、删除一个表的所有数据(DeleteQ、大量数据的插入QInsertQ,q样会Log增长速度很快Q有溢满的危险。下面笔者给大家介绍一下如何拆分大事务Q以避免日志的溢满?br /><br />例如执行“update tab_a set col_a=0”命令时Q若表tab_a很大Q则此Update动作在未完成之前可能Log溢满Q引?105错误QLog FullQ,而且执行q种大的事务所产生的独占锁QExclusive Table LockQ,会阻止其他用户在执行Update操作期间修改q个表,q就有可能引h锁。ؓ避免q些情况发生Q我们可以把q个大的事务分成几个的事务Qƈ执行“dump transaction”动作?<br /><br />上例中的情况可以分成两个或多个的事务Q?br /><br /></p> <p> </p> <table cellspacing="0" bordercolordark="#ffffff" cellpadding="2" width="400" align="center" bordercolorlight="black" border="1"> <tbody> <tr> <td class="code" bgcolor="#e6e6e6"> <pre>update tab_a set col_a=0 where col_b>x <br /><br />go<br /><br />dump transaction database_name with truncate_only <br /><br />go <br /><br />update tab_a set col_a=0 where col_b <=x <br /><br />go <br /><br />dump transaction database_name with truncate_only <br /><br />go </pre> </td> </tr> </tbody> </table> <p>q样Q一个大的事务就被分成两个较的事务?br /><br />按照上述Ҏ可以Ҏ需要Q意拆分大的事务。若q个事务需要备份到介质上,则不用“with truncate_only”选项。若执行“dump transaction with truncate_only”命令,应该先执行“dump database”。以此类推,我们可以对表删除、表插入{大事务做相应的拆分?/p> <img src ="http://www.tkk7.com/os586/aggbug/68921.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-11 11:16 <a href="http://www.tkk7.com/os586/archive/2006/09/11/68921.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>转一Sybase数据库的备䆾恢复的文?/title><link>http://www.tkk7.com/os586/archive/2006/09/11/68919.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Mon, 11 Sep 2006 03:12:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/11/68919.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/68919.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/11/68919.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/68919.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/68919.html</trackback:ping><description><![CDATA[对Sybase数据库的备䆾问题一直比较头?可能我对它的备䆾问题q是了解的不?因此一直觉得用v来较为繁?今天看了q篇文章,有一定的作用.不过文章当中q是没有介绍增量备䆾都相关的内容.有时间我可以补上.<br /><br /><p>Sybase数据库品自?987q问世以来,它的客户?服务?client/server)工作模式、分布处理的基础体系l构、完善的安全保密性能、高速快Lq行方式、多q_跨操作系l的q泛应用{优点,q速被IT界接受ƈ推广应用。我们作为金融业的用P也在1995q开始用Sybase10版本。在具体的用中Q发现集中式的数据管理有其优点,是数据风险范围大ؓ~小Q但是作为Sybase的服务器一端,数据风险比较集中Q如何做好数据库的数据备份,成ؓ臛_重要的问题?br /><br />在实际应用中Q我们ȝZ两种全量备䆾ҎQ?br /><br /><strong>一、用Sybase的Backup ServerQ备份服务器Q,做Dump备䆾</strong><br /><br />转储数据库(Dump databaseQ,是为整个数据库Q包括数据、表l构、触发器、游标、存储过E、事务日志等Q做一ơ物理备份。{储数据库Ӟpȝ自动执行一ơcheckpointQ即日志和数据从缓冲区拯到硬盘(只拷贝脏)Q把已被分配的页Q日志和数据Q{储到讑֤?br /><br />命o格式为:<br /><br />dump database 数据库名 to 讑֤文g?with 参数<br /><br />如果备䆾到硬盘的文g上,可以不预先估备份文件的大小Q只要硬盘有_的存储空间就可以。如果是备䆾到dds带上,那么p估算一下备份后的大,90c的dds带压羃存储I间?G,120c的带压羃存储I间?GQ如果数据库的备份文件超q了q个寸Q就要考虑多文件{储,使用stripe参数?br /><br />命o格式为: </p><p>dump database 数据库名 to 讑֤文g? <br /><br />stripe on 讑֤文g? <br /><br />stripe on 讑֤文g?…?br /><br />with 参数<br /><br />q种数据备䆾方式是将整个数据库的q行环境完整的复制一份,包括数据库的脏页和碎片,在用load命o恢复Ӟ只能恢复到同样大的数据库中Q数据和日志的大都只能和原来完全一_Q适用于在每天的日l营业网点下班后的日常备份。优Ҏ数据库完整无误,~点是不能直接查看备份内宏V?br /><br /><strong>二、分数据l构和数据记录做两次备䆾</strong><br /><br />在一般情况下Q生产机的数据库都比较庞大,而实验机则相对较,难以在实验环境中以load命o恢复工作机的内容。所以,在工作实践中Q我们摸索出了第二种全量备䆾Ҏ?br /><br /><strong>1、数据结构备?/strong><br /><br />在windowsq_的Sybase SQL Server ManagerQ数据库理Q^C选择ServeràGenerate ddl则生整个数据库服务器的所有信息,如果选择databaseàgenerate ddl则生所选定数据库的信息Q以master库ؓ例,产生的文件主要包括:config.ddlQ配|)、devices.ddlQ设备)、database.ddlQ数据库Q、logins.ddlQ用P、remote.ddlQ远E)、cache.ddlQ缓Ԍ、segment.ddlQ)、group.ddlQ用LQ、user.ddlQ用P、default.ddlQ确省)、rule.ddlQ规则)、udt.ddl、table.ddlQ表Q、view.ddlQ视图)、proc.ddlQ存储过E)、triger.ddlQ触发器Q?br /><br /><strong>2、数据记录备?/strong><br /><br />数据库各表以Sybase自代的bcpQbulk copyQ工L方式导成一定格式的文本文gQ命令格式:<br /><br />bcp 表名 out 路径?文g?-c -t 分隔W?-u Q用户名Q?pQ密码)-SQ服务器名)<br /><br />如果一个数据库中的所有表都做一个bcp备䆾Q就需要针Ҏ一个表都做一ơbcpQ在一般情况下Q一个数据库?00多个表,工作量比较大。可以利用数据库中的pȝ表信息做一个bcp备䆾脚本。原理是每一个用戯在系l表中都有信息记载,可以通过isql语句查询得到。现举一例说明:<br /><br />1Q、先~辑一个名为mkbcpout.sql的文Ӟ内容如下Q?br /><br /></p><p>select "echo bcp "+name+" out …………………?br /><br />"+"bcp "+name+" out ./+"name+".table -c -t | -Uuser -Ppassword -S SERVER" from sysobjects where type=U<br /><br />go</p><p>2Q、执行isql命oQ以此文件作入,执行l果输出到另外一个文仉Q?/p><p>isql -Uuser -Ppassword -S server -I mkbcpout.sql -O bcpout</p><p>3Q、对bcppout文gE微修改Q增加可执行权限</p><p>chmod +x bcpout</p><p>4Q、执行bcpoutQ导出数据文本:</p><p>./bcpout</p><p><strong>3、数据库恢复</strong><br /><br />业务生机可能ؓ型机,而实验开发环境的g环境为PC serverQ安装好win nt或SCO unix下的Sybase服务器后Q根据需要创建空间够大的数据库和tempdbQ系l时数据库Q,创徏数据库用Pq将其更改ؓ此数据库的所有者,要注意两点:1Q此数据库允许bcp拯Q?Q此数据库自动清除log。命令格式ؓQ?br /><br />1> sp_dboption databasedbname ,"select into/bulkcopy",true<br /><br />2> go</p><p>1> sp_dboption databasename,"trunc log on chkpt",true<br /><br />2> go<br /><br />上述两个配置可能与生产机的配|不同?br /><br />然后以新创徏的数据库用户dQ导入数据结构,注意要首先导入表l构Q然后才是存储过E、触发器{等。命令格式:<br /><br />1?isql -Uusername -Ppassword -I table.ddl -o error.log.table<br /><br />2?isql -Uusername -Ppassword -I proc.ddl -o error.log.proc<br /><br />…?br /><br />Z提高bcp导入数据的速度Q需要将比较大的表的索引和主键删除,否则的话Q每bcpq一条数据,数据库都自动写一条log日志Q记载此数据的上一条和下一条记录,定本记录在此表中的准确位置Q一是媄响bcp速度Q二是数据库的log飞速膨胀。数据库的自动清除log功能只有在一个事务结束后才v作用?/p><p>准备工作做完后,开始倒入数据记录。用类似做bcpout的方法做一个bcpin的脚本,然后执行Q?/p><p>./bcpin |tee error.bcpin<br /><br />使用tee道输出的目的是让计机完整记录下倒入q程Q自动存入error.bcpin文g中,待倒入l束后,我们只需要检查日志文Ӟ不需要一直紧盯着计算机屏q?br /><br />所有工作做完之后,不要忘记重新删除的主键和烦引徏上?br /><br />如果有现成的数据库,只需要单U地导入数据记录Q则首先数据库中所有用戯Q也是所有type="U"的表Q清I,命o格式Q?br /><br />1> truncate table tablename<br /><br />2> go<br /><br />当然最好也是利用做bcpout脚本的做一个truncate脚本Q通过执行此脚本将所有用戯清空。然后的数据导入、处理烦引和主键的过E与上面cM?br /><br /><strong>三、利用做bcp备䆾脚本的方法做数据库碎片整?/strong></p><p>Sybase数据库作Z务处理应用服务器Q每天应用程序都Ҏ据库做大量的插入、修改和删除{操作,不可避免的在数据库的物理存储介质上留下页片和扩展单元碎片,从而媄响数据库的存储效率和q行速度。具体表CؓQ业务繁忙时出现死锁Qdead lockQ,数据库的输入/输出资源被大量占用,业务处理速度慢。其解决办法是:<br /><br />1?清空数据库中的所有表Q命令格式:isql -Uusername -Ppassword -I truncate.sql -o error.truncate<br /><br />2?删除所有表的烦引和主键Qisql -Uusername -Ppassword -I dropindex.sql -o error.dropindex<br /><br />3?导入数据Q?/bcpin<br /><br />4?d索引和主键:isql -Uusername -Ppassword -I addindex.sql -o error.addindex<br /><br />5?更新数据库状?br /><br />1> update statistics tablename<br /><br />2> go<br /><br />上述操作都是针对数据库中的所有用戯q行的,利用做bcp备䆾脚本的方法做出相应的脚本QɾJ琐的数据库l护变得便易行,q克服了直接使用isql语句操作风险大、没有操作日志的毛病?br /><br />W者在实际工作中,使用W一U方法对生机做日常全量备䆾Q日l通过unix的crontab定时扚w作业Q具体做法请参考《中国金融电脑?001q第10期有关crontab的文章)bcp出全部数据。用高档PC server 搭徏模拟q行环境Q在需要的情况下导入生产机数据Q处理运行中后台server的各U问题,待研I出解决办法后再在生产机上做相应调整Q这样做风险,效果好?/p><img src ="http://www.tkk7.com/os586/aggbug/68919.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-11 11:12 <a href="http://www.tkk7.com/os586/archive/2006/09/11/68919.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>MySQL学习W记之存取权限系l?http://www.tkk7.com/os586/archive/2006/09/08/68534.html水煮三国水煮三国Fri, 08 Sep 2006 07:51:00 GMThttp://www.tkk7.com/os586/archive/2006/09/08/68534.htmlhttp://www.tkk7.com/os586/comments/68534.htmlhttp://www.tkk7.com/os586/archive/2006/09/08/68534.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68534.htmlhttp://www.tkk7.com/os586/services/trackbacks/68534.html最q一直比较喜ƢMySQL,当时是因为PHPQ不q后来发现在linux下配|mysql也是件很不错的事情,再到后来通过|上资料配置成功Oracle9,当然了配|好了,我觉得还是应该仔l的ȝI一下:

也许我们刚装上mysql,无论是在linuxQ还是在windows下,它的权限pȝ问题是我们首先应该接触的

MySQL权限pȝ的主要功能是证实q接C台给定主机的一个用Pq且赋予该用户在一个数据库?strong>select?insert?strong>update?strong>delete的权限?

附加的功能包括有一个匿名的用户和对?strong>MySQL特定的功能例?code>LOAD DATA INFILEq行授权及管理操作的能力?br />

Mysql在安装成功后Q默认的用户名是rootQ没有密码,当然了你自己可以在以后的学习q程中改掉它?br />

不过我还是先看了一下mysql与服务器的连接部分,如果安装完成Q当然要试着q行一下连接了Q?br />

当你惌存取一?strong>MySQL服务器时Q?strong>MySQL客户E序一般要求你指定q接参数Q你惌联接的主机、你的用户名和你的口?br />

shell>mysql  [-h hostname] [-u username] [-ppassword]

其中-h, -u?code>-p选项的另一UŞ式是--host=host_name?code>--user=user_name?code>--password=your_pass。注意在-p?code>--password=与跟随它后面的口令之?em>没有I格?br />

在命令行上指定一个口令是不安全的Q随后在你系l上的Q何用户可以通过打类DL命o发现你的口oQ?code>ps auxww

对于命o行没有的联接参数Q?code>mysql使用~省|

  • ~省L名是localhost?
  • ~省用户名是你的Unixd名?
  • 如果没有-pQ则没有提供口o?/li>

在Unixpȝ上,当你q行一个连接时Q你可以指定要用的不同的缺省|q样你不必每ơ在你调用一个客L序是在命令行上输入他们。这可以有很多方法做刎ͼ

  • 你能在你的主目录?tt>?my.cnf?/tt>的配|文件的[client]节里指定连接参数。文件的相关节看上d能像q样Q?
    [client] 
    host=host_name 
    user=user_name 
    password=your_pass
  • 										

    口o的安全性问题:以一U暴露的可被其他用户发现的方式指定你的口令是不妥当的。当你运行客L序时Q你可以使用下列Ҏ指定你的口oQ还有每个方法的风险评估Q?

    • 使用一个在命o行上-pyour_pass?code>--password=your_pass的选项。这很方便但是不安全Q因Z的口令对pȝ状态程?例如ps)变得可见Q它可以被其他的用户调用来显C命令行?一?strong>MySQL客户在他们的初始化顺序期间用零覆盖命令行参数Q但是仍然有一个短暂间隔时间内参数值可见的。)
    • 使用一?p?code>--password选项(没有指定your_pass?。在q种情况下,客户E序h来自l端的口令:
      shell>mysql - u  user_name - p
      Enter password: ********
      

      客户回应??/samp>字符C入你的口令的l端使得旁观者不能看见它。因为它对其他用户不可见Q与在命令行上指定它相比Q这栯入你的口令更安全。然而,q个输入一个口令的Ҏ仅仅Z交互式运行程序是合适的。如果你惌从非交互式运行的一个脚本调用一个客P没有从l端输入入口令的Z?

    • 在一个配|文件中存储你的口o。例如,你可你的ȝ录的?my.cnf?/tt>文g中的[client]节列Z的口令:
      [client]
      password=your_pass
      

      如果你在?my.cnf?/tt>里面存储口oQ文件应该不是组或世界可L可写的。保证文件的存取模式?code>400?code>600。见4.15.4 选项文g?

    • 你可?code>MYSQL_PWD环境变量中存储口令,但是q个Ҏ必须惛_是极不安全的且应该不使用?code>ps的某些版本包括显C行进E的环境的选项Q如果你讑֮MYSQL_PWDQ你的口令将Ҏ有h是显而易见的Q甚臛_没有q样一个版本的pspȝ上,假设没有其他Ҏ观察到进E环境是不明智的?

    MQ最安全的方法是让客L序提C口令或在一个适当保护的?my.cnf?/tt>文g中指定口?/p>



水煮三国 2006-09-08 15:51 发表评论
]]>
MySQL学习W记之三U用户密码的修改 http://www.tkk7.com/os586/archive/2006/09/08/68535.html水煮三国水煮三国Fri, 08 Sep 2006 07:51:00 GMThttp://www.tkk7.com/os586/archive/2006/09/08/68535.htmlhttp://www.tkk7.com/os586/comments/68535.htmlhttp://www.tkk7.com/os586/archive/2006/09/08/68535.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68535.htmlhttp://www.tkk7.com/os586/services/trackbacks/68535.html在学习mysql的过E中Q我们经怼到怎样M改mysql用户的密码,在mysql当中有三U修改用户密码的ҎQ大家可以按照自q习惯来用:

  • 使用标准sql语句

           shell>mysql -u root -p mysql
           mysql>update user set Password=PASSWORD('new_password') where User='root';
           mysql>flush previliges;

  • 使用set password命oQ?/li>

           mysql>set password for root=PASSWORD('new_password');

  • mysqladmin
     shell>mysqladmin -u root password 'new_password'

此处我们只是在update语句和set password里面用PASSWORD()函数来对密码q行加密Q而mysqladmin没有用,mysqladmin不必用password(),pȝ会自动为其加密.

在用grant命o增加用户或者是修改权限时在指定密码时也不必使用PASSWORD()函数加密?/p>

水煮三国 2006-09-08 15:51 发表评论
]]>
Linux下安装MySQL数据库及其?http://www.tkk7.com/os586/archive/2006/09/08/68532.html水煮三国水煮三国Fri, 08 Sep 2006 07:47:00 GMThttp://www.tkk7.com/os586/archive/2006/09/08/68532.htmlhttp://www.tkk7.com/os586/comments/68532.htmlhttp://www.tkk7.com/os586/archive/2006/09/08/68532.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68532.htmlhttp://www.tkk7.com/os586/services/trackbacks/68532.html 一、什麽是 MySQL

MySQL Q发音ؓ "My Ess Que Ell"Q是 Tcx 公司Qhttp://www.tcx.seQ开发的一个多Z用、多执行l的 SQL 资料库 Server。MySQL 主要的目标在快速、稳定和Ҏ使用?

MySQL 可在此 http://www.mysql.net/ 取得?

二、MySQL 的安?

本文所使用的 MySQL 版本为 mysql-3.22.27.tar.gzQ原始码档)Q作业环境ؓ RedHat6.0 QCLE0.8 ?

MySQL 预设情况下会安装?usr/local 目录下,不过Z日後U除方便Q徏议将 mysql 独立安装在?usr/local/mysql 目录。底下ؓ安装 MySQL 的步骤:

取得 mysql-3.22.27.tar.gz 後, 於?usr/local 目录下解开Q?
# cd /usr/local
# tar zxvf mysql-3.22.27.tar.gz
# cd mysql-3.22.27
讑֮ configure 安装选项Q选择安装目录 QprefixQ以及支援中文 Big5 码(with-charset=big5Q: 
# ./configure --prefix=/usr/local/mysql \
#--with-charset=big5
开始编译ƈ安装Q?
# make
# make install
# scripts/mysql_install_db
最後一个步骤是用来产生 MySQL grant tablesQ会建立一个 mysql 资料库和一些 tablesQ用来管理用 MySQL 的授权资讯,也就是用者有哪些使用资料库的权限Q?

三、启动、停止 MySQL

要启动 MySQL 的方法:Q以本文 MySQL 安装在?usr/local/mysql ZQ?

# /usr/local/mysql/share/mysql.server start
注意在第一ơ执行前Q须 mysql.server 设成可执行(chmod 744 mysql.serverQ,另外可将q行指o加在 /etc/rc.d/rc.local 档中Q让 MySQL 在开机时自动启动?

要停止 MySQL 的方法:

# /usr/local/mysql/bin/mysqladmin shutdown
如果你ؓ MySQL Administrator root 帐号Q非作业pȝ的 rootQ设了密码,要停止 MySQL 则必d下列q样做,MySQL 会询问你 root 的密码後才会执行 shutdown 的工作:

# /usr/local/mysql/bin/mysqladmin -u root -p shutdown
四、管理与使用 MySQL ?

在你开始前 
MySQL 提供了许多工具 (Client ToolsQ来与 MySQL 资料库 Server q线Q其中最主要的ؓ mysql 交谈式连U工具与 mysqladmin 公用E式Q大部䆾时候用者会用 mysql 来和资料库 Server 交谈。底下就以 mysql q线工具来介l如何维护与使用 MySQL。(以本文安装ؓ例,mysql 工具位於 /usr/local/mysql/bin/mysqlQ?

mysql 的用语法如下:

mysql [-u username] [-h host] [-p[password]] [dbname]
MySQL 资料库有自己一套用者帐号与权限控ҎQ所以这Ҏ指定的 username 与  password 是 MySQL 的用者与密码Q而不是作业系l的使用者与密码Q当然Q何用者都能执行 mysql Q然後以 MySQL 的Q何帐可入用) ?

在你W一ơ安装好 MySQL ӞMySQL 的管理帐号ؓ rootQ没有设定密码 (非作业系l的 rootQ。所以在开始前Q请先照下列步骤为  root 讑֥密码Q?

使用 mysql 与 MySQL 资料库 Server q线Q?
# /usr/local/mysql/bin/mysql -u root mysql
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 201 to server version: 3.22.27 

Type 'help' for help. 

mysql>
在下了 mysql -u root  mysql 指oQ指定以 root 帐号q开启 mysql pȝ资料库,q线ꐠMySQL 後,会看C些提C息与 mysql 工具的提C符P以後大部份的工作皆在此提C符号下完成?

更改 MySQLpȝ理者 root 密码Q?
mysql> update user set password=password('新密?) where user='root'; 
Query OK, 0 rows affected (0.00 sec)
Rows matched: 2  Changed: 0  Warnings: 0

mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.00 sec)

mysql> quit
Bye
注意每个指o後要加上一个分号?;" 才会让 mysql 开始执行。而第二道指o会让已蝲入记忆体的 mysql pȝ资料库更斎ͼ最後离开 mysql 工具E式?

在更斊Wroot 密码後,日後要与 MySQL q线的方法ؓQ?

mysql  -u root -p新密?
或者是q样Q让 mysql 询问 root 的密码:

mysql  -u root -p
资料库维护?
接下来,我们以简单的通讯录资料库作ؓ例子Q来介绍如何用 mysql 工具E式来做资料库的l护Q新增、授权、资料表l护{)?

首先Q以 MySQL root 帐号q线後徏立一 addbook 资料库: 
# /usr/local/mysql/bin/mysql -u root -p
Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g. 
Your MySQL connection id is 207 to server version: 3.22.27 

Type 'help' for help. 

mysql> create databae addbook;
Query OK, 1 row affected (0.00 sec)
指定使用 addbook 资料库,q徏立一个 friends 资料表: 
mysql> use addbook;
Database changed

mysql> create  table friends (
  -> name Char(15),
  -> telphone VarChar(20),
  -> icq Char(10),
  -> address VarChar(30)
  -> );
Query OK, 0 rows affected (0.00 sec)
新增几笔资料Qƈ查询看看Q?
mysql> insert into friends values(
  -> "maa",  "29016710", "46243046", "台北县新庄市"
  -> );
Query OK, 1 row affected (0.00 sec)

mysql> insert into friends (name, icq, telphone, address ) Values (
  -> "cxlin", "39425893", "7654321", "台北?
  -> );
Query OK, 1 row affected (0.01 sec)

mysql> select * from friends;
+-------+----------+----------+--------------+
| name  | telphone | icq      | address      |
+-------+----------+----------+--------------+
| maa   | 29016710 | 46243046 | 台北县新庄市 |
| cxlin | 7654321  | 39425893 | 台北县       |
+-------+----------+----------+--------------+
2 rows in set (0.00 sec)

W二个 insert 指o指定了资料栏位的插入序Q用法较W一个ؓҎ,而第一个指令必M资料表徏立结构时的顺序插入资料?

更新、删除资料表记录Q?
mysql> update friends set address =  "桃园? where name  = "cxlin";
Query OK, 1 row affected (0.00 sec)
Rows matched: 1  Changed: 1  Warnings: 0

mysql> select * from friends where name = "cxlin";
+-------+----------+----------+---------+
| name  | telphone | icq      | address |
+-------+----------+----------+---------+
| cxlin | 7654321  | 39425893 | 桃园县  |
+-------+----------+----------+---------+
1 row in set (0.00 sec)

mysql> delete from friends where name = "maa";
Query OK, 1 row affected (0.01 sec)

mysql> select * from  friends;
+-------+----------+----------+---------+
| name  | telphone | icq      | address |
+-------+----------+----------+---------+
| cxlin | 7654321  | 39425893 | 桃园县  |
+-------+----------+----------+---------+
1 row in set (0.00 sec)
最後,建好资料库与资料表後Q把 addbook 资料库中所有资料表的用权限(select、insert、update、deleteQ授权给 maa@localhostQ再ơ提醒,此处的 maa 为 MySQL 的用者帐P而非作业pȝ的 maa 帐号Q: 
mysql> grant select, insert, update, delete
    -> on addbook.*
    -> to maa@localhost identified by '1234567';
Query OK, 0 rows affected (0.00 sec)
之後Q可用 maa 的n份进入 MySQL 存取 addbook 资料库:

# /usr/local/mysql/bin/mysql -u maa -p addbook
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 211 to server version: 3.22.27

Type 'help' for help.

mysql> status
--------------
./mysql  Ver 9.36 Distrib 3.22.27, for pc-linux-gnu (i686)

Connection id:          26
Current database:       addbook
Current user:           maa@localhost
Server version          3.22.27
Protocol version        10
Connection              Localhost via UNIX socket
UNIX socket             /tmp/mysql.sock
Uptime:                 2 hours 29 min 33 sec

Threads: 11  Questions: 107  Slow queries: 0  Opens: 11  Flush tables: 1
 Open 7
--------------

收回资料库用权限的Ҏ如下Q以 MySQL root q入Q: 
mysql> revoke delete on addbook.* from maa@localhost;
Query OK, 0 rows affected (0.00 sec)

mysql> revoke all privileges on addbook.* from  maa@localhost;
Query OK, 0 rows affected (0.00 sec)
W二个指令用来收回全部的权限?

 

五、mysqladmin 公用E式的?

mysqladmin 公用E式可用来维护 MySQL 比较一般性的工作Q新增、删除资料库、设定用者密码及停止 MySQL {等Q,详细的说明可以用 mysqladmin --help 来查看。(以本文的安装Z mysqladmin  位於 /usr/local/mysql/bin/mysqladminQ?

新增资料库 dbtest 
# /usr/local/mysql/bin/mysqladmin -u root -p create dbtest
Enter password:
Database "dbtest" created.
删除资料库?
# /usr/local/mysql/bin/mysqladmin -u root -p drop dbtest
Enter password:
Dropping the database is potentially a very bad thing to do.
Any data stored in the database will be destroyed.

Do you really want to drop the 'dbtest' database [y/N]
y
Database "dbtest" dropped
讑֮使用者密码( maa 的密码改为 ?654321Qmysqladmin 会先询问 maa 的原密码Q?
# /usr/local/mysql/bin/mysqladmin -u maa -p password 7654321
Enter password:
#
停止 MySQL 服务 
# ./mysqladmin -u root -p shutdown
Enter password:
注意Qshutdown MySQL 後,必须׃业系l的 root 帐号执行下列指o才能启动 MySQLQ?

 /usr/local/mysql/share/mysql/mysql.server start 
六、结语:

MySQL 资料库的是值得推广的一个品,它的E_性已l稳得大家的赞同Q只要你曄学习q SQL LanguageQ结构化查询语言Q,怿要摸熟 MySQL 的用只消一两个时的时间。如果搭配 PHP QPersonal  HomePage ProgramQ和 Apache Web ServerQ更可很L建构一个与资料库结合的动态 Web Site。如果再配合 phpMyAdmin q个 Web 化的 MySQL 理工具Q徏立 MySQL 的资料库和  MySQL 的管理将会更加方ѝ?

参考资料与资源Q?

http://www.tcx.se/ 
MySQL 3.23 Reference Manual 
The Apache Software Foundation 
PHP3 PHP Hypertext Preprocessor 
phpMyAdmin 

水煮三国 2006-09-08 15:47 发表评论
]]>
今天需要用到Dos下的查找命o,拿出来跟大家׃nhttp://www.tkk7.com/os586/archive/2006/09/06/68041.html水煮三国水煮三国Wed, 06 Sep 2006 07:37:00 GMThttp://www.tkk7.com/os586/archive/2006/09/06/68041.htmlhttp://www.tkk7.com/os586/comments/68041.htmlhttp://www.tkk7.com/os586/archive/2006/09/06/68041.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68041.htmlhttp://www.tkk7.com/os586/services/trackbacks/68041.html需要查找扩展名?doc的文?q且把其?为列表输?

dir *.doc /s /a >d:\list.txt

q个可以完成了.

详细的内容大家看下面的文?

DIR [drive:][path][filename] [/A[[:]attributes]] [/B] [/C] [/D] [/L] [/N]
  [/O[[:]sortorder]] [/P] [/Q] [/S] [/T[[:]timefield]] [/W] [/X] [/4]

  [drive:][path][filename]
              指定要列出的驱动器、目录和/或文件?/p>

  /A          昄h指定属性的文g?br />  attributes   D  目录                R  只读文g
               H  隐藏文g            A  准备存档的文?br />               S  pȝ文g            -  表示“否”的前缀
  /B          使用I格?没有标题信息或摘??br />  /C          在文件大中昄千位数分隔符。这是默认倹{用 /-C ?br />              停用分隔W显C?br />  /D          跟宽式相同,但文件是按栏分类列出的?br />  /L          用小写?br />  /N          新的长列表格式,其中文g名在最双?br />  /O          用分c顺序列出文件?br />  sortorder    N  按名U?字母序)     S  按大?从小到大)
               E  按扩展名(字母序)   D  按日?旉(从先到后)
               G  l目录优先         ?-  颠倒顺序的前缀
  /P          在每个信息屏q后暂停?br />  /Q          昄文g所有者?br />  /S          昄指定目录和所有子目录中的文g?br />  /T          控制昄或用来分cȝ旉字符域?br />  timefield   C  创徏旉
              A  上次讉K旉
              W  上次写入的时?br />  /W          用宽列表格式?br />  /X          昄为非 8dot3 文g名生的短名U。格式是 /N 的格式,
              短名U插在长名称前面。如果没有短名称Q在其位|则
              昄I白?br />  /4          用四位数字显C年

可以?DIRCMD 环境变量中预先设定开兟뀂通过d前缀 - (破折?
来替代预先设定的开兟뀂例如,/-W?/p>

水煮三国 2006-09-06 15:37 发表评论
]]>
Sybase 问题集锦------之二http://www.tkk7.com/os586/archive/2006/09/06/68018.html水煮三国水煮三国Wed, 06 Sep 2006 05:39:00 GMThttp://www.tkk7.com/os586/archive/2006/09/06/68018.htmlhttp://www.tkk7.com/os586/comments/68018.htmlhttp://www.tkk7.com/os586/archive/2006/09/06/68018.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68018.htmlhttp://www.tkk7.com/os586/services/trackbacks/68018.html 
数据库sysbaseQ有数据库aaQ库中有表aa01Qaa02Qaa03……aa20
怎么用bcp语句一ơ性导出所有表Q变成aa01.txt,aa02.txt^^^^^aa20.txt文g?br />各位大虾帮帮忙啊Q!Q!



好像只能是写20条bcp语句来导出吧Q可以把q?0条bcp语句攑֜一个文本文件中Q将扩展名改?batQ执行这个文件即可?br />bcp aa..aa01 out d:\bcpdata\aa01.txt -Ssybase -Usa -P -c -a
...
bcp aa..aa20 out d:\bcpdata\aa20.txt -Ssybase -Usa -P -c -a
如果惛_份aa中的所有表Q我一般这么做Q?br />1.采用下面的SQL语句形成bcp命o(在master库中执行)
select "bcp aa.."+name+" out d:\bcpdata"+name+".txt -Ssybase -Usa -P -c -a" from sysobjects where type = 'U'
2.执行完成的输出l果形成批处理命?br />只需Ş成的输出l果拯到拷贝记事本中,q更Ҏ展名?bat卛_
3.在DOS的提C符下执行Ş成的批处理文?br />

水煮三国 2006-09-06 13:39 发表评论
]]>
Sybase 相关问题集锦------之一http://www.tkk7.com/os586/archive/2006/09/06/68016.html水煮三国水煮三国Wed, 06 Sep 2006 05:34:00 GMThttp://www.tkk7.com/os586/archive/2006/09/06/68016.htmlhttp://www.tkk7.com/os586/comments/68016.htmlhttp://www.tkk7.com/os586/archive/2006/09/06/68016.html#Feedback0http://www.tkk7.com/os586/comments/commentRss/68016.htmlhttp://www.tkk7.com/os586/services/trackbacks/68016.html1.Sybase怎样把一台服务器的数据库备䆾到另一台服务器当中?

1.首先保证两台机器都安装了sybase的服务器版本Q保证两台机器网l连接畅?br />2.假定A机的服务及备份服务分别叫aaa,aaa_BSQB机的服务及备份服务分别叫bbb,bbb_BS
3.假定要将A机aaa服务中的生库a_mydb备䆾到B机操作系l?br />ҎQ?br />启动A,B两机的备份服?br />在A机sybase目录下的interfaces文g中添加B机备份服务bbb_BS的条目入?br />按如下语法进行备份测?br />isqlq接到A机服?br />isql -Usa -P密码 -Saaa
1>dump database a_mydb to 'B机的路径及备份文件名' at bbb_BS
2>go




2.怎样删除一个数据库讑֤?

isqld到sybase服务
1.首先保没有M数据在用该讑֤
可以sp_helpdb查询所有数据库Q看它用了哪些讑֤
2.sp_dropdevice 讑֤?br />删除无用的设?br />3.手工删除对应的操作系l文?/p>

水煮三国 2006-09-06 13:34 发表评论
]]>
Sybase 基础知识Ҏȝ-----有助于M的学习Sybase数据?/title><link>http://www.tkk7.com/os586/archive/2006/09/06/67979.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Wed, 06 Sep 2006 03:20:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/06/67979.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/67979.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/06/67979.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/67979.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/67979.html</trackback:ping><description><![CDATA[     摘要: W一讲  Sybase基础知识一、客?服务器体pȝ构Sybase是一U徏立在客户/服务器体pȝ构上的数据库理pȝ。●什么是客户/服务器体pȝ构?从硬件角度看Q客?服务器体pȝ构是指将某项d在两台或多台机器之间q行分配Q其中客hQClientQ用来运行提供用h口和前端处理的应用程序,服务器机QServerQ提供客h使用的各U资源和服务。从软g角度看,客户/服务器体pȝ构是把某应用或?..  <a href='http://www.tkk7.com/os586/archive/2006/09/06/67979.html'>阅读全文</a><img src ="http://www.tkk7.com/os586/aggbug/67979.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-06 11:20 <a href="http://www.tkk7.com/os586/archive/2006/09/06/67979.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>?Sybase数据?定时备䆾的文?/title><link>http://www.tkk7.com/os586/archive/2006/09/06/67975.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Wed, 06 Sep 2006 03:04:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/06/67975.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/67975.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/06/67975.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/67975.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/67975.html</trackback:ping><description><![CDATA[我从来没接触qSYBASE数据库,现在老ȝ我个dQ叫我给SYBASE数据库定时备份,我看了好多资料都不明白,主要是没个思\Q不知道是要~程解决q是通过讄SYBASE数据库自己备份,急死我了  <br />我想写个备䆾的进E,定时备䆾Q可是不知道SYBASE的接口是怎么LQ怎么与SYBASE数据库交? <br />请大家帮我出Z意,了解q些的朋友请l个思\Q谢谢了  <br />---------------------------------------------------------------  <br /> <br />如果是UNIX下的通过使用crontab了。WINq_下面有一个Q务管理器。也可以相应使用? <br />---------------------------------------------------------------  <br /> <br />看看bcp命o和dumpQload命o了。有书的话? <br />---------------------------------------------------------------  <br /> <br />sybase不提供定时备份功能,自己写脚本放到cron或计划Q? <br /> <br />建立批处理back.bat或sh脚本Q脚本内容ؓ  <br />isql  -Usa  -P  -STESTSVR–o  /sybase  /dump.logQ用于生日志,windows下指定window格式的\径)  –i  dump.sql    <br /> <br />备䆾工作通过isql调用备䆾脚本实现Q?   <br />   <br />isql  -Usa  -P  -STESTSVR–o  /sybase  /dump.log  –i  dump.sql    <br />   <br />Zsybase用户成功执行本操作,我们应同时将sybase的环境变量定制在dump.sh中,其主要命令可参考sybase用户?profile文g。另外,本命令从外部d的备份脚本dump.sql文g的内容如下:    <br />   <br />declare  @ddate  char(28)  /*  定义一个变量,用于备䆾的文件名U? */    <br />select  @ddate  =  '/sybase/backup/dbname'  +  convert(char(6),  getdate(),  12)  +  stuff(convert(char(5),  getdate(),  8),3,1,null)  +?dmp?*  当前日期进行{? */    <br />dump  database  test  to  @ddate    <br />dump  transaction  with  truncate_only    <br /> <br />go    <br />   <br />说明Q该脚本当前日期进行{换,形成备䆾的文件名Q其格式为:  backupyymmddhhmi  <br /> <br /> <br />最后把批处理back.bat或sh分别加入计划d或cron  <br />q里l出cron的方法,计划d很容易,不说? <br /> <br />?定义权限q定制cron  job    <br /> UNIXpȝ中有一条命令crontabQ通过它我们可以定制cron  job,它安排各命o在指定的旉间隔内执行,有定时器的功能。我们所制定的自动备份及自动方案就是用它来实现的。但是,q不是每个UNIXpȝ的用户都有权限用它?   <br />HP  UNIX在默认情况下只有root,admin,uucp三个用户有权限用,q时我们需要将数据库管理员sybase用户d到cron.allow文g中。首先,应以root用户w䆾dQ到路径QvarQadmQcron下确认无cron.deny文gQ或该文件中无sybaseq条记录。然后,~辑cron.allow文gQ将sybase  用户dq去Q这Psybase用户有了定制cron  job的权限?     <br />以sybase用户d后,执行crontab  –e  ~辑cron  job,  例:    <br />   <br />00  18  *  *  *  /sybase/dump.sh    <br />   <br />其中Q第一条命令的意思是在每天的18?0开始自动执行脚本文件dump.shQ对数据库进行备?  dump.sh  的编辑在后面讨论。第二条命o是在每月15日的21?0自动执行脚本文gdbcc.sqlQ对数据库进行数据的一致性检,其结果输出到文gdbcc.err中。当Ӟ我们应该Ҏ不同情况适当调整定义的工作时间?<img src ="http://www.tkk7.com/os586/aggbug/67975.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-06 11:04 <a href="http://www.tkk7.com/os586/archive/2006/09/06/67975.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase 当中q行增量备䆾的几Ҏ意事?/title><link>http://www.tkk7.com/os586/archive/2006/09/06/67973.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Wed, 06 Sep 2006 02:59:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/09/06/67973.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/67973.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/09/06/67973.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/67973.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/67973.html</trackback:ping><description><![CDATA[Sybase 在进行增量备份的时?需要注意以下几?<br /><br />首先: 在徏库的时?必须把数据库讑֤与日志设备进行单独的处理,不能把数据库和日志徏立在同样的设备上.q样不符合增量备份的要求.因ؓ增量备䆾是Ҏ据库事务日志的备?当然如果能够把烦引设备单独分Z更好.<br /><br />其次: 在进行增量备份以?最好做一ơ数据库的完全备?q样以备数据库故障的发生D数据库无法恢?而其后可以进行数据的增量备䆾.<br /><br />W三:在进行数据库载入的时? 特别是对数据库进行全部蝲入后,先不要对数据库进行online database操作,要把数据库和日志一q蝲入后再执行online操作.<br /><br />q样׃会提C?"dump device" is out of sequence 错误?<br /><br /><img src ="http://www.tkk7.com/os586/aggbug/67973.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-09-06 10:59 <a href="http://www.tkk7.com/os586/archive/2006/09/06/67973.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>Sybase的日志管理学?/title><link>http://www.tkk7.com/os586/archive/2006/07/13/58023.html</link><dc:creator>水煮三国</dc:creator><author>水煮三国</author><pubDate>Thu, 13 Jul 2006 09:05:00 GMT</pubDate><guid>http://www.tkk7.com/os586/archive/2006/07/13/58023.html</guid><wfw:comment>http://www.tkk7.com/os586/comments/58023.html</wfw:comment><comments>http://www.tkk7.com/os586/archive/2006/07/13/58023.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.tkk7.com/os586/comments/commentRss/58023.html</wfw:commentRss><trackback:ping>http://www.tkk7.com/os586/services/trackbacks/58023.html</trackback:ping><description><![CDATA[SYBASE公司是世界著名的数据库厂Ӟ其关pL据库产品SYBASE SQL Server在中国大中型企事业单位中拥有大量的用戗笔者在多年的用过E中Qȝ出SYBASE数据库管理和l护的一些经验,现拿出来与大家分享? <p>  我们知道QSYBASE SQL Server用事务(TransactionQ来跟踪所有数据库的变化。事务是SQL Server的工作单元。一个事务包含一条或多条作ؓ整体执行的T-SQL语句。每个数据库都有自己的事务日志(Transaction LogQ,即系l表QSyslogsQ。事务日志自动记录每个用户发出的每个事务。日志对于数据库的数据安全性、完整性至关重要,我们q行数据库开发和l护必须熟知日志的相关知识?br /><br /><br /><strong>一、SYBASE SQL Server 如何记录和读取日志信?br /><br /></strong>  SYBASE SQL Server是先记Log的机制。每当用h行将修改数据库的语句ӞSQL Server׃自动地把变化写入日志。一条语句所产生的所有变化都被记录到日志后,它们p写到数据在~冲区的拯里。该数据保存在~冲ZQ直到别的数据页需要该内存Ӟ该数据页才被写到盘上。若事务中的某条语句没能完成QSQL Server回滚事务生的所有变化。这样就保证了整个数据库pȝ的一致性和完整性?br /><br />  <b>二、日志设?/b><br /><br />  Log和数据库的Data一P需要存攑֜数据库设备上Q可以将Log和Data存放在同一讑֤上,也可以分开存放。一般来_应该一个数据库的Data和Log存放在不同的数据库设备上。这样做有如下好处:一是可以单独地备䆾Backup事务日志;二是防止数据库溢满;三是可以看到Log的空间用情c?br /><br />  所建Log讑֤的大,没有十分_的方法来定。一般来_对于新徏的数据库QLog的大应为数据库大小?0%左右。Log的大还取决于数据库修改的频J程度。如果数据库修改频繁Q则Log的增长十分迅速。所以说LogI间大小依赖于用h如何使用数据库的。此外,q有其它因素影响Log大小Q我们应该根据实际操作情况估计Log大小Qƈ间隔一D|间就对Logq行备䆾和清除?<br /><br />  <b>三、日志的清除</b><br /><br />  随着数据库的使用Q数据库的Log是不断增长的Q必d它占满空间之前将它们清除掉。清除Log有两U方法:<br /><br />  1.自动清除?br /><br />  开放数据库选项 Trunc Log on ChkptQ数据库系l每隔一D|间自动清除Log。此Ҏ的优Ҏ无须人工q预Q由SQL Server自动执行Qƈ且一般不会出现Log溢满的情况;~点是只清除Log而不做备份?br /><br />  2.手动清除?br /><br />  执行命o“dump transaction”来清除Log。以下两条命令都可以清除日志Q?br /><br />dump transaction with truncate_only<br />dump transaction with no_log <br /><br />  通常删除事务日志中不z跃的部分可使用“dump transaction with trancate_only”命令,q条命o写进事务日志Ӟq要做必要的q发性检查。SYBASE提供“dump transaction with no_log”来处理某些非常紧迫的情况,使用q条命o有很大的危险性,SQL Server会弹Z条警告信息。ؓ了尽量确保数据库的一致性,你应它作ؓ“最后一招”?br /><br />  以上两种Ҏ只是清除日志Q而不做日志备份,若想备䆾日志Q应执行“dump transaction database_name to dumpdevice”命令?br /><br />  <b>四、管理庞大的事务</b><br /><br />  有些操作会大扚wCҎ据,如大量数据的修改QUpdateQ、删除一个表的所有数据(DeleteQ、大量数据的插入QInsertQ,q样会Log增长速度很快Q有溢满的危险。下面笔者给大家介绍一下如何拆分大事务Q以避免日志的溢满?br /><br />  例如执行“update tab_a set col_a=0”命令时Q若表tab_a很大Q则此Update动作在未完成之前可能Log溢满Q引?105错误QLog FullQ,而且执行q种大的事务所产生的独占锁QExclusive Table LockQ,会阻止其他用户在执行Update操作期间修改q个表,q就有可能引h锁。ؓ避免q些情况发生Q我们可以把q个大的事务分成几个的事务Qƈ执行“dump transaction”动作?<br /><br />  上例中的情况可以分成两个或多个的事务Q?<br /><br />update tab_a set col_a=0 where col_b>x <br />go<br />dump transaction database_name with truncate_only <br />go <br />update tab_a set col_a=0 where col_b <=x <br />go <br />dump transaction database_name with truncate_only <br />go <br /><br />  q样Q一个大的事务就被分成两个较的事务?br /><br />  按照上述Ҏ可以Ҏ需要Q意拆分大的事务。若q个事务需要备份到介质上,则不用“with truncate_only”选项。若执行“dump transaction with truncate_only”命令,应该先执行“dump database”。以此类推,我们可以对表删除、表插入{大事务做相应的拆分</p><img src ="http://www.tkk7.com/os586/aggbug/58023.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.tkk7.com/os586/" target="_blank">水煮三国</a> 2006-07-13 17:05 <a href="http://www.tkk7.com/os586/archive/2006/07/13/58023.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss> <footer> <div class="friendship-link"> <p>лǵվܻԴȤ</p> <a href="http://www.tkk7.com/" title="亚洲av成人片在线观看">亚洲av成人片在线观看</a> <div class="friend-links"> </div> </div> </footer> վ֩ģ壺 <a href="http://sdzntg.com" target="_blank">һĻ</a>| <a href="http://3c3w.com" target="_blank">xxxxxƵ</a>| <a href="http://666fzw.com" target="_blank">һֻ</a>| <a href="http://117949b.com" target="_blank">պAV뾫Ʒ</a>| <a href="http://my533.com" target="_blank">Ʒþþþþ</a>| <a href="http://xxnxgay.com" target="_blank">Ʒۛѹۿ</a>| <a href="http://mp4888.com" target="_blank">޹++ۺ</a>| <a href="http://hucgjc.com" target="_blank">þ߿߿</a>| <a href="http://cuitccol.com" target="_blank">VAĻëƬ</a>| <a href="http://gdporun.com" target="_blank">йͽxxxxxѿ</a>| <a href="http://jisuanq.com" target="_blank">ۺϾƷվ</a>| <a href="http://82nnn.com" target="_blank">˹վvƬѹۿ</a>| <a href="http://50077995.com" target="_blank">ѹۿaëƬվ</a>| <a href="http://0101av.com" target="_blank">ձ</a>| <a href="http://yuejiju.com" target="_blank">޾Ʒվ</a>| <a href="http://www876444.com" target="_blank">Ʒ97˳Ƶ </a>| <a href="http://468862.com" target="_blank">޼У԰ɫ</a>| <a href="http://43sihu.com" target="_blank">һƵ</a>| <a href="http://ekyzs.com" target="_blank">þþþavר</a>| <a href="http://mt181.com" target="_blank">һng һѿ </a>| <a href="http://sijep.com" target="_blank">Ļ</a>| <a href="http://kutuwo.com" target="_blank">ձһ </a>| <a href="http://m8va.com" target="_blank">޹Ʒa߹ۿ</a>| <a href="http://www91v.com" target="_blank">91Ʒѹۿ</a>| <a href="http://by22877.com" target="_blank">˳վ߹ۿ</a>| <a href="http://taobaohuopin.com" target="_blank">AVרAV鶹Ѿ</a>| <a href="http://vvihh.com" target="_blank">ѹۿͰŮƵ</a>| <a href="http://zzxngk.com" target="_blank">ѿֻվ</a>| <a href="http://igao4.com" target="_blank">˳վձƬ</a>| <a href="http://szybzc.com" target="_blank">VV</a>| <a href="http://fns92.com" target="_blank">ɫվ</a>| <a href="http://17soco.com" target="_blank">avר</a>| <a href="http://goeqq.com" target="_blank">ŷ͵Ʒ </a>| <a href="http://directzx.com" target="_blank">ŮAëƬƵ</a>| <a href="http://j2eesp.com" target="_blank">ƷþþþþĻ</a>| <a href="http://26cgw.com" target="_blank">Avһ </a>| <a href="http://manghuo365.com" target="_blank">avպavۺ</a>| <a href="http://xyhfloor.com" target="_blank">þþۺɫһ</a>| <a href="http://tom-erc20.com" target="_blank">ŮƵƵȫƵվ</a>| <a href="http://mallmirror.com" target="_blank">Ʒ鶹˳վ</a>| <a href="http://mtsp2.com" target="_blank">Ʒ</a>| <script> (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })(); </script> </body>