- 論壇徽章:
- 0
|
一、Sybase數(shù)據(jù)庫簡介
1.版本
1984年,Mark B. Hiffman和Robert Epstern創(chuàng)建了Sybase公司,并在1987年推出了Sybase數(shù)據(jù)庫產(chǎn)品。SYBASE主要有三種版本,一是UNIX操作系統(tǒng)下運(yùn)行的版本,二是Novell Netware環(huán)境下運(yùn)行的版本,三是Windows NT環(huán)境下運(yùn)行的版本。對UNIX操作系統(tǒng)目前廣泛應(yīng)用的為SYBASE 10 及SYABSE 11 for SCO UNIX。
2.Sybase數(shù)據(jù)庫的特點(diǎn)
(1)它是基于客戶/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫
一般的關(guān)系數(shù)據(jù)庫都是基于主/從式的模型的。在主/從式的結(jié)構(gòu)中,所有的應(yīng)用都運(yùn)行在一臺機(jī)器上。用戶只是通過終端發(fā)命令或簡單地查看應(yīng)用運(yùn)行的結(jié)果。
而在客戶/服務(wù)器結(jié)構(gòu)中,應(yīng)用被分在了多臺機(jī)器上運(yùn)行。一臺機(jī)器是另一個(gè)系統(tǒng)的客戶,或是另外一些機(jī)器的服務(wù)器。這些機(jī)器通過局域網(wǎng)或廣域網(wǎng)聯(lián)接起來。
客戶/服務(wù)器模型的好處是:
● 它支持共享資源且在多臺設(shè)備間平衡負(fù)載
● 允許容納多個(gè)主機(jī)的環(huán)境,充分利用了企業(yè)已有的各種系統(tǒng)
(2) 它是真正開放的數(shù)據(jù)庫
由于采用了客戶/服務(wù)器結(jié)構(gòu),應(yīng)用被分在了多臺機(jī)器上運(yùn)行。更進(jìn)一步,運(yùn)行在客戶端的應(yīng)用不必是Sybase公司的產(chǎn)品。對于一般的關(guān)系數(shù)據(jù)庫,為了讓其它語言編寫的應(yīng)用能夠訪問數(shù)據(jù)庫,提供了預(yù)編譯。Sybase數(shù)據(jù)庫,不只是簡單地提供了預(yù)編譯,而且公開了應(yīng)用程序接口DB-LIB,鼓勵(lì)第三方編寫DB-LIB接口。由于開放的客戶DB-LIB允許在不同的平臺使用完全相同的調(diào)用,因而使得訪問DB-LIB的應(yīng)用程序很容易從一個(gè)平臺向另一個(gè)平臺移植。
(3) 它是一種高性能的數(shù)據(jù)庫
Sybase真正吸引人的地方還是它的高性能。體現(xiàn)在以下幾方面:
● 可編程數(shù)據(jù)庫
通過提供存儲過程,創(chuàng)建了一個(gè)可編程數(shù)據(jù)庫。存儲過程允許用戶編寫自己的數(shù)據(jù)庫子例程。這些子例程是經(jīng)過預(yù)編譯的,因此不必為每次調(diào)用都進(jìn)行編譯、優(yōu)化、生成查詢規(guī)劃,因而查詢速度要快得多。
● 事件驅(qū)動的觸發(fā)器
觸發(fā)器是一種特殊的存儲過程。通過觸發(fā)器可以啟動另一個(gè)存儲過程,從而確保數(shù)據(jù)庫的完整性。
● 多線索化
Sybase數(shù)據(jù)庫的體系結(jié)構(gòu)的另一個(gè)創(chuàng)新之處就是多線索化。一般的數(shù)據(jù)庫都依靠操作系統(tǒng)來管理與數(shù)據(jù)庫的連接。當(dāng)有多個(gè)用戶連接時(shí),系統(tǒng)的性能會大幅度下降。Sybase數(shù)據(jù)庫不讓操作系統(tǒng)來管理進(jìn)程,把與數(shù)據(jù)庫的連接當(dāng)作自己的一部分來管理。此外,Sybase的數(shù)據(jù)庫引擎還代替操作系統(tǒng)來管理一部分硬件資源,如端口、內(nèi)存、硬盤,繞過了操作系統(tǒng)這一環(huán)節(jié),提高了性能。
3.Sybase數(shù)據(jù)庫的組成
Sybase數(shù)據(jù)庫主要由三部分組成:
(1) 進(jìn)行數(shù)據(jù)庫管理和維護(hù)的一個(gè)聯(lián)機(jī)的關(guān)系數(shù)據(jù)庫管理系統(tǒng)Sybase SQL Server;
Sybase SQL Server是個(gè)可編程的數(shù)據(jù)庫管理系統(tǒng),它是整個(gè)Sybase產(chǎn)品的核心軟件,起著數(shù)據(jù)管理、高速緩沖管理、事務(wù)管理的作用。
(2) 支持?jǐn)?shù)據(jù)庫應(yīng)用系統(tǒng)的建立與開發(fā)的一組前端工具Sybase SQL Toolset;
ISQL是與SQL Server進(jìn)行交互的一種SQL句法分析器。ISQL接收用戶發(fā)出的SQL語言,將其發(fā)送給SQL Server,并將結(jié)果以形式化的方式顯示在用戶的標(biāo)準(zhǔn)輸出上。
DWB是數(shù)據(jù)工作臺,是Sybase SQL Toolset的一個(gè)主要組成部分,它的作用在于使用戶能夠設(shè)置和管理SQL Server上的數(shù)據(jù)庫,并且為用戶提供一種對數(shù)據(jù)庫的信息執(zhí)行添加、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜單的,因此操作比ISQL簡單,是一種方便實(shí)用的數(shù)據(jù)庫管理工具。
APT是Sybase客戶軟件部分的主要產(chǎn)品之一,也是從事實(shí)際應(yīng)用開發(fā)的主要環(huán)境。APT工作臺是用于建立應(yīng)用程序的工具集,可以創(chuàng)建從非常簡單到非常復(fù)雜的應(yīng)用程序,它主要用于開發(fā)基于表格(Form)的應(yīng)用。其用戶界面采用窗口和菜單驅(qū)動方式,通過一系列的選擇完成表格(Form)、菜單和處理的開發(fā)。
(3) 可把異構(gòu)環(huán)境下其它廠商的應(yīng)用軟件和任何類型的數(shù)據(jù)連接在一起的接口Sybase Open Client/Open Server。
通過Open Client的DB-LIB庫,應(yīng)用程序可以訪問SQL Server。而通過Open Server的SERVER-LIB,應(yīng)用程序可以訪問其它的數(shù)據(jù)庫管理系統(tǒng)。
二、SYBASE有關(guān)概念
Sybase SQL Server是一個(gè)多庫數(shù)據(jù)庫系統(tǒng)。這些數(shù)據(jù)庫包括系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。 而不論是系統(tǒng)數(shù)據(jù)庫還是用戶數(shù)據(jù)庫,都建立在數(shù)據(jù)庫設(shè)備上。
1. 數(shù)據(jù)庫設(shè)備
所有的數(shù)據(jù)庫都創(chuàng)建在數(shù)據(jù)庫設(shè)備上。所謂數(shù)據(jù)庫設(shè)備,不是指一個(gè)可識別的物理設(shè)備,而是指用于存儲數(shù)據(jù)庫和數(shù)據(jù)庫對象的磁盤原始分區(qū)或操作系統(tǒng)文件。增加一個(gè)新的數(shù)據(jù)庫設(shè)備時(shí),必須對這些設(shè)備“初始化”。初始化的過程就是將物理磁盤、磁盤分區(qū)或操作系統(tǒng)文件變?yōu)镾YBASE數(shù)據(jù)庫可以識別的設(shè)備。初始化數(shù)據(jù)庫設(shè)備使用DISK INIT命令:
DISK INIT
NAME=設(shè)備名,
PHYSNAME=物理設(shè)備名,
VDEVNO=虛擬設(shè)備號,
SIZE=塊數(shù)
其中,NAME指數(shù)據(jù)庫設(shè)備名,此名將用于CREATE DATABASE和ALTER DATABASE命令。PHYSNAME是原始磁盤分區(qū)或操作系統(tǒng)文件名。VDEVNO是數(shù)據(jù)庫設(shè)備的標(biāo)識號,在SQL Server中,它必須是唯一的。SIZE的單位是2K的塊,對于新創(chuàng)建的數(shù)據(jù)庫,最小的SIZE是model數(shù)據(jù)庫的尺寸,即1024個(gè)2K的塊(2M)。
例如:/*將/dev目錄下400M的物理設(shè)備初始化為SYBASE的數(shù)據(jù)庫設(shè)備tele114_log01*/
1>;disk init
2>;name=“tele114_log01”,
3>;physname=“/dev/rtelelog”
4>;vdevno=4
5>;size=204800 /*2Kbyte*204800=400Mbyte*/
6>;go
2、段
數(shù)據(jù)庫設(shè)備從邏輯上被劃分為數(shù)據(jù)庫段以允許將某一特定的對象放置在指定的段上(創(chuàng)建對象時(shí)指定),一數(shù)據(jù)庫設(shè)備可擁有多達(dá)192個(gè)段,一段可使用255個(gè)邏輯設(shè)備上的存儲空間。當(dāng)用戶創(chuàng)建一個(gè)數(shù)據(jù)庫時(shí),SQL SERVER 會自動在該數(shù)據(jù)庫中創(chuàng)建三個(gè)段: SYSTEM、LOGSEGMENT 、DEFAULT,這三個(gè)段分別用來存儲數(shù)據(jù)庫的系統(tǒng)表、事務(wù)日志和其他數(shù)據(jù)庫對象
在數(shù)據(jù)庫中創(chuàng)建段的步驟是:
x 先用Disk init 初始化物理設(shè)備
x 通過使用Create database 和alter database 的on 子句,使數(shù)據(jù)庫設(shè)備對數(shù)據(jù)庫可用,于是新設(shè)備自動增加到數(shù)據(jù)庫的default 和system段。
一旦數(shù)據(jù)庫設(shè)備存在并對數(shù)據(jù)庫可用,使用存儲過程Sp_addsegment 定義數(shù)據(jù)庫的段。語法如下:
Sp_addsegment 段名,數(shù)據(jù)庫名,設(shè)備名
3、 系統(tǒng)數(shù)據(jù)庫
安裝Sybase數(shù)據(jù)庫時(shí)自動生成的下列系統(tǒng)數(shù)據(jù)庫:
● 主數(shù)據(jù)庫master;
● 模型數(shù)據(jù)庫model;
● 系統(tǒng)過程數(shù)據(jù)庫sybsystemprocs;
● 臨時(shí)數(shù)據(jù)庫tempdb。
也可選擇下列數(shù)據(jù)庫:
● 安全審核數(shù)據(jù)庫sybsecurity;
● 示例數(shù)據(jù)庫pubs2;
● 命令語法數(shù)據(jù)庫sybsyntax。
(1) master數(shù)據(jù)庫
包含許多系統(tǒng)表和系統(tǒng)過程,從總體上控制用戶數(shù)據(jù)庫和SQL Server的操作,構(gòu)成了SYBASE系統(tǒng)的數(shù)據(jù)字典。MASTER數(shù)據(jù)庫主要記錄信息為:
● 登錄帳號(SQL服務(wù)器用戶名);syslogins,sysremolelogins
● 正在執(zhí)行的過程;sysprocesses
● 可修改的環(huán)境變量;sysconfigures
● 系統(tǒng)錯(cuò)誤信息;sysmessages
● SQL服務(wù)器上每個(gè)數(shù)據(jù)庫的信息;sysdatabases
● 每個(gè)數(shù)據(jù)庫占用的存儲空間;sysusages
● 系統(tǒng)上安裝的磁帶及磁帶信息;sysdevices
● 活動鎖信息;syslocks
(2) model數(shù)據(jù)庫
提供了新用戶數(shù)據(jù)庫的初型。當(dāng)我們每次用CREATE DATABASE命令 時(shí),SQL Server都產(chǎn)生一個(gè)model數(shù)據(jù)庫的拷貝,然后把它擴(kuò)展到命令要求的尺寸。如果我們修改了model數(shù)據(jù)庫,那么以后新創(chuàng)建的數(shù)據(jù)庫都將隨它而改變。下面是幾個(gè)通常用到的對model數(shù)據(jù)庫的改變:
● 增加用戶數(shù)據(jù)庫類型、規(guī)則或缺;
● 可存取SQL Server上所有數(shù)據(jù)庫的用戶用sp_adduser增加到model數(shù)據(jù)庫上;
● 缺省權(quán)限(特別是guest帳號)可在model中建立;
● 諸如select into/bulkcopy那樣的數(shù)據(jù)庫選項(xiàng)可在model中設(shè)置。這些設(shè)置反映到所有新創(chuàng)建的數(shù)據(jù)庫中。它們在model中最原始的值是關(guān)(off)。
在一般情況下,大多數(shù)用戶無權(quán)修改model數(shù)據(jù)庫,又沒被授權(quán)讀取。因?yàn)閙odel中所有內(nèi)容已拷貝到新數(shù)據(jù)庫中,授權(quán)讀model沒什么意義。
1>; use model
2>; go
3>; sp_help
4>; go
Name Owner Object_type
--------------- --------------- ----------------------
sysalternates dbo system table
syscolumns dbo system table
syscomments dbo system table
sysconstraints dbo system table
sysdepends dbo system table
sysgams dbo system table
sysindexes dbo system table
syskeys dbo system table
syslogs dbo system table
sysobjects dbo system table
sysprocedures dbo system table
sysprotects dbo system table
sysreferences dbo system table
sysroles dbo system table
syssegments dbo system table
systhresholds dbo system table
systypes dbo system table
sysusermessages dbo system table
sysusers dbo system table
(3) sybsystemprocs數(shù)據(jù)庫
庫中存儲系統(tǒng)過程,當(dāng)用戶執(zhí)行一存儲過程(以sp_開始)時(shí),SQL 服務(wù)器首先在用戶當(dāng)前數(shù)據(jù)庫中搜索指定的存儲過程,如果沒有相應(yīng)過程,則到系統(tǒng)過程數(shù)據(jù)庫中尋找,若沒有,再到MASTER數(shù)據(jù)庫中尋找。
(4)臨時(shí)數(shù)據(jù)庫tempdb
該數(shù)據(jù)庫為臨時(shí)表和臨時(shí)工作提供了一個(gè)存儲區(qū)域。臨時(shí)數(shù)據(jù)庫是SQL Server上所有數(shù)據(jù)庫共享的工作空間。由于這些表都是臨時(shí)的,所以每當(dāng)用戶退出或系統(tǒng)失敗,這些表都將消失。
(5)安全審核數(shù)據(jù)庫sybsecurity
數(shù)據(jù)庫中保存系統(tǒng)的安全審核信息,它可跟蹤記錄每個(gè)用戶的操作情況,為維護(hù)系統(tǒng)安全提供控制手段。
(6)示例數(shù)據(jù)庫pubs2
為用戶提供一個(gè)學(xué)習(xí)SYBASE的數(shù)據(jù)庫模型。
(7)命令語法數(shù)據(jù)庫sybsyntax
庫中保存SYBASE數(shù)據(jù)庫的命令語法及支持的語言庫。
4、用戶數(shù)據(jù)庫
用戶數(shù)據(jù)庫是指用Create database 命令創(chuàng)建的數(shù)據(jù)庫。所有新的用戶數(shù)據(jù)庫都要在master數(shù)據(jù)庫中創(chuàng)建,也就是說,不能存取master數(shù)據(jù)庫的用戶是無權(quán)創(chuàng)建新的數(shù)據(jù)庫的。SA可以將創(chuàng)建數(shù)據(jù)庫的權(quán)限授予其他用戶。新建數(shù)據(jù)庫中存在一些系統(tǒng)表,在sysusers表中至少有一條記錄,既該數(shù)據(jù)庫的創(chuàng)建者。數(shù)據(jù)庫創(chuàng)建時(shí),創(chuàng)建者既為該數(shù)據(jù)庫的 owner, 當(dāng)然創(chuàng)建者可以將這一地位或這一所有權(quán)用系統(tǒng)過程授予別的用戶。
5、數(shù)據(jù)庫對象
(1)表(Tables)
在一個(gè)關(guān)系數(shù)據(jù)庫中,表是最重要的數(shù)據(jù)庫對象,對應(yīng)于關(guān)系數(shù)據(jù)庫理論中關(guān)系,與DBASE或FOXPRO中的DBF文件是類似。一切數(shù)據(jù)都存放在表中。其它數(shù)據(jù)庫對象都是為了用戶很好地操作表中的數(shù)據(jù)。表都以一張二維表的形式存在。其中,每一列稱之為一個(gè)字段,或一個(gè)域;而每一行稱之為一個(gè)記錄,也就是一項(xiàng)數(shù)據(jù)。
有一類表,它們的名字都是以sys開頭的,這些表稱為系統(tǒng)表,系統(tǒng)表記錄著有關(guān)SQL Server的信息。在master數(shù)據(jù)庫中的表大部分為系統(tǒng)表,這些表是隨著master數(shù)據(jù)庫的創(chuàng)建而建立的。另外,每個(gè)用戶數(shù)據(jù)庫在創(chuàng)建時(shí)都有一個(gè)系統(tǒng)表的子集。
例如,只有在master數(shù)據(jù)庫中才有的系統(tǒng)表有:sysconfigures、sysdatabases、sysdevices、syslogins等;在用戶數(shù)據(jù)庫和系統(tǒng)數(shù)據(jù)庫中都有的系統(tǒng)表有:sysalternates、syscolumns、sysindexs、syslogs、sysobjects、sysusers等。
例:
1>; use master
2>; go
3>; sp_help
4>; go
Name Owner Object_type
------------------------------ -----------------------------------------------
spt_committab dbo user table
spt_datatype_info dbo user table
spt_datatype_info_ext dbo user table
spt_monitor dbo user table
spt_server_info dbo user table
spt_values dbo user table
sysalternates dbo system table
syscharsets dbo system table
syscolumns dbo system table
syscomments dbo system table
sysconfigures dbo system table
sysconstraints dbo system table
syscurconfigs dbo system table
sysdatabases dbo system table
sysdepends dbo system table
sysdevices dbo system table
sysengines dbo system table
sysgams dbo system table
sysindexes dbo system table
syskeys dbo system table
syslanguages dbo system table
syslisteners dbo system table
syslocks dbo system table
sysloginroles dbo system table
syslogins dbo system table
syslogs dbo system table
sysmessages dbo system table
sysmonitors dbo system table
sysobjects dbo system table
sysprocedures dbo system table
sysprocesses dbo system table
sysprotects dbo system table
sysreferences dbo system table
sysremotelogins dbo system table
sysroles dbo system table
syssegments dbo system table
sysservers dbo system table
syssrvroles dbo system table
systestlog dbo system table
systhresholds dbo system table
systypes dbo system table
sysusages dbo system table
sysusermessages dbo system table
sysusers dbo system table
sp_configure dbo stored procedure
sp_dboption dbo stored procedure
sp_getmessage dbo stored procedure
sp_procxmode dbo stored procedure
sp_prtsybsysmsgs dbo stored procedure
sp_validlang dbo stored procedure
說明見附錄表1
(2)視圖(Views)
視圖是查看一張或幾張表中的數(shù)據(jù)的一種方式。通過將一張或幾張表中的一部分?jǐn)?shù)據(jù)進(jìn)行組合得到視圖。視圖看上去與表非常相象,但與表還是有著本質(zhì)的區(qū)別。通過視圖看到的數(shù)據(jù)實(shí)際上都是存放在表中的,在數(shù)據(jù)庫中僅存在視圖的定義。
使用視圖的好處是:
● 操作方便
● 安全性
(3)索引(Index)
索引是對字段生成的,用于加快數(shù)據(jù)的檢索。在Sybase數(shù)據(jù)庫中,索引是由系統(tǒng)自動管理的,也就是說,Sybase的索引操作對用戶是透明的。表的索引一旦建立,系統(tǒng)會自動對其進(jìn)行更新維護(hù)以使它與相應(yīng)表對應(yīng)一致;操作時(shí),用戶無須指定索引,系統(tǒng)會自動確定是否使用索引進(jìn)行操作。
Sybase支持三種不同類型的索引,一是復(fù)合索引,即包含幾個(gè)列的索引;二是唯一性索引,即任意兩行中的索引列不能有相同的取值;三是簇類索引(Clustered indexes)和非簇類索引(Nonclustered indexs),簇類索引使SQL服務(wù)器不斷重排表行的物理順序以使其與邏輯索引順序相一致,非簇類索引則不需要表行的物理順序與邏輯順序一致。每個(gè)表最多只能建立一個(gè)簇類索引,非簇類索引則可建立多個(gè)。與非簇類索引相比,簇類索引的檢索速度要快。應(yīng)當(dāng)在建立任何非簇類索引以前建立簇類索引。
(4)存儲過程(Stored procedures)
存儲過程是用T-SQL語言編寫成的SQL子例程,它存儲于SQL服務(wù)器上供用戶調(diào)用執(zhí)行。與一般的SQL語句和批處理語句不同的是,存儲過程是經(jīng)過預(yù)編譯的。當(dāng)首次運(yùn)行一個(gè)存儲過程時(shí),SQL Server的查詢處理器將對其分析,并產(chǎn)生最終的執(zhí)行方案。由于查詢處理的大部分工作已經(jīng)完成,所以以后執(zhí)行存儲過程時(shí)速度將會很快。執(zhí)行存儲過程時(shí)可帶參數(shù)并可調(diào)用其他存儲過程,執(zhí)行完畢后返回信息以指示是否成功完成相應(yīng)操作。存儲過程有兩種:一種是SQL服務(wù)器安裝時(shí)自動建立的系統(tǒng)存儲過程(系統(tǒng)過程),另一種是用戶自己創(chuàng)建的存儲過程。
系統(tǒng)過程是用于系統(tǒng)管理,并且為用戶提供了從事數(shù)據(jù)庫管理的一種途徑。這些系統(tǒng)過程都是以sp_開頭的,它們都放在master數(shù)據(jù)庫中且隸屬于sa(系統(tǒng)管理員) 。也有很多可以在任一個(gè)數(shù)據(jù)庫中運(yùn)行的系統(tǒng)過程。
常見的系統(tǒng)過程有:
Sp_addgroup 在當(dāng)前數(shù)據(jù)庫中建立一個(gè)數(shù)據(jù)庫用戶組
Sp_addlogin 建立一個(gè)SQL服務(wù)器用戶
Sp_adduser 在當(dāng)前數(shù)據(jù)庫中增加一個(gè)用戶
sp_changegroup 改變數(shù)據(jù)庫用戶組
Sp_dboption 查詢或改變數(shù)據(jù)庫系統(tǒng)設(shè)置
Sp_dropdevice 刪除設(shè)備
Sp_dropgroup 刪除組
Sp_droplogin 刪除帳號
Sp_help 查詢數(shù)據(jù)庫對象及所有數(shù)據(jù)庫信息
Sp_helpdb 查詢數(shù)據(jù)庫信息
Sp_helpdevice 查詢設(shè)備信息
Sp_helpgroup 查詢組信息
Sp_helpindex 查詢給定表信息
Sp_helpuser 查詢用戶信息
Sp_lock 查詢當(dāng)前加鎖信息
Sp_monitor 查詢SQL服務(wù)器統(tǒng)計(jì)信息
Sp_password 改變登錄帳號口令
Sp_spaceused 查詢表中的行數(shù)、數(shù)據(jù)頁數(shù)及空間大小
Sp_who 查詢當(dāng)前用戶及過程信息
Sp_syntax 查詢操作語法
Sp_configure 配置系統(tǒng)參數(shù)
例:
1>; sp_helpdb
2>; go
name db_size owner dbid created status
--------------------------------------------------------------------------
master 3.0 MB sa 1 Jan 01, 1900 no options set
model 2.0 MB sa 3 Jan 01, 1900 no options set
sybsystemprocs 10.0 MB sa 4 Oct 24, 1997 trunc log on chkpt
tele114 370.0 MB sa 5 Oct 24, 1997 select into/bulkcopy, trunc log on chkpt
tempdb 22.0 MB sa 2 May 05, 1998 select into/bulkcopy
(0 rows affected, return status = 0)
例:
1>; sp_monitor
2>; go
last_run current_run seconds
-------------------------- -------------------------- -----------
May 5 1998 4:09PM May 5 1998 4:13PM 224
(0 rows affected)
cpu_busy io_busy idle
------------------------- ------------------------- -------------------------
17(1)-0% 5(0)-0% 923(223)-99%
(0 rows affected)
packets_received packets_sent packet_errors
------------------------- ------------------------- -------------------------
21(9) 51(23) 0(0)
(0 rows affected)
total_read total_write total_errors connections
------------------- ------------------- ------------------- ------------------
947(1) 595(113) 0(0) 3(1)
(0 rows affected, return status = 0)
(5)觸發(fā)器(Triggers)
觸發(fā)器是一種特殊的存儲過程,用來維護(hù)不同表中的相關(guān)數(shù)據(jù)的一致性。當(dāng)在一張表中插入、刪除和修改數(shù)據(jù)時(shí),觸發(fā)器就會觸發(fā)另一個(gè)存儲過程,從而保持?jǐn)?shù)據(jù)的一致性。
(6)缺省與規(guī)則(Defaults and rules)
缺省是在數(shù)據(jù)錄入時(shí),若用戶沒有輸入數(shù)據(jù),SQL Server自動輸入的值。
規(guī)則是可以理解為對數(shù)據(jù)庫、某一列、某用戶數(shù)據(jù)類型的限制。
三、SQL 查詢語言
SQL不僅包括查詢數(shù)據(jù)的有關(guān)命令,還包括創(chuàng)建數(shù)據(jù)庫及其對象,增、刪、改數(shù)據(jù)等功能。分別定義為數(shù)據(jù)查詢語言,數(shù)據(jù)定義語言及數(shù)據(jù)操作語言。這里先介紹數(shù)據(jù)查詢語言。其基本句法為:
Select select_list from table_list where search_conditions
1、簡單查詢
A、選擇若干列
Select expression [,expression]... From table_list
B、選擇若干行
查出電話號碼以415到頭的記錄
Select * from code_1th where tel like '415%'
查詢中消除值重復(fù)的行
Select distinct tel from code_1th
對Text 和 char 可用 like ,其中可用通配符‘%’及‘-’,分別代表多個(gè)字符和單個(gè)字符。
其他常用查詢條件有:(出text類型除外)
大小比較 =、>;、<、>;=、<=、!=、!>;、!<
范圍確定 between exp1 and exp2 /net between exp1 and exp2
列表或集合 in (exp1[,exp2,[...]]) not in (...)
謂詞 like
多重條件 and or not
2、連接查詢
A、等值連接和不等值連接:通過‘=’來比較兩個(gè)表之間的數(shù)據(jù)時(shí),稱為等值連接;而通過其他比較符時(shí),稱為不等值連接
等值連接:
Select * from publishers, authors where publishers.city=authors.city
不等值連接:
B、自然連接: 在連接的目標(biāo)列中相同名的列只保留一個(gè)
Select publishers.pub_id publishers.pub_name, publishers.state, authors.*
From publishers, authors where publishers.city=authors.city
3、子查詢
A、表達(dá)式子查詢
Select au_lname, au_fname from authors where city=
(select city from publishers where pub_name="abcde"
可以使用一切大小比較操作符;在操作符和子查詢之間可以使用All 或any。
B、限定謂詞子查詢
Select pub_name from publishers from publishers
Where pub_id in
(select pub_id from titles where type='abcde')
C、相關(guān)查詢
相關(guān)查詢即嵌套查詢依賴于外部父查詢的值,嵌套查詢要重復(fù)執(zhí)行若干次。
Select distinct t1.type from titles t1
Where t1.type in ( select t2.type from titles t2 where t1.pub_id!=t2.pub_id)
4、集函數(shù)、分組與排序
A、對查詢結(jié)果進(jìn)行聚集處理
聚集函數(shù): Sum([all|distinct] expression),avg([all|distinct] exoression) ,
Count([all|distinct]expression), count(*), max(expression), min(expression)
Select count(*) from titles
B、用Group by 和 having 子句對查詢結(jié)果分組
Select type ,avg(advance), sum(total_sales) from titles group by type
Select type from titles group by type having count(*) >;1
Having 類似于where , 但where 不能用聚集函數(shù)。
C、用Order by 對查詢結(jié)果進(jìn)行排序
Select type ,avg(price) from titles group by type order by avg(price)
D、Compute 子句
完成基于每一組中的值的聚集運(yùn)算,聚集值作為一個(gè)新行出現(xiàn)在查詢結(jié)果中。
Select type ,price advance from titles order by type compute sum(price), sum(advance) by type
四、數(shù)據(jù)庫、數(shù)據(jù)庫對象的增、刪、改
1、數(shù)據(jù)庫
x 打開數(shù)據(jù)庫
Use tele114
x 創(chuàng)建數(shù)據(jù)庫。擁有創(chuàng)建數(shù)據(jù)庫權(quán)利的用戶可以創(chuàng)建自己的數(shù)據(jù)庫。
CREATE DATABASE tele114
ON tele114_def01=10,tele114_run01=200,tele114_idx01=200
LOG ON tele114_log01=80
x 刪除數(shù)據(jù)庫
Drop database tele114
x 修改數(shù)據(jù)庫
Alter database tele114 on tele114_run02=100, tele114_idx02=100
2、表
x 建表
create table spec_code
(
No tinyint not null, /*特編號(0--99)*/
Name varchar(50) null, /*名稱*/
Addr varchar(50) null, /*地址*/
Tel varchar( null, /*電話號碼*/
StaffNo varchar(4) not null /*錄入員工號*/
)
on segrun /*將表放在segrun段上*/
x 刪除表
Drop tabel tele114_1th
x 修改表,在表中增加新的列(用這個(gè)命令增加的列必須允許null值)
Alter table friends_etc add country varchar(20 ) null
x 表級或列級約束
Create table my_publishers
(pub_id char(4),
Pub_name carchar(40).
Constraint my_chk_constraint
Check (pub_id in ('1389','0736','0877'))
Or (pub_name not like 'bad news books'))
x 指定默認(rèn)值
Create table ny_titles
(title_id char(6t),
Title varchar(80),
Price money default null,
Total_sales int default (0))
x 指定Unique 和primary key 約束
Primary key 不允許空值,常用來產(chǎn)生唯一的聚集索引,unique 允許空值,常用來產(chǎn)生唯一的非聚集索引
Create table my_sales
(stor_id char(4),
Ord_num varchar(20),
Date datetime,
Unique clustered(stor_id,ord_num))
3、索引
x 建立索引
create unique clustered index code1thidx1 on code_1th(Code1,Name,UnitNo1,Used)
on segrun
Unique: 建立唯一性索引
Clustered : 建立聚集索引,使得數(shù)據(jù)行的邏輯順序與物理順序一致,查詢速度較快;每個(gè)表僅允許建立一個(gè)唯一性索引。(非聚集索引nonclustered)
On segrun:將索引放在segrun上
x 刪除索引: drop index code_1th.code1thidx1
4、 默認(rèn):當(dāng)用戶沒有顯示地為某一列賦值時(shí),SQL SERVER 為該列插入的值
x 創(chuàng)建默認(rèn)值CA,把默認(rèn)值CA用到friends_etc表中的State列上
Creat default statedflt
Go
Sp_bindefault statedflt, "frends_etc.state"
go
x 斷離默認(rèn)
Sp_unbindefault "frends_etc.state"
x 刪除默認(rèn)
Drop default statedflt
5、規(guī)則:可以理解為對數(shù)據(jù)庫、某一列、某用戶數(shù)據(jù)類型的限制.規(guī)則中的任何變量名必須
冠以@,不能直接引用列或其他數(shù)據(jù)庫對象。
x 創(chuàng)建規(guī)則并把他關(guān)聯(lián)到用戶定義的數(shù)據(jù)類型P#上
Create rule phonerule as @phone like 415[0-9][0-9][0-9][0-9]
Sp_bindrule phonerule ,"p#"
x 斷離規(guī)則
Sp_unbindrule "p#"
x 刪除規(guī)則
Drop rule phonerule
6視圖:視圖是從一個(gè)或多個(gè)基本表或其他視圖上導(dǎo)出的表,可以在視圖上進(jìn)行增、刪、改
x 創(chuàng)建視圖
創(chuàng)建視圖的句法為:
create view view_name
(column_1,...,column_n)
as select_statements
例:在authors表和publishers表上定義一個(gè)視圖如下:
Create view cities (authorname, acity, publishername, pcity)
As select au_lname,authors.city, pub_name, publishers.city
From authors, publishers
x 通過使用Drop view 命令來撤消一個(gè)視圖
Drop view view_name
7、存儲過程
x 創(chuàng)建存儲過程
CREATE PROCEDURE procedure_name [(para1[,para2, ...])]
As sql_statements
存儲工程的參數(shù)名必須一@開頭,包括@最長為30個(gè)字符。
x 執(zhí)行存儲過程
EXEC[UTE] procedure_name [(para1[,para2, ...])]
存儲過程能夠返回一個(gè)整數(shù),用來指示存儲過程執(zhí)行是完全錯(cuò)誤還是錯(cuò)誤。SQL SERVER 用0指示成功的返回,-1~-99指示不同的錯(cuò)誤。當(dāng)前所用的0及-1~-14的含義如表所示。
值 含義
0 過程執(zhí)行無錯(cuò)
-1 丟失對象
-2 數(shù)據(jù)類型錯(cuò)誤
-3 進(jìn)程被選作死鎖的犧牲品
-4 權(quán)限錯(cuò)誤
-5 語法錯(cuò)誤
-6 各種用戶錯(cuò)誤
-7 資源錯(cuò)誤:如空間錯(cuò)誤
-8 非嚴(yán)重的內(nèi)部錯(cuò)誤
-9 觸及系統(tǒng)限制
-10 嚴(yán)重的內(nèi)部不一致
-11 嚴(yán)重的內(nèi)部不一致
-12 表或索引壞了
-13 數(shù)據(jù)庫壞了
-14 硬件錯(cuò)誤
x 更改存儲過程名
Sp_rename objname newname
x 刪除存儲過程
DROP PROCEDURE procedure_name
8 、觸發(fā)器
x 創(chuàng)建觸發(fā)器
CREATE TRIGGER [owner.]trigger_name
ON [owner.]table_name
{FOR INSERT,UPDATE,DELETE}
AS
SQL_statements
或使用IF UPDATE 子句:
CREATE TRIGGER [owner.]trigger_name
ON [owner.]table_name
{FOR INSERT,UPDATE}
AS
[IF UPDATE (column_name)
[{AND|OR} UPDATE (column_name)]...}
SQL_statments
[IF UPDATE(column_name)
[{AND|OR} UPDATE column_name)]...
SQL_statements]...
x 觸發(fā)器的刪除
DROP TRIGGER [owner.]trigger_name
五、批處理和流控制語言
1、批處理
SYBASE系統(tǒng)允許用戶將若干條相關(guān)的語句組成一個(gè)整體,交給系統(tǒng)同時(shí)處理。 一批語
句的結(jié)束以go語句為標(biāo)志。嚴(yán)格地講,單條SQL語句也是一個(gè)批處理。
例:Select count(*) from titles
Select count(*) from authors
Go
也可以將一組SQL命令放在一個(gè)操作系統(tǒng)文件中,再將這個(gè)文件交給isql執(zhí)行。
2、流控制語言
流控制語句
在批處理中,我們可以加入流程控制語句,從而達(dá)到編程的目的。在T-SQL語言中,
流控制語句有:
· if。。。Else。。。
· begin。。。End。。。
· while和break。。。Continue
· declare和局部變量以及全局變量
· Goto
· Return
· Waitfor
· print和Raiserror
· 注釋
例:
if exists(select * from zyl
where xm="李軍"
print "ok"
else
print "no this one"
使用批處理有以下規(guī)則:
x CREATE PROCEDURE、CREATE RULE、 CREATE DEFAULT 、CREATE TRIGGER 以及CREATE VIEWE 必須單獨(dú)交給SQL SERVER, 他們不能和別的SQL語句一起作批處理(CREATE DATABASE、CREATE TABLE 和CREATE INDEX 能和其他語句組成批處理)。
x 規(guī)則和默認(rèn)值都不能在一組批處理中剛關(guān)聯(lián)就使用。
x USE命令必須在引用這個(gè)數(shù)據(jù)庫的對象的語句的前一組批處理中提交。
x 不能剛刪除(DROP)一個(gè)數(shù)據(jù)庫對象又在同一批處理中重新創(chuàng)建他。
x 用SET語句做的任何選擇設(shè)置在批處理尾處發(fā)生作用?梢园裇ET語句和查詢語句放入一組批處理中,但SET選擇項(xiàng)不能在這組批處理中使用。
六、系統(tǒng)的啟動和關(guān)閉
1、啟動SQL Server
應(yīng)用SQL Server安裝程序(sybinit)創(chuàng)建SQL Server或Backup Server, 默認(rèn)文件名為RUN_SYBASE 和RUN_SYB_BACKUP,放在¥SYBASE/INSTALL目錄下。
Startserver 用來啟動一SQL Server 或Backup Server:
Startserver -f RUN_SYBASE
Startserver -f RUN_SYB_BAKUP
可以通過showserver查看SQL ServerBackup Server是否已經(jīng)啟動,在$SYASE/INSTALL下運(yùn)行showserver 查看SQL Server 是否啟動
UID PID PPID C STIME TTY TIME CMD
(Backup Server已啟動的信息)
sybase 831 830 0 17:23:50 ttyp1 00:00:00 /sybase/bin/backupserver 朣 SYB_BACKUP -I/sybase/interfaces -M/sybase/bin/sybmul
(SQL Server已啟動的信息)
sybase 674 1 0 14:29:11 ttyp0 00:00:45 /sybase/bin/dataserver -d/sybase/master.dat 朣YBASE -e/sybase/install/errorlog
SQL Server的啟動過程
master數(shù)據(jù)庫啟動-----------鄐ybsystemproces數(shù)據(jù)庫啟動-----------嗲蹇誸empdb---------嗥舳?淥??菘 -------嗍攣竦幕毓
2、啟動SQL Server的單用戶模式
如果要恢復(fù)一已被損壞的master數(shù)據(jù)庫,則必須要啟動SQL Server的單用戶模式。單用戶模式下僅允許一個(gè)系統(tǒng)管理員向SQL Server注冊。
Startserver -f RUN_SYBASE -m
3、關(guān)閉服務(wù)器
關(guān)閉SQL Server可以在isql中使用T-SQL命令:
關(guān)閉SQL備服務(wù)器
shutdown SYB_BACKUP
關(guān)閉SQL主服務(wù)器
shutdown [with nowait]
4、Sybase數(shù)據(jù)庫目錄說明
/usr/sybase =.. 主目錄
.. /install 安裝程序
../bin 執(zhí)行程序
../include 庫函數(shù)文件
../lib 宿主語言庫
../doc 聯(lián)機(jī)文件
../scripts SQL 動態(tài)描述文件
../help 幫助信息
../locales 語言限制文件
../termdef 終端定義文件
../charsets 字符集文件
七、SQL Server的用戶及權(quán)限
Sybase中的用戶分為兩種:SQL服務(wù)器用戶(登錄帳號)和數(shù)據(jù)庫用戶。
安裝完SQL服務(wù)器后,系統(tǒng)自動建立一個(gè)SQL服務(wù)器用戶sa,口令為空,即系統(tǒng)管理員,他對整個(gè)系統(tǒng)有操作權(quán),其他用戶均由系統(tǒng)管理員建立。
在SQL Server中有三種特殊的用戶:系統(tǒng)管理員、用戶數(shù)據(jù)庫所有者(建立相應(yīng)數(shù)據(jù)庫的數(shù)據(jù)庫用戶)DBO、一般用戶。系統(tǒng)管理員對整個(gè)系統(tǒng)有操作權(quán);用戶數(shù)據(jù)庫所有者對他所建立的數(shù)據(jù)庫具有全部操作權(quán)利;一般用戶對給定的數(shù)據(jù)庫只有被授權(quán)的操作權(quán)限。
數(shù)據(jù)庫用戶一般可分為用戶組,任一數(shù)據(jù)庫在建立后即被賦予一個(gè)用戶組public。
1、建立SQL服務(wù)器用戶名(登錄帳號)
作為一個(gè)用戶,為了使用SQL Server,他必須在SQL Server上有一個(gè)SQL服務(wù)器用戶名(登錄帳號)。這個(gè)帳號是系統(tǒng)管理員通過sp_addlogin來增加的。
sp_addlogin 登錄名,口令,庫名,語言,全名
例:建立用戶zhang, 口令為zhangling(最低六位),全名為Zhang ling
1>; sp_addlogin zhang,zhangling,null,null,"Zhang ling"
2>; go
3>; select * from syslogins
4>; go
2、增加數(shù)據(jù)庫用戶名
同樣,為了使用SQL Server上的數(shù)據(jù)庫,他必須在數(shù)據(jù)庫中有一個(gè)用戶名,這個(gè)用戶名是數(shù)據(jù)庫所有者通過sp_adduser來增加的。數(shù)據(jù)庫用戶名不必和用戶帳戶一樣,而且在不同的數(shù)據(jù)庫中用戶名可以不同。多個(gè)用戶可以有相同的SQL Server帳戶。同樣,多個(gè)SQL Server帳戶可以有相同的數(shù)據(jù)庫名。
sp_adduser 登錄名,別名,組名
登錄名為用戶的SQL服務(wù)器登錄名;別名為用戶在數(shù)據(jù)庫中的用戶名;組名為用戶所屬的數(shù)據(jù)庫用戶組。
例:用戶zhang增加為tele114的用戶,別名為zhang1,屬于用戶組china
1>;sp_addgroup china
2>;go
1>;sp_adduser zhang,zhang1,china
2>;go
1>; sp_helpuser
2>; go
*例:刪除別名zhang1,用戶組china,登錄名zhang
1>; use tele114
2>; go
3>; sp_dropuser zhang1
4>; go
5>; sp_helpuser
6>; go
1>;sp_dropgroup china
2>;go
1>; sp_helpgroup
2>; go
3>; use master
4>; go
5>; sp_droplogin zhang
6>; go
7>; select * from syslogins
8>; go
3、數(shù)據(jù)庫操作授權(quán)
grant 命令序列 to 用戶名
A. 系統(tǒng)管理員可以授予其他用戶CREATE DATABASE的權(quán)限,使其他用戶可以成為數(shù)據(jù)庫所有者。
B. 數(shù)據(jù)庫所有者在他所擁有的數(shù)據(jù)庫中,可以授予其他用戶的權(quán)限有:
l CREATE TABLE ------------------- 建表
lCREATE DEFAULT ------------------ 建缺省
lCREATE RULE ------------------- 建規(guī)則
lCREATE PROCedure ------------------ 建存儲過程
lCREATE VIEW ------------------- 建視圖
lDUMP DATABASE ------------------- 備份數(shù)據(jù)庫
lDUMP TRANsaction ------------------ 備份日志
C. 數(shù)據(jù)庫對象所有者可以授予其他用戶的操作權(quán)限有:
l SELECT
l UPDATE
l INSERT
l EXECute
l DELETE
l REFERENCE
例:授予zhang1在數(shù)據(jù)庫tele114上建表,建視圖,建存儲過程;對表students有select,reference權(quán);對name,native字段有update權(quán)。
1>; use tele114
2>; go
3>; grant creat table,create procedure ,create view to zhang1
4>; go
5>; grant select,reference on students to zhang1 with grant option
6>; go
7>; grant update on students(name,native) to zhang1
8>; go
9>; sp_helprotect
10>; go
八、數(shù)據(jù)庫備份與恢復(fù)
SQL Server提供了兩種不同類型的恢復(fù):一類是系統(tǒng)自動完成的恢復(fù);另一類是人工完成的恢復(fù)。
1.系統(tǒng)軟件故障恢復(fù)
系統(tǒng)自動恢復(fù)是在系統(tǒng)軟件出現(xiàn)故障的情況下通過重新啟動SQL Server進(jìn)行恢復(fù)。
自動恢復(fù)從master數(shù)據(jù)庫開始,然后是model數(shù)據(jù)庫,再是temporary數(shù)據(jù)庫,最后是用戶數(shù)據(jù)庫。在每個(gè)數(shù)據(jù)庫上,恢復(fù)機(jī)制觀察事務(wù)日志。如果日志寫入比數(shù)據(jù)庫更近的數(shù)據(jù),則向前恢復(fù)數(shù)據(jù)庫。如果事務(wù)尚未完成,則要回退它們。
所謂事務(wù)日志就是一張系統(tǒng)表,syslogs。在這張表中記錄著對數(shù)據(jù)庫的更新請求,例如插入、修改和刪除。查詢操作不記入事務(wù)日志中。
2.介質(zhì)故障的恢復(fù)
一旦介質(zhì)發(fā)生故障,只有通過以前備份的數(shù)據(jù)庫和事務(wù)日志才能恢復(fù)數(shù)據(jù)庫,為此我們需要經(jīng)常備份數(shù)據(jù)庫和事務(wù)日志。備份數(shù)據(jù)庫和事務(wù)日志我們使用dump命令,而恢復(fù)數(shù)據(jù)庫和事務(wù)日志我們使用load命令。
與創(chuàng)建數(shù)據(jù)庫需要一個(gè)數(shù)據(jù)庫設(shè)備類似,我們備份數(shù)據(jù)庫和事務(wù)日志也需要一個(gè)卸出設(shè)備。增加卸出設(shè)備可以通過系統(tǒng)過程sp_addumpdevice來實(shí)現(xiàn)。卸出設(shè)備可以是磁盤、磁帶或操作系統(tǒng)文件。
sp_addumpdevice "type",device_name,physicalname
例:
sp_addumpdevice "disk", "db114", "/usr/sybase/zyl114.bak",1
(1) 備份數(shù)據(jù)庫和事務(wù)日志
備份數(shù)據(jù)庫的語法為:
dump database database_name to dump_device
例如:
dump database tele114 to db114
備份事務(wù)日志的語法為:
dump transaction database_name to dump_device
[with truncate_only | with no_log | with no_truncate]
前兩項(xiàng)在日志中刪除提交的事務(wù),后一項(xiàng)不刪除。
在備份數(shù)據(jù)庫前的所有事務(wù)日志備份都是沒有意義的。我們一般不經(jīng)常備份數(shù)據(jù)庫,但我們要經(jīng)常備份事務(wù)日志。這是因?yàn)閭浞菔聞?wù)日志比備份數(shù)據(jù)庫需要更少的時(shí)間和存儲空間。
(2)恢復(fù)用戶數(shù)據(jù)庫
要恢復(fù)已被破壞的數(shù)據(jù)庫,可以按如下步驟進(jìn)行:
· 用帶no_truncate選項(xiàng)的dump命令卸出用戶數(shù)據(jù)庫事務(wù)日志。
· 用和被破壞的數(shù)據(jù)庫的同樣的結(jié)構(gòu)建立一個(gè)新的數(shù)據(jù)庫。
· 用load命令重新裝入數(shù)據(jù)庫和事務(wù)日志。
裝入數(shù)據(jù)庫的語法為:
load database database_name
from file_name
裝入事務(wù)日志的語法為:
load transaction database_name
from file_name
例:數(shù)據(jù)庫備份
1>; dump db_name to file_name
2>; go
數(shù)據(jù)庫恢復(fù)
1>; load db_name from file_name
2>; go
日志備份
1>; dump transaction db_name to file_name
2>; go
日志恢復(fù)
1>; load transaction db_name from file_name
2>; go
日志刪除
1>; dump transaction db_name with truncate_only
2>; Go
(3)master數(shù)據(jù)庫的恢復(fù)
A、保存系統(tǒng)表的拷貝:sysdatabases、sysdevices、sysusages、sysloginroles和Syslogins。
B、轉(zhuǎn)儲主設(shè)備上的用戶數(shù)據(jù)庫。
C、關(guān)閉SQL Server并使用buildmaster建立新的master數(shù)據(jù)庫或主設(shè)備。
Buildmaster -m ...僅重建master數(shù)據(jù)庫
Buildmaster ...重建主設(shè)備
D、已單用戶模式啟動SQL Server( Master-Recover )
Startserver -f RUN_服務(wù)器名 -m
E、若master數(shù)據(jù)庫用alter database 命令擴(kuò)展過,嚴(yán)格重建它在sysusages中的分配。
F、若Backup Server 的網(wǎng)絡(luò)名(接口文件中的名字)不是SYB_BACKUP,在sysservers中改動網(wǎng)絡(luò)名。
Update sysservers set srvnetname=" RODUCTION_BSRV" where srvname="SYB_BACKUP"
G、使用showserver查看,檢查確保Backup Server正運(yùn)行,若有必要,重啟Bakup Server
H、裝載master的備份。
Load database master from 'master.bak'
Load database執(zhí)行成功后,SQL Server 自動關(guān)閉。
I、若自master的上次轉(zhuǎn)儲以來增加過數(shù)據(jù)庫設(shè)備,執(zhí)行disk reinit命令以重建sysdevices。
J、若執(zhí)行了disk reinit,或自上次轉(zhuǎn)儲以來使用過create database或alter database,執(zhí)行disk refit 重建sysusages和sysdatabases表,執(zhí)行完畢后SQL Server自動關(guān)閉。
K、檢查一致性:比較sysusages和sysdatabases的備份和新的聯(lián)機(jī)版本,對每個(gè)數(shù)據(jù)庫執(zhí)行dbcc checkalloc, 并檢查每個(gè)數(shù)據(jù)庫中重要的表;若發(fā)現(xiàn)錯(cuò)誤重新執(zhí)行disk reinit和disk refit。
L、若恢復(fù)了整個(gè)主設(shè)備,則恢復(fù)model數(shù)據(jù)庫。
Cd $SYBASE/scripts
Setenv DSQUERY 服務(wù)器名
Isql -Usa -P口令 -S服務(wù)器名 M、重新裝載所有受影響的用戶數(shù)據(jù)庫。
N、恢復(fù)服務(wù)器用戶ID。
O、以多用戶模式重新啟動SQL Server。
(4)恢復(fù)model 數(shù)據(jù)庫
Buildmaster -d/設(shè)備名 -x
(5)恢復(fù)sybsystemproces數(shù)據(jù)庫
A、刪除sybsystemproces數(shù)據(jù)庫(若物理磁盤損壞,刪除設(shè)備,使用Disk init 重建設(shè)備)
B、重建數(shù)據(jù)庫
Create database sybsystemporces on 設(shè)備名=數(shù)據(jù)庫大小
C、恢復(fù)數(shù)據(jù)庫
Cd $SYBASE/scripts
Setenv DSQUERY 服務(wù)器名
Isql -Usa -P口令 -S服務(wù)器名 九、幾個(gè)實(shí)用程序
1、bcp
以用戶指定的形式將數(shù)據(jù)庫表拷貝到操作系統(tǒng)文件中,或從操作系統(tǒng)文件中拷貝一個(gè)數(shù)據(jù)庫表。提供了在數(shù)據(jù)庫表和操作系統(tǒng)文件之間傳遞數(shù)據(jù)的一個(gè)方便、快速的方法。
bcp [[database-name.]owner.]table_name {in|out} datafile [各種開關(guān)]
其中,table_name是想要拷貝的數(shù)據(jù)庫表名;{in/out}為拷貝方向,in表示從文件到數(shù)據(jù)庫的拷貝,out表示從數(shù)據(jù)庫到文件的拷貝;datafile是操作系統(tǒng)文件的全路徑名。
常用的開關(guān)有:
-f formatfile----存有上次使用bcp處理同一表時(shí)得到的應(yīng)答文件的全路徑名,格式文件名的擴(kuò)展名為.fmt。使用格式文件,省去了再重復(fù)回答前面的問題。
-U username----允許用戶指定一個(gè)注冊名。
-P password----允許用戶指定當(dāng)前的SQL Server口令。如果未使用-P選項(xiàng),bcp將提示輸入一個(gè)口令。
-S Server----允許用戶指定與其相連的SQL Server的名字。
例:在客戶端備份tele114數(shù)據(jù)庫中code_1th表,按照code_1th.fmt的格式
c>; bcp tele114..code_1th out code_1th.txt -杅code_1th.fmt 朥sa 朠
2、 isql
與SQL Server交互的SQL句法分析器。
isql [各種開關(guān)]
常用的開關(guān)有:
-U username----允許用戶指定一個(gè)注冊名。
-P password----允許用戶指定當(dāng)前的SQL Server的口令。
-S Server----允許用戶指定與其連接的SQL Server的名稱。
-i輸入文件
-o輸出文件
終止一條命令:go
清除查詢緩沖:reset
調(diào)用編輯器:vi
執(zhí)行一條操作系統(tǒng)命令:!命令
退出isql:quit或exit
3、showserver
顯示當(dāng)前在本機(jī)上正在運(yùn)行的SQL Server。
showserver
4、startserver
啟動SQL Server。
startserver [各種開關(guān)]
常用的開關(guān)有:
-f runserverfile----指定一個(gè)運(yùn)行服務(wù)器文件名,每次重啟SQL Server時(shí),以這個(gè)文件為參考。在我們的實(shí)際機(jī)器上,這個(gè)文件名為RUN_SYBASE或RUN_SYB_BACKUP。
-m ----以單用戶的方式啟動SQL Server。這個(gè)方式用于恢復(fù)master數(shù)據(jù)庫。
5、syman
顯示聯(lián)機(jī)的庫例程,系統(tǒng)過程及實(shí)用程序手冊。
syman [keyword]
syman實(shí)用程序的聯(lián)機(jī)文本文件存放在$SYBASE下的doc子目錄中。
6、dbcc 數(shù)據(jù)庫一致性檢查
Dbcc 用來檢查一個(gè)數(shù)據(jù)庫的邏輯一致性和物理一致性。通常在下面的情況下使用dbcc:
x 常規(guī)數(shù)據(jù)庫維護(hù)
x 確定當(dāng)一個(gè)系統(tǒng)錯(cuò)誤后可能損壞的范圍
x 在備份數(shù)據(jù)庫之前
x 懷疑數(shù)據(jù)庫受到損壞。
dbcc有兩個(gè)主要功能:可檢查分配表結(jié)構(gòu)(命令checkalloc、tablealloc和Indexalloc);可檢查頁鏈接和頁級、行級上的數(shù)據(jù)指針。
只有表屬主可以用checktable、fix-text和reindex選項(xiàng)執(zhí)行dbcc命令。只有數(shù)據(jù)庫屬主可以使用checkdb、checkalloc、checkcatalog、indexalloc和tablealloc選項(xiàng)。只有系統(tǒng)管理員可以使用dbrepair選項(xiàng)
dbcc命令的完整語法格式如下:
Dbcc
{checktable({表明|表標(biāo)識}[,Skip_ncindex])|
Checkdb [(數(shù)據(jù)庫名[,skip_ncindex])]|
Checkalloc [(數(shù)據(jù)庫名[,fix|nofix])]|
Talbealloc ({表明|表標(biāo)識}[,{full|optimized|fast|null}[,fix|nofix]]))|
Indexalloc ({表明|表標(biāo)識},索引標(biāo)識[,{full|optimized|fast|null}[,fix|nofix]]))|
Checkcatalog [(數(shù)據(jù)庫名)]
Dbrepair (數(shù)據(jù)庫名,dropdb)|
Reindex ({表明|表標(biāo)識})|
fix_text({表明|表標(biāo)識})}
十 、SQL客戶端軟件
1. DOS狀態(tài)下SQL客戶端軟件
軟件位于c:\sqlbin
運(yùn)行步驟:
運(yùn)行TCPIP協(xié)議程序tcp.bat
c:\nwclient\lsl /c:\nwclient\net.cfg
c:\nwclient\ne2000
c:\nwclient\tcpip
(2) ping 129.6.114.201 (服務(wù)器地址)
返回129.6.114.201 is alive 正常
返回No response from 129.6.114.201 為異常
(3)運(yùn)行sybclenv.bat------------------ Sybase的DOS接口啟動程序,內(nèi)容如下:
set path=c:\sqlbin\binr;%path% -------------Sybase的DOS接口程序所在目錄
set dsquery=129.6.114.201,4114--------------連接服務(wù)器IP地址和端口號
c:\sqlbin\binr\dbnovtcp
C:\sqlbin\binr\rmineti
dbping 129.6.114.201------------檢查是否連通SYBASE服務(wù)器
連接成功出現(xiàn)“Successfully opened network connection"
(5) isql 朥sa 朠
1>; sp_help
2>; go
十一、附錄
附錄1:只有在master數(shù)據(jù)庫中才能有的系統(tǒng)表
系統(tǒng)表名 表中的內(nèi)容
Sysconfigures 一行記錄了用戶可設(shè)置的配置參數(shù)
Syscurconfigs 有關(guān)SQL Server當(dāng)前正使用的配置參數(shù)情況
Sysdatabases 一行記錄了SQL Server中的一個(gè)數(shù)據(jù)庫
Sysdevices 一行記錄了數(shù)據(jù)庫的每一磁帶轉(zhuǎn)儲設(shè)備,磁盤轉(zhuǎn)儲設(shè)備,數(shù)據(jù)庫設(shè)備和磁盤分區(qū)
設(shè)備和磁盤分區(qū)
Syslocks 有關(guān)動態(tài)鎖的情況
Syslogins 一行記錄了每一有效的SQL Server的用戶帳號
Sysmessages 一行記錄了每一系統(tǒng)錯(cuò)誤或警告
Sysprocesses 有關(guān)Server進(jìn)程的情況
Sysremotelogins 一行記錄了一個(gè)遠(yuǎn)程用戶
Sysservers 一行記錄了一個(gè)遠(yuǎn)程SQL Server
附錄2:Sysusages 一行記錄了分配給一個(gè)數(shù)據(jù)庫的每一個(gè)磁盤分析
系統(tǒng)表名 表中的內(nèi)容
Sysalternates 一行記錄了SQL Server用戶在當(dāng)前數(shù)據(jù)庫中的標(biāo)識
syscoumns 一行記錄了一個(gè)表或視圖的每一列,一個(gè)存儲過程的每一參數(shù)
syscomments 一行或多行記錄了每一視圖、規(guī)則、缺省值、觸發(fā)器和存儲過程
sysdepends 一行記錄了由一個(gè)過程、視圖或觸發(fā)器所參照的每一過程,視圖或表
Syskeys 一行記錄了每一主碼,外碼或公用碼
Syslogs
sysobjects 一行記錄了每一表、視圖、存儲過程、日志、規(guī)則、缺省值、觸發(fā)器和臨時(shí)表(僅在tempdb中)
sysprocedures 一行記錄了每一視圖、規(guī)則、缺省、觸發(fā)器和過程
syprotects 記錄用戶的權(quán)限信息
sysegments 一行記錄了每一片段(命名的的磁盤分片匯集)
systypes 一行記錄了每一由系統(tǒng)提供的和用戶定義的數(shù)據(jù)類型
sysusers 一行記錄了一個(gè)數(shù)據(jù)庫的合法用戶,或用戶組
附錄3: 由SQL Server提供的系統(tǒng)過程功能和執(zhí)行權(quán)
過程名 功能 執(zhí)行權(quán)限
sp_addalias 把數(shù)據(jù)庫中的一個(gè)用戶映象到另一個(gè)用戶 數(shù)據(jù)庫所有者
sp_addgroup 向數(shù)據(jù)庫增加分組,在授權(quán)和撤權(quán)命令中分組被用作聚合名字 數(shù)據(jù)庫所有者
sp_addlanguage 為服務(wù)器定義可替換語言,并把它增加到master,dbo,syslanguages中。 系統(tǒng)管理員
sp_addlogin 通過向master.dbo,syslogins中增加表項(xiàng)授權(quán)新的SQL Server用戶 系統(tǒng)管理員
sp_addremotelogin 通過向master,bo,sysremotelogins增添表項(xiàng)授權(quán)新的遠(yuǎn)程服務(wù)器用戶 系統(tǒng)管理員
sp_addsegment 在指定的數(shù)據(jù)庫設(shè)備上創(chuàng)建一個(gè)段 數(shù)據(jù)庫所有者系統(tǒng)管理員
sp_addserver 定義遠(yuǎn)程服務(wù)器,或定義本地服務(wù)器名字 數(shù)據(jù)庫所有者系統(tǒng)管理員
sp_addtype 創(chuàng)建用戶定義的數(shù)據(jù)類型 Public
sp_addumpdervce 向SQL Server增加轉(zhuǎn)儲設(shè)備 系統(tǒng)管理員
sp_adduser 向當(dāng)前數(shù)據(jù)庫添加新的用戶 數(shù)據(jù)庫所有者
sp_bindefault 為一列或用戶下義的數(shù)據(jù)類型定義缺省值 目標(biāo)(對象)所有者
sp_bindrule 向一列或用戶定義的數(shù)據(jù)類型賦一規(guī)則 目標(biāo)汽有者
sp_changedbowner 改變數(shù)據(jù)庫的所有者 數(shù)據(jù)庫所有者
sp_changegroup 改變用戶所屬的分組 數(shù)據(jù)庫所有者
sp_checknames 檢查當(dāng)前數(shù)據(jù)庫在7位ASCII碼集之外的字符的名字 public
sp_commonkey 在兩個(gè)表或視圖之間定義一公共鍵--經(jīng)常被連接的列 兩表(或視圖)的所有者
sp_configure 顯示或改變配置變量 沒有參數(shù)或只有第一個(gè)參數(shù)的執(zhí)行權(quán)屬于public,否則屬于系統(tǒng)管理員
sp_dboption 顯示或改變數(shù)據(jù)庫選項(xiàng) 不帶參數(shù)屬于public,帶參數(shù)時(shí)屬于數(shù)據(jù)庫所有者
sp_defaultdb 改變一用戶的缺省數(shù)據(jù)庫 系統(tǒng)管理員(但每個(gè)用戶都可以改變他自己的缺省語言)
sp_depends 顯示數(shù)據(jù)庫目標(biāo)相關(guān)性的信息 public
sp_diskdefault 設(shè)備數(shù)據(jù)庫設(shè)備的狀態(tài)為defaulton或defaultoff(表明一數(shù)據(jù)設(shè)備是否能用于數(shù)據(jù)庫的豈省存儲) 系統(tǒng)管理員
sp_dropalias 刪除用sp_addalias建立的用戶名別名標(biāo)識 數(shù)據(jù)庫所有者
sp_dropdevice 刪除一SQL Server數(shù)據(jù)庫設(shè)備或轉(zhuǎn)儲設(shè)備 系統(tǒng)管理員
sp_dropgroup 從數(shù)據(jù)庫中刪除一分組 數(shù)據(jù)庫所有者
sp_droplanguage 從服務(wù)器中刪除可替換語言,并從master.dbo.syslanguages中刪掉相應(yīng)的行 系統(tǒng)管理員
sp_droplogin 通過刪掉用戶在master,dbo,syslogins中的表項(xiàng)刪除SQL Server用戶 系統(tǒng)管理員
sp_dropremotelogin 刪除遠(yuǎn)程用戶注冊 系統(tǒng)管理員
sp_dropsegment 從數(shù)據(jù)庫中刪除一個(gè)段或從特定數(shù)據(jù)庫設(shè)備上卸掉一個(gè)段的映象 數(shù)據(jù)庫所有者
sp_dropserver 刪除遠(yuǎn)程服務(wù)器 系統(tǒng)管理員
sp_droptype 刪除用戶定義的數(shù)據(jù)類型 數(shù)據(jù)庫所有者數(shù)據(jù)類型所有者
sp_dropuser 從當(dāng)前是數(shù)據(jù)庫中刪除一用戶 數(shù)據(jù)庫屬主
sp_extendsegment 把段的區(qū)域擴(kuò)充到另一個(gè)數(shù)據(jù)庫設(shè)備或在當(dāng)前數(shù)據(jù)庫設(shè)備上進(jìn)行擴(kuò)充 數(shù)據(jù)庫屬主
sp_foreignkey 在當(dāng)前數(shù)據(jù)庫的表或視圖上定義一外部鍵 表的屬主
sp_help 報(bào)告目標(biāo)或SQL Server提供的或用戶定義的數(shù)據(jù)庫類型的信息 public
sp_helpdb 報(bào)告--指定數(shù)據(jù)庫或所有數(shù)據(jù)庫的信息 public
sp_helpdevice 報(bào)告--指定設(shè)備或所有SQL Server數(shù)據(jù)庫設(shè)備轉(zhuǎn)儲設(shè)備的信息 public
sp_helpgroup 報(bào)告--特定組或當(dāng)前數(shù)據(jù)庫的所有組的信息 public
sp_helpinde 報(bào)告--表中的索引信息 public
sp_helpjoins 列出可連接兩個(gè)表或視圖的列 public
sp_helpkey 報(bào)告某個(gè)特定表或視圖的一主鍵,外部鍵或公共鍵或者當(dāng)前數(shù)據(jù)庫中所有鍵的信息 public
sp_helplanguage 報(bào)告一特替換語言或所有語言的信息 public
sp_helplog 報(bào)告包括日志第一頁的設(shè)備名 public
sp_helpremotelogin 報(bào)告一特定遠(yuǎn)程服務(wù)器或所有遠(yuǎn)程服務(wù)器的注冊信息 public
sp_helprotect 報(bào)告一數(shù)據(jù)庫對象或用戶權(quán)限,且由用戶選擇對象 public
sp_helpsegment 報(bào)告當(dāng)前數(shù)據(jù)庫中一特定段或所有段的信息 public
sp_helpserver 報(bào)告一特定遠(yuǎn)程服務(wù)器或所有遠(yuǎn)程服務(wù)器的信息 public
sp_helpsort 顯示SQL Server的缺省排列順序以及字符集 public
sp_helptext 打印一系統(tǒng)過程、觸發(fā)器、視圖、缺省或規(guī)則的定義文本 public
sp_helpuser 報(bào)告當(dāng)前數(shù)據(jù)庫中一個(gè)用戶或所有用戶的信息 public
sp_lock 報(bào)告當(dāng)前上鎖的進(jìn)程的信息 public
sp_logdevice 將系統(tǒng)表syslogs(其中包括事務(wù)日志)放在一個(gè)分設(shè)的數(shù)據(jù)庫設(shè)備中 數(shù)據(jù)庫屬主
sp_monitor 顯示SQL Server的統(tǒng)計(jì)數(shù)字 系統(tǒng)管理員
sp_password 增加或改變SQL Server注冊的口令 對自己的口令,權(quán)限屬于public,系統(tǒng)管理員有權(quán)修改所有用戶口令
sp_placeobject 為一特定中某個(gè)表或索引放置將來的空間分配 表屬主,數(shù)據(jù)庫屬主系統(tǒng)管理員
sp_primarykey 定義一表或視圖上的主鍵(主碼) 表的所有者
sp_recompile 使生個(gè)使用被指定表的存儲過程、觸發(fā)器在下次運(yùn)行時(shí)重新編譯 public
sp_remoteoption 顯示或改變遠(yuǎn)程注冊選項(xiàng) 顯示選項(xiàng)時(shí)屬 public改變選項(xiàng)時(shí)屬系統(tǒng)管理員
sp_rename 改變當(dāng)前數(shù)據(jù)庫中一用戶建立目標(biāo)的名稱 特定目標(biāo),權(quán)限屬目標(biāo)屬主對數(shù)據(jù)庫所有對象,權(quán)限屬數(shù)據(jù)庫所有者
sp_renamedb 改變數(shù)據(jù)庫名 系統(tǒng)管理員
sp_serveroption 顯示或改變服務(wù)器選項(xiàng) 顯示選項(xiàng),權(quán)限,權(quán)限屬 public改變選項(xiàng),權(quán)限屬系統(tǒng)管理員
sp_setlangalian 分配或改變一替換語言的別名 系統(tǒng)管理員
sp_spaceused 顯示行數(shù)、數(shù)據(jù)頁數(shù)以及當(dāng)前數(shù)據(jù)庫中由某個(gè)目標(biāo)或所有目標(biāo)所占用的空間 public
sp_unbindefault 從一列或用戶定義的數(shù)據(jù)類型中解除一規(guī)則 目標(biāo)屬主(所有者)
sp_who 報(bào)告特定用戶或SQL Server所有當(dāng)前用戶和進(jìn)程的信息 public
附錄4:常用SQL命令 表4
1.load isql -Usa -P --進(jìn)入ISQL環(huán)境
quit ----退出ISQL環(huán)境
2.shutdown (server_name) --關(guān)閉SYBASE服務(wù)器
ex. shutdown SYB_BACKUP
3.use (database_name) --打開數(shù)據(jù)庫
ex. use tele114
4.set rowcount (number) -- 設(shè)置顯示記錄條數(shù)
ex. set rowcount 10 (為0則取消設(shè)置)
5.select (select_list) from (table_name) where (search_conditions)
--查看符合要求的內(nèi)容
ex. select max(UnitNo1) from code_1th
6.update (table_name) set (column_name1)=(value1),column_name2)=value2)
where (search_conditions) --重新賦值
ex.update code_1th set Password='12345',
RevCode1=substring(RevCode1,1,datalength(rtrim(RevCode1))-1)
where substring(Code1,1,1)='v' and substring(Code1,2,1)!=' '
7.select (select_list) into (table_name1) from (table_name2)
where (search_conditions)
--將符合要求的table_name2中的內(nèi)容存在table_name1中
ex.select * into sample from code_1th where substring(Code1,1, 1)='V'
8.truncate table (table_name) --刪去表
ex.truncate table sample
delete (table_name) where (search_conditions) -- 刪去表的一部分
ex. delete example where County='5'
9.sp_addumpdevice 'disk',(logicalname),(physicalname) --定義轉(zhuǎn)儲設(shè)備
ex.sp_addumpdevice 'disk','nbdump_1','vol1:\nbdump\nbdump.dat'
10.sp_dropdevice (device_name) --刪去轉(zhuǎn)儲設(shè)備
ex.sp_dropdevice nbdump_1
11.dump tran (database_name) with truncate_only --刪去日志
ex.dump tran tele114 with truncate_only
12.sp_configure (config_name),(config_value) --更改設(shè)置值
ex.sp_configure 'allow updates',1
13.reconfigure with override --使更改設(shè)置值有效
14.sp_who --使用數(shù)據(jù)庫用戶列表
15.kill (spid) --刪去無效的數(shù)據(jù)庫用戶
ex.kill 9 --刪去spid為9的數(shù)據(jù)庫用戶
16.sp_helpindex (tabel_name) --查看索引情況
ex. sp_helpindex code_2th
17.sp_helpdb (database_name) --查看數(shù)據(jù)庫占用空間情況
ex. sp_helpdb tele114
附錄5:SYBASE實(shí)用安裝、
Sybase 10.0.1 For SCO UNIX3.0.x的安裝
(一)安裝前準(zhǔn)備
1. SCO UNIX需兩張補(bǔ)丁盤
a. UOD381異步I/O盤一張
b. aet382網(wǎng)絡(luò)盤一張
重啟UNIX后進(jìn)入維護(hù)模式,用custom命令裝入此兩張補(bǔ)丁盤
2. 在UNIX系統(tǒng)中增加sybase用戶
3. 在工作站上通過TCP/IP將SYB_SCO拷入 /usr/sybase中在工作站上運(yùn)行
LSL
NE2000
TCPIP
FTP 129.18.114.99 (129.18.114.99為服務(wù)器的網(wǎng)絡(luò)地址)
用sybase用戶登錄
bi
put SYB_SCO (SYB_SCO在C盤當(dāng)前目錄中)
4. 用cpio 展開安裝程序
以root登錄
cd/usr/sybase
Cpio 杋dvC 5. 配置UNIX內(nèi)核
a. 以root登錄
b. 設(shè)置環(huán)境變量,用vi 編輯 /.profile加入以下兩行
SYBASE=/usr/sybase
export sybase
c. 用vi編輯/etc/conf/cf.d/mtune
修改參數(shù)為
NSTREAM 700
NAIOHBUF 400
d. cd/usr/sybase/install
sh sco_kernal sybase
重新 relink 后reboot
(二)安裝
1)以sybase 登錄
2)cd/usr/syabsw/install
3)sybinit
4)選3
SYBINIT
1. Rrlease Directory: /sur/u/sybasw-100
2. Edit /View interfaces File
3. Configure a server product
4. Configure an Open Coient/Server Product
5. Configure a Front End Product
5)選1
CONFIGURE SERVER PRODUCTS
1. Configure a mew SQL Server
2. Configure an existing SQL Server
3. Upgrad an existing SQL Server
7)ADD NEW SQL SERVER
1. SQL Server name: lyg114
a. 選1,輸入服務(wù)器名如:lyg114
b. 按Ctrl-a
SQL SERVER VONFIGURATION
1. CONFIGURE SERVER'S INTERFACES FILE ENTRY Incomplete
2. MASTER DEVICE CONFIGURATION Incomplete
3. SYBSYSTEMPROCS DATABASE CONFIGURATION Incomplete
4. SET ERRORLOG LOCATION Incomplete
5. CONFIGURE DEFAULT BACKUP SERVER Incomplete
6. CONFIGURE LANGUAGES Incomplete
7. CONFIGURE CHARACTER SETS Incomplete
8. CONFIGURE SORT ORDER Incomplete
9. ACTIVATE VUDITING Incomplete
分別選1,2,3,---9配置參數(shù),使各項(xiàng)Incmplete----->;complete
參數(shù)配置如下:(例)
a. SERVER INTERFACES FILE ENTERY SCREEN
Server name : lyg114
1. Retry Count: 10
2. Retry Delay: 10
Listener services available:
Protocol Address Port Name Alias
rcp scosysv 4114
注意:Port=4114,此參數(shù)為1024--65535為間的4個(gè)或5個(gè)數(shù)字
Address=scosysv,此參數(shù)為UNIX服務(wù)器主機(jī)名
b. MASTER DRVICE CONFIGURATION
1. Master Device: /usr /sybase/madter.bay
2. size (Meg) : 30
c. SYBSYSTEMPROCS DATABASE CONFIGURATION
1.sybsytemprocs database size (Meg) : 10
2. sybsystemprocs logical device name: sysprocsdev
3. create new device for the sybsystemprocs database : yes
4. physical name of new device: /usr /sybase/sybtemp.dat
5. size of the new device (Meg) : 10
d. SET ERRORLOG LOCATION
1. SQL Server errorlog: /usr/sybase/errorlog
e. SET THE SQL ERVER'S BACKUP SERVER
1.SQL Server backup Server mname: SYB-BACKUP
注意:此備份服務(wù)器名一定要與后面配置的備份服務(wù)器名一致
f. SONFIGURE LANGUAGES
選 1. us-english
g.CONFIGURE CHARACTER SETS
選 1. SACII, fro use with unsp 及4.ISO 8859-1 (latin-1)-w (4.為缺省)
h. CONFIGURE SORT ORDER
選 1. Binary ordering ,for the ISO 8859/1 or Latin-1 Charact
i. ACTIVATE AVDITING
1. Install auiting: yes
2. sybsecurity database size (Meg): 5
3. sybsecuyty logical device name : sybsecurity
4. dreate new device for the sybsecurity database : yes
5. sybsecurity physical device name : /usr/sybase/sybsecur.dat
6. size of the new device (Meg): 5
9) 參數(shù)配置完后,按Crtl-a
Execute the SQL Server Configuraion now? y
10)看到下面的信息表示SQL Server 安裝成功
Configrration completed successfully.
rpess to continue.(回車)
11) 按Ctrl-x 退出安裝程序
12) 要$提示符下運(yùn)行
startserver-fRUN-lyg114 啟動SQL Server
13) 要$提示符下運(yùn)行
isql-Usa -P- Slyg114
屏幕出現(xiàn):1>;
安裝完畢
Sybase 11.0.2 For SCO UNIX 5.02C的安裝
(一)首先建立sybase組,組號可設(shè)為100;再建立sybase用戶,然后修改/usr/sybase/.profile文件,加入一句:SYBASE=“/usr/sybase”;export SYBASE。
(二)調(diào)整系統(tǒng)核心參數(shù)
a. 共享內(nèi)存:
# cd /etc/conf/cf.d
# ./configure選16,shared data
SHMMAX,輸入新值,如83886080(越大越好,系統(tǒng)啟動后省下的全部內(nèi)存)
退出。
b. 激活異步I/O:
# cd /etc/conf/sdevice.d;進(jìn)入此目錄
# Vi aio將“N”改為“Y”;編輯aio文件
# Vi suds將“N”改為“Y”;編輯suds文件
# Vi /etc/rc2 在最后加入下面一行:
/etc/suds_ctrl -a
c. 重建內(nèi)核:
# /etc/conf/cf.d/link_unix
d. 重新啟動openserver
(三)安裝sybase
a. 以sybase登錄:
$ ./sybload -D
依輸入y 、l,
然后執(zhí)行”./sybimage“
b. 依提示輸入序列號,解完包后:
Vi /usr/sybase/locales/locales.dat
在[SCO]中,加入:
C_C.C.,us-English,ico_1
然后進(jìn)入Install,配置SYBASE服務(wù)器。
※SYBASE 11.0.2 For SCO UNIX 5.0.2安裝補(bǔ)充說明
目前SCO UNIX 5.0有多種版本,針對5.0.2,SYBASE 11.0.2的安裝需安裝Kernel Patch:
a. OSS437a-streams lock timeout and protocal Data
b. OSS441a-SUDS aio supplement
c. OSS446a-tape drive unload for nonrewinding devices
在SCO UNIX 5.0.4C上不需安裝補(bǔ)丁盤。
|
|