<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 89,  comments - 98,  trackbacks - 0
    1) 關(guān)于定時(shí)備份
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1233&show=390
    crontab 中可以這樣寫:
    00 23 * * * /sybase/ASE-12_0/bin/DUMPDB.sh >;>;/sybase/ASE-12_0/install/DUMPDB.out

    放那里都無(wú)所謂,一個(gè)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
    !
    這里是一個(gè)典型的腳本,用于實(shí)現(xiàn)full備份!
    #!/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
    請(qǐng)根據(jù)自身系統(tǒng),調(diào)試后再使用!
    至于備份日志的腳本與此類似,自己根據(jù)sybase的相關(guān)語(yǔ)法,稍加變動(dòng)即可!



    2) 有個(gè)關(guān)于游標(biāo)的問(wèn)題,請(qǐng)教各位大蝦 
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=429&show=390
    在sybase數(shù)據(jù)庫(kù)中用游標(biāo)操作完表a的記錄后,關(guān)閉close游標(biāo),在free游標(biāo)。但接著想drop此表a,結(jié)果失敗,顯示的錯(cuò)誤信息是"游標(biāo)在使用"(記得不是很清楚了,大概是這個(gè)意思)。
    請(qǐng)碰到過(guò)這類問(wèn)題的大蝦支持支持。在informix和oracle中釋放游標(biāo)是用free,在sybase也是用free嗎?

    sybase 中正確操作游標(biāo)的順序是:
    1、DECLARE CUR_ACCTINFO CURSOR FOR SELECT .....? ? (定義)
    2、OPEN CUR_ACCTINFO? ?? ?? ?? ?? ?? ?? ?? ?? ?? ? (打開(kāi))

    3、WHILE @@SQLSTATUS = 0? ?? ?? ?? ?? ?? ?? ?? ?? ? (判斷是否成功)
    BEGIN
    ? ?? ?? ?? ?
    4、? ?? ?? ?FETCH CUR_ACCTINFO INTO??.......? ???(取數(shù)據(jù))
    ? ?? ?? ? IF @@SQLSTATUS??<>; 0
    begin
    ? ?? ?? ?? ?? ?? ???......
    end
    ? ?? ?? ???...........
    5、 CLOSE CUR_ACCTINFO? ?? ?? ?? ?? ?(關(guān)閉)
    6、 DEALLOCATE??CURSOR CUR_ACCTINFO??(釋放)


    3) 在sybase中有沒(méi)有進(jìn)行數(shù)據(jù)類型轉(zhuǎn)換的函數(shù) 
    ??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
    去尾用floor,如floor(123.4567)=123
    進(jìn)尾用ceiling,如ceiling(123.4567)=124


    4) 新手問(wèn)題:為什么我的SYBASE的RUN_BACKUP老是自己DOWN啊???
    ??http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1335&show=330
    為什么我的SYBASE的RUN_BACKUP老是自己DOWN?。??
    我用NetTerm登陸運(yùn)行,但只要一退出NetTerm,BACKUP就自己DOWN了
    加&運(yùn)行也不行,怎么辦?。?br />

    命令前加nohup 試試

    那是因?yàn)槟愕腷ackup進(jìn)程是以你的登錄用戶起動(dòng)的,所以當(dāng)該用戶退出unix時(shí),
    進(jìn)程也跟著退出操作系統(tǒng)了

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


    在客戶端出現(xiàn)提示:
    Attempt to BEGIN TRANsaction in database "****" failed because database is in BYPASS RECOVERY mode.
    請(qǐng)問(wèn)如何解決?


    select name,status from master..sysdatabases where db_name="你所說(shuō)的數(shù)據(jù)庫(kù)"
    看status是否是-32768 ,若是,sysdatabases系統(tǒng)表相應(yīng)記錄的status字段改為0,reboot數(shù)據(jù)庫(kù)服務(wù)器就可以了。

    謝謝各位,問(wèn)題已解決。中午去SYBASE網(wǎng)站查找到有關(guān)這個(gè)問(wèn)題的詳細(xì)信息,包括問(wèn)題成因及解決辦法:
    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.
    再次謝謝aladdin,freebob,changing。
    6) 數(shù)據(jù)庫(kù)表BCP出來(lái)報(bào)錯(cuò) 
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1326&show=300
    數(shù)據(jù)庫(kù)表BCP出來(lái)報(bào)錯(cuò)
    DB-LIBRARY error
    I/O error while writing bcp data-file
    bcp出來(lái)的文件正好2GB,實(shí)際應(yīng)該更大。
    操作系統(tǒng)SCO OpenServer5.0.4, SYBASE 11.0.3
    請(qǐng)問(wèn)是何原因?謝謝。
    當(dāng)在后備數(shù)據(jù)量大于2GB的數(shù)據(jù)庫(kù)時(shí),可能會(huì)遇到以下錯(cuò)誤:
    I/Oerror:
    operating system error,server device /backup/data. code 27 messages
    file too large.
      這是由于后備文件的大小超出了操作系統(tǒng)的用戶最大文件限制。而有些操作系統(tǒng)不支持大于2GB的文件,這時(shí)可以使用Backup Server將一個(gè)數(shù)據(jù)庫(kù)后備到多個(gè)文件中。
      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
      這種方法還可以提高后備及恢復(fù)的速度,但注意恢復(fù)也必須用相應(yīng)多的設(shè)備。例如:
      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口令丟失怎樣恢復(fù)? 
    ??http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1239&show=270
    在RUN-SERVER文件中加入一行-psa,重起dataserver,在控制臺(tái)上可以看見(jiàn)新的口令
    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表中如何刪掉多條相同的記錄?
    由于表出問(wèn)題,將沒(méi)有進(jìn)行處理的*.txt文件bcp到表中,其中含有大量的重復(fù)記錄。
    請(qǐng)問(wèn)有沒(méi)有辦法將表中重復(fù)的記錄刪掉呢?

    那好辦,那你就可以使用下面語(yǔ)句將唯一的記錄先插入到臨時(shí)表中:
    select distinct a ,b,c,d ... into tempdb..tempdb_table from tablename
    然后清空原表,把臨時(shí)表中的數(shù)據(jù)插入正式表中!
    試試看

    可以參考這種經(jīng)典方法:
    1---select * into tmp_tab from your_dup_tab where 1=2
    2---若表無(wú)唯一性索引則建一個(gè)唯一性索引(一定能找到一個(gè)唯一性的索引建(復(fù)合索引))create unique index(列名1,列名2...) on tmp_tab with ignore_dup_key.
    3----insert into tmp_tab from your_dup_tab
    這樣在新表中將自動(dòng)刪出重復(fù)記錄。但數(shù)據(jù)量過(guò)大請(qǐng)留意日志空間(sp_spaceused syslogs).
    很使用的方法.try it!

    9) 關(guān)于閥值
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1231&show=180
    發(fā)告警或者水自動(dòng)溢出,以保護(hù)系統(tǒng)不至于達(dá)到危險(xiǎn)境界。對(duì)于數(shù)據(jù)庫(kù)而言,我們使用的存儲(chǔ)設(shè)備畢竟有限,如果任由數(shù)據(jù)或日志增長(zhǎng),數(shù)據(jù)或日志日久天長(zhǎng)終將占用所有存儲(chǔ)設(shè)備,如果到了沒(méi)有空間的時(shí)候,系統(tǒng)將掛起,這樣業(yè)務(wù)將暫停。所以對(duì)于一些要求數(shù)據(jù)庫(kù)可用性很高的系統(tǒng),必須保證在可預(yù)見(jiàn)的情況下數(shù)據(jù)段或者日志段不至于沒(méi)有空間!為做到這一點(diǎn),傳統(tǒng)的數(shù)據(jù)庫(kù)一般都需要系統(tǒng)維護(hù)人員經(jīng)常的定期的進(jìn)行數(shù)據(jù)庫(kù)檢查,若數(shù)據(jù)段不夠了,轉(zhuǎn)儲(chǔ)一部分?jǐn)?shù)據(jù)或者增加一些設(shè)備,若日志空間不夠了,轉(zhuǎn)儲(chǔ)日志!但這樣系統(tǒng)管理員就有點(diǎn)累了!
    為減輕系統(tǒng)管理員的負(fù)擔(dān),提高系統(tǒng)的自動(dòng)化程度,sybase提出了用閥值進(jìn)行自動(dòng)管理的這樣一種模式,只要在開(kāi)始定義好各段的閥值,以及達(dá)到閥值后的處理存儲(chǔ)過(guò)程,就可以實(shí)現(xiàn)自動(dòng)管理了!
    不過(guò),我先前也想這樣做,也研究了一陣子,但是后來(lái)還是放棄了這種懶惰的辦法。因?yàn)槭褂瞄y值管理可能出現(xiàn)一些意想不到的問(wèn)題,什么問(wèn)題現(xiàn)在還沒(méi)想到,只是sybase不推薦在大系統(tǒng)中這樣做!再加上本身系統(tǒng)有omni back備份軟件,何必自找麻煩呢!

    10) 什么SYBASE安裝完后要增加TEMPDB的空間?
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1444&show=180
    擴(kuò)展后sp_helpdb tempdb看應(yīng)改master設(shè)備上是data/log的
    你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
    貼出來(lái)
    如果第一行中segmap為0,就ok


    你們回答的什么,驢唇不對(duì)馬嘴(呵呵,開(kāi)玩笑)
    一般情況下數(shù)據(jù)庫(kù)裝好之后,都要給tempdb增加空間,因?yàn)樵谟脩魯?shù)據(jù)庫(kù)中的很多插入,刪除等操作需要用到tempdb數(shù)據(jù)庫(kù)作為臨時(shí)存儲(chǔ)空間,所以要增大他的空間,否則可能你的事務(wù)不能執(zhí)行

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

    sybase 臨時(shí)數(shù)據(jù)庫(kù)
    缺省情況下,tempdb數(shù)據(jù)庫(kù)是放置在master設(shè)備上,容量為2M,而臨時(shí)數(shù)據(jù)庫(kù)是活動(dòng)最為平凡的數(shù)據(jù)庫(kù)常常被用來(lái)排序、創(chuàng)建臨時(shí)表、重格式化等操作,所以tempdb的優(yōu)化應(yīng)該受到特別的關(guān)注。本篇文章目的在于使你掌握臨時(shí)數(shù)據(jù)庫(kù)的優(yōu)化策略以及臨時(shí)表的優(yōu)化使用。本文中,你將以調(diào)整臨時(shí)庫(kù)的位置開(kāi)始,有步驟的完成臨時(shí)數(shù)據(jù)庫(kù)的優(yōu)化,并在此過(guò)程中了解到優(yōu)化臨時(shí)數(shù)據(jù)庫(kù)和臨時(shí)表的一些方法和規(guī)則。
    實(shí)驗(yàn)環(huán)境的要求:你應(yīng)具有系統(tǒng)管理員的權(quán)限,系統(tǒng)中有auths和article表。
    步驟:
    第一步:調(diào)整臨時(shí)庫(kù)的位置
      tempdb數(shù)據(jù)庫(kù)缺省放在master設(shè)備上,將臨時(shí)數(shù)據(jù)庫(kù)發(fā)在分離的設(shè)備上是更可取的。
    1)??初始化一個(gè)用來(lái)存放臨時(shí)數(shù)據(jù)庫(kù)的設(shè)備
    disk init
    name="tempdb_dev",
    physname="d:\sybase\example\tempdb.dat",
    vdevno=13,
    size=15360
    (注意:如果將tempdb數(shù)據(jù)庫(kù)放在多個(gè)設(shè)備上,需初始化多個(gè)數(shù)據(jù)庫(kù)設(shè)備)
    2)將臨時(shí)數(shù)據(jù)庫(kù)擴(kuò)展到該一個(gè)設(shè)備上
    ??alter database tempdb on tempdb_dev=30
    3)打開(kāi)tempdb數(shù)據(jù)庫(kù),從段上刪除master設(shè)備
    sp_dropsegment "default",tempdb,master
    sp_dropsegment logsegment,tempdb,master
    4)發(fā)出如下命令,檢查default段中是否不再包含master設(shè)備
    ? ???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)
    說(shuō)明:若將臨時(shí)數(shù)據(jù)庫(kù)放在多個(gè)磁盤設(shè)備上,可以更好的利用并行查詢特性來(lái)提高查詢性能。
    第二步:將臨時(shí)數(shù)據(jù)庫(kù)與高速緩沖進(jìn)行綁定。
      由于臨時(shí)表的創(chuàng)建、使用,臨時(shí)數(shù)據(jù)庫(kù)會(huì)頻繁地使用數(shù)據(jù)緩存,所以應(yīng)為臨時(shí)數(shù)據(jù)庫(kù)創(chuàng)建高速緩存,從而可以使其常駐內(nèi)存并有助于分散I/O:
    1、創(chuàng)建命名高速緩存
    sp_cacheconfig “tempdb_cache","10m","mixed"
    2、重新啟動(dòng)server
    3、捆綁臨時(shí)數(shù)據(jù)庫(kù)到tempdb_cache高速緩存
    sp_bindcache “tempdb_cache", tempdb
    4、若有大的I/O,配置內(nèi)存池
    第三步:優(yōu)化臨時(shí)表
    ? ?大多數(shù)臨時(shí)表的使用是簡(jiǎn)單的,很少需要優(yōu)化。但需要對(duì)臨時(shí)表進(jìn)行復(fù)雜的訪問(wèn)則
    應(yīng)通過(guò)使用多個(gè)過(guò)程或批處理來(lái)把表的創(chuàng)建和索引分開(kāi)。以下兩種技術(shù)可以改善臨時(shí)表的優(yōu)化
    slash;? ?? ?? ?在臨時(shí)表上創(chuàng)建索引
    1)??臨時(shí)表必須存在
    2)??統(tǒng)計(jì)頁(yè)必須存在(即不能在空表上創(chuàng)建索引)
    slash;? ?? ?? ?把對(duì)臨時(shí)表的復(fù)雜的使用分散到多個(gè)批處理或過(guò)程中,以便為優(yōu)化器提供信息
    下面的這個(gè)過(guò)程需要進(jìn)行優(yōu)化:
    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"
    使用兩個(gè)過(guò)程可以得到更好的性能
    1)create 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"
    說(shuō)明:在同一個(gè)存儲(chǔ)過(guò)程或批處理中,創(chuàng)建并使用一個(gè)表時(shí),查詢優(yōu)化器無(wú)法決定這個(gè)表的大小。
    結(jié)論:通過(guò)本實(shí)驗(yàn)我們知道,臨時(shí)數(shù)據(jù)庫(kù)經(jīng)過(guò)優(yōu)化可以極大的提高系統(tǒng)性能。實(shí)際工作中,必須考慮具體應(yīng)用的情況,需長(zhǎng)時(shí)間經(jīng)驗(yàn)的積累。

    11) 怎樣利用腳本自動(dòng)關(guān)閉sybase數(shù)據(jù)庫(kù) 
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1484&show=180
    不知你什么平臺(tái),如果是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) 請(qǐng)教存儲(chǔ)過(guò)程動(dòng)態(tài)使用表 
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1488&show=180
    你指動(dòng)態(tài)sql
    要12.0版本以上才支持
    CREATE PROCEDURE dbo.mytt
    (@c varchar(25))??
    AS
    ??BEGIN
    declare @cc varchar(25)
    select @cc = "select * from " + @c
    exec (@cc)
    ??END

    13) sybase中的跨庫(kù)操作
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1489&show=150
    假如本機(jī)server為loc_server,遠(yuǎn)程server為re_server
    在這兩個(gè)server 各自的interface文件里都必須有定義
    sp_configure "allow remote access"是否為1;

    在本機(jī)server上:
    sp_addserver re_server
    sp_addserver loc_server,LOCAL --->;這樣你select @@servername就有東西
    在remote server 上:
    sp_addserver loc_server
    sp_addserver re_server,LOCAL
    在2個(gè)server 上
    sp_addremotelogin ......
    檢查這兩個(gè)參數(shù)
    number of remote sites
    number of remote connections .
    然后:
    如果isql從loc_server 到rs_server
    connect to rs_server
    disconnect
    rs_server...sp_who在loc_server上執(zhí)行rs_server 上的sp_who
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1560&start=15&show=90
    這里給你提供一篇這方面的資料:
    如何實(shí)現(xiàn)兩個(gè)Sybase Adaptive Server之間的數(shù)據(jù)通信
    在進(jìn)行以Sybase作為后臺(tái)數(shù)據(jù)庫(kù)的MIS系統(tǒng)開(kāi)發(fā)時(shí),經(jīng)常會(huì)碰到需要在兩個(gè)Sybase Adaptive Server之間進(jìn)行數(shù)據(jù)通信的問(wèn)題。要解決這一問(wèn)題通常由兩類方法:其一便是在前臺(tái)來(lái)做;這種方法一般是通過(guò)建立多個(gè)事務(wù),分別連接到不同的Server,在應(yīng)用程序中通過(guò)編程實(shí)現(xiàn)數(shù)據(jù)的交換。這種方法的缺點(diǎn)在于可維護(hù)性差,還有一點(diǎn)是由于需要多個(gè)事務(wù)肯定也會(huì)影響效率。另外一類方法就是利用Sybase 的Transact SQL在后臺(tái)來(lái)做。這類方法把數(shù)據(jù)的通信工作交給了SQL服務(wù)器自己去做。這種方法顯而易見(jiàn)的一種有點(diǎn)便是可維護(hù)性好,當(dāng)業(yè)務(wù)發(fā)生變化或服務(wù)器設(shè)置改變時(shí)可以很少修改大部分情況是不用修改應(yīng)用程序。下面舉一個(gè)簡(jiǎn)單的例子來(lái)介紹一下如何利用Transact SQL在后臺(tái)實(shí)現(xiàn)SQL服務(wù)器之間的數(shù)據(jù)通信。
    ---- 假設(shè)有兩臺(tái)操作系統(tǒng)都是Windows NT的Sybase SQL服務(wù)器LocalServer、RemoteServer,兩者能夠相互訪問(wèn)即應(yīng)是通過(guò)網(wǎng)絡(luò)相連的;在LocalServer和RemoteServer上分別有數(shù)據(jù)庫(kù)LS_database和RS_database;在數(shù)據(jù)庫(kù)LS_database和RS_database里分別有表LS_table和RS_table。
    ---- 假設(shè)現(xiàn)在業(yè)務(wù)規(guī)則是當(dāng)LS_table更新時(shí)需要更新RS_table。
    ---- 要實(shí)現(xiàn)這種業(yè)務(wù)邏輯首先需要在RemoteServer的RS_database里建立至少一個(gè)帶參數(shù)的存儲(chǔ)過(guò)程設(shè)為pro_upd_rst,用來(lái)更新RS_table;其次需要在表LS_table上建立三個(gè)觸發(fā)器:設(shè)為update_rst、delete_rst和insert_rst,在這些觸發(fā)器中調(diào)用RS_database中的存儲(chǔ)過(guò)程。即采用觸發(fā)器傳遞參數(shù)進(jìn)行遠(yuǎn)程存儲(chǔ)過(guò)程調(diào)用(Remote Procedure Calls)的技術(shù)來(lái)實(shí)現(xiàn)。當(dāng)LS_table發(fā)生更新時(shí)觸發(fā)器update_rst、delete_rst和insert_rst中有一個(gè)會(huì)被觸發(fā),通過(guò)臨時(shí)表inserted和deleted能夠得到更新的信息,賦給相應(yīng)變量,傳遞參數(shù)給pro_upd_rst并調(diào)用之。
    ---- 需要提到的一點(diǎn)是Sybase數(shù)據(jù)庫(kù)的缺省安裝并沒(méi)有設(shè)置RPC,所以還要對(duì)LocalServer進(jìn)行一些設(shè)置工作,這一點(diǎn)比較有必要強(qiáng)調(diào)尤其是對(duì)于初學(xué)者來(lái)說(shuō)。這些設(shè)置工作主要有以下幾點(diǎn):
    運(yùn)行LocalServer接口程序管理器Dsedit添加一個(gè)Server,Server Name設(shè)置為"RemoteServer"(可以是其他字符串),編輯Server Address,添加網(wǎng)絡(luò)協(xié)議和端口號(hào),通常選擇TCP/IP協(xié)議,Network Address 設(shè)為"RemoteServer,5000",其中RemoteServer(這里指的是該服務(wù)器在網(wǎng)絡(luò)中的機(jī)器名)可以用其IP地址來(lái)代替。試一試能否Ping通RemoteServer。Ping通后進(jìn)行下面的工作。
    在LocalServer添加一個(gè)遠(yuǎn)程服務(wù)器,可以通過(guò)運(yùn)行LocalServer的Sybase Central,打開(kāi)LocalServer的"remote servers"文件夾,雙擊"Add Remote Server",在編輯框內(nèi)輸入一個(gè)字符串設(shè)為"Remote_Local"(注意區(qū)分大小寫),在下面的下拉列表框中選擇"RemoteServer"(這是第1步中的Server Name),點(diǎn)擊下一步后在列表框中選擇"sql_server"完成。
    重新設(shè)置LocalServer一些與RPC有關(guān)的參數(shù),也可以通過(guò)Sybase Central。右鍵點(diǎn)擊LocalServer,單擊談出菜單的"configure",在下拉列表框種選擇"Component Integration Services",注意下面的兩個(gè)參數(shù)"cis rpc handling" 和 "enable cis",這兩個(gè)參數(shù)的缺省值都是"0",應(yīng)該把它們都改為"1"。由于"enable cis"是靜態(tài)參數(shù)所以修改后需要重起數(shù)據(jù)庫(kù)才能生效。最后最好檢查一下RemoteServer的"enable remote access"參數(shù)的值是否為"1"(缺省情況應(yīng)該是"1"否則改為"1"。
    ---- 其中第1步可以通過(guò)編輯接口文件sql.ini(在Sybase根目錄的"ini"子目錄下)來(lái)代替,打開(kāi)sql.ini在最后加入如下三行:
    [RemoteServer] master=TCP,RemoteServer,5000 query= TCP,RemoteServer,5000
    ? ?? ???保存并關(guān)閉。
    ---- 第2、3步可以通過(guò)系統(tǒng)存儲(chǔ)過(guò)程"sp_configure"來(lái)代替,在SQL Advantage或isql中執(zhí)行下列語(yǔ)句:
    sp_addserver Remote_Local,null,RemoteServer
    ? ?? ???go sp_configure "enable cis",1 go sp_configure "cis rpc handling",1
    ? ?? ???go
    ---- LocalServer配置號(hào)以后應(yīng)該測(cè)試一下,運(yùn)行SQL Advantage或isql連接LocalServer執(zhí)行下列語(yǔ)句"exec Remote_Local.master.dbo.sp_help",再次強(qiáng)調(diào)一點(diǎn)其中的Remote_Local區(qū)分大小寫。
    ---- 上面所舉的只是一個(gè)簡(jiǎn)單的例子,只能在LocalServer上調(diào)用RemoteServer上的存儲(chǔ)過(guò)程,若要在RemoteServer調(diào)用上LocalServer上的存儲(chǔ)過(guò)程則要在RemoteServer進(jìn)行同樣的設(shè)置(添加Remote Server、重新配置RemoteServer的參數(shù)等),并且要保證LocalServer的"enable remote access"的值為"1"。


    14) ASE在windows xp/2000上安裝的二個(gè)注意的問(wèn)題
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1522&show=150
    本人近日在Windows xp上安裝Sybase ASE12.5開(kāi)發(fā)版作學(xué)習(xí)之用。遇到了一點(diǎn)麻煩,現(xiàn)將解決辦法介紹給大家參考,如有還有類似的問(wèn)題可聯(lián)系我:email: learun@hotmail.com
    一、ASE12.4 在XP下中文亂碼解決辦法:
    ??查看注冊(cè)表,在鍵:key_local_machine\software\microsoft\windows NT\CurrentVersion\CurrentVerison中,可知當(dāng)前系統(tǒng)版本為5.1

    ??進(jìn)入Sybase源安裝目錄,查看run.bat文件,找到一行:set JAVA_HOME=.\shared-1_0\jre1.2.2,
    然后進(jìn)入: .\shared-1_0\jre1.2.2\lib目錄,將文件font.properties.zh.NT4.0的名稱改為font.properties.zh.NT5.1即可。如果源目錄在光
    盤上,將jre1.2.2目錄、run.bat文件拷到硬盤上,修改run.bat中的JAVA_HOME項(xiàng),然后運(yùn)行run.bat.

    安裝后,基于中文的管理工具依然會(huì)出現(xiàn)亂嗎,按上面的方法更改%sybase%\shared-1_0\jre1.2.2\lib中的font.properties.zh.NT4.0文件
    名。
    一些windows操作系統(tǒng)的版本號(hào):
    windows9898
    windows nt4nt4.0
    windwos 2000nt5.0
    windows xpnt5.1

    二、網(wǎng)絡(luò)地址
    安裝過(guò)程中,需要配置sql server和sybase xp server的網(wǎng)絡(luò)地址。在安裝界面上,對(duì)網(wǎng)絡(luò)地址沒(méi)有什么說(shuō)明,如果輸入錯(cuò)了,也沒(méi)什么提
    示。它其實(shí)與協(xié)議類型有關(guān),如果是TCP協(xié)議,它的構(gòu)成為:機(jī)器名(或IP地址), 端口號(hào)。例如:myserver,9001 。在安裝后也可以用
    “Dsedit"來(lái)編輯。網(wǎng)絡(luò)地址很重要,如果錯(cuò)了,服務(wù)器無(wú)法啟動(dòng)。
    另:當(dāng)啟動(dòng)信息中含有:in module 'e:\rel12501\porttree\svr\sql\generic\ksource\strmio\n_winsock.c' 。不必為這句話迷惑,這是
    Sybase程序的硬編碼輸出,與你的E盤有無(wú)此文件無(wú)關(guān)。
    15) 關(guān)于數(shù)據(jù)庫(kù)鎖
    http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1118&show=120
    SYBASE 11.9以上的版本提供行級(jí)鎖。
    鎖類型選擇的確是sybase數(shù)據(jù)庫(kù)設(shè)計(jì)的一個(gè)需要重要考慮的問(wèn)題!見(jiàn)大家討論的如此火熱,特上點(diǎn)干材支持一把,來(lái)點(diǎn)關(guān)于lock的借介紹性資料!

    所支持的加鎖機(jī)制
    2.1 全頁(yè)加鎖
      全頁(yè)加鎖既是一個(gè)新術(shù)語(yǔ),它又是由ASE(Adaptive Server Enterprise)在過(guò)去所支持的一種加鎖類型。這種類型有下列特性:
    對(duì)所有可被訪問(wèn)的頁(yè)面在頁(yè)面級(jí)加鎖
    當(dāng)各種類型的頁(yè)面以任何方式發(fā)生改變時(shí),對(duì)這些排它性的頁(yè)面進(jìn)行加鎖;而且這種加鎖機(jī)制一直保持到該事務(wù)終止;
    當(dāng)下一個(gè)所需的頁(yè)面已經(jīng)成功地獲得,對(duì)那些已經(jīng)釋放的的當(dāng)前訪問(wèn)頁(yè)進(jìn)行共享頁(yè)面加鎖(如果采用了第三層ANSI隔離,則把這種加鎖機(jī)制保持到該事務(wù)終止為止)
    采用頁(yè)級(jí)時(shí)間印記(timestamp)以確定是否發(fā)生改變,詳細(xì)信息記錄在事務(wù)日志中,以便在系統(tǒng)恢復(fù)時(shí)以向前或向后方式使用。
      這種加鎖方式常常提供性能最高的解決方案,特別是當(dāng)應(yīng)用設(shè)計(jì)時(shí)已經(jīng)考慮了這些特性時(shí)更是如此。但是,有一些應(yīng)用系統(tǒng),當(dāng)發(fā)生某些活動(dòng)時(shí),這種對(duì)整個(gè)頁(yè)面進(jìn)行加鎖的方式就可能會(huì)對(duì)系統(tǒng)性能產(chǎn)生有重大意義的影響。對(duì)于那些面對(duì)諸如文件系統(tǒng)或其它已經(jīng)支持更細(xì)小尺度加鎖機(jī)制的數(shù)據(jù)庫(kù)廠家產(chǎn)品的一般環(huán)境而設(shè)計(jì)的應(yīng)用系統(tǒng)而言,這種情況尤其如此。
      此外,還存在一系列問(wèn)題,它們要圍繞著更加困難的條件進(jìn)行工作。它們通常要采用更加具有Sybase特性的解決方案。對(duì)于商用的應(yīng)用軟件制造廠商而言,對(duì)他們是一個(gè)挑戰(zhàn),因?yàn)檫@將要求他們必須跨越他們所支持的數(shù)據(jù)庫(kù)平臺(tái),去完成維護(hù)其原代碼的工作,而這個(gè)工作有相當(dāng)工作量。在這個(gè)領(lǐng)域的基本問(wèn)題如下:
    對(duì)已經(jīng)按照升序值創(chuàng)建的非群聚性索引的最末端葉型頁(yè)面存在著爭(zhēng)議
    對(duì)非群聚性索引的表進(jìn)行插入和查詢時(shí)可能發(fā)生死鎖;
    在按照群聚性的索引值進(jìn)行更新和對(duì)非群聚性索引的表進(jìn)行查詢?cè)L問(wèn)之間可能發(fā)生死鎖;
    在沒(méi)有作索引的表的最后一行可能發(fā)生沖突(盡管對(duì)最后的特定地址可以使用分區(qū)) ;
    有可能使行數(shù)很少的表之間發(fā)生潛在的沖突(盡管對(duì)特定的地址可以使用填充因子[ fillfactors]和每頁(yè)最大行數(shù)[ max_rows_per_page]這兩個(gè)參數(shù))
    對(duì)每個(gè)頁(yè)面兩邊進(jìn)行加鎖的需要常常被分割開(kāi)來(lái);
    如果一個(gè)表特別小,以致在一個(gè)單一頁(yè)面中進(jìn)行駐留,那么對(duì)單一行的訪問(wèn)實(shí)際上將破壞對(duì)整個(gè)表的加鎖機(jī)制。
    2.2 僅對(duì)數(shù)據(jù)加鎖
      僅對(duì)數(shù)據(jù)加鎖機(jī)制試圖去解決本文前一節(jié)所關(guān)注的主要問(wèn)題(其他的議題將在其它功能領(lǐng)域中加以解決)。這種加鎖方式支持兩類不同的工作方式: 數(shù)據(jù)行加鎖和數(shù)據(jù)頁(yè)加鎖。在這兩種情況中,對(duì)于它們所支持的加鎖方式,都與以前的加鎖機(jī)制有所不同。僅對(duì)數(shù)據(jù)加鎖具有下列特性:
    在索引頁(yè)面中不會(huì)破壞事務(wù)加鎖。相反,而是采用了一種稱之為鎖存的機(jī)制。鎖存是一種類似于旋轉(zhuǎn)鎖(spinlocks)的同步方法,它們與事務(wù)無(wú)關(guān)并且只保留很短的周期(一般而言,當(dāng)一個(gè)任務(wù)在數(shù)據(jù)庫(kù)中物理上改變一小片數(shù)據(jù)時(shí),這個(gè)周期相當(dāng)于在共享存貯區(qū)中在一個(gè)2K的頁(yè)面改變某些字節(jié)數(shù)據(jù)的時(shí)間)一旦完成之后,這個(gè)任務(wù)將直接打開(kāi)這個(gè)鎖存。當(dāng)這種情況還可能臨時(shí)同其它組塊時(shí) ,因?yàn)檫@種鎖存不能對(duì)服務(wù)器任務(wù)進(jìn)行有上下文的切換,也不能涉及死鎖,并且只能保持主要的一小段時(shí)間,所以它們不能產(chǎn)生有顯著意義的爭(zhēng)用。
    采用一個(gè)RID對(duì)單一行進(jìn)行數(shù)據(jù)行加鎖(行標(biāo)識(shí)[RID----Row ID]是邏輯頁(yè)號(hào)與所在頁(yè)面上該行號(hào)的組合);
    支持固定的行標(biāo)識(shí) RIDs, 它可以是向前的,允許不進(jìn)行其RID的改變,就完成數(shù)據(jù)行的移動(dòng)。當(dāng)一行變大超過(guò)了它的可用空間時(shí),采用上述結(jié)果對(duì)非群聚索引不需要進(jìn)行任何改變。
    不需要進(jìn)行任何爭(zhēng)用就可以在表的尾部進(jìn)行插入操作,這一功能已經(jīng)增加進(jìn)來(lái)。.
    支持采用范圍加鎖、下一個(gè)關(guān)鍵字加鎖和無(wú)限大加鎖等方式對(duì)邏輯范圍值進(jìn)行加鎖
    支持由最頂層操作所導(dǎo)致的頁(yè)面分割。這些情況直接加以提交,"系統(tǒng)"事務(wù)可以導(dǎo)致在更短一點(diǎn)的時(shí)間周期里保持分裂的頁(yè)面處于鎖定狀態(tài)。
      為了支持這些變化,需要對(duì)采用的存貯表結(jié)構(gòu)進(jìn)行一系列改善。這些改進(jìn)的主要效果如下:
    群聚索引現(xiàn)在被存貯為象許多人所熟悉的IBM DB2產(chǎn)品所采用的"放置索引"("placement indexes.")方式。這種結(jié)構(gòu)類似于非群聚性的索引,需要類似的空間總量。這種修正的結(jié)構(gòu)導(dǎo)致了在數(shù)據(jù)初始存貯時(shí)可以按照順序跨數(shù)據(jù)頁(yè)進(jìn)行存儲(chǔ),但是當(dāng)發(fā)生插入時(shí),它們就要盡可能緊密存放以便在正確的邏輯頁(yè)面中不存在頁(yè)面分割。此外,在數(shù)據(jù)頁(yè)中的數(shù)據(jù)順序在新行增加時(shí)是不進(jìn)行維護(hù)整理的。這種索引的應(yīng)用使每個(gè)群聚化的索引周游增加了一次I/O操作。
    行位移表已經(jīng)增加到索引頁(yè)和數(shù)據(jù)頁(yè)中。這種增加和新的行索引行存貯格式具有使每個(gè)索引頁(yè)面所存貯的索引條目個(gè)數(shù)減少的潛在能力。
    固定行標(biāo)識(shí)(RIDS)。當(dāng)一行移動(dòng)時(shí),對(duì)于分配新行位置的向前地址被放在用于駐留該行的位置上。當(dāng)這種移動(dòng)需要改變非群聚性索引時(shí),對(duì)該行的訪問(wèn)需要增加一次I/O操作以得到'向前'的位置。
    一般而言,索引將更小和更短,這是因?yàn)槿缦略颍?
    從每個(gè)葉級(jí)頁(yè)面中采用雙重鍵限制機(jī)制來(lái)限制雙重鍵(Duplicate key)例如,如果值"綠"("GREEN")在下列行標(biāo)識(shí)(RIDs)值等于123-1,234-2,和345-3的行中, 就分別存貯值“綠”("GREEN"),123-1,234-2,345-3,而不是存貯值"綠"("GREEN,")三次。在每個(gè)索引頁(yè)中每個(gè)值只存貯一次。
    在非群聚性索引樹(shù)的非葉型結(jié)點(diǎn)中將后綴實(shí)行壓縮(例如,如果鍵值是"GREEN"和"HAMILTON",而在這兩個(gè)值之間發(fā)生分裂,那么就在非頁(yè)級(jí)索引頁(yè)面中存儲(chǔ)"G"和"H"
    2.3 數(shù)據(jù)頁(yè)和數(shù)據(jù)行加鎖
      只對(duì)數(shù)據(jù)加鎖機(jī)制支持兩種方式:數(shù)據(jù)頁(yè)加鎖和數(shù)據(jù)行加鎖。這些與它們的工作方式和所提供的功能相類似。這兩種方式僅在對(duì)數(shù)據(jù)訪問(wèn)產(chǎn)生阻礙作用時(shí),在加鎖的尺度上有所區(qū)別。在數(shù)據(jù)頁(yè)加鎖方式下再采用數(shù)據(jù)行加鎖方式具有兩種作用(一種起正向作用,另一種起反向作用)。首先,較小尺度加鎖機(jī)制的使用可能導(dǎo)致減少爭(zhēng)用與沖突,然而當(dāng)大量數(shù)據(jù)發(fā)生變化時(shí),就有可能對(duì)加鎖產(chǎn)生大量阻礙的情況發(fā)生。
    2.4 特定使用的加鎖類型
      除非對(duì)配置參數(shù)加以特定,對(duì)所有的表都予置了隱含的全頁(yè)面加鎖機(jī)制。
    sp_configure 'lock scheme', [allpages | datapages | datarows]
      當(dāng)數(shù)據(jù)庫(kù)從原先版本的服務(wù)器中轉(zhuǎn)儲(chǔ)出來(lái)重新加載時(shí),所有的表都被定義為全頁(yè)面加鎖的表。當(dāng)建立一個(gè)新表時(shí),可以不使用這個(gè)缺省值,可采用如下的句法格式:
    create table <tablename>;… lock [allpages | datapages | datarows]
      為了在使用的一個(gè)表中改變加鎖類型,可以采用如下的句法格式:
    alter table <tablename>; lock [allpages | datapages | datarows]
      在一個(gè)現(xiàn)存的表中改變加鎖方式,將引起下列三種行動(dòng)后果發(fā)生:
    首先,如果一張表從全頁(yè)加鎖轉(zhuǎn)變?yōu)閮H對(duì)數(shù)據(jù)加鎖,或者從僅對(duì)數(shù)據(jù)加鎖轉(zhuǎn)變?yōu)槿?yè)加鎖,在這兩種類型之間就要對(duì)表進(jìn)行選擇以允許進(jìn)行存貯格式改變。如果這是一個(gè)分區(qū)表,就要同時(shí)假定必要的并行級(jí)別和工作線程已經(jīng)配置好的情況下,才能執(zhí)行。
    其次, 對(duì)表中的群聚性索引必須重新創(chuàng)建。因?yàn)槲覀兡鼙WC數(shù)據(jù),所以如果從全頁(yè)加鎖方式轉(zhuǎn)換為只對(duì)數(shù)據(jù)加鎖時(shí),這種重新創(chuàng)建可以通過(guò)"with sorted_data"來(lái)完成。然而,當(dāng)從僅對(duì)數(shù)據(jù)加鎖機(jī)制轉(zhuǎn)換為全頁(yè)加鎖方式時(shí),就要進(jìn)行并行的索引創(chuàng)建操作。(請(qǐng)注意:如果這是一個(gè)分區(qū)表時(shí),那么并行等級(jí)和工作線程的數(shù)目必須加以配置才能允許進(jìn)行這種改變,否則這種遷移將會(huì)失?。?
    最后,非群聚性的索引將被重建,如果服務(wù)器已經(jīng)為并行處理所加以配置,當(dāng)進(jìn)行本步驟時(shí)將加以采用。
      由于這些活動(dòng)同潛在的工作量有關(guān),從全頁(yè)加鎖機(jī)制改變?yōu)閮H對(duì)數(shù)據(jù)加鎖或從僅對(duì)數(shù)據(jù)加鎖改變?yōu)槿?yè)加鎖機(jī)制都可能是耗費(fèi)時(shí)間的活動(dòng)。為了標(biāo)注這一點(diǎn),有以下一些選擇:
    如果可能的話,應(yīng)該配置使用并行方式。這至少對(duì)執(zhí)行非群聚性索引的哈斯(雜湊,即hashed)創(chuàng)建方法是必須的,但是如果可能的話,采用分區(qū)表和分區(qū)掃描將使系統(tǒng)得到更大的改進(jìn)。
    在選擇進(jìn)入和創(chuàng)建群聚性的索引之后,該任務(wù)將被設(shè)置檢查點(diǎn)(checkpointed )所以,如果有充分的硬件資源,通過(guò)允許在任何一個(gè)時(shí)間點(diǎn)上,檢查點(diǎn)任務(wù)可以具有多于10個(gè)(系統(tǒng)缺省值)的異步I/O請(qǐng)求,利用dbcc進(jìn)行調(diào)諧將能夠帶來(lái)有益的效果。('maxwritedes', number)
    進(jìn)一步作為降低使用檢查點(diǎn)成本的一種方法,在相關(guān)的高速緩沖池(cache pool)、大數(shù)據(jù)量的I/O操作中,采用對(duì)高淘汰程度進(jìn)行標(biāo)記的方法,并允許清潔程序(好象家庭主婦一樣)保持特別活躍的狀態(tài),將為那些檢查點(diǎn)需要從高速緩沖池中刷新較"臟"的頁(yè)面的而增加的I/O操作次數(shù),并因此花費(fèi)了在檢查點(diǎn)上的時(shí)間,都能夠大大減少作出貢獻(xiàn)。
    如果預(yù)先進(jìn)行了配置,則可以對(duì)并行的選擇進(jìn)入可以使用預(yù)先分配的盤區(qū)。所以,通過(guò)將sp_configure number of pre-allocated extents設(shè)置為16也將對(duì)系統(tǒng)性能有明顯的積極的效果。
      備注:在僅對(duì)數(shù)據(jù)加鎖類型之間進(jìn)行改變不需要對(duì)數(shù)據(jù)進(jìn)行備份, 而且執(zhí)行起來(lái)只需很短的一段時(shí)間。
    [以上為摘自sybase公司站點(diǎn)上的資料]
    據(jù)我個(gè)人使用經(jīng)驗(yàn),我覺(jué)得對(duì)于并行性較高的應(yīng)用要充分考慮使用行級(jí)鎖,這樣對(duì)于提高并發(fā)性能至關(guān)重要!當(dāng)然,事務(wù)都存在利弊兩方面,使用行級(jí)鎖,也會(huì)帶來(lái)一些相應(yīng)的弊端,比如使用的鎖越多,占用的內(nèi)存也越多,在使用行級(jí)鎖的表上頻繁的進(jìn)行數(shù)據(jù)刪除、插入操作久而久之會(huì)造成數(shù)據(jù)庫(kù)碎片的大量生成,數(shù)據(jù)庫(kù)性能會(huì)下降,這就需要定時(shí)進(jìn)行reorg操作,但該操作比較耗時(shí),且影響業(yè)務(wù)!
    16) 請(qǐng)問(wèn)!怎樣設(shè)置自動(dòng)清log,和temp的閥值?
    ??http://www.chinaunix.net/cgi-bin/bbs/topic.cgi?forum=10&topic=1507&show=120

    一般我們可以為某段設(shè)置多個(gè)閥值,但只需在達(dá)到最后機(jī)會(huì)閥值時(shí)作些空間清理的操作.
    第一步,在你的數(shù)據(jù)庫(kù)中設(shè)置閥值,并指定達(dá)到閥值后的處理過(guò)程:
    查看當(dāng)前數(shù)據(jù)庫(kù)某段的最后機(jī)會(huì)閥值:
    sp_helpthreshold "default"
    或者察看其他段的信息。
    修改某段的最后機(jī)會(huì)閥值:
    sp_modifythreshold 數(shù)據(jù)庫(kù)名,段名,自由空間名,[新過(guò)程名[,新自由空間名[,新段名]]]
    sp_modifythreshold mydb,"default",200,NULL,175
    將最后機(jī)會(huì)閥值由200頁(yè)調(diào)整到175頁(yè)。
    具體其他操作,可以參考相關(guān)手冊(cè)!
    第二步,編寫閥值處理過(guò)程:
    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('%1!' for '%2!',SpaceLeft:'%3!',Status:'%4)',
    ? ?? ? and is dumped.",@segmentname,@dbname,@SpaceLeft,@Status
    ? ?? ? dump transaction tempdb to with truncate_only
    return

    不過(guò),我還是不建議用最后機(jī)會(huì)閥值來(lái)進(jìn)行自動(dòng)維護(hù)。



    17〉sybase 相關(guān)產(chǎn)品的中文顯示問(wèn)題:
    問(wèn):
    安裝Sybase ASE 12.5時(shí),如果是中文字符的話,顯示方框字符的亂碼,因?yàn)榘惭b程序使用java制作,可能與什么有關(guān),我不太懂?
    答: 安裝前將安裝文件中此路徑下的:shared-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沒(méi)有出現(xiàn)這個(gè)問(wèn)題,估計(jì)你的SYBASE12.5沒(méi)有打包JRE吧!
    補(bǔ)充說(shuō)明:類似情況在安裝 ASEIQ 和?。螅猓幔螅濉】蛻舳藭r(shí)視不同操作系統(tǒng)和機(jī)器都可能存在這個(gè)問(wèn)題,出現(xiàn)這種情況,就得考慮打補(bǔ)丁或修改jre名字。
    1 如何恢復(fù)受損的master數(shù)據(jù)庫(kù)
      本實(shí)驗(yàn)描述了如何在master數(shù)據(jù)庫(kù)毀壞的情況下,如何重建主設(shè)備,恢復(fù)master數(shù)據(jù)庫(kù),得以重新恢復(fù)系統(tǒng)。

    這里假定:

    l Master數(shù)據(jù)庫(kù)已損壞,或主設(shè)備已損壞。

    l有系統(tǒng)表的最新打印輸出。

    l主設(shè)備只包括master數(shù)據(jù)庫(kù)、tempdb和model

    l有master數(shù)據(jù)庫(kù)的最新備份,且上次轉(zhuǎn)儲(chǔ)master數(shù)據(jù)庫(kù)后沒(méi)有初始化任何設(shè)備或創(chuàng)建、變更任何數(shù)據(jù)庫(kù)。

    關(guān)于恢復(fù)過(guò)程

    l將主設(shè)備重建為第一次安裝服務(wù)器時(shí)的缺省狀態(tài);

    l將master數(shù)據(jù)庫(kù)恢復(fù)為缺省狀態(tài);

    l將master數(shù)據(jù)庫(kù)恢復(fù)為上次備份時(shí)的狀態(tài);

    注意:在恢復(fù)master數(shù)據(jù)庫(kù)的早期階段,不能使用系統(tǒng)存儲(chǔ)過(guò)程。

    恢復(fù)步驟

    步驟1:查找系統(tǒng)表

    查找已保存到文件的系統(tǒng)表sysdatabases、sysdevices、sysusages、sysloginroles和syslogins的副本。用這些副本可以保證在此過(guò)程結(jié)束時(shí)系統(tǒng)已經(jīng)全部恢復(fù)。

    步驟2:建立新的主設(shè)備

    如果Adaptive Server正在運(yùn)行,關(guān)閉它,然后重建主設(shè)備。重建主設(shè)備時(shí),必須指定設(shè)備大小。開(kāi)始重建前,記住以下幾點(diǎn):

    l保留舊設(shè)備,以防遇到問(wèn)題,舊設(shè)備可提供至關(guān)重要的信息。

    l使用buildmaster命令之前應(yīng)關(guān)閉Adaptive Server。

    l不同操作系統(tǒng)上創(chuàng)建主設(shè)備的命令有所不同,如:buildmast(unix)、bldmaster(windows NT),并安裝通用master數(shù)據(jù)庫(kù)的副本。

    l命令中給出主設(shè)備的全名和大小。

    示例:重建一個(gè)30兆(15360個(gè)2k的頁(yè))

    在Window NT上:

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

    步驟3:以主恢復(fù)方式啟動(dòng)Adaptive Server

    使用-m選項(xiàng)以主恢復(fù)方式啟動(dòng)Adaptive Server。在Window NT上,使用sqlsrvr命令從命令行啟動(dòng)Aadaptive Server。

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

    說(shuō)明:以主恢復(fù)方式啟動(dòng)Adaptive Server時(shí),只允許一個(gè)用戶(系統(tǒng)管理員)登錄。

    步驟4:重建master的設(shè)備分配

    檢查sysusages系統(tǒng)表的書(shū)面副本,如果有多行dbid=1的記錄,則需要增加master的大小以便裝載轉(zhuǎn)儲(chǔ)。最簡(jiǎn)單情況下,對(duì)master進(jìn)行額外分配只需要使用alter database即可。復(fù)雜情況,必須為其它數(shù)據(jù)庫(kù)分配空間,以便重新構(gòu)造恢復(fù)master所需的正確的vstart值。

    示例:


    alter datbase master on master=2

    步驟5:檢查Backup Server和sysservers系統(tǒng)表信息。

    使用空口令以“sa“用戶登錄服務(wù)器(如果Backup Server的網(wǎng)絡(luò)名不是SYB_BACKUP,則必須更新sysservers以便Adaptive Server可以與其Backup Server通信)。

    l檢查interfaces文件中Backup Server的名稱;

    l并發(fā)出下面的命令:

    select * from sysservers

    where srvname=”SYB_BACKUP”

    l檢查此命令中輸出結(jié)果的srvnetname。是否與服務(wù)器的backup Server的interfaces文件條目匹配,若匹配跳過(guò)步驟5;

    l如不同,則必須更新sysservers

    示例:

    begin tranaction

    updata sysserver

    set srvnetname=”backupserver_name”

    where srvname=”SYB_BACKUP”

    l核實(shí)該命令,如果updata修改了多行,或者修改了不應(yīng)修改的行,則發(fā)出rollback tranaction命令,然后嘗試再次更新。

    如果該命令正確修改了Backup Server的行,則發(fā)出commit transaction命令。

    步驟6:核實(shí)Backup Server正在運(yùn)行

    Window NT平臺(tái)上,本地安裝的Sybase Central和服務(wù)管理器可以顯示Backup Server是否正在運(yùn)行。

    步驟7:裝載master數(shù)據(jù)庫(kù)的備份

    在Window NT上:

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

    在load database成功完成后,Adaptive Server將關(guān)閉。

    步驟8:更新number of devices配置參數(shù)

    僅當(dāng)使用的數(shù)據(jù)庫(kù)設(shè)備比缺省值多時(shí)才執(zhí)行此步驟。

    步驟9:以主恢復(fù)方式方式重新啟動(dòng)Adaptive Server

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

    注意:裝載master的備份將使“sa”帳號(hào)恢復(fù)到以前的狀態(tài)。如果sa帳號(hào)有口令,則口令恢復(fù)。

    步驟10:檢查系統(tǒng)表以檢驗(yàn)master的當(dāng)前備份

    l如果發(fā)出最新的disk init、create database或alter database命令以后已備份了master數(shù)據(jù)庫(kù),則sysusages、sysdatabases、和sysdevice的內(nèi)容將與書(shū)面副本匹配。

    l如果副本中的任何設(shè)備未包含在已恢復(fù)的sysdevices中,則上次備份以后已添加了設(shè)備,必須運(yùn)行disk reinit和disk refit。

    步驟11:重新啟動(dòng)Adaptive Server

    以常規(guī)(多用戶)模式重新啟動(dòng)Adaptive Server

    步驟12:檢查Adaptive server

    l將sysusages的書(shū)面副本與新聯(lián)機(jī)版本比較

    l將sysdatabase的書(shū)面副本與新聯(lián)機(jī)版本比較

    l在每個(gè)數(shù)據(jù)庫(kù)上運(yùn)行dbcc checkalloc

    l檢查每個(gè)數(shù)據(jù)庫(kù)中重要的表

    完全恢復(fù)master數(shù)據(jù)庫(kù)并運(yùn)行全部的dbcc完整性檢查后,使用常規(guī)轉(zhuǎn)儲(chǔ)命令備份此數(shù)據(jù)庫(kù)。
    posted on 2006-09-28 10:09 水煮三國(guó) 閱讀(1777) 評(píng)論(0)  編輯  收藏 所屬分類: Sybase
    <2006年9月>
    272829303112
    3456789
    10111213141516
    17181920212223
    24252627282930
    1234567

    常用鏈接

    留言簿(4)

    隨筆分類(85)

    隨筆檔案(89)

    文章分類(14)

    文章檔案(42)

    收藏夾(37)

    java

    oracle

    Sybase

    搜索

    •  

    積分與排名

    • 積分 - 210865
    • 排名 - 265

    最新評(píng)論

    閱讀排行榜

    評(píng)論排行榜

    主站蜘蛛池模板: 亚洲av产在线精品亚洲第一站| 久久精品国产亚洲av四虎| 亚洲国产综合精品一区在线播放| 国产99视频免费精品是看6| 免费jjzz在线播放国产| 亚洲中文字幕无码爆乳av中文| 亚洲AV无码专区电影在线观看| 亚洲精品熟女国产| 亚洲AⅤ男人的天堂在线观看| 一级毛片免费全部播放| 午夜免费啪视频在线观看| 国产免费AV片在线播放唯爱网| 日本高清色本免费现在观看| 国产亚洲精品久久久久秋霞| 亚洲成av人片不卡无码| 亚洲暴爽av人人爽日日碰| 中国一级毛片免费看视频| 精品女同一区二区三区免费站| 日本无吗免费一二区| 精品国产综合成人亚洲区| 亚洲人成人77777在线播放 | 永久亚洲成a人片777777| 久久久久亚洲AV成人片| 亚洲风情亚Aⅴ在线发布| 花蝴蝶免费视频在线观看高清版| 国产成人精品免费视| 午夜国产羞羞视频免费网站| 久久亚洲精品国产精品黑人| 亚洲中文无码永久免| 中文在线日本免费永久18近| 久久久久国产精品免费免费搜索 | 成人免费视频一区二区三区| 国产亚洲精品成人a v小说| 亚洲精品国产啊女成拍色拍| 国产精品亚洲综合天堂夜夜| 99视频免费观看| 国产jizzjizz免费看jizz| 亚洲精品午夜在线观看| 成年大片免费高清在线看黄| 99视频全部免费精品全部四虎| 亚洲最大av无码网址|