程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SyBase數據庫 >> SyBase綜合文章 >> 系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)

系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)

編輯:SyBase綜合文章
我是做集成的,沒有機會把一種數據庫從整體再到入微走那麼一個套,所以打算搞以下幾篇,然後沒有什麼特別的,就放棄Sybase,等有新項目要用Sybase的時候再翻出來瞅瞅,命苦啊。。。。。評心而論,我最喜歡Oracle,Sybase在我的感覺中,只比Informix好熟悉那麼一點點。。。。。。這個豬頭賣不賣,打雷了,快收衣服喲。。。。。。

系統集成備忘(Sybase系統優化:之三)
系統集成備忘(Sybase武裝(備份恢復高可用):之四)
系統集成備忘(Sybase常見故障:之五)


1 Sybase介紹和產品概述
1.1 Sybase數據庫簡介
1.1.1 版本
1984年,Mark B. Hiffman和Robert Epstern創建了Sybase公司,並在1987年推出了Sybase數據庫產品。SYBASE主要有三種版本,一是UNIX操作系統下運行的版本,二是Novell Netware環境下運行的版本,三是Windows NT環境下運行的版本。對UNIX操作系統目前廣泛應用的為Sybase 10 及SYABSE 11 for SCO UNIX。

1.1.2 Sybase數據庫的特點
(1)它是基於客戶/服務器體系結構的數據庫
一般的關系數據庫都是基於主/從式的模型的。在主/從式的結構中,所有的應用都運行在一台機器上。用戶只是通過終端發命令或簡單地查看應用運行的結果。而在客戶/服務器結構中,應用被分在了多台機器上運行。一台機器是另一個系統的客戶,或是另外一些機器的服務器。這些機器通過局域網或廣域網聯接起來。
客戶/服務器模型的好處是:
 1)它支持共享資源且在多台設備間平衡負載
2)允許容納多個主機的環境,充分利用了企業已有的各種系統
注釋:什麼是客戶/服務器體系結構?
從硬件角度看,客戶/服務器體系結構是指將某項任務在兩台或多台機器之間進行分配,其中客戶機(ClIEnt)用來運行提供用戶接口和前端處理的應用程序,服務器機(Server)提供客戶機使用的各種資源和服務。
從軟件角度看,客戶/服務器體系結構是把某項應用或軟件系統按邏輯功能劃分為客戶軟件部分和服務器軟件部分。客戶軟件部分一般負責數據的表示和應用,處理用戶界面,用以接收用戶的數據處理請求並將之轉換為對服務器的請求,要求服務器為其提供數據的存儲和檢索服務;服務器端軟件負責接收客戶端軟件發來的請求並提供相應服務客戶/服務器融合了大型機的強大功能和中央控制以及PC機的低成本和較好的處理平衡。客戶/服務器為任務的集中/局部分布提供了一種新的方法,這種體系能夠使用戶對數據完整性、管理和安全性進行集中控制。在緩解網絡交通和主機負荷以及滿足用戶需要方面,客戶/服務器體系提供了良好的解決方案。
總之,客戶/服務器的工作模式是:客戶與服務器之間采用網絡協議(如TCP/IP、IPX/SPX)進行連接和通訊,由客戶端向服務器發出請求,服務器端響應請求,並進行相應服務。

(2) 它是真正開放的數據庫
由於采用了客戶/服務器結構,應用被分在了多台機器上運行。更進一步,運行在客戶端的應用不必是Sybase公司的產品。對於一般的關系數據庫,為了讓其它語言編寫的應用能夠訪問數據庫,提供了預編譯。Sybase數據庫,不只是簡單地提供了預編譯,而且公開了應用程序接口DB-LIB,鼓勵第三方編寫DB-LIB接口。由於開放的客戶DB-LIB允許在不同的平台使用完全相同的調用,因而使得訪問DB-LIB的應用程序很容易從一個平台向另一個平台移植。

(3) 它是一種高性能的數據庫
Sybase真正吸引人的地方還是它的高性能。體現在以下幾方面:
 1)可編程數據庫
通過提供存儲過程,創建了一個可編程數據庫。存儲過程允許用戶編寫自己的數據庫子例程。這些子例程是經過預編譯的,因此不必為每次調用都進行編譯、優化、生成查詢規劃,因而查詢速度要快得多。
 2)事件驅動的觸發器
觸發器是一種特殊的存儲過程。通過觸發器可以啟動另一個存儲過程,從而確保數據庫的完整性。
 3)多線索化
Sybase數據庫的體系結構的另一個創新之處就是多線索化。一般的數據庫都依靠操作系統來管理與數據庫的連接。當有多個用戶連接時,系統的性能會大幅度下降。Sybase數據庫不讓操作系統來管理進程,把與數據庫的連接當作自己的一部分來管理。此外,Sybase的數據庫引擎還代替操作系統來管理一部分硬件資源,如端口、內存、硬盤,繞過了操作系統這一環節,提高了性能。

1.1.3 訪問Sybase服務器的基本過程
1)建立客戶與服務器之間的連接,

包括網絡連接、客戶進程與服務器進程之間的連接;
2)客戶端通過網絡發送SQL語句給服務器,用來查詢或操作服務器中的數據或數據庫對象;
3)服務器接收到SQL語句後,對其進行語法分析、優化和編譯後執行;
4)如果執行的語句產生一個結果集,服務器通過網絡把結果集返回給客戶;
5)客戶端對收到的結果作相應的處理。
在客戶/服務器體系,有兩種數據庫引擎結構,即多進程數據庫引擎和單進程、多線程引擎結構。多進程結構即多個可執行程序同時運行。每當用戶登錄到數據庫系統時實際上都啟動了數據庫引擎的一個獨立實例。存在起協調作用的進程協調進行之間的通訊以保證當多用戶訪問相同數據時數據的完整性。多進程數據庫引擎一般用在大型機數據庫上。單進程多線程數據庫引擎在原理上和多進程數據庫引擎類似,不同的是多線程數據庫引擎自己負責調度各應用程序占用CPU的時間,而不依賴於操作系統。這樣,多線程數據庫引擎自我保護的能力更強。
Sybase數據庫管理系統采用的是單進程多線程的引擎結構。

1.2 Sybase產品概述
1.2.1 Sybase軟件的組成
Sybase軟件可劃分為三個部分:
 1)進行數據管理與維護的聯機關系數據庫管理系統Sybase SQL Server;
 2)支持數據庫應用系統的建立和開發的一組前端工具軟件Sybase SQL Tools;
 3) 把異構環境下其他廠商的應用軟件和任何類型的數據連接在一起的接口軟件Open ClIEnt/Open Server。
SQL Server是個可編程的數據庫管理系統(DBMS),它是整個Sybase產品的核心軟件,起著數據管理、高速緩沖區管理、事務管理的作用。
ISQL是與SQL Server進行交互的一種SQL句法分析器。ISQL接收用戶發出的SQL語言,將其發送給SQL Server,並將結果以形式化的方式顯示在用戶的標准輸出上。
DWB是數據工作台,是Sybase SQL Toolset的一個主要組成部分,它的作用在於使用戶能夠設置和管理SQL Server上的數據庫,並且為用戶提供一種對數據庫的信息執行添加、更新和檢索等操作的簡便方法。在DWB中能完成ISQL的所有功能,且由於DWB是基於窗口和菜單的,因此操作比ISQL簡單,是一種方便實用的數據庫管理工具。
APT是Sybase客戶軟件部分的主要產品之一,也是從事實際應用開發的主要環境。APT工作台是用於建立應用程序的工具集,可以創建從非常簡單到非常復雜的應用程序,它主要用於開發基於表格(form)的應用。其用戶界面采用窗口和菜單驅動方式,通過一系列的選擇完成表格(form)、菜單和處理的開發。
通過Open ClIEnt的DB-LIB庫,應用程序可以訪問SQL Server。而通過Open Server的SERVER-LIB,應用程序可以訪問其它的數據庫管理系統。

1.2.2 SQL Server的基本特征
SQL Server具有如下一些基本特征:
 1)SQL Server可以放在若干個磁盤設備上,初始安裝時所需的磁盤空間至少要17MB。
 2)SQL Server支持多


您正在看的sybase教程是:系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)。庫結構,也就是說Sybase系統中可以有多個數據庫。Sybase可以管理多個數據庫。
 3)SQL Server可以編譯和運行T-SQL語句,並可返回客戶程序所要求的結果。T-SQL語句是標准SQL的擴充,它除了有數據定義語句、數據操縱語句和數據控制語句之外,主要增加了流程控制語句。
 4)SQL Server可以管理多個用戶並具有較高的事務吞吐量和較低的事務響應時間。客戶的應用程序可以存取Server中某一個或幾個數據庫的數據。

1.2.3 SQL Server的主要內容
Sybase SQL Server是一個多庫結構的RDBMS,安裝Sybase數據庫時自動生成的系統數據庫體系結構大致如下:
 1)主數據庫master;
 2)模型數據庫model;
 3)系統過程數據庫sybsystemprocs;
 4)臨時數據庫tempdb。
也可選擇下列數據庫:
 5)安全審核數據庫sybsecurity;
 6)示例數據庫pubs2;
 7)命令語法數據庫sybsyntax

1.2.3.1 系統數據庫
服務器自身所使用的數據庫,也可以說是管理服務器和用戶數據庫的數據庫。

Sybase在安裝時,自動創建了四個系統數據庫:
master、model、tempdb、sybsystemprocs

(1) master數據庫
它是管理和控制用戶數據庫以及維護服務器正常運行的核心數據庫,它包含許多系統表和系統過程,從總體上控制用戶數據庫和SQL Server的操作,構成了Sybase系統的數據字典,它保存了大量的系統信息,如服務器配置、用戶、設備等。
在master數據庫中不允許普通用戶在其中創建數據庫對象,否則會使得master數據庫的事務日志很快變滿。如果事務日志用盡,就無法使用dump transaction命令釋放master數據庫中的空間。
master數據庫主要記錄信息為:
 1)登錄帳號(SQL服務器用戶名);syslogins,sysremolelogins
 2)正在執行的過程;sysprocesses
 3)可修改的環境變量;sysconfigures
 4)系統錯誤信息;sysmessages
 5)SQL服務器上每個數據庫的信息;sysdatabases
 6)每個數據庫占用的存儲空間;sysusages
 7)系統上安裝的磁帶及磁帶信息;sysdevices
 8)活動鎖信息;syslocks

(2)model數據庫
它是為創建用戶數據庫而提供的模板。它提供了新用戶數據庫的初型。當我們每次用CREATE DATABASE命令時,SQL Server都產生一個model數據庫的拷貝,以此作為新用戶數據庫,然後把它擴展到命令要求的尺寸。如果我們修改了model數據庫,那麼以後新創建的數據庫都將隨它而改變。
Model數據庫中包含每個用戶數據庫所要求的系統表。Model數據庫可以被修改以便定制新創建的。
下面是幾個通常用到的對model數據庫的改變:
 增加用戶數據庫類型、規則或缺省;
 可存取SQL Server上所有數據庫的用戶用sp_adduser增加到model數據庫上;
 缺省權限(特別是guest帳號)可在model中建立;
 諸如select into/bulkcopy那樣的數據庫選項可在model中設置。這些設置反映到所有新創建的數據庫中。它們在model中最原始的值是關(off)。
在一般情況下,大多數用戶無權修改model數據庫,也沒被授權讀取。因為model中所有內容已拷貝到新數據庫中,授權讀model沒什麼意義。

(3)tempdb數據庫
它是個臨時數據庫,為服務器運行與處理提供一個共享的存儲區域,如group by和order by的中間結果就存放在這裡。Tempdb的空間為服務器中所有數據庫的所有用戶所共享。
每次重啟SQL Server,服務器的一個自動進程都拷貝model數據庫到tempdb數據庫,並清除tempdb中原來的內容。因此tempdb中的用戶表都是臨時的。臨時表分為兩類:可共享的和不可共享的。不可共享的臨時表在由create table中將符號#置於表名之前創立;可共享的臨時表通過create table中指定表名前綴tempdb..而創立。不可共享的臨時表SQL Server自動為其添加數字後綴名,且它只存在於當前會話中。

(4)sybsystemprocs數據庫
它是專門用來保存系統命令(存儲過程)的數據庫,如sp_help、sp_configure、sp_helpdevice等。當任一數據庫用戶運行以sp_開頭的存儲過程時,SQL Server按照以下順序查找:當前數據庫、sybsystemprocs數據庫、master數據庫。

其他可選數據庫:
(5)安全審核數據庫sybsecurity
數據庫中保存系統的安全審核信息,它可跟蹤記錄每個用戶的操作情況,為維護系統安全提供控制手段。

(6)示例數據庫pubs2
為用戶提供一個學習Sybase的數據庫模型。

(7)命令語法數據庫sybsyntax
庫中保存Sybase數據庫的命令語法及支持的語言庫。

1.2.3.2 用戶數據庫
用戶數據庫是我們使用Sybase服務器的真正目的。要管理用戶數據,必須在Sybase中創建自己的數據庫,是指用create database命令創建的數據庫。所有新的用戶數據庫都要在master數據庫中創建,也就是說,不能存取master數據庫的用戶是無權創建新的數據庫的。SA可以將創建數據庫的權限授予其他用戶。

新建數據庫中存在一些系統表,在sysusers表中至少有一條記錄,既該數據庫的創建者。數據庫創建時,創建者即為該數據庫的 owner, 當然創建者可以將這一地位或這一所有權用系統過程授予別的用戶。
數據庫中的主要內容——數據庫對象:表、視圖、臨時表、索引、主鍵、外鍵、缺省值、規則、存儲過程、觸發器等

2 Sybase基礎知識
2.1 Sybase安裝
安裝建立SQL Server以後,要建立放置數據庫、日志和索引的邏輯磁盤設備。數據庫、日志和索引的配置應注意以下原則:
1)不要把任何用戶對象安裝在master數據庫中。
2)日志應該保存在與數據庫分離的磁盤上。
3)可以通過跨越多個設備分配工作優化I/O性能。

2.1.1 Sybase 的初始配置
需要做的內容:
1)更改sa的登錄口令;
2)命名服務器;
3)修改文件名(保證Sybase Central正常啟動);
4)更改缺省設備;
5)增加tempdb的空間。
6)創建用戶數據庫(創建數據庫設備,設備大小以頁(2K)為單位)

2.2 系統管理的主要內容
1)物理資源的管理
2)用戶及其權限管理
3)數據庫的備份與恢復
4)SQL Server的配置參數
服務器配置是系統管理員的職責,正確的配置對系統性能有重大的影響。有兩個系統表存儲配置信息:sysconfigures和syscurconfigs;sysconfigures是永久性的,一旦系統運行,sysconfigures的信息就拷貝到syscurconfigs中


您正在看的sybase教程是:系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)。。顯示配置和改變配置使用系統過程sp_configure。
有兩種配置值:動態的和靜態的,動態值一旦改變立即生效,靜態值要在系統重啟動後才起作用。

2.3 系統的啟動和關閉
2.3.1 啟動SQL Server
應用SQL Server安裝程序(sybinit)創建SQL Server或Backup Server, 默認文件名為RUN_SYBASE 和RUN_SYB_BACKUP,放在$Sybase/INSTALL目錄下。Startserver 用來啟動SQL Server 或Backup Server:
可以通過showserver查看SQL Server 和Backup Server是否已經啟動。
SQL Server的啟動過程 :master數據庫啟動 -- Sybsystemproces數據庫啟動 -- tempdb--model -- 用戶數據庫 。
啟動SQL Server的單用戶模式 :如果要恢復一已被損壞的master數據庫,則必須要啟動SQL Server的單用戶模式。單用戶模式下僅允許一個系統管理員向SQL Server注冊。
Startserver -f RUN_Sybase -m

2.3.2 關閉服務器
關閉SQL Server可以在isql中使用T-SQL命令:
 關閉SQL備服務器 :shutdown SYB_BACKUP
 關閉SQL主服務器 :shutdown [with nowait]

2.4 數據庫設備與存儲空間管理
初始安裝SQL Server時,安裝程序和腳本初始化主設備,並建立master、model、tempdb和sybsystemprocs數據庫。系統數據庫、預定義設備和段按下列默認方式組織:
1)master、model、tempdb數據庫安裝在主設備master上;
2)sybsystemprocs數據庫安裝在安裝時選擇的設備上(sysprocsdev);
3)為每個數據庫創建三個預定義段:system、default和logsegment;
4)所有用戶創建數據庫的默認設備是master設備;
5)如果選擇安裝了審計數據庫sybsecurity,它位於自己的設備上。

2.4.1 設備與存儲管理考慮的主要問題
(1)恢復問題
物理磁盤崩潰時,磁盤鏡像或在單獨的物理設備上保存日志為數據庫恢復提供了兩種機制。

(2)性能問題
磁盤讀寫速度是I/O操作的瓶頸,正確地把數據庫對象放置到物理設備上有利於改進性能;把日志和數據庫對象置於單獨的設備上可以提高系統性能;把表放在一個硬盤上而把索引放在另一個硬盤上,由於把工作分置於兩個硬盤驅動器上,所以可以確保物理讀寫速度加快;磁盤鏡像會降低磁盤寫的速度。



2.4.2 設備(Device)
Sybase SQL Server是一個多庫數據庫系統。這些數據庫包括系統數據庫和用戶數據庫。 而不論是系統數據庫還是用戶數據庫,都建立在數據庫設備上。即Sybase將數據庫中的所有數據存放在設備上。刪除設備前必須刪除其上的所有數據庫,刪除設備的命令是:sp_dropdevice。

2.4.2.1 設備的概念
設備是Sybase預先配置的專門存放數據庫的一塊連續的磁盤空間,並且它被映射到一操作系統文件或一原始磁盤分區上。即它不是指一個可識別的物理設備,而是指用於存儲數據庫和數據庫對象的磁盤原始分區或操作系統文件。它有兩個對應的名稱:邏輯名和物理名。NT僅支持設備映射到文件。所有的數據庫都創建在數據庫設備上。增加一個新的數據庫設備時,必須對這些設備“初始化”。初始化的過程就是將物理磁盤、磁盤分區或操作系統文件變為Sybase數據庫可以識別的設備。初始化數據庫設備使用DISK INIT命令。
設備與數據庫之間的關系:多對多關系。一個數據庫可以被創建或擴充到多個設備上,一個設備也可以被用來存放多個數據庫。不同的設備操作系統可以對其並行地讀寫,因此我們可以人為地將一個數據庫放置到多個數據庫設備上。
設備的分類:Database Device和Dump Device。數據庫設備存放數據庫和事務日志,轉儲設備用來存放數據庫或日志的備份。

2.4.2.1.1 默認設備
在沒有指定設備的情況下,用戶創建的任何數據對象自動存放在默認設備上。初始安裝後,系統的主設備master被預指定為默認設備,因此要盡快創建自己的默認設備。確保系統主設備安全,指定僅被日志使用的設備不是默認設備。
Sp_diskdefault 設備名[,DefaultOn|DefaultOff]

2.4.2.2 磁盤鏡像
磁盤鏡像是出於數據庫安全性的考慮,當介質失敗時,磁盤鏡像能提供不間斷恢復。磁盤鏡像是磁盤上的數據的絕對拷貝。如果某一硬盤事故發生,則該被損壞的拷貝就自動變成離線狀態,因而所有的讀寫都被引向未被損壞的拷貝。
Sybase的磁盤鏡像是在設備級上進行的,因此磁盤鏡像實質上是設備鏡像。當對某一設備進行鏡像操作時,Sybase自動創建一個附加設備,由鏡像處理程序將原設備上的所有數據拷貝到鏡像設備上。
如果要使某一數據庫成為鏡像,被分配給該數據庫的每一設備都必須成鏡像。Master設備在服務器中地位特殊,如果它損壞了,SQL Server將崩潰。因此,如果有可能總是要鏡像Master設備(在另一磁盤上)。

2.4.3 創建與使用段
段(Segment)是數據庫設備上磁盤空間的邏輯組合,它可以看作是指向一個或多個數據庫設備的標簽。利用段可以控制數據庫對象的存放位置,可以將數據庫對象分類存放到不同的段上。
設備與段之間的關系:多對多關系。一個設備上可以創建多個段,一個段也可以覆蓋多個設備。
數據庫設備從邏輯上被劃分為數據庫段以允許將某一特定的對象放置在指定的段上(創建對象時指定),一數據庫設備可擁有多達192個段,一段可使用255個邏輯設備上的存儲空間。當用戶創建一個數據庫時,SQL Server 會自動在該數據庫中創建三個段: SYSTEM、LOGSEGMENT 、DEFAULT,這三個段分別用來存儲數據庫的系統表、事務日志和其他數據庫對象

2.4.3.1 使用段的優點
1)控制空間的使用:放在一個段上的數據庫對象不會在段外增長;
2)提高性能:處於不同磁盤設備上的段可以並行地讀寫;
3)處理大表:利用段,可以將一個大表分段放在獨立的物理設備上,如將一個表的文本或圖象數據存儲另外的一個段上。
兩個數據庫放在同一設備的不同段上,它們不會相互影響;當數據庫增加空間時,增加的空間會自動分配到它的每一個段上;

2.5 使用阈值管理
阈值(Threshold)管理是一種自動監控數據庫自由空間的機制,Sybase的阈值管理允許用戶為數據庫的某個段上的自由空間設置阈值並定義相應的存儲過程。當該段上的自由空間低於所置頭阈值時,Sybase自動運行相應的存儲過程。
在一個實際運行的數據庫中,日志的增長速度一般要高於數據的增長,一旦日志段的自由空間用盡,SQL Server在默認情況下會掛起所有數據操縱事務,客戶端應用程序停止執行。
在每個分離的段上存儲其事務日志的數據庫均自動設置有最後機會

阈值(Last Chance&nbs


您正在看的sybase教程是:系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)。p;Threshold),其阈值是備份事務日志所需的自由空間的估計值。當該段上的自由空間低於所置阈值時,Sybase自動運行名為sp_thresholdaction的存儲過程。該過程的名稱及參數由系統預定義,內容由用戶編寫。



2.6 數據庫與事務日志
通常用戶數據庫由系統管理員創建,它的默認屬主是dbo。系統過程sp_changeddbowner可改變數據庫的屬主關系,它必須由數據庫管理員在要改變屬主關系的數據庫中執行。
日志文件是用來記錄數據庫每一次修改活動的文件。SQL Server中的每一個數據庫都有自己的日志文件,即系統表syslogs,也稱為事務日志。事務日志是撤消事務和出現故障時恢復事務的依據。在某些情況下,事務日志比數據本身更為重要。
數據庫的修改是以事務為單位進行的。一個事務就是一個操作序列,這些操作要麼全做,要麼全不做,它是一個不可分割的工作單位。任何一個事務具備如下特征:
1)執行的原子性(Atomic);
2)保持數據的一致性(Consistency);
3)彼此的隔離性(Isolation);
4)作用的持久性(Durability);
上述事務的四個特征被稱為事務的ACID准則。
事務在運行過程中,SQL Server把事務開始、事務結束以及對數據庫的插入、刪除和更新等每一個操作作為一個日志記錄存放到事務日志中。事務中的更新操作首先在數據庫緩沖區(內存)中進行,緩沖區分別有用來記錄操作活動的數據頁(data page)和日志頁(log page)。當運行到commit tran時,日志頁首先從緩沖區寫到磁盤上,而後數據頁從緩沖區寫到磁盤上,即遵循“先寫日志(write_ahead log)”的原則,這樣保證出現故障的情況下,通過日志能夠得到最大限度的恢復。恢復必須撤消發生故障時還未提交的事務,已完成的事務若仍有未從緩沖區寫到數據庫設備中,還要重新運行該事務。

2.7 數據庫安全性與用戶管理
數據庫的安全性是指保護數據庫以防止不合法的使用所造成的數據洩露、更改或破壞。SQL Server的安全管理是一種基於角色(role)的管理方法,位於不同權限層次(或角色)的用戶具有不同的用戶權限。
規定用戶權限有三個因素:用戶、數據對象和操作,即什麼用戶在哪些數據對象上可以執行什麼操作。
訪問SQL Server中數據的四道屏障:
1)操作系統——操作系統登錄
2)Sybase服務器——服務器登錄
3)Sybase數據庫——數據庫用戶登錄
4)數據庫對象——對象授權

2.7.1 用戶管理概述
在Sybase數據庫中,用戶管理是系統管理的一個重要組成部分,但其重要性卻往往被人忽視。許多時候,操作數據庫的命令不成功常與用戶管理有關,而許多誤操作命令的發生也可以通過用戶管理來避免。因此,弄清用戶管理的一些基本概念,對成功進行數據庫系統管理有重要的作用。

2.7.1.1 SQL Server注冊用戶和數據庫用戶
剛接觸到這兩個概念的時候,可能會有所混淆,但只要了解SYBASE SQL SERVER的結構後,就會清楚。Sybase SQL SERVER為一進程,進程本身可管理多個數據庫。而有些數據庫是相互獨立的,有些數據庫是可以共用的,如tempdb和sysbsystemprocs數據庫。SQL SERVER與本身數據庫的關系猶如城市與其中樓房的關系,當進入某一城市時需某一合法的身份,但進入城市的人並非每個樓房都可進入,即使允許進入也不能干某些事。SQL SERVER注冊用戶與數據庫用戶關系即是如此。當SQL SERVER創建注冊用戶後,該用戶就能合法進SQL Server,該注冊用戶信息會放在master數據庫中的 syslogins表中。但只有注冊用戶成為某一數據庫用戶,並且對該用戶賦予某些權限時,該注冊用戶才能在限制條件下使用數據庫中的表。

2.7.1.2 SQL Server數據庫用戶分類
在SQL Server中用戶一般分為以下四種:
1)sa用戶。
2)數據庫屬主
3)數據庫對象屬主。
4)數據庫普通用戶。
sa用戶在SQL SERVER中為最高等級用戶,SQL Server中所有命令都可執行。
數據庫屬主(dbo)用戶可對本數據庫中所有對象(如表、視圖、存儲過程等)進行操作,一般有三種途徑創建:
a.為系統管理員的用戶;
b.系統管理員的用戶將創建數據庫的權限賦予某個SQL Server中注冊用戶,由該用戶進行數據庫的創建後,自然形成數據庫屬主;
c.系統管理員的用戶創建數據庫後,將某個SQL Server中注冊用戶變為數據庫的屬主。
數據庫對象屬主為創建該對象的用戶,在實際的數據庫的管理中,一般為數據庫屬主。
數據庫普通用戶必須在數據庫屬主對本數據庫中某些對象(如表、視圖、進程等)賦予某些權限時,才可對本數據庫中某些對象進行允許的操作。
幾者的關系是相互包含的:系統管理員的用戶在進入某個數據庫後,自然成為該數據庫的屬主,數據庫屬主可看作為特殊的數據庫普通用戶。



2.7.2 別名(aliases)與組(group)
別名(aliases)與組(group)在數據庫管理中是經常用到的,它能簡化數據庫用戶管理,方便對用戶的監控。
所謂別名(aliases)即將SQL SERVER中的注冊用戶以同一個數據庫用戶的身份來訪問數據庫,並具有與該用戶相同的權限。也就是說,在數據庫中只要建立一個數據庫用戶,對該數據庫用戶各種操作定義好,並使SQL SERVER 中已經定義好注冊用戶成為該數據庫用戶的別名用戶後,即擁有與該用戶相同的權限。這樣一來,注冊用戶不必成為數據庫的用戶即可訪問數據庫,對所有別名用戶的權限的控制只需通過對一個數據庫用戶的控制達到。如:有一SQL Server名為TEST.SER,有一名為EXAMPLE的數據庫,其中有一名為OK的表,當系統管理員為TEST.SER創建名為JOHN和KATE的注冊用戶,EXAMPLE的數據庫中有一名為OK_SELECT的數據庫用戶,該數據庫用戶有對OK表的查詢權限。將JOHN和KATE這兩個注冊用戶變為OK_SELECT的別名後,JOHN和KATE即可進入數據庫,並擁有與OK_SELECT的數據庫用戶相同的權限。
組(group)為數據庫用戶的集合,即通過對組(group)的權限的控制達到對該組中數據庫用戶的控制,但也可對該組中數據庫某些用戶進行格外的權限控制。在上例中的EXAMPLE的數據庫中有一OK_INSERT的組,它對OK的表有插入的權限,數據庫中有兩個用戶:MARRY和KITY,當這兩個用戶加入到OK_INSERT組後,MARRY和KITY就有對OK表的插入的權限。對MARRY和KITY相同的權限操作可通過對OK_SELECT組的控制可得。而使MARRY對OK表有查詢權限,僅對MARRY用戶賦權即可。而別名則不行。

2.7.3 Sybase SQL Server的角色
一般在管理分工較細的數據庫系統中,sa用戶往往被分為三種角色:系統管理員角色(SA role)、系統安全員角色(SSO role)和操作員角色(OPER role)。
sa用戶往往被鎖住,其權力被以上三種角色所瓜分。這三種角色將分別用不同的數據庫注冊用戶承擔。
角色是權限的集合。系統預定義角色: 一個真正的數據庫管理員應該是整個服務器及其數據庫的擁有者,具有管理服務器及其數據庫的所有權限。在一個大的系統中,數據庫管理員往往不只由一人承擔,而是將管理任務進行功能劃分,每人提當不同的責任。系統預定義角色就是為適應這種要求而設計的。
 1)系統管理員(sa_role)
sa_role角色擁有執行與數據庫具體應用無關的管理權限:
 a.安裝與更新SQL Server
 b.管理服務器的物理存儲
 c.配置系


您正在看的sybase教程是:系統集成備忘(Sybase介紹、產品概述和基礎知識:之二)。統設置參數;
 d.創建用戶數據庫;
 e.授予SQL Server用戶權限
 ┅┅
 2)系統安全管理員(sso_role)
a.sso_role用來實施安全上敏感的操作,執行有關安全性的任務:
 b.建立服務器登錄帳戶;
 c.管理口令;
 d.授予除sa_role之外的任何角色;
 e.管理審計系統;
 ┅┅
 3)操作員(oper_role)
a.oper_role執行全服務器范圍的數據庫操作,如備份與恢復任意數據庫等:
 b.轉儲數據庫與日志
 c.轉載數據庫與日志
 ┅┅

2.8 數據庫的備份與恢復
數據庫的備份與恢復是SQL Server保障數據安全的一種重要手段,為防止意外,數據庫管理員必須定期和經常制作數據庫的備份。一旦系統出現故障,數據能夠得到及時的恢復。

2.8.1 基本概念
(1)事務處理及其日志
SQL Server使用事務來跟蹤所有數據庫變化。事務是SQL Server的工作單元。一個事務包含一條或多條作為整體成功或失敗的T_SQL語句。每個數據庫都有自己的事務日志,即系統表syslogs,事務日志自動記錄每個用戶發出的每個事務,它影射了每個事務足夠多的信息,以確保數據能夠被恢復。

(2)檢查點(CheckPoint)
服務器在檢查點發生時更新數據。在服務器發出一個檢查點時:
1)更新數據。
2)在日志中記錄下執行檢查點的標記。


檢查點可把所有“髒頁”寫到數據庫設備上,“髒頁”是指從上一次檢查點以來,在內存中修改、但沒有在磁盤上修改的頁。SQL Server的自動檢查點機制保證了被完成的事務修改的數據頁有規律地從內存中的緩沖區寫到數據庫設備上。

2.8.2 數據庫備份
若硬件介質出現故障(如磁盤損壞),當且僅當事先已對數據庫及其事務日志作了備份,才能恢復數據庫。
注意:絕對不要使用操作系統的拷貝數據庫設備,把這樣一個拷貝裝入SQL Server將導致大量數據庫受損。
備份的類型:
1)完全備份
2)增量備份——備份事務處理日志
說明:
 a.只有把事務日志放在單獨的設備上,才能進行增量備份;
 b.備份事務日志會截斷日志,因此備份的內容是自上次備份以來的事務處理。
 c.備份之前要啟動備份服務器,並最好創建轉儲設備。
備注:truncate_only與no_log選項用於刪除事務處理而不作拷貝。Truncate_only截斷日志;在事務處理日志完全滿時用no_log,它不為數據庫建立檢查點。兩個選項都會丟掉日志。當使用了這兩個參數後,應及時備份整個數據庫。no_truncate拷貝日志但不截斷日志,在出現介質錯誤時使用該選項。

2.8.3 數據庫的恢復
使用load database加載備份到現有數據庫,數據庫可以是用於創建轉儲的數據庫,也可以不是。
由於事務日志在恢復數據庫中的特殊作用,應定期備份數據庫及其事務日志,而且事務日志的備份要更頻繁一些。如:數據庫每周備份一次,事務日志每天備份一次。
SQL Server提供了兩種不同類型的恢復:一類是系統自動完成的恢復;另一類是人工完成的恢復。

1)系統自動恢復
系統自動恢復是在系統軟件出現故障的情況下通過重新啟動SQL Server進行恢復。
自動恢復從master數據庫開始,然後是model數據庫,再是temporary數據庫,最後是用戶數據庫。在每個數據庫上,恢復機制觀察事務日志。如果日志寫入比數據庫更近的數據,則向前恢復數據庫。如果事務尚未完成,則要回退它們。

2)介質故障的恢復
一旦介質發生故障,只有通過以前備份的數據庫和事務日志才能恢復數據庫,為此我們需要經常備份數據庫和事務日志。備份數據庫和事務日志我們使用dump命令,而恢復數據庫和事務日志我們使用load命令。
與創建數據庫需要一個數據庫設備類似,我們備份數據庫和事務日志也需要一個卸出設備。增加卸出設備可以通過系統過程sp_addumpdevice來實現。卸出設備可以是磁盤、磁帶或操作系統文件。
在備份數據庫前的所有事務日志備份都是沒有意義的。我們一般不經常備份數據庫,但我們要經常備份事務日志。這是因為備份事務日志比備份數據庫需要更少的時間和存儲空間。
3)恢復用戶數據庫
要恢復已被破壞的數據庫,可以按如下步驟進行:
a.用帶no_truncate選項的dump命令卸出用戶數據庫事務日志。
b.用和被破壞的數據庫的同樣的結構建立一個新的數據庫。
c.用load命令重新裝入數據庫和事務日志。

2.9 數據庫與T-SQL語言
關系數據庫以關系模型為基礎,它由以下三部分組成:
1)數據結構——模型所操作的對象、類型的集合
2)完整性規則——保證數據有效、正確的約束條件
3)數據操作——對模型對象所允許執行的操作方式
關系(Relation)是一個由行和列組成的二維表格,表中的每一行是一條記錄(Record),每一列是記錄的一個字段(FIEld)。表中的每一條記錄必須是互斥的,字段的值必須具有原子性。

2.9.1 SQL語言概述
SQL(結構化查詢語言)是關系數據庫語言的一種國際標准,它是一種非過程化的語言。通過編寫SQL,我們可以實現對關系數據庫的全部操作。
1)數據定義語言(DDL)——建立和管理數據庫對象
2)數據操縱語言(DML)——用來查詢與更新數據
3)數據控制語言(DCL)——控制數據的安全性
T-SQL語言是Sybase對SQL92標准的一種擴展,主要在它的基礎上增加了三個方面的功能:自己的數據類型/特有的SQL函數/流程控制功能。
T-SQL中的標識符使用說明:標識符由1-30個字符或數字構成,但首字符必須為字母。臨時表的表名以#開頭,長度不能超過13個字符。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved