數(shù)據(jù)庫引擎是由SQL Server提供的核心服務(wù),允許用戶存儲、檢索、處理和保護(hù)數(shù)據(jù)安全。
創(chuàng)新互聯(lián)專注于堯都企業(yè)網(wǎng)站建設(shè),成都響應(yīng)式網(wǎng)站建設(shè)公司,成都商城網(wǎng)站開發(fā)。堯都網(wǎng)站建設(shè)公司,為堯都等地區(qū)提供建站服務(wù)。全流程定制網(wǎng)站,專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
數(shù)據(jù)庫引擎服務(wù)使用戶能夠構(gòu)建高性能的聯(lián)機(jī)事務(wù)處理應(yīng)用系統(tǒng)和支持聯(lián)機(jī)分析處理。
存儲引擎是SQL Server數(shù)據(jù)庫的“靈魂”,控制著數(shù)據(jù)在磁盤上的存儲方式和數(shù)據(jù)被應(yīng)用程序訪問的方式。
數(shù)據(jù)庫引擎是一個不會與用戶直接交互的核心部件,它由一些至關(guān)重要的存儲和管理數(shù)據(jù)的部件組成。
存儲引擎管理著基于表和列數(shù)據(jù)類型定義的數(shù)據(jù)存儲。
為了便于查詢,使用索引。
使用分區(qū),可以把大表和索引拆分到多個存儲結(jié)構(gòu)中。
使用鎖定和事務(wù)管理功能仲裁數(shù)據(jù)的多用戶訪問,從而確保一致的數(shù)據(jù)訪問。
為了保護(hù)數(shù)據(jù)免受災(zāi)難性的丟失,我們可以對數(shù)據(jù)庫進(jìn)行完整備份或增量備份,以便通過備份來恢復(fù)被損壞的數(shù)據(jù)。
SQL Server 2008自帶幾個系統(tǒng)數(shù)據(jù)庫,用于管理數(shù)據(jù)庫引擎的各個方面:master、model、msdb、tempdb和distribution。
master數(shù)據(jù)庫包含一個實(shí)例中核心對象的信息。
創(chuàng)建一個新的數(shù)據(jù)庫時,model數(shù)據(jù)庫被SQL Server用作數(shù)據(jù)庫模板。
model數(shù)據(jù)庫的作用是使管理員在創(chuàng)建數(shù)據(jù)庫時自動創(chuàng)建那些需要加入新數(shù)據(jù)庫中的對象。
msdb數(shù)據(jù)庫的核心角色是存儲SQL Server代理執(zhí)行的任務(wù)和調(diào)度計(jì)劃。
tempdb數(shù)據(jù)庫是SQL Server通用“擦除”區(qū)域。 永遠(yuǎn)不要再tempdb里創(chuàng)建任何需要永久存儲的對象,因?yàn)閷?shí)例重啟時,將丟失存儲在tempdb中的全部數(shù)據(jù)。
當(dāng)啟用復(fù)制特性時,distribution數(shù)據(jù)庫將在分布設(shè)備上被創(chuàng)建。
在數(shù)據(jù)庫里創(chuàng)建的對象通常指的是數(shù)據(jù)庫的架構(gòu)(Schema)。
用于定義數(shù)據(jù)庫、存儲組件的元素統(tǒng)稱為數(shù)據(jù)庫結(jié)構(gòu)。
從物理角度看,SQL Server數(shù)據(jù)庫是操作系統(tǒng)上的一些文件;從邏輯角度看,則是用來對數(shù)據(jù)庫中的文件進(jìn)行分組。
支持SQL Server數(shù)據(jù)庫最常用的文件類型是數(shù)據(jù)文件和事務(wù)日志文件。這些文件的擴(kuò)展名,主要的文件.mdf、輔助的文件.ndf、事務(wù)日志文件.ldf。
數(shù)據(jù)文件和事務(wù)日志文件的幾個屬性:初始文件大小,最大大小,物理文件名,文件增長因子。
SQL Server使用8KB大小的稱為“頁”的存儲段初始化每個文件的內(nèi)容。每個頁,有一個指定的結(jié)構(gòu)供SQL Server存儲和接收數(shù)據(jù)。
8個頁組成一個擴(kuò)展。 64KB的塊,稱為擴(kuò)展。擴(kuò)展定義SQL Server存儲引擎用來讀/寫數(shù)據(jù)的最大粒度I/O塊。
文件組(filegroup),除了擁有一個操作系統(tǒng)文件集的名稱外,沒有任何其他的東西。
可以創(chuàng)建三種類型的文件組:Data(數(shù)據(jù))、Full-text(全文)、FILESTREAM(文件流)。
除非使用分區(qū)功能,否則表和索引保存的數(shù)據(jù)不能分散到文件組。
創(chuàng)建文件時,可以設(shè)置兩個可選屬性:PRIMARY和DEFAULT。 每個數(shù)據(jù)庫只能有一個PRIMARY或DEFAULT文件組。指定為PRIMARY的數(shù)據(jù)庫文件組包含數(shù)據(jù)庫相關(guān)的所有系統(tǒng)對象。
全文文件組,又稱全文目錄。
FILESTREAM文件組是為存儲FILESTREAM數(shù)據(jù)指定的文件組。
FILESTREAM和數(shù)據(jù)庫鏡像、數(shù)據(jù)庫快照不兼容。
創(chuàng)建數(shù)據(jù)庫的語法。
CREATE DATABASE database_name
[ ON
[PRIMARY]
[
[COLLATE collation_name]
[WITH
]
[;]
成功實(shí)現(xiàn)的實(shí)例:
啟動SSMS,單擊工具欄上的“新建查詢”,輸入以下代碼:
CREATE DATABASE SQL2012SBS ON PRIMARY (NAME = N'SQL2012SBS', FILENAME = N'D:\SQL2012SBS.mdf', SIZE = 5MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10%), FILEGROUP FG1 DEFAULT ( NAME = N'SQL2012SBSFG1_Dat1', FILENAME = N'D:\SQL2012SBS_1.ndf', SIZE = 2MB, MAXSIZE = UNLIMITED, FILEGROWTH = 2MB), (NAME = N'SQL2012SBSFG1_Dat2', FILENAME = N'D:\SQL2012SBS_2.ndf', SIZE = 2MB, MAXSIZE = UNLIMITED, FILEGROWTH = 2MB) LOG ON (NAME = N'SQL2012SBS_Log', FILENAME = N'D:\SQL2012SBS.1df', SIZE = 2MB, MAXSIZE = UNLIMITED, FILEGROWTH = 10MB) GO
保存,執(zhí)行。刷新對象資源管理器。在“數(shù)據(jù)庫”目錄下出現(xiàn)SQL2012SBS數(shù)據(jù)庫。
遷移數(shù)據(jù)庫:分離(從實(shí)例刪除數(shù)據(jù)庫項(xiàng),關(guān)閉數(shù)據(jù)庫關(guān)聯(lián)的所有文件并釋放所有操作系統(tǒng)鎖),附加(在實(shí)例中創(chuàng)建一個新數(shù)據(jù)庫并打開數(shù)據(jù)庫關(guān)聯(lián)的所有文件)。
如果在相同服務(wù)器的不同目錄間移動文件,可以使用ALTER DATABASE命令。
不能分離數(shù)據(jù)庫的情況:
(1)數(shù)據(jù)庫正在參與復(fù)制
(2)數(shù)據(jù)庫正在參與數(shù)據(jù)庫鏡像
(3)針對數(shù)據(jù)庫的數(shù)據(jù)庫快照已經(jīng)被創(chuàng)建
(4)數(shù)據(jù)庫處于可疑模式
(5)數(shù)據(jù)庫是一個系統(tǒng)數(shù)據(jù)庫