比較好的Sybase操作

          安裝:FRO LINUX
          1.用sybase身份安裝:CD20045-55-1252-01.tgz
              建立sybase,家目錄在/opt/sybase,加密碼。解壓到/tmp/inst/。修改/etc/hosts:ip  tank
          2.用sybase登錄,啟動xwindow,運(yùn)行/tmp/inst/setup進(jìn)行圖形安裝。
          3。查看SYBASE服務(wù)命令:
          $showserver
          4.停止sybase服務(wù):
          $isql -Usa -STANK
          >shutdown SYB_BACKUP  --->停backupserver
          >go
          >shutdown ------->停dataserver
          >go
          >quit
          5.啟動sybase服務(wù):
          $cd ~ASE_125/install/
          $startserver -f RUN_TANK
          $startserver -f RUN_TANK_BS
          $showserver

          安裝 FOR WIN
          類似一般程序安裝;在WIN服務(wù)管理里設(shè)置啟動。
          win下的SYBASE客戶端sql advantage和dsedit等無法啟動(本機(jī)LAN原因)解決方法:
          修改本機(jī)X:\sybase\locales\locales文件里NT選項(xiàng)的locale = zh_CN, us_english, iso_1,加入本機(jī)LAN即可(如zh_CN)


          常用操作:
          1.su - sybase -c "isql -Usa -STANK"
          2.修改SA的密碼(SA默認(rèn)密碼為空):
          用ISQL連接上后
           sp_password null,"新密碼" or  sp_password "舊密碼","新密碼"
          3.開始和確認(rèn)事務(wù)(注意:有些命令不可以在事務(wù)里運(yùn)行,見附錄)
          begin transaction和commit transaction可將任意數(shù)目的SQL語句封裝起來,這兩名的簡單語法為:
          begin transaction
          commit transaction
          or
          begin tran
          commit
            ps:只有執(zhí)行了commit數(shù)據(jù)才是真正寫入庫里。
          4. 回退事務(wù)
          在commit transaction命令提交前任何時候可取消或回退事務(wù),該命令的簡單語法為:
          rollback transaction
          or
          rollback
          5.檢查事務(wù)狀態(tài)
          全局變量@@transtate記錄了事務(wù)當(dāng)前的狀態(tài)。在執(zhí)行一個語句后SQL Server通過記錄所有事務(wù)變化來確定返回何種狀態(tài)。
          @@transtate可包含下列值:
          值  意義
          0事務(wù)進(jìn)行中:一個顯式或隱式事務(wù)有效;上一語句執(zhí)行成功
          1事務(wù)完成:事務(wù)完成并提交其變化
          2語句異常中止:上一語句異常終止;對事務(wù)無影響
          3事務(wù)異常中止:事務(wù)異常中止并回退所有變化
          舉例:在事務(wù)中,可在一個語句(如insert)后使用@@transtate確定該語句成功或失敗對事務(wù)的影響。commit transaction
          Begin transaction
          Insert into publishers(pub_id)values(‘9999’)
          (1 row affected)
          select @@transtate
          …………………
          0
          commit transaction
          select @@transtate
          …………………
          0
          (1 row affected)

          6.備份系統(tǒng)數(shù)據(jù)
          SYBASE 系統(tǒng)的備份與恢復(fù)機(jī)制保證了在系統(tǒng)失敗時重新獲取數(shù)據(jù)的可能性。SQL Server 提供了兩種不同類型的恢復(fù)機(jī)制:一類是系統(tǒng)自動完成的恢復(fù),這種措施在每次系統(tǒng)啟動時都自動進(jìn)行,保證了在系統(tǒng)癱瘓前完成的事務(wù)都寫到數(shù)據(jù)庫設(shè)備上,而未完成的事務(wù)都被回退;另一類是人工完成的恢復(fù),這是通過 DUMP 和 LOAD 命令來執(zhí)行人工備份和恢復(fù)工作。因此定期備份事務(wù)日志和數(shù)據(jù)庫是一項(xiàng)十分重要的日常維護(hù)工作。
          7、備份數(shù)據(jù)庫
          每一個數(shù)據(jù)庫都應(yīng)在創(chuàng)建之后卸出,從而提供一個裝入基點(diǎn)。在此之后按排定的時間周期表卸出。比如每周五卸出數(shù)據(jù)庫。對一般數(shù)據(jù)庫系統(tǒng)卸出數(shù)據(jù)庫周期建議為每周一次。
          除了按計(jì)劃周期卸出數(shù)據(jù)庫之外,還需在每次運(yùn)行沒有日志的操作后卸出數(shù)據(jù)庫。例如:
          ·每次強(qiáng)制地運(yùn)行了 DUMP TRAN WITH NO_LOG (因?yàn)閿?shù)據(jù)庫的磁盤空溢出);
          ·每次用 sp_dboption 允許 select into/bulkcopy 做快速拷貝,或用 SELECT INTO 命令創(chuàng)建一個永久性的表,或使用了 WRITETEXT 命令。
          卸出數(shù)據(jù)庫的命令為:
          DUMP DATABASE database_name
          TO dump_device
          database_name 是要卸出的數(shù)據(jù)庫名稱,dump_device 是卸出設(shè)備的名稱。用系統(tǒng)過程 sp_helpdevice 可以獲得設(shè)備的信息。
          下面一條命令用來卸出數(shù)據(jù)庫 my_db :
          DUMP DATABASE my_db
          TO db_bk_dev
          默認(rèn)導(dǎo)出到C:\WINDOWS\SYSTEM32\下了。也可以指定路徑。
          8、備份事務(wù)日志
          如果事務(wù)日志與數(shù)據(jù)庫放在同一個設(shè)備上,則事務(wù)日志不應(yīng)與數(shù)據(jù)庫分開備份。master 數(shù)據(jù)庫和小于 4M 的用戶數(shù)據(jù)庫就是這種情況。一般數(shù)據(jù)庫系統(tǒng)的數(shù)據(jù)庫和日志分別放在不同的設(shè)備上,因此,可以用 DUMP TRAN 命令單獨(dú)備份日志。
          備份事務(wù)日志的周期直接影響數(shù)據(jù)的恢復(fù)程度,因此建議每天備份。
          備份事務(wù)日志的命令格式為:
          DUMP TRANsaction database_name
          [TO dump_device]
          [WITH TRUNCATE_ONLY|WITH NO_LOG|WITH NO_TRUNCATE]
          其中 database_name 是要備份事務(wù)的數(shù)據(jù)庫名稱,dump_device 是備份設(shè)備名稱,僅當(dāng)包含了 WITH TRUNCATE_ONLY 或 WITH NO_LOG 子句時,才可以備份到設(shè)備。
          注意:如果總是用 DUMP DATEBASE (備份數(shù)據(jù)庫及其日志),而不用 DUMP TRAN ,事務(wù)日志將不會刷新,而變得非常龐大。
          對于 master 數(shù)據(jù)庫和小型數(shù)據(jù)庫每次運(yùn)行 DUMP DATEBASE 之后應(yīng)當(dāng)運(yùn)行 DUMP TRANsaction 命令刷新日志 。
          下面一條命令備份數(shù)據(jù)庫 db160 的事務(wù)日志到備份設(shè)備上:
          DUMP TRANsaction db160
          TO db_log_bk_dev
          WITH TRUNCATE_ONLY
          9、備份數(shù)據(jù)庫及其日志間的相互作用
          在至少卸出一次數(shù)據(jù)庫前,卸出事務(wù)日志是毫無意義的。下圖顯示了備份數(shù)據(jù)庫及其日志間的關(guān)系
          如果在星期二下午5:01出現(xiàn)非硬件故障,需要做的所有工作是裝入磁帶5(參見下一節(jié):數(shù)據(jù)恢復(fù)),由于磁帶5是下午5:00剛備份的,因此只有備份和裝入之間的一分鐘內(nèi)的數(shù)據(jù)損失。
          但是,如果在星期二下午4:49失效會怎么樣呢?在這種情況下,要裝入磁帶1(在星期五下午5:00的卸出)。然后,依次裝入磁帶2,3以及4。這樣,系統(tǒng)將恢復(fù)到星期二上午10:00點(diǎn)的狀態(tài),星期二的大部分工作丟失了。此例顯示了經(jīng)常卸出事務(wù)的重要性。
          10、萬一系統(tǒng)失敗時恢復(fù)數(shù)據(jù)庫系統(tǒng)
          如果用戶數(shù)據(jù)庫存儲的設(shè)備失效,從而數(shù)據(jù)庫被破壞或不可存取,通過裝入最新的數(shù)據(jù)庫備份以及后來的事務(wù)日志備份可以恢復(fù)數(shù)據(jù)庫。假設(shè)當(dāng)前的事務(wù)日志存在于一個并沒有毀壞的設(shè)備上,帶著 WITH NO_TRUNCATE 選項(xiàng)的 DUMP TRANsaction 命令卸出它。
          要恢復(fù)數(shù)據(jù)庫按如下步驟去做:
          1)、如果日志存在于一個分離的設(shè)備上,用帶著 NO_TRUNCATE 選項(xiàng)的 DUMP TRANsaction 命令卸出被毀壞的或者不可存取的用戶數(shù)據(jù)庫事務(wù)日志。
          2)、用下面的查詢檢查設(shè)備分配已毀壞數(shù)據(jù)庫的設(shè)備使用情況。必須為同一目的賦同樣的空間塊。
          下面的查詢顯示了分配給數(shù)據(jù)庫 mydb 設(shè)備使用和尺寸情況:
          SELECT segmap,size FROM sysusages
          WHERE dbid =
          ( SELECT dbid FROM sysdatabases WHERE name = “mydb”)
          3)、檢查查詢的輸出。在 segmap 列的 ‘3’代表數(shù)據(jù)分配,‘4’代表日志分配。size 列代表 2K 數(shù)據(jù)塊的數(shù)目。注意此信息的次序、使用和尺寸部分。例如,輸出為:
          4)、用 DROP DATABASE 命令刪除毀壞設(shè)備上的數(shù)據(jù)庫。如果系統(tǒng)報錯,用DBCC DBREPAIR 命令的 DROPDB 選項(xiàng)。
          5)、刪除數(shù)據(jù)庫后,用 sp_dropdevice 刪除毀壞了的設(shè)備。
          6)、用 DISK INIT 初始化新的數(shù)據(jù)庫設(shè)備。
          7)、重建數(shù)據(jù)庫。用 CREATE DATABASE 命令從老的 sysusages 表拷貝所有的行,并包含第一邏輯設(shè)備。
          對上例,命令為:
          CREATE DATABASE mydb
          ON datadev1=20,datadev2=10
          LOG ON logdev1=10
          8)、用 ALTER DATABASE 命令重建其余入口。在此例中,在datadev1上分配更多的空間,命令為:
          ALTER DATABASE mydb ON datadev1=2
          9)、用 LOAD DATABASE 重新裝入數(shù)據(jù)庫,然后用 LOAD TRAN 裝入前面卸出的日志。
          LOAD DATABASE 命令語法是:
          LOAD DATABASE database_name
          FROM dump_device

          LOAD TRANsaction 命令的語法是:
          LOAD TRANsaction database_name FROM dump_device

          卸出數(shù)據(jù)庫和事務(wù)日志的缺省權(quán)限歸數(shù)據(jù)庫所有者,且可以傳遞給其他用戶;裝載數(shù)據(jù)庫和事務(wù)的權(quán)限也歸數(shù)據(jù)庫所有者,但不能傳遞。

          11、產(chǎn)生用戶信息表,并為信息表授權(quán);
          系統(tǒng)維護(hù)人員的另一個日常事務(wù)是為用戶創(chuàng)建新的信息表,并為之授權(quán)。創(chuàng)建表以及為表授權(quán)的方法已經(jīng)在講過,在此只將有關(guān)命令語法寫出來。
          ·創(chuàng)建表的命令為:
          CREATE TABLE table_name
          ( column_1 datatype [NULL | NOT NULL | IDENTITY],
          column_2 ……

          go

          ALTER TABLE table_name
          ADD PRIMARY KEY (column_list)
          go

          ·刪除表的命令格式為:
          DROP TABLE table_name
          go

          ·為表授權(quán)的命令格式為:
          GRANT {ALL|permission_list}
          ON table_name TO user_name
          go

          ·收回權(quán)限的命令格式為
          REVOKE {ALL|permission_list}
          ON table_name FROM user_name
          go

          12、監(jiān)視系統(tǒng)運(yùn)行狀況,及時處理系統(tǒng)錯誤;
          系統(tǒng)管理員的另一項(xiàng)日常工作是監(jiān)視系統(tǒng)運(yùn)行情況。主要有以下幾個方面:
          1)、監(jiān)視當(dāng)前用戶以及進(jìn)程的信息
          使用系統(tǒng)過程:sp_who
          說明:該命令顯示當(dāng)前系統(tǒng)所有注冊用戶及進(jìn)程信息,如下表是某系統(tǒng)的信息。
          SpidStatusLoginamehostnameblkdbnamecmd
          ---------------------------------------------------------------
          1RunningSascosysv0MasterSELECT
          2SleepingNULL0MasterNETWORK HANDLE
          3SleepingNULL0MasterDEADLOCK TUNE
          4SleepingNULL0MasterMIRROR HANDLER
          5SleepingNULL0MasterHOUSEKEEPER
          6SleepingNULL0MasterCHECKPOINT SLEEP
          從左向右依次顯示:進(jìn)程號、當(dāng)前狀態(tài)、注冊用戶名、主機(jī)名、占用塊數(shù)、數(shù)據(jù)庫名以及當(dāng)前命令。
          如果監(jiān)視時發(fā)現(xiàn)進(jìn)程總數(shù)接近最大連接數(shù)(用系統(tǒng)過程:sp_configure “user conn” 查看)時,應(yīng)下掉不活動或無關(guān)進(jìn)程,以保證系統(tǒng)正常運(yùn)做;另外亦可監(jiān)視非法用戶或用戶使用不屬于自己使用范圍的數(shù)據(jù)庫等情況。
          2)、監(jiān)視目標(biāo)占用空間情況
          使用系統(tǒng)過程:sp_spaceused
          說明:該過程顯示行數(shù)、數(shù)據(jù)頁數(shù)以及當(dāng)前數(shù)據(jù)庫中由某個目標(biāo)或所有目標(biāo)所占用的空間。如下表是某數(shù)據(jù)庫日志表的信息:

          NameRow_totalreserveddataIndex_sizeunused
          ------------------------------------------------------------
          SyslogsNot avail32KB32KB0KBNot avail

          日常要監(jiān)視的主要目標(biāo)有:用戶數(shù)據(jù)庫、數(shù)據(jù)庫日志表(syslogs)以及計(jì)費(fèi)原始數(shù)據(jù)表等。如果發(fā)現(xiàn)占用空間過大,對日志表要進(jìn)行轉(zhuǎn)儲;對其他目標(biāo)則應(yīng)擴(kuò)充空間或清楚垃圾數(shù)據(jù)。
          3)、監(jiān)視 SQL Server 統(tǒng)計(jì)數(shù)字
          使用系統(tǒng)過程:sp_monitor
          說明:sp_monitor 顯示SQL Server 的歷史統(tǒng)計(jì)數(shù)字,下表是某系統(tǒng)的統(tǒng)計(jì)數(shù)字:

          Last_runCurrent_runSeconds
          ---------------------------------------------------------------
          May 13 2000 1:27PMMay 13 2000 3:01PM5678
          CPU_busyIO_busyIdle
          ---------------------------------------------------------------
          16(6)-0%0(0)-0%5727(5672)-99%
          Packets_receivedPackets_sentPacket_errors
          ---------------------------------------------------------------
          21(17)100(97)0(0)
          Total_readTotal_writeTotal_errorsConnections
          --------------------------------------------------------
          785(366)311(113)0(0)3(2)

          上表依次給出該系統(tǒng)本次運(yùn)行統(tǒng)計(jì)的上一次時間、本次時間、間隔秒數(shù)、CPU占用、IO占用、收發(fā)包情況、系統(tǒng)讀入寫出情況等信息

          13、保證系統(tǒng)數(shù)據(jù)安全,周期更改用戶口令;
          為保證系統(tǒng)數(shù)據(jù)的安全,系統(tǒng)管理員必須依據(jù)系統(tǒng)的實(shí)際情況,執(zhí)行一系列的安全保障措施。其中,周期性的更改用戶口令是比較常用且十分有效的措施。
          更改用戶口令是通過調(diào)用系統(tǒng)過程sp_password 來實(shí)現(xiàn)的。Sp_password 的語法為:
          sp_password caller_password,new_password [,loginame]
          其中caller_password 是登錄口令(老口令),new_password是新口令,loginame是登錄名稱。

          14.如何修改IP地址改變后的interfaces文件?
          A.安裝SYBASE Adapive Server的機(jī)器IP地址改變后, 應(yīng)修改 interfaces 文件及有關(guān)的設(shè)置。
          如果 interfaces 文件中使用的是機(jī)器名而不是 IP 地址, 則不需要變動。 但如果客戶端聯(lián)結(jié)服務(wù)器使
          用的是服務(wù)器的 IP 地址而不是機(jī)器名,那么客戶端需修改聯(lián)結(jié)服務(wù)器的 IP 地址.。
          如果 interfaces 文件中使用的是 IP 地址, 那么需要修改 interfaces 文件中和地址有關(guān)的部分,
          可使用dscp 或 dsedit 進(jìn)行修改。 如果客戶端聯(lián)結(jié)服務(wù)器使用的是服務(wù)器的地址而不是機(jī)器名,那么客
          戶端也需修改。
          15。實(shí)現(xiàn)開機(jī)時自動裝載Sybase數(shù)據(jù)庫
            原先要使Sybase SQL Server啟動,一般需要先以sybase用戶登錄,然后運(yùn)行$SYBASE/install目錄下的startserver命令啟動SYBASE_XXXX服務(wù)進(jìn)程和SYB_BACKUP_XXXX備份服務(wù)進(jìn)程。
            要實(shí)現(xiàn)Unix系統(tǒng)啟動時就能在后臺裝載Sybase的功能,我們可在/etc/rc2.d/目錄下新建一文件S99sybase,內(nèi)容如下:
            SYBASE=/usr/sybase
            PATH=$PATH:$SYBASE/bin
            export $SYBASE $PATH
            $SYBASE/install/startserver -f $SYBASE/install/RUN_SYBASE_XXXX > /dev/null
            $SYBASE/install/startserver -f $SYBASE/install/RUN_SYB_BACKUP_XXX >/dev/null
            然后修改Sybase的權(quán)限,重啟系統(tǒng)即可。
          16.實(shí)現(xiàn)關(guān)機(jī)時自動卸載Sybase數(shù)據(jù)庫
          為保證Sybase系統(tǒng)的正常運(yùn)行,每次在關(guān)閉Unix系統(tǒng)時要先結(jié)束Sybase SQL Server 的服務(wù)進(jìn)程,從減輕系統(tǒng)管理人員操作的角度出發(fā)建立一用戶halt,修改/etc/passwd文件,將halt用戶的uid改為0(或其他可運(yùn)行 shutdown的用戶id),在/usr/halt/.profile中添加以下語句:
            SYBASE=/usr/sybase
            DSQUERY=SYBASE_XXXX
            PATH=$PATH:$SYBASE/bin
            export SYBASE DSQUERY PATH
            isql -Usa -Pabcabc -ihalt.sql > /dev/null
            shutdown -y -g0
            其中“abcabc”為sa用戶的口令,halt.sql是一簡單的文本文件,內(nèi)容如下:
            shutdown
            go
            這樣每次只要以halt用戶登錄,就實(shí)現(xiàn)了自動卸下Sybase數(shù)據(jù)庫,然后關(guān)閉Unix系統(tǒng)。
          17. Sybase UTF-8中文字符集設(shè)置
          (這里SYBASE的安裝路徑為c:\sybase)
           1.c:\>cd \sybase\charsets\cp936
           2.c:\sybase\charsets\cp936> charset -U用戶名 -P密碼 -S數(shù)據(jù)庫服務(wù)器名稱 binary.srt cp936
           更改默認(rèn)字符集為cp936
           3.在SQL環(huán)境中
           1>select name,id from syscharsets(會列出字符集對應(yīng)的id號)
           2>go
           找到name為cp936對應(yīng)的id(假設(shè)為171)
            1>sp_configure "default character set id",171
            2>go
           5.重啟server兩次
          (注:第一次啟動后,server會自動宕掉,需要第二次重啟后才能使用)

          18.創(chuàng)建用戶數(shù)據(jù)庫
          以下通過一個建立數(shù)據(jù)庫的腳本說明建立數(shù)據(jù)庫的過程:
          //創(chuàng)建數(shù)據(jù)庫設(shè)備,設(shè)備大小以頁(2K)為單位
          disk init
          name="test_dbdev",
          physname="/home/bk/test_dbdev.dat",
          vdevno=5,
          size=10240
          go
          disk init
          name="test_logdev",
          physname="/home/bk/test_logdev.dat",
          vdevno=6,
          size=5120
          go
          //創(chuàng)建數(shù)據(jù)庫TEST_DB,其大小為20M,日志大小為10M
          create database TEST_DB
          on test_dbdev=20
          log on test_logdev=10
          go
          //打開數(shù)據(jù)庫
          use TEST_DB
          go
          -----------
          舉例說明:
          DISK INIT
          Name=’My_Device’,
          Physname=’D:\database\My_device.dat’,
          Vdevno=3
          Size=5000
          注釋:邏輯名、物理名、設(shè)備虛擬號、設(shè)備大小
          ------------------------
          創(chuàng)建用戶數(shù)據(jù)庫
          Create Database 數(shù)據(jù)庫名
            On 設(shè)備_1=Size_1,//單位:M
               設(shè)備_2=Size_2,
          ……
          log on 日志設(shè)備=Log_Size
          [With Override]//在同一設(shè)備上創(chuàng)建數(shù)據(jù)庫和事務(wù)日志時使用該選項(xiàng)
          [For Load]    //禁止用戶訪問直到數(shù)據(jù)庫的裝入或恢復(fù)操作完成為止
          舉例:
              Create Database test_db
              On data_dev=100,//單位:M
                 Index_dev=50
              Log on log_dev=30
          說明:
          (1)將日志放在單獨(dú)的設(shè)備上,有利于數(shù)據(jù)庫性能的提高;
          (2)如果將數(shù)據(jù)庫和日志放在同一設(shè)備上,就不能實(shí)現(xiàn)增量備份;
          (3)通常將System和Default段縮減范圍到一個設(shè)備上,如刪除設(shè)備Index_dev上的System段和Default段,創(chuàng)建新的段,用來存放專門的數(shù)據(jù)庫對象
          19.備份和恢復(fù)DB數(shù)據(jù)
          dump database mydb to '/u01/mydb_full.bk'
          go

          dump tranaction mydb to '/u01/mydb_tran.bk'
          go

          load database mydb from '/u01/mydb_full.bk'
          load transaction mydb from '/u01/mydb_tran.bk'
          online database mydb
          go
           ps:采用增量備份后,嚴(yán)禁日志截斷! 即禁止使用:dump transaction sctf truncate_only  命令!
          增量備份必須是在完整備份后的或上一次增量備份后,中間若遇到日志截斷,后續(xù)的增量備份均告失敗!
          增量備份可以根據(jù)需要,如每小時備份一次,每次備份所需時間約2-5秒,所以時間極快。
           ps: 單引號和雙引號都能關(guān)閉shell對特殊字符的處理。不同的是,雙引號沒有單引號嚴(yán)格,單引號關(guān)閉所有有特殊作用的字符,而雙引號只要求shell忽略大多數(shù),具體的說,就是①美元符號②反引號③反斜杠,這3種特殊字符不被忽略。 不忽略美元符號意味著shell在雙引號內(nèi)部也進(jìn)行變量名替換。


          *********************************************
          下面資料來自SYBASE白皮書
          1。客戶端字符集修改 locales.dat
          2.可以通過設(shè)置CHARSET驅(qū)動程序?qū)傩灾付ㄔ趹?yīng)用程序中使用的字符集。
            或者設(shè)置jconnect字符集的方法來設(shè)置。
          3。查看字符集:
          SERVER:sp_helpsort
                   go
          CLIENT:select @@client_csname
                  go
          4.段+閥值:
          默認(rèn)是三個段: system default logsegment
          system段: 數(shù)據(jù)庫系統(tǒng)表存放處
          default段: 未指明段的對象都存放在這里
          logsegment段:數(shù)據(jù)庫的事務(wù)日志存放處

          閥值(threshold) :
          建立閥值: sp_addthreshold 庫名,段名,自由空間,存儲過程名字
          刪除閥值: sp_dropthreshold 庫名,段名,自由空間頁
          顯示閥值: sp_helpthreshold
          管理閥值: sp_dboption
          顯示段空間信息:sp_helpsegment
          閥值管理的流程如下:
          先建存儲過程:(下面的是日志的存儲過程,原因:日志增長具有不可預(yù)見性,相比之下,數(shù)據(jù)增長具有可預(yù)見性,所以一般都建logsegment的閥值管理,default的閥值管理可不建)
          create procedure szjj
          @dbname varchar (30),
          @segmentname varchar (30),
          @space_left int,
          @status int
          as
          dump transaction @dbname to "/tmp/bb.dat"
          go
            ps:上面是日志的存儲過程,如果是數(shù)據(jù)的存儲則用dump database...

          查看當(dāng)前日志自由空間情況:
          sp_helpsegment logsegment
          go
          查看當(dāng)前數(shù)據(jù)庫數(shù)據(jù)自由空間情況:
          sp_helpsegment default
          go

          查看當(dāng)前閥值情況:
          sp_helpthreshold
          go

          查看當(dāng)前段情況:
          sp_helpsegment
          go

          然后根據(jù)自由空間來定閥值參數(shù):
          sp_addthreshold test_db,logsegment,200,szjj
          go

           ps:當(dāng)日志段的最后機(jī)會閥值被超越后,試圖往該日志段上記日志的用戶進(jìn)程默認(rèn)是被掛起.用下面的命令修改MASTER庫參數(shù),讓閥值被超越后事務(wù)就會滾.
          use master
          go
          sp_dboption test_db,"abort tran on log full",true
          go

          5.維護(hù)
          1)對各ASE用戶擔(dān)當(dāng)?shù)慕巧吞貦?quán)進(jìn)行分派。
          2)管理和監(jiān)視磁盤空間的使用情況。
          3)數(shù)據(jù)庫空間:
               sp_helpdb 查看各庫情況
               alter database 擴(kuò)充空間
               dump tran  截斷日志
          4)日常數(shù)據(jù)備份和恢復(fù)
          5)SYBASE默認(rèn)的服務(wù)器:
               adaptive server:管理整個數(shù)據(jù)庫系統(tǒng),包括用戶 數(shù)據(jù) 資源等的管理和控制。
               backup server: 在備份和恢復(fù)時執(zhí)行數(shù)據(jù)庫的dump or load
               xp server:執(zhí)行擴(kuò)展存儲過程
               monitor server:為性能調(diào)試分析采集數(shù)據(jù)。
               historical server:保存來自monitor server的數(shù)據(jù),以備將來分析。
          6。單模式啟動SYBASE
            1)停止ASE數(shù)據(jù)庫服務(wù)
            2)*/install/startserver -f RUN_servername -m
                   ps:windows下在服務(wù)的屬性里加-m。
          7.license序列號
            驗(yàn)證許可軟件是否執(zhí)行:*/bin/lmutil lmstat -c
            手工啟動:*/bin/lmgrd -c $lm_license_file&
            啟動許可管理器:*/bin/lmgr
            運(yùn)行:*/bin/lmutil lmreread
          8.查看邏輯頁大小
            select @@maxpagesize
          9.啟動關(guān)閉SYBASE
            啟動:*/startserver -f RUN_servername
            關(guān)閉:登錄后shutdown關(guān)數(shù)據(jù)庫服務(wù)  shutdown SYB_BACKUP關(guān)備份服務(wù)器
          10。帳戶管理
          SA帳戶初始口令為空,具有SA和SSO角色。具有SSO的登錄帳戶可以添加其他登錄帳戶。
          1)創(chuàng)建登錄帳戶
             sp_addlogin login_name,password
             go
          2)修改帳戶密碼
             sp_password caller_password,new_password,login_name
             go
          3)設(shè)置登錄帳戶的缺省數(shù)據(jù)庫(如果不指定,默認(rèn)是master庫)
             sp_addlogin login_name,password,default_db
             go
          or
             sp_modifylogin login_name,"defdb",db_name
             go
          4)為登錄帳戶授予系統(tǒng)角色
            sp_role "grant",role_name,login_name
            go
          or
            grant role role_name to login_name
            go
          5)查看登錄帳戶的信息
            sp_displaylogin login_name
            go
          6)SYBASE常用角色:sa sso oper
          7)修改登錄密碼
           sp_password caller_passwd,new_passwd[,login_name]
          8)刪除sa_role的口令
            alter role sa_role drop passwd
          9)創(chuàng)建數(shù)據(jù)庫用戶
            sp_adduser loginname[,name_in_db[,grpname]]
            go
          10)添加用戶并授予查詢權(quán)限
            sp_adduser 權(quán)限 on 表名 to 用戶名
          11)刪除別名
            sp_dropalias loginname
          12)創(chuàng)建用戶自定義組
            sp_addgroup grpname
            go
          13)找回SA密碼
             停止SYBASE服務(wù)--〉修改RUN_xxx,在命令行的最后加上-psa--〉startserver -f RUN_xxx-->啟動信息的最后會出來密碼。

          11。數(shù)據(jù)庫管理
          1)數(shù)據(jù)庫選項(xiàng)的設(shè)置
            sp_dboption[dbname,optname,{,true|false}]
          2)建庫
            create database dbname on data_device_name=size log on log_device_name=size
            go
           ps:size default is M
          3)查看庫大小 sp_helpdb dbname
          4)改變庫的屬主 sp_changedbowner loginname[,true]
          5)擴(kuò)展數(shù)據(jù)庫
            擴(kuò)展數(shù)據(jù)空間:alter database db_name on device_name
            擴(kuò)展日志空間: alter database db_name log on device_name
          6)設(shè)置數(shù)據(jù)庫為單用戶模式/可以在用戶表中自動添加序號生成器/自動截斷事務(wù)日志模式
          use master
          go
          sp_dboption db_name,"signle user",true
          go
          sp_dboption db_name,"trunc log on chkpt",true
          go
          sp_dboption db_name,"auto identity",true
          use db_name
          go
          checkpoint
          go
          7)查看當(dāng)前庫的進(jìn)程信息
          sp_who

          附錄=====================================
          Explanation
          SQL commands are grouped into the following categories:
          SQL commands that are not allowed in transactions at all.
          SQL commands, such as Data Definition Language (DDL) commands, that are allowed in transactions only if the required database option (ddl in tran) is set to TRUE.

          SQL commands that are allowed only if the transaction affects some other database. These commands include create table, drop table, and other commands that are run across databases to create or drop objects in another database when the database in which the objects are being created or dropped has the database option ddl in tran set to TRUE.

          Error 226 occurs when Adaptive Server detects a command that is not allowed in a multi-statement transaction. A multi-statement transaction is a set of commands prefaced with the begin transaction command.
          The following commands are never allowed in multi-statement transactions:
          alter database
          create database
          dbcc reindex, dbcc fix_text
          disk init
          drop database
          dump database, dump transaction
          load database, load transaction
          select into
          set transaction isolation level
          truncate table
          update statistics
          setuser

          The following commands are not normally allowed in multi-statement transactions but you can use them if you use sp_dboption to set ddl in tran to TRUE first:

          create default
          create index
          create procedure
          create rule
          create schema
          create table
          create trigger
          create view
          drop default
          drop index
          drop procedure
          drop rule
          drop table
          drop trigger
          drop view
          grant
          revoke
          Action

          If the command is allowed in a multistatement transaction when ddl in tran is set to TRUE, set ddl in tran to TRUE before running the transaction. Setting ddl in tran to TRUE causes locks on system tables and this can affect performance. You can check the current setting of ddl in tran with sp_helpdb.

          If the command is never allowed in a multi-statement transaction, execute it outside the multi-statement transaction.

          posted on 2011-01-17 13:33 duduli 閱讀(2770) 評論(0)  編輯  收藏 所屬分類: 數(shù)據(jù)庫

          <2011年1月>
          2627282930311
          2345678
          9101112131415
          16171819202122
          23242526272829
          303112345

          導(dǎo)航

          統(tǒng)計(jì)

          公告

          welcome to my place.

          常用鏈接

          留言簿(5)

          我參與的團(tuán)隊(duì)

          隨筆分類

          隨筆檔案

          新聞分類

          石頭JAVA擺地攤兒

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          @duduli
          主站蜘蛛池模板: 拉孜县| 察雅县| 黔西县| 宜春市| 渭南市| 磐石市| 富宁县| 龙陵县| 灵台县| 桃源县| 修水县| 龙江县| 无极县| 冕宁县| 榆社县| 江川县| 苏州市| 普格县| 同心县| 桐乡市| 忻城县| 普安县| 鄂伦春自治旗| 淳安县| 长乐市| 大埔县| 肇庆市| 资兴市| 常德市| 衡阳市| 荆门市| 睢宁县| 黑山县| 万荣县| 鄂伦春自治旗| 高淳县| 印江| 黔江区| 云梦县| 景宁| 遵义县|