美國Sybase公司研制的一種關(guān)系型數(shù)據(jù)庫系統(tǒng),是一種典型的UNIX或WindowsNT平臺上客戶機/服務(wù)器環(huán)境下的大型數(shù)據(jù)庫系統(tǒng)。 Sybase提供了一套應(yīng)用程序編程接口和庫,可以與非Sybase數(shù)據(jù)源及服務(wù)器集成,允許在多個數(shù)據(jù)庫之間復制數(shù)據(jù),適于創(chuàng)建多層應(yīng)用。系統(tǒng)具有完備的觸發(fā)器、存儲過程、規(guī)則以及完整性定義,支持優(yōu)化查詢,具有較好的數(shù)據(jù)安全性。Sybase通常與SybaseSQLAnywhere用于客戶機/服務(wù)器環(huán)境,前者作為服務(wù)器數(shù)據(jù)庫,后者為客戶機數(shù)據(jù)庫,采用該公司研制的PowerBuilder為開發(fā)工具,在我國大中型系統(tǒng)中具有廣泛的應(yīng)用。
Adaptive Server Enterprise (ASE) 是 Sybase 的旗艦式 RDBMS 產(chǎn)品,一直致力于以最低的系統(tǒng)總擁有成本 (TCO) 為企業(yè)提供一個高性能的數(shù)據(jù)和事務(wù)處理系統(tǒng)。最新版 ASE12.5.1/12.5.2 在繼續(xù)保持以前版本的關(guān)鍵業(yè)務(wù)性能和高效計算的同時,在易用性、系統(tǒng)性能和支持新應(yīng)用程序方面進行了增強和改進, 并進一步提高了系統(tǒng)安全和 Linux 的可擴展性。Sybase Adaptive Server Enterprise 12.5.1 完善和擴展了 ASE 產(chǎn)品系列。
Sybase數(shù)據(jù)庫版本
1984年,Mark B. Hiffman和Robert Epstern創(chuàng)建了Sybase公司,并在1987年推出了Sybase數(shù)據(jù)庫產(chǎn)品。SYBASE主要有三種版本,一是UNIX操作系統(tǒng)下運行的版本,二是Novell Netware環(huán)境下運行的版本,三是Windows NT環(huán)境下運行的版本。對UNIX操作系統(tǒng)目前廣泛應(yīng)用的為SYBASE 10 及SYBASE 11 forSCO UNIX。
sybase數(shù)據(jù)庫特點
(1)它是基于客戶/服務(wù)器體系結(jié)構(gòu)的數(shù)據(jù)庫
一般的關(guān)系數(shù)據(jù)庫都是基于主/從式的模型的。在主/從式的結(jié)構(gòu)中,所有的應(yīng)用都運行在一臺機器上。用戶只是通過終端發(fā)命令或簡單地查看應(yīng)用運行的結(jié)果。而在客戶/服務(wù)器結(jié)構(gòu)中,應(yīng)用被分在了多臺機器上運行。一臺機器是另一個系統(tǒng)的客戶,或是另外一些機器的服務(wù)器。這些機器通過局域網(wǎng)或廣域網(wǎng)聯(lián)接起來。
客戶/服務(wù)器模型的好處是:
1)它支持共享資源且在多臺設(shè)備間平衡負載
2)允許容納多個主機的環(huán)境,充分利用了企業(yè)已有的各種系統(tǒng)
注釋:什么是客戶/服務(wù)器體系結(jié)構(gòu)
從硬件角度看,客戶/服務(wù)器體系結(jié)構(gòu)是指將某項任務(wù)在兩臺或多臺機器之間進行分配,其中客戶機(Client)用來運行提供用戶接口和前端處理的應(yīng)用程序,服務(wù)器機(Server)提供客戶機使用的各種資源和服務(wù)。
從軟件角度看,客戶/服務(wù)器體系結(jié)構(gòu)是把某項應(yīng)用或軟件系統(tǒng)按邏輯功能劃分為客戶軟件部分和服務(wù)器軟件部分。客戶軟件部分一般負責數(shù)據(jù)的表示和應(yīng)用,處理用戶界面,用以接收用戶的數(shù)據(jù)處理請求并將之轉(zhuǎn)換為對服務(wù)器的請求,要求服務(wù)器為其提供數(shù)據(jù)的存儲和檢索服務(wù);服務(wù)器端軟件負責接收客戶端軟件發(fā)來的請求并提供相應(yīng)服務(wù)客戶/服務(wù)器融合了大型機的強大功能和中央控制以及PC機的低成本和較好的處理平衡。客戶/服務(wù)器為任務(wù)的集中/局部分布提供了一種新的方法,這種體系能夠使用戶對數(shù)據(jù)完整性、管理和安全性進行集中控制。在緩解網(wǎng)絡(luò)交通和主機負荷以及滿足用戶需要方面,客戶/服務(wù)器體系提供了良好的解決方案。
總之,客戶/服務(wù)器的工作模式是:客戶與服務(wù)器之間采用網(wǎng)絡(luò)協(xié)議(如TCP/IP、IPX/SPX)進行連接和通訊,由客戶端向服務(wù)器發(fā)出請求,服務(wù)器端響應(yīng)請求,并進行相應(yīng)服務(wù)。
(2) 它是真正開放的數(shù)據(jù)庫
由于采用了客戶/服務(wù)器結(jié)構(gòu),應(yīng)用被分在了多臺機器上運行。更進一步,運行在客戶端的應(yīng)用不必是Sybase公司的產(chǎn)品。對于一般的關(guān)系數(shù)據(jù)庫,為了讓其它語言編寫的應(yīng)用能夠訪問數(shù)據(jù)庫,提供了預編譯。Sybase數(shù)據(jù)庫,不只是簡單地提供了預編譯,而且公開了應(yīng)用程序接口DB-LIB,鼓勵第三方編寫DB-LIB接口。由于開放的客戶DB-LIB允許在不同的平臺使用完全相同的調(diào)用,因而使得訪問DB-LIB的應(yīng)用程序很容易從一個平臺向另一個平臺移植。
(3)它是一種高性能的數(shù)據(jù)庫
Sybase數(shù)據(jù)庫的優(yōu)點
Sybase真正吸引人的地方還是它的高性能。體現(xiàn)在以下幾方面:
1)可編程數(shù)據(jù)庫
通過提供存儲過程,創(chuàng)建了一個可編程數(shù)據(jù)庫。存儲過程允許用戶編寫自己的數(shù)據(jù)庫子例程。這些子例程是經(jīng)過預編譯的,因此不必為每次調(diào)用都進行編譯、優(yōu)化、生成查詢規(guī)劃,因而查詢速度要快得多。
2)事件驅(qū)動的觸發(fā)器
觸發(fā)器是一種特殊的存儲過程。通過觸發(fā)器可以啟動另一個存儲過程,從而確保數(shù)據(jù)庫的完整性。
3)多線索化
Sybase數(shù)據(jù)庫的體系結(jié)構(gòu)的另一個創(chuàng)新之處就是多線索化。一般的數(shù)據(jù)庫都依靠操作系統(tǒng)來管理與數(shù)據(jù)庫的連接。當有多個用戶連接時,系統(tǒng)的性能會大幅度下降。Sybase數(shù)據(jù)庫不讓操作系統(tǒng)來管理進程,把與數(shù)據(jù)庫的連接當作自己的一部分來管理。此外,Sybase的數(shù)據(jù)庫引擎還代替操作系統(tǒng)來管理一部分硬件資源,如端口、內(nèi)存、硬盤,繞過了操作系統(tǒng)這一環(huán)節(jié),提高了性能。
sybase數(shù)據(jù)庫訪問過程
1)建立客戶與服務(wù)器之間的連接,包括網(wǎng)絡(luò)連接、客戶進程與服務(wù)器進程之間的連接;
2)客戶端通過網(wǎng)絡(luò)發(fā)送SQL語句給服務(wù)器,用來查詢或操作服務(wù)器中的數(shù)據(jù)或數(shù)據(jù)庫對象
3)服務(wù)器接收到SQL語句后,對其進行語法分析、優(yōu)化和編譯后執(zhí)行;
4)如果執(zhí)行的語句產(chǎn)生一個結(jié)果集,服務(wù)器通過網(wǎng)絡(luò)把結(jié)果集返回給客戶
5)客戶端對收到的結(jié)果作相應(yīng)的處理。
在客戶/服務(wù)器體系,有兩種數(shù)據(jù)庫引擎結(jié)構(gòu),即多進程數(shù)據(jù)庫引擎和單進程、多線程引擎結(jié)構(gòu)。多進程結(jié)構(gòu)即多個可執(zhí)行程序同時運行。每當用戶登錄到數(shù)據(jù)庫系統(tǒng)時實際上都啟動了數(shù)據(jù)庫引擎的一個獨立實例。存在起協(xié)調(diào)作用的進程協(xié)調(diào)進行之間的通訊以保證當多用戶訪問相同數(shù)據(jù)時數(shù)據(jù)的完整性。多進程數(shù)據(jù)庫引擎一般用在大型機數(shù)據(jù)庫上。單進程多線程數(shù)據(jù)庫引擎在原理上和多進程數(shù)據(jù)庫引擎類似,不同的是多線程數(shù)據(jù)庫引擎自己負責調(diào)度各應(yīng)用程序占用CPU的時間,而不依賴于操作系統(tǒng)。這樣,多線程數(shù)據(jù)庫引擎自我保護的能力更強。
Sybase數(shù)據(jù)庫管理系統(tǒng)采用的是單進程多線程的引擎結(jié)構(gòu)。
Sybase數(shù)據(jù)庫軟件組成
Sybase軟件可劃分為三個部分:
1)進行數(shù)據(jù)管理與維護的聯(lián)機關(guān)系數(shù)據(jù)庫管理系統(tǒng)Sybase SQL Server
2)支持數(shù)據(jù)庫應(yīng)用系統(tǒng)的建立和開發(fā)的一組前端工具軟件Sybase SQL Tools
3)把異構(gòu)環(huán)境下其他廠商的應(yīng)用軟件和任何類型的數(shù)據(jù)連接在一起的接口軟件Open Client/Open Server。
SQL Server是個可編程的數(shù)據(jù)庫管理系統(tǒng)(DBMS),它是整個Sybase產(chǎn)品的核心軟件,起著數(shù)據(jù)管理、高速緩沖區(qū)管理、事務(wù)管理的作用。
ISQL是與SQL Server進行交互的一種SQL句法分析器。ISQL接收用戶發(fā)出的SQL語言,將其發(fā)送給SQL Server,并將結(jié)果以形式化的方式顯示在用戶的標準輸出上。lset的一個主要組成部分,它的作用在于使用戶能夠設(shè)置和管理SQL Server上的數(shù)據(jù)庫,并且為用戶提供一種對數(shù)據(jù)庫的信息執(zhí)行添加、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由于DWB是基于窗口和菜單的,因此操作比ISQL簡單,是一種方便實用的數(shù)據(jù)庫管理工具。
APT是Sybase客戶軟件部分的主要產(chǎn)品之一,也是從事實際應(yīng)用開發(fā)的主要環(huán)境。APT工作臺是用于建立應(yīng)用程序的工具集,可以創(chuàng)建從非常簡單到非常復雜的應(yīng)用程序,它主要用于開發(fā)基于表格(form)的應(yīng)用。其用戶界面采用窗口和菜單驅(qū)動方式,通過一系列的選擇完成表格(form)、菜單和處理的開發(fā)。
通過Open Client的DB-LIB庫,應(yīng)用程序可以訪問SQL Server。而通過Open Server的SERVER-LIB,應(yīng)用程序可以訪問其它的數(shù)據(jù)庫管理系統(tǒng)。
sybase數(shù)據(jù)庫基本特征
SQL Server具有如下一些基本特征:
1)SQL Server可以放在若干個磁盤設(shè)備上,初始安裝時所需的磁盤空間至少要17MB。
2)SQL Server支持多庫結(jié)構(gòu),也就是說Sybase系統(tǒng)中可以有多個數(shù)據(jù)庫。Sybase可以管理多個數(shù)據(jù)庫。
3)SQL Server可以編譯和運行T-SQL語句,并可返回客戶程序所要求的結(jié)果。T-SQL語句是標準SQL的擴充,它除了有數(shù)據(jù)定義語句、數(shù)據(jù)操縱語句和數(shù)據(jù)控制語句之外,主要增加了流程控制語句。
4)SQL Server可以管理多個用戶并具有較高的事務(wù)吞吐量和較低的事務(wù)響應(yīng)時間。客戶的應(yīng)用程序可以存取Server中某一個或幾個數(shù)據(jù)庫的數(shù)據(jù)。
sybase數(shù)據(jù)庫主要內(nèi)容
Sybase SQL Server是一個多庫結(jié)構(gòu)的RDBMS,安裝Sybase數(shù)據(jù)庫時自動生成的系統(tǒng)數(shù)據(jù)庫體系結(jié)構(gòu)大致如下:
1)主數(shù)據(jù)庫master
2)模型數(shù)據(jù)庫model
3)系統(tǒng)過程數(shù)據(jù)庫sybsystemprocs
4)臨時數(shù)據(jù)庫tempdb。
也可選擇下列數(shù)據(jù)庫:
5)安全審核數(shù)據(jù)庫sybsecurity
6)示例數(shù)據(jù)庫pubs2
7)命令語法數(shù)據(jù)庫sybsyntax
1.2.3.1 系統(tǒng)數(shù)據(jù)庫
服務(wù)器自身所使用的數(shù)據(jù)庫,也可以說是管理服務(wù)器和用戶數(shù)據(jù)庫的數(shù)據(jù)庫。Sybase在安裝時,自動創(chuàng)建了四個系統(tǒng)數(shù)據(jù)庫:
master、model、tempdb、sybsystemprocs
(1) master數(shù)據(jù)庫
它是管理和控制用戶數(shù)據(jù)庫以及維護服務(wù)器正常運行的核心數(shù)據(jù)庫,它包含許多系統(tǒng)表和系統(tǒng)過程,從總體上控制用戶數(shù)據(jù)庫和SQL Server的操作,構(gòu)成了SYBASE系統(tǒng)的數(shù)據(jù)字典,它保存了大量的系統(tǒng)信息,如服務(wù)器配置、用戶、設(shè)備等。
在master數(shù)據(jù)庫中不允許普通用戶在其中創(chuàng)建數(shù)據(jù)庫對象,否則會使得master數(shù)據(jù)庫的事務(wù)日志很快變滿。如果事務(wù)日志用盡,就無法使用dump transaction命令釋放master數(shù)據(jù)庫中的空間。
master數(shù)據(jù)庫主要記錄信息為:
1)登錄帳號(SQL服務(wù)器用戶名);syslogins,sysremolelogins
2)正在執(zhí)行的過程;sysprocesses
3)可修改的環(huán)境變量;sysconfigures
4)系統(tǒng)錯誤信息;sysmessages
5)SQL服務(wù)器上每個數(shù)據(jù)庫的信息;sysdatabases
6)每個數(shù)據(jù)庫占用的存儲空間;sysusages
7)系統(tǒng)上安裝的磁帶及磁帶信息;sysdevices
8)活動鎖信息;syslocks
(2)model數(shù)據(jù)庫
它是為創(chuàng)建用戶數(shù)據(jù)庫而提供的模板。它提供了新用戶數(shù)據(jù)庫的初型。當我們每次用CREATE DATABASE命令時,SQL Server都產(chǎn)生一個model數(shù)據(jù)庫的拷貝,以此作為新用戶數(shù)據(jù)庫,然后把它擴展到命令要求的尺寸。如果我們修改了model數(shù)據(jù)庫,那么以后新創(chuàng)建的數(shù)據(jù)庫都將隨它而改變。
Model數(shù)據(jù)庫中包含每個用戶數(shù)據(jù)庫所要求的系統(tǒng)表。Model數(shù)據(jù)庫可以被修改以便定制新創(chuàng)建的。
下面是幾個通常用到的對model數(shù)據(jù)庫的改變:
增加用戶數(shù)據(jù)庫類型、規(guī)則或缺省
可存取SQL Server上所有數(shù)據(jù)庫的用戶用sp_adduser增加到model數(shù)據(jù)庫上
缺省權(quán)限(特別是guest帳號)可在model中建立
諸如select into/bulkcopy那樣的數(shù)據(jù)庫選項可在model中設(shè)置。這些設(shè)置反映到所有新創(chuàng)建的數(shù)據(jù)庫中。它們在model中最原始的值是關(guān)(off)。
在一般情況下,大多數(shù)用戶無權(quán)修改model數(shù)據(jù)庫,也沒被授權(quán)讀取。因為model中所有內(nèi)容已拷貝到新數(shù)據(jù)庫中,授權(quán)讀model沒什么意義。
(3)tempdb數(shù)據(jù)庫
它是個臨時數(shù)據(jù)庫,為服務(wù)器運行與處理提供一個共享的存儲區(qū)域,如group by和order by的中間結(jié)果就存放在這里。Tempdb的空間為服務(wù)器中所有數(shù)據(jù)庫的所有用戶所共享。
每次重啟SQL Server,服務(wù)器的一個自動進程都拷貝model數(shù)據(jù)庫到tempdb數(shù)據(jù)庫,并清除tempdb中原來的內(nèi)容。因此tempdb中的用戶表都是臨時的。臨時表分為兩類:可共享的和不可共享的。不可共享的臨時表在由create table中將符號#置于表名之前創(chuàng)立;可共享的臨時表通過create table中指定表名前綴tempdb..而創(chuàng)立。不可共享的臨時表SQL Server自動為其添加數(shù)字后綴名,且它只存在于當前會話中。
(4)sybsystemprocs數(shù)據(jù)庫
它是專門用來保存系統(tǒng)命令(存儲過程)的數(shù)據(jù)庫,如sp_help、sp_configure、sp_helpdevice等。當任一數(shù)據(jù)庫用戶運行以sp_開頭的存儲過程時,SQL Server按照以下順序查找:當前數(shù)據(jù)庫、sybsystemprocs數(shù)據(jù)庫、master數(shù)據(jù)庫。
其他可選數(shù)據(jù)庫:
(5)安全審核數(shù)據(jù)庫sybsecurity
數(shù)據(jù)庫中保存系統(tǒng)的安全審核信息,它可跟蹤記錄每個用戶的操作情況,為維護系統(tǒng)安全提供控制手段。
(6)示例數(shù)據(jù)庫pubs2
為用戶提供一個學習SYBASE的數(shù)據(jù)庫模型。
(7)命令語法數(shù)據(jù)庫sybsyntax
庫中保存SYBASE數(shù)據(jù)庫的命令語法及支持的語言庫。
1.2.3.2 用戶數(shù)據(jù)庫
用戶數(shù)據(jù)庫是我們使用Sybase服務(wù)器的真正目的。要管理用戶數(shù)據(jù),必須在Sybase中創(chuàng)建自己的數(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)建時,創(chuàng)建者即為該數(shù)據(jù)庫的 owner, 當然創(chuàng)建者可以將這一地位或這一所有權(quán)用系統(tǒng)過程授予別的用戶。
數(shù)據(jù)庫中的主要內(nèi)容——數(shù)據(jù)庫對象:表、視圖、臨時表、索引、主鍵、外鍵、缺省值、規(guī)則、存儲過程、觸發(fā)器等。
Sybase數(shù)據(jù)庫安裝
安裝建立SQL Server以后,要建立放置數(shù)據(jù)庫、日志和索引的邏輯磁盤設(shè)備。數(shù)據(jù)庫、日志和索引的配置應(yīng)注意以下原則:
1)不要把任何用戶對象安裝在master數(shù)據(jù)庫中。
2)日志應(yīng)該保存在與數(shù)據(jù)庫分離的磁盤上。
3)可以通過跨越多個設(shè)備分配工作優(yōu)化I/O性能。
2.1.1 Sybase 的初始配置需要做的內(nèi)容:
1)更改sa的登錄口令
2)命名服務(wù)器;
3)修改文件名(保證Sybase Central正常啟動)
4)更改缺省設(shè)備;
5)增加tempdb的空間。
6)創(chuàng)建用戶數(shù)據(jù)庫(創(chuàng)建數(shù)據(jù)庫設(shè)備,設(shè)備大小以頁(2K)為單位)
sybase數(shù)據(jù)庫系統(tǒng)管理
1)物理資源的管理
2)用戶及其權(quán)限管理
3)數(shù)據(jù)庫的備份與恢復
4)SQL Server的配置參數(shù)
服務(wù)器配置是系統(tǒng)管理員的職責,正確的配置對系統(tǒng)性能有重大的影響。有兩個系統(tǒng)表存儲配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系統(tǒng)運行,sysconfigures的信息就拷貝到syscurconfigs中。顯示配置和改變配置使用系統(tǒng)過程sp_configure。
有兩種配置值:動態(tài)的和靜態(tài)的,動態(tài)值一旦改變立即生效,靜態(tài)值要在系統(tǒng)重啟動后才起作用。
sybase啟動和關(guān)閉
2.3.1 啟動SQL Server
應(yīng)用SQL Server安裝程序(sybinit)創(chuàng)建SQL Server或Backup Server, 默認文件名為RUN_SYBASE 和RUN_SYB_BACKUP,放在$SYBASE/INSTALL目錄下。Startserver 用來啟動SQL Server 或Backup Server:
可以通過showserver查看SQL Server 和Backup Server是否已經(jīng)啟動。
SQL Server的啟動過程:master數(shù)據(jù)庫啟動-- Sybsystemproces數(shù)據(jù)庫啟動--tempdb--model --用戶數(shù)據(jù)庫。
啟動SQL Server的單用戶模式:如果要恢復一已被損壞的master數(shù)據(jù)庫,則必須要啟動SQL Server的單用戶模式。單用戶模式下僅允許一個系統(tǒng)管理員向SQL Server注冊。
Startserver -f RUN_SYBASE -m
2.3.2 關(guān)閉服務(wù)器
關(guān)閉SQL Server可以在isql中使用T-SQL命令:
關(guān)閉SQL備服務(wù)器:shutdown SYB_BACKUP
關(guān)閉SQL主服務(wù)器:shutdown [with nowait]
sybase存儲空間管理
初始安裝SQL Server時,安裝程序和腳本初始化主設(shè)備,并建立master、model、tempdb和sybsystemprocs數(shù)據(jù)庫。系統(tǒng)數(shù)據(jù)庫、預定義設(shè)備和段按下列默認方式組織:
1)master、model、tempdb數(shù)據(jù)庫安裝在主設(shè)備master上;
2)sybsystemprocs數(shù)據(jù)庫安裝在安裝時選擇的設(shè)備上(sysprocsdev)
3)為每個數(shù)據(jù)庫創(chuàng)建三個預定義段:system、default和logsegment;
4)所有用戶創(chuàng)建數(shù)據(jù)庫的默認設(shè)備是master設(shè)備
5)如果選擇安裝了審計數(shù)據(jù)庫sybsecurity,它位于自己的設(shè)備上。
2.4.1 設(shè)備與存儲管理考慮的主要問題
(1)恢復問題
物理磁盤崩潰時,磁盤鏡像或在單獨的物理設(shè)備上保存日志為數(shù)據(jù)庫恢復提供了兩種機制。
(2)性能問題
磁盤讀寫速度是I/O操作的瓶頸,正確地把數(shù)據(jù)庫對象放置到物理設(shè)備上有利于改進性能;把日志和數(shù)據(jù)庫對象置于單獨的設(shè)備上可以提高系統(tǒng)性能;把表放在一個硬盤上而把索引放在另一個硬盤上,由于把工作分置于兩個硬盤驅(qū)動器上,所以可以確保物理讀寫速度加快;磁盤鏡像會降低磁盤寫的速度。
2.4.2 設(shè)備(Device)
Sybase SQL Server是一個多庫數(shù)據(jù)庫系統(tǒng)。這些數(shù)據(jù)庫包括系統(tǒng)數(shù)據(jù)庫和用戶數(shù)據(jù)庫。而不論是系統(tǒng)數(shù)據(jù)庫還是用戶數(shù)據(jù)庫,都建立在數(shù)據(jù)庫設(shè)備上。即Sybase將數(shù)據(jù)庫中的所有數(shù)據(jù)存放在設(shè)備上。刪除設(shè)備前必須刪除其上的所有數(shù)據(jù)庫,刪除設(shè)備的命令是:sp_dropdevice。
2.4.2.1 設(shè)備的概念
設(shè)備是Sybase預先配置的專門存放數(shù)據(jù)庫的一塊連續(xù)的磁盤空間,并且它被映射到一操作系統(tǒng)文件或一原始磁盤分區(qū)上。即它不是指一個可識別的物理設(shè)備,而是指用于存儲數(shù)據(jù)庫和數(shù)據(jù)庫對象的磁盤原始分區(qū)或操作系統(tǒng)文件。它有兩個對應(yīng)的名稱:邏輯名和物理名。NT僅支持設(shè)備映射到文件。所有的數(shù)據(jù)庫都創(chuàng)建在數(shù)據(jù)庫設(shè)備上。增加一個新的數(shù)據(jù)庫設(shè)備時,必須對這些設(shè)備“初始化”。初始化的過程就是將物理磁盤、磁盤分區(qū)或操作系統(tǒng)文件變?yōu)镾YBASE數(shù)據(jù)庫可以識別的設(shè)備。初始化數(shù)據(jù)庫設(shè)備使用DISK INIT命令。
設(shè)備與數(shù)據(jù)庫之間的關(guān)系:多對多關(guān)系。一個數(shù)據(jù)庫可以被創(chuàng)建或擴充到多個設(shè)備上,一個設(shè)備也可以被用來存放多個數(shù)據(jù)庫。不同的設(shè)備操作系統(tǒng)可以對其并行地讀寫,因此我們可以人為地將一個數(shù)據(jù)庫放置到多個數(shù)據(jù)庫設(shè)備上。
設(shè)備的分類:Database Device和Dump Device。數(shù)據(jù)庫設(shè)備存放數(shù)據(jù)庫和事務(wù)日志,轉(zhuǎn)儲設(shè)備用來存放數(shù)據(jù)庫或日志的備份。
2.4.2.1.1 默認設(shè)備
在沒有指定設(shè)備的情況下,用戶創(chuàng)建的任何數(shù)據(jù)對象自動存放在默認設(shè)備上。初始安裝后,系統(tǒng)的主設(shè)備master被預指定為默認設(shè)備,因此要盡快創(chuàng)建自己的默認設(shè)備。確保系統(tǒng)主設(shè)備安全,指定僅被日志使用的設(shè)備不是默認設(shè)備。
Sp_diskdefault 設(shè)備名[,DefaultOn|DefaultOff]
2.4.2.2磁盤鏡像
磁盤鏡像是出于數(shù)據(jù)庫安全性的考慮,當介質(zhì)失敗時,磁盤鏡像能提供不間斷恢復。磁盤鏡像是磁盤上的數(shù)據(jù)的絕對拷貝。如果某一硬盤事故發(fā)生,則該被損壞的拷貝就自動變成離線狀態(tài),因而所有的讀寫都被引向未被損壞的拷貝。
Sybase的磁盤鏡像是在設(shè)備級上進行的,因此磁盤鏡像實質(zhì)上是設(shè)備鏡像。當對某一設(shè)備進行鏡像操作時,Sybase自動創(chuàng)建一個附加設(shè)備,由鏡像處理程序?qū)⒃O(shè)備上的所有數(shù)據(jù)拷貝到鏡像設(shè)備上。
如果要使某一數(shù)據(jù)庫成為鏡像,被分配給該數(shù)據(jù)庫的每一設(shè)備都必須成鏡像。Master設(shè)備在服務(wù)器中地位特殊,如果它損壞了,SQL Server將崩潰。因此,如果有可能總是要鏡像Master設(shè)備(在另一磁盤上)。
2.4.3 創(chuàng)建與使用段
段(Segment)是數(shù)據(jù)庫設(shè)備上磁盤空間的邏輯組合,它可以看作是指向一個或多個數(shù)據(jù)庫設(shè)備的標簽。利用段可以控制數(shù)據(jù)庫對象的存放位置,可以將數(shù)據(jù)庫對象分類存放到不同的段上。
設(shè)備與段之間的關(guān)系:多對多關(guān)系。一個設(shè)備上可以創(chuàng)建多個段,一個段也可以覆蓋多個設(shè)備。
數(shù)據(jù)庫設(shè)備從邏輯上被劃分為數(shù)據(jù)庫段以允許將某一特定的對象放置在指定的段上(創(chuàng)建對象時指定),一數(shù)據(jù)庫設(shè)備可擁有多達192個段,一段可使用255個邏輯設(shè)備上的存儲空間。當用戶創(chuàng)建一個數(shù)據(jù)庫時,SQL SERVER 會自動在該數(shù)據(jù)庫中創(chuàng)建三個段?用來存儲數(shù)據(jù)庫的系統(tǒng)表、事務(wù)日志和其他數(shù)據(jù)庫對象
2.4.3.1 使用段的優(yōu)點
1)控制空間的使用:放在一個段上的數(shù)據(jù)庫對象不會在段外增長;
2)提高性能:處于不同磁盤設(shè)備上的段可以并行地讀寫
3)處理大表:利用段,可以將一個大表分段放在獨立的物理設(shè)備上,如將一個表的文本或圖象數(shù)據(jù)存儲另外的一個段上。
兩個數(shù)據(jù)庫放在同一設(shè)備的不同段上,它們不會相互影響;當數(shù)據(jù)庫增加空間時,增加的空間會自動分配到它的每一個段上
sybase使用閾值管理
閾值(Threshold)管理是一種自動監(jiān)控數(shù)據(jù)庫自由空間的機制,Sybase的閾值管理允許用戶為數(shù)據(jù)庫的某個段上的自由空間設(shè)置閾值并定義相應(yīng)的存儲過程。當該段上的自由空間低于所置頭閾值時,Sybase自動運行相應(yīng)的存儲過程。
在一個實際運行的數(shù)據(jù)庫中,日志的增長速度一般要高于數(shù)據(jù)的增長,一旦日志段的自由空間用盡,SQL Server在默認情況下會掛起所有數(shù)據(jù)操縱事務(wù),客戶端應(yīng)用程序停止執(zhí)行。
在每個分離的段上存儲其事務(wù)日志的數(shù)據(jù)庫均自動設(shè)置有最后機會閾值(Last Chance Threshold),其閾值是備份事務(wù)日志所需的自由空間的估計值。當該段上的自由空間低于所置閾值時,Sybase自動運行名為sp_thresholdaction的存儲過程。該過程的名稱及參數(shù)由系統(tǒng)預定義,內(nèi)容由用戶編寫。
sybase事務(wù)日志
通常用戶數(shù)據(jù)庫由系統(tǒng)管理員創(chuàng)建,它的默認屬主是dbo。系統(tǒng)過程sp_changeddbowner可改變數(shù)據(jù)庫的屬主關(guān)系,它必須由數(shù)據(jù)庫管理員在要改變屬主關(guān)系的數(shù)據(jù)庫中執(zhí)行。
日志文件是用來記錄數(shù)據(jù)庫每一次修改活動的文件。SQL Server中的每一個數(shù)據(jù)庫都有自己的日志文件,即系統(tǒng)表syslogs,也稱為事務(wù)日志。事務(wù)日志是撤消事務(wù)和出現(xiàn)故障時恢復事務(wù)的依據(jù)。在某些情況下,事務(wù)日志比數(shù)據(jù)本身更為重要。
數(shù)據(jù)庫的修改是以事務(wù)為單位進行的。一個事務(wù)就是一個操作序列,這些操作要么全做,要么全不做,它是一個不可分割的工作單位。任何一個事務(wù)具備如下特征:
1)執(zhí)行的原子性(Atomic)
2)保持數(shù)據(jù)的一致性(Consistency);
3)彼此的隔離性(Isolation)
4)作用的持久性(Durability);
上述事務(wù)的四個特征被稱為事務(wù)的ACID準則。
事務(wù)在運行過程中,SQL Server把事務(wù)開始、事務(wù)結(jié)束以及對數(shù)據(jù)庫的插入、刪除和更新等每一個操作作為一個日志記錄存放到事務(wù)日志中。事務(wù)中的更新操作首先在數(shù)據(jù)庫緩沖區(qū)(內(nèi)存)中進行,緩沖區(qū)分別有用來記錄操作活動的數(shù)據(jù)頁(data page)和日志頁(log page)。當運行到commit tran時,日志頁首先從緩沖區(qū)寫到磁盤上,而后數(shù)據(jù)頁從緩沖區(qū)寫到磁盤上,即遵循“先寫日志(write_ahead log)”的原則,這樣保證出現(xiàn)故障的情況下,通過日志能夠得到最大限度的恢復。恢復必須撤消發(fā)生故障時還未提交的事務(wù),已完成的事務(wù)若仍有未從緩沖區(qū)寫到數(shù)據(jù)庫設(shè)備中,還要重新運行該事務(wù)。
sybase用戶管理
數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫以防止不合法的使用所造成的數(shù)據(jù)泄露、更改或破壞。SQL Server的安全管理是一種基于角色(role)的管理方法,位于不同權(quán)限層次(或角色)的用戶具有不同的用戶權(quán)限。
規(guī)定用戶權(quán)限有三個因素:用戶、數(shù)據(jù)對象和操作,即什么用戶在哪些數(shù)據(jù)對象上可以執(zhí)行什么操作。
訪問SQL Server中數(shù)據(jù)的四道屏障:
1)操作系統(tǒng)——操作系統(tǒng)登錄
2)Sybase服務(wù)器——服務(wù)器登錄
3)Sybase數(shù)據(jù)庫——數(shù)據(jù)庫用戶登錄
4)數(shù)據(jù)庫對象——對象授權(quán)
2.7.1 用戶管理概述
在SYBASE數(shù)據(jù)庫中,用戶管理是系統(tǒng)管理的一個重要組成部分,但其重要性卻往往被人忽視。許多時候,操作數(shù)據(jù)庫的命令不成功常與用戶管理有關(guān),而許多誤操作命令的發(fā)生也可以通過用戶管理來避免。因此,弄清用戶管理的一些基本概念,對成功進行數(shù)據(jù)庫系統(tǒng)管理有重要的作用。
2.7.1.1 SQL SERVER注冊用戶和數(shù)據(jù)庫用戶
剛接觸到這兩個概念的時候,可能會有所混淆,但只要了解SYBASE SQL SERVER的結(jié)構(gòu)后,就會清楚。SYBASE SQL SERVER為一進程,進程本身可管理多個數(shù)據(jù)庫。而有些數(shù)據(jù)庫是相互獨立的,有些數(shù)據(jù)庫是可以共用的,如tempdb和sysbsystemprocs數(shù)據(jù)庫。SQL SERVER與本身數(shù)據(jù)庫的關(guān)系猶如城市與其中樓房的關(guān)系,當進入某一城市時需某一合法的身份,但進入城市的人并非每個樓房都可進入,即使允許進入也不能干某些事。SQL SERVER注冊用戶與數(shù)據(jù)庫用戶關(guān)系即是如此。當SQL SERVER創(chuàng)建注冊用戶后,該用戶就能合法進SQL SERVER,該注冊用戶信息會放在master數(shù)據(jù)庫中的 syslogins表中。但只有注冊用戶成為某一數(shù)據(jù)庫用戶,并且對該用戶賦予某些權(quán)限時,該注冊用戶才能在限制條件下使用數(shù)據(jù)庫中的表。
2.7.1.2 SQL SERVER數(shù)據(jù)庫用戶分類
在SQL SERVER中用戶一般分為以下四種:
1)sa用戶。
2)數(shù)據(jù)庫屬主
3)數(shù)據(jù)庫對象屬主。
4)數(shù)據(jù)庫普通用戶。
sa用戶在SQL SERVER中為最高等級用戶,SQL SERVER中所有命令都可執(zhí)行。
數(shù)據(jù)庫屬主(dbo)用戶可對本數(shù)據(jù)庫中所有對象(如表、視圖、存儲過程等)進行操作,一般有三種途徑創(chuàng)建:
a.為系統(tǒng)管理員的用戶
b.系統(tǒng)管理員的用戶將創(chuàng)建數(shù)據(jù)庫的權(quán)限賦予某個SQL SERVER中注冊用戶,由該用戶進行數(shù)據(jù)庫的創(chuàng)建后,自然形成數(shù)據(jù)庫屬主
c.系統(tǒng)管理員的用戶創(chuàng)建數(shù)據(jù)庫后,將某個SQL SERVER中注冊用戶變?yōu)閿?shù)據(jù)庫的屬主。
數(shù)據(jù)庫對象屬主為創(chuàng)建該對象的用戶,在實際的數(shù)據(jù)庫的管理中,一般為數(shù)據(jù)庫屬主。
數(shù)據(jù)庫普通用戶必須在數(shù)據(jù)庫屬主對本數(shù)據(jù)庫中某些對象(如表、視圖、進程等)賦予某些權(quán)限時,才可對本數(shù)據(jù)庫中某些對象進行允許的操作。
幾者的關(guān)系是相互包含的:系統(tǒng)管理員的用戶在進入某個數(shù)據(jù)庫后,自然成為該數(shù)據(jù)庫的屬主,數(shù)據(jù)庫屬主可看作為特殊的數(shù)據(jù)庫普通用戶。
2.7.2 別名(aliases)與組(group)
別名(aliases)與組(group)在數(shù)據(jù)庫管理中是經(jīng)常用到的,它能簡化數(shù)據(jù)庫用戶管理,方便對用戶的監(jiān)控。
所謂別名(aliases)即將SQL SERVER中的注冊用戶以同一個數(shù)據(jù)庫用戶的身份來訪問數(shù)據(jù)庫,并具有與該用戶相同的權(quán)限。也就是說,在數(shù)據(jù)庫中只要建立一個數(shù)據(jù)庫用戶,對該數(shù)據(jù)庫用戶各種操作定義好,并使SQL SERVER 中已經(jīng)定義好注冊用戶成為該數(shù)據(jù)庫用戶的別名用戶后,即擁有與該用戶相同的權(quán)限。這樣一來,注冊用戶不必成為數(shù)據(jù)庫的用戶即可訪問數(shù)據(jù)庫,對所有別名用戶的權(quán)限的控制只需通過對一個數(shù)據(jù)庫用戶的控制達到。如:有一SQL SERVER名為TEST.SER,有一名為EXAMPLE的數(shù)據(jù)庫,其中有一名為OK的表,當系統(tǒng)管理員為TEST.SER創(chuàng)建名為JOHN和KATE的注冊用戶,EXAMPLE的數(shù)據(jù)庫中有一名為OK_SELECT的數(shù)據(jù)庫用戶,該數(shù)據(jù)庫用戶有對OK表的查詢權(quán)限。將JOHN和KATE這兩個注冊用戶變?yōu)镺K_SELECT的別名后,JOHN和KATE即可進入數(shù)據(jù)庫,并擁有與OK_SELECT的數(shù)據(jù)庫用戶相同的權(quán)限。
組(group)為數(shù)據(jù)庫用戶的集合,即通過對組(group)的權(quán)限的控制達到對該組中數(shù)據(jù)庫用戶的控制,但也可對該組中數(shù)據(jù)庫某些用戶進行格外的權(quán)限控制。在上例中的EXAMPLE的數(shù)據(jù)庫中有一OK_INSERT的組,它對OK的表有插入的權(quán)限,數(shù)據(jù)庫中有兩個用戶:MARRY和KITY,當這兩個用戶加入到OK_INSERT組后,MARRY和KITY就有對OK表的插入的權(quán)??的控制可得。而使MARRY對OK表有查詢權(quán)限,僅對MARRY用戶賦權(quán)即可。而別名則不行。
2.7.3 SYBASE SQL SERVER的角色
一般在管理分工較細的數(shù)據(jù)庫系統(tǒng)中,sa用戶往往被分為三種角色:系統(tǒng)管理員角色(SA role)、系統(tǒng)安全員角色(SSO role)和操作員角色(OPER role)。
sa用戶往往被鎖住,其權(quán)力被以上三種角色所瓜分。這三種角色將分別用不同的數(shù)據(jù)庫注冊用戶承擔。
角色是權(quán)限的集合。系統(tǒng)預定義角色:一個真正的數(shù)據(jù)庫管理員應(yīng)該是整個服務(wù)器及其數(shù)據(jù)庫的擁有者,具有管理服務(wù)器及其數(shù)據(jù)庫的所有權(quán)限。在一個大的系統(tǒng)中,數(shù)據(jù)庫管理員往往不只由一人承擔,而是將管理任務(wù)進行功能劃分,每人提當不同的責任。系統(tǒng)預定義角色就是為適應(yīng)這種要求而設(shè)計的。
1)系統(tǒng)管理員(sa_role)
sa_role角色擁有執(zhí)行與數(shù)據(jù)庫具體應(yīng)用無關(guān)的管理權(quán)限:
a.安裝與更新SQL Server
b.管理服務(wù)器的物理存儲
c.配置系統(tǒng)設(shè)置參數(shù)
d.創(chuàng)建用戶數(shù)據(jù)庫
e.授予SQL Server用戶權(quán)限
2)系統(tǒng)安全管理員(sso_role)
a.sso_role用來實施安全上敏感的操作,執(zhí)行有關(guān)安全性的任務(wù):
b.建立服務(wù)器登錄帳戶
c.管理口令
d.授予除sa_role之外的任何角色
e.管理審計系統(tǒng)
3)操作員(oper_role)
a.oper_role執(zhí)行全服務(wù)器范圍的數(shù)據(jù)庫操作,如備份與恢復任意數(shù)據(jù)庫等:
b.轉(zhuǎn)儲數(shù)據(jù)庫與日志
c.轉(zhuǎn)載數(shù)據(jù)庫與日志
sybase備份與恢復
數(shù)據(jù)庫的備份與恢復是SQL Server保障數(shù)據(jù)安全的一種重要手段,為防止意外,數(shù)據(jù)庫管理員必須定期和經(jīng)常制作數(shù)據(jù)庫的備份。一旦系統(tǒng)出現(xiàn)故障,數(shù)據(jù)能夠得到及時的恢復。
2.8.1 基本概念
(1)事務(wù)處理及其日志
SQL Server使用事務(wù)來跟蹤所有數(shù)據(jù)庫變化。事務(wù)是SQL Server的工作單元。一個事務(wù)包含一條或多條作為整體成功或失敗的T_SQL語句。每個數(shù)據(jù)庫都有自己的事務(wù)日志,即系統(tǒng)表syslogs,事務(wù)日志自動記錄每個用戶發(fā)出的每個事務(wù),它影射了每個事務(wù)足夠多的信息,以確保數(shù)據(jù)能夠被恢復。
(2)檢查點(CheckPoint)
服務(wù)器在檢查點發(fā)生時更新數(shù)據(jù)。在服務(wù)器發(fā)出一個檢查點時:
1)更新數(shù)據(jù)。
2)在日志中記錄下執(zhí)行檢查點的標記。
檢查點可把所有“臟頁”寫到數(shù)據(jù)庫設(shè)備上,“臟頁”是指從上一次檢查點以來,在內(nèi)存中修改、但沒有在磁盤上修改的頁。SQL Server的自動檢查點機制保證了被完成的事務(wù)修改的數(shù)據(jù)頁有規(guī)律地從內(nèi)存中的緩沖區(qū)寫到數(shù)據(jù)庫設(shè)備上。
2.8.2數(shù)據(jù)庫備份
若硬件介質(zhì)出現(xiàn)故障(如磁盤損壞),當且僅當事先已對數(shù)據(jù)庫及其事務(wù)日志作了備份,才能恢復數(shù)據(jù)庫。
注意:絕對不要使用操作系統(tǒng)的拷貝數(shù)據(jù)庫設(shè)備,把這樣一個拷貝裝入SQL Server將導致大量數(shù)據(jù)庫受損。
備份的類型:
1)完全備份
2)增量備份——備份事務(wù)處理日志
說明:
a.只有把事務(wù)日志放在單獨的設(shè)備上,才能進行增量備份
b.備份事務(wù)日志會截斷日志,因此備份的內(nèi)容是自上次備份以來的事務(wù)處理。
c.備份之前要啟動備份服務(wù)器,并最好創(chuàng)建轉(zhuǎn)儲設(shè)備。
備注:truncate_only與no_log選項用于刪除事務(wù)處理而不作拷貝。Truncate_only截斷日志;在事務(wù)處理日志完全滿時用no_log,它不為數(shù)據(jù)庫建立檢查點。兩個選項都會丟掉日志。當使用了這兩個參數(shù)后,應(yīng)及時備份整個數(shù)據(jù)庫。no_truncate拷貝日志但不截斷日志,在出現(xiàn)介質(zhì)錯誤時使用該選項。
2.8.3數(shù)據(jù)庫的恢復
使用load database加載備份到現(xiàn)有數(shù)據(jù)庫,數(shù)據(jù)庫可以是用于創(chuàng)建轉(zhuǎn)儲的數(shù)據(jù)庫,也可以不是。
由于事務(wù)日志在恢復數(shù)據(jù)庫中的特殊作用,應(yīng)定期備份數(shù)據(jù)庫及其事務(wù)日志,而且事務(wù)日志的備份要更頻繁一些。如:數(shù)據(jù)庫每周備份一次,事務(wù)日志每天備份一次。
SQL Server提供了兩種不同類型的恢復:一類是系統(tǒng)自動完成的恢復;另一類是人工完成的恢復。
1)系統(tǒng)自動恢復
系統(tǒng)自動恢復是在系統(tǒng)軟件出現(xiàn)故障的情況下通過重新啟動SQL Server進行恢復。
自動恢復從master數(shù)據(jù)庫開始,然后是model數(shù)據(jù)庫,再是temporary數(shù)據(jù)庫,最后是用戶數(shù)據(jù)庫。在每個數(shù)據(jù)庫上,恢復機制觀察事務(wù)日志。如果日志寫入比數(shù)據(jù)庫更近的數(shù)據(jù),則向前恢復數(shù)據(jù)庫。如果事務(wù)尚未完成,則要回退它們。
2)介質(zhì)故障的恢復
一旦介質(zhì)發(fā)生故障,只有通過以前備份的數(shù)據(jù)庫和事務(wù)日志才能恢復數(shù)據(jù)庫,為此我們需要經(jīng)常備份數(shù)據(jù)庫和事務(wù)日志。備份數(shù)據(jù)庫和事務(wù)日志我們使用dump命令,而恢復數(shù)據(jù)庫和事務(wù)日志我們使用load命令。
與創(chuàng)建數(shù)據(jù)庫需要一個數(shù)據(jù)庫設(shè)備類似,我們備份數(shù)據(jù)庫和事務(wù)日志也需要一個卸出設(shè)備。增加卸出設(shè)備可以通過系統(tǒng)過程sp_addumpdevice來實現(xiàn)。卸出設(shè)備可以是磁盤、磁帶或操作系統(tǒng)文件。
在備份數(shù)據(jù)庫前的所有事務(wù)日志備份都是沒有意義的。我們一般不經(jīng)常備份數(shù)據(jù)庫,但我們要經(jīng)常備份事務(wù)日志。這是因為備份事務(wù)日志比備份數(shù)據(jù)庫需要更少的時間和存儲空間。
3)恢復用戶數(shù)據(jù)庫
要恢復已被破壞的數(shù)據(jù)庫,可以按如下步驟進行:
a.用帶no_truncate選項的dump命令卸出用戶數(shù)據(jù)庫事務(wù)日志。
b.用和被破壞的數(shù)據(jù)庫的同樣的結(jié)構(gòu)建立一個新的數(shù)據(jù)庫。
c.用load命令重新裝入數(shù)據(jù)庫和事務(wù)日志。
sybaseT-SQL語言
關(guān)系數(shù)據(jù)庫以關(guān)系模型為基礎(chǔ),它由以下三部分組成:
1)數(shù)據(jù)結(jié)構(gòu)——模型所操作的對象、類型的集合
2)完整性規(guī)則——保證數(shù)據(jù)有效、正確的約束條件
3)數(shù)據(jù)操作——對模型對象所允許執(zhí)行的操作方式
關(guān)系(Relation)是一個由行和列組成的二維表格,表中的每一行是一條記錄(Record),每一列是記錄的一個字段(Field)。表中的每一條記錄必須是互斥的,字段的值必須具有原子性。
2.9.1 SQL語言概述
SQL(結(jié)構(gòu)化查詢語言)是關(guān)系數(shù)據(jù)庫語言的一種國際標準,它是一種非過程化的語言。通過編寫SQL,我們可以實現(xiàn)對關(guān)系數(shù)據(jù)庫的全部操作。
1)數(shù)據(jù)定義語言(DDL)——建立和管理數(shù)據(jù)庫對象
2)數(shù)據(jù)操縱語言(DML)——用來查詢與更新數(shù)據(jù)
3)數(shù)據(jù)控制語言(DCL)——控制數(shù)據(jù)的安全性
T-SQL語言是Sybase對SQL92標準的一種擴展,主要在它的基礎(chǔ)上增加了三個方面的功能:自己的數(shù)據(jù)類型/特有的SQL函數(shù)/流程控制功能。
T-SQL中的標識符使用說明:標識符由1-30個字符或數(shù)字構(gòu)成,但首字符必須為字母。臨時表的表名以#開頭,長度不能超過13個字符。
Sybase數(shù)據(jù)庫亂碼問題
搭建測試Sybase數(shù)據(jù)庫服務(wù)器時,遇到亂碼問題,之前沒有遇到是因為開發(fā)數(shù)據(jù)庫服務(wù)器是早就安裝好并設(shè)置好字符集的,因此些問題在部署測試環(huán)境時才出現(xiàn),當已經(jīng)將數(shù)據(jù)庫配置完畢,并且所有的初始化腳本都已經(jīng)執(zhí)行完畢,工程也已經(jīng)成功部署在WebLogic上,打開IE,運行程序,卻發(fā)現(xiàn)所有從數(shù)據(jù)庫中讀取出來的都是亂碼,這種情況下就需要設(shè)置字符集進行解決亂碼問題。設(shè)置字符集的過程:
1、 安裝完Sybase后,如果要想設(shè)置字符集為CP936,就必須先安裝該字符集,因為Sybase默認的字符集表中并沒有該字符集,安裝步驟如下:(這里SYBASE的安裝路徑為c:\sybase)
1.c:\>;cd \sybase\charsets\cp936
2.c:\sybase\charsets\cp936>; charset -Usa -Psa_pass -Sserver_name binary.srt cp936通過上述命令就成功將CP936字符集安裝表Sybase的系統(tǒng)字符集表中,但必須重啟Sybase服務(wù)兩次才能看到結(jié)果,可以通過查看master數(shù)據(jù)庫中的syscharsets表查看是否已經(jīng)安裝成功,我們可以看到已經(jīng)安裝成功了:1002,171,0,1,'cp936','CP936 (Simplified Chinese).',’…’
2、看到CP936的編號為171,我們需要在Sybase的屬性中設(shè)置系統(tǒng)字符集為該ID,如下圖所示:
如果設(shè)置完字符集成出現(xiàn)錯誤,是因為master數(shù)據(jù)庫的表空間默認只分配幾百K的空間,導入新的數(shù)據(jù)后已經(jīng)沒有足夠的空間了,所以要對master數(shù)據(jù)庫設(shè)置大一些的表空間,點擊master數(shù)據(jù)庫右鍵屬性,選擇表空間的tab頁,對原有的表空間編輯重新分配大小,將master所有的表空間都分配了就可以解決該問題。
3、 設(shè)置好字符集后就可以執(zhí)行初始化腳本了。
Sybase數(shù)據(jù)庫的中國市場
sybase公司于1991年12月進入中國大陸,經(jīng)過一段時間的本地技術(shù)人才積蓄與市場開拓后,在1993年投資230萬美元正式建立Sybase在中國的公司,注冊名稱為賽貝斯軟件(中國)有限公司。
經(jīng)過十幾年的發(fā)展,sybase公司贏得了大量的市場,擁有遍及金融、電信、政府、制造、零售、交易、教育、鐵路、電力、水利、環(huán)保、軍事、外貿(mào)等行業(yè)超過1000家的用戶。擁有雄厚技術(shù)實力與產(chǎn)品魅力、一貫堅持“走有特色的中國之路”的sybase中國公司衷心地愿為廣大國內(nèi)用戶開啟未來的成功之門。sybase公司擁有經(jīng)驗豐富的技術(shù)專家和工程人員,為用戶提供一流的技術(shù)支持與服務(wù),包括系統(tǒng)選型、方案論證、業(yè)務(wù)分析、系統(tǒng)設(shè)計和應(yīng)用開發(fā)等,從而多角度全方位地滿足不同用戶、不同應(yīng)用系統(tǒng)的不同需求。
sybase公司在中國有員工近300人,其中技術(shù)人員數(shù)量占到公司總?cè)藬?shù)的85%。sybase中國公司除北京總部外,在上海、成都、廣州等地設(shè)立了辦事處,并在北京、上海、西安等地設(shè)立了研發(fā)中心,與合作伙伴一道為客戶就近提供服務(wù)與支持。為全力提升既定市場的領(lǐng)導地位,sybase于2002、2003年相繼在北京、上海成立“解決方案中心”,加強與客戶、合作伙伴的協(xié)作關(guān)系并提供最完善的技術(shù)顧問。
自90年代初起,sybase已占穩(wěn)中國市場,隨著中國加入世貿(mào)及北京成功申辦2008年奧運,亞太趨勢必享有策略性的優(yōu)勢。CCID報告指出,sybase在中國電信業(yè)已取得45%的市場占有率,并以36.2%的份額占據(jù)中國鐵路數(shù)據(jù)庫市場絕對的領(lǐng)導地位。sybase公司憑借優(yōu)異的服務(wù)質(zhì)量,連續(xù)三年榮獲CCID頒發(fā)“最佳用戶服務(wù)滿意度獎”;更榮膺2002年中國數(shù)據(jù)庫軟件市場年度成功企業(yè)殊榮。IDC調(diào)查報告顯示,sybase公司在中國軟件市場的占有率名列第四,目前已占據(jù)著國內(nèi)軟件市場的主導地位。
Sybase數(shù)據(jù)庫技術(shù)著作
sybase技術(shù)在中國推廣以來,已經(jīng)培養(yǎng)了大量的用戶和上萬名相關(guān)工程技術(shù)人員。同時,與Sybase相關(guān)的技術(shù)著作也不斷推出,例如下面的兩套Sybase 相關(guān)技術(shù)叢書:
Sybase數(shù)據(jù)庫在UNIX、Windows上的實施和管理
Sybase全套技術(shù)支持資料
這些技術(shù)著作滿足了用戶對Sybase產(chǎn)品的理解,提高了用戶的Sybase應(yīng)用能力,對Sybase的發(fā)展產(chǎn)生著深遠影響!
2010年05月13日,SAP公司以58億美元收購軟件制造商Sybase。


