摘要
本文解釋了 Microsoft® SQL Server
;
數據庫和 Oracle 數據庫的結構區別
本文是給那些准備數據庫以遷移到 SQL Server
的 Oracle 專業人員使用的
數據庫定義 在 Oracle
數據庫是指整個 Oracle RDBMS 環境
它包括以下組件
Oracle 數據庫進程和緩沖(實例)
SYSTEM 表空間包含一個集中系統類目
它可以由一個或多個數據文件構成
其它由數據庫管理員 (DBA)(可選)定義的表空間
每個都由一個或多個數據文件構成
兩個以上的聯機恢復日志
歸檔恢復日志(可選)
其它文件(控制文件
Init
ora
Config
ora 等)
Microsoft® SQL Server
;
數據庫提供了數據
應用程序和安全機制的邏輯分隔
一個 SQL Server 安裝(實例)可以支持多個數據庫
用 SQL Server 構建的應用程序可以用數據庫來邏輯分隔業務功能
一台計算機上可以有多個 SQL Server 實例
每個 SQL Server 實例可以有多個數據庫
每個 SQL Server 數據庫可以支持文件組
它提供了物理分布數據位置的能力
一個 SQL Server 文件組可以對含有單個 SQL Server 數據庫數據的操作系統文件進行分類
以簡化數據庫管理任務
比如備份
文件組是 SQL Server 數據庫的一個屬性
不能包含多於一個數據庫的操作系統文件
但一個數據庫可以包含一個以上的文件組
創建數據庫後
可以將文件組添加到數據庫
如果您的浏覽器不支持內嵌框
請單擊此處在單獨的頁中查看
Microsoft SQL Server 還會默認安裝以下數據庫
model 數據庫是所有新建用戶數據庫的模板 tempdb 數據庫類似於 Oracle 臨時表空間
用於臨時工作存儲和排序操作
與 Oracle 臨時表空間不同
用戶可以創建臨時的表
當用戶登出時
這個表會被自動刪除
msdb 數據庫支持 SQL Server 代理及其安排的作業
警報和復制信息
提供的 pubs 和 Northwind 數據庫是培訓示例數據庫
有關默認數據庫的詳細信息
請參見 SQL Server 聯機圖書
數據庫系統類目 每個 Oracle 數據庫都在一個中央系統類目和數據字典上運行
它位於 SYSTEM 表空間
每個 Microsoft SQL Server
數據庫都維護自己的系統類目
它含有以下信息
數據對象(數據表
索引
存儲過程
視圖
觸發器等)
約束
用戶和權限
用戶定義的數據類型
復制定義
數據庫使用的文件
SQL Server 的 master 數據庫中還包含中央系統類目
它含有系統類目和一些單個數據庫的信息
比如
每個數據庫的數據庫名稱和主文件位置
SQL Server 登錄帳戶
系統消息
數據庫配置值
遠程和/或鏈接的服務器
當前活動信息
系統存儲過程
同 Oracle 的 SYSTEM 表空間類似
SQL Server 必須有 master 數據庫才能訪問其它數據庫
因此
每次對數據庫進行重大修改後都應備份 master 數據庫
這對防止發生故障很重要
數據庫管理員也可鏡像構成 master 數據庫的所有文件
有關 master 數據庫中和所有其它數據庫的系統數據表的詳細列表
請參見 SQL Server 聯機圖書的
系統數據表
物理和邏輯存儲結構 Oracle RDBMS 由表空間組成
它又組成了數據文件
表空間數據文件被格式化成稱作區塊的內部單元
區塊大小由 DBA 在首次創建 Oracle 數據庫時設定
在 Oracle 表空間中創建對象時
用戶可以用稱作擴展盤區的單位指定其空間(初始擴展盤區
下一擴展盤區
最小擴展盤區和最大擴展盤區)
如果沒有明確指定擴展盤區大小
則創建默認擴展盤區
Oracle 擴展盤區的大小各不相同
而且必須含有至少
個相鄰的區塊鏈
Microsoft SQL Server
在數據庫級別使用文件組來控制表和索引的物理位置
文件組是一個或多個文件的邏輯容器
文件組中的數據按比例填充到屬於該文件組的所有文件中
如果未定義且未使用文件組
數據庫對象則放到創建數據庫時隱式創建的一個默認文件組中
文件組允許您
將大數據表分布到多個文件
從而提高 I/O 吞吐量
存放與相應的表不同的文件索引
這也能提高 I/O 吞吐量和磁盤並發性能
將 text
ntext 和 image 卷(大對象)存儲到獨立於數據表的單獨文件
將數據庫對象置於特定的磁盤卷軸
備份並恢復單個數據表和文件組中的一組表
SQL Server 將文件格式化成稱作頁的內部單位
頁的大小是固定的
字節(
KB)
頁被組織成擴展盤區
擴展盤區的固定大小是
個相鄰的頁
在 SQL Server 數據庫中創建表或索引時
它會在一個擴展盤區內被自動分配一個頁
當表或索引變大時
SQL Server 會自動為它分配屬於它的擴展盤區
與 Oracle 分配整個擴展盤區的方法相比
這種做法可以更有效地存儲較小的表和索引
詳細信息請參見 SQL Server 聯機圖書的
物理數據庫結構
數據條帶化 安裝的大多數 Microsoft SQL Server 不需要 Oracle 類型的數據段
SQL Server 的方法是
它能用基於硬件的 RAID 或基於軟件的 RAID(可從 Windows NT 磁盤管理實用程序或第三方獲得)更有效地分布數據(或叫做數據條帶化)
利用 RAID
您可以建立含有多個磁盤驅動器(但顯示為一個邏輯磁盤)的數據條帶集
如果在這個條帶集上創建數據庫文件
磁盤子系統會承擔跨多個磁盤分配 I/O 負載的任務
建議管理員用 RAID 將數據分布到多個物理磁盤
建議 SQL Server 采用的 RAID 配置是 RAID
(鏡像)或 RAID
(有額外奇偶校驗啟動器的條帶集做備份)
同樣也推薦使用 RAID
(帶奇偶校驗的條帶集鏡像)
但它的價格比上面兩個選擇高
條帶集可以很好地分布對數據庫文件的隨機 I/O 操作
如果不能選擇 RAID
那麼文件組是一個很有吸引力的替代方法
它提供與 RAID 相同的一些優點
此外
對於那些非常大的數據庫(跨多個物理 RAID 陣列)
文件組是一個用可控方式將 I/O 分布到多個 RAID 陣列的好方法
連續 I/O 必須優化事務日志文件
而且該文件必須有單點故障保護
因此
建議事務日志使用 RAID
(鏡像)
遷移時
這個驅動器的大小至少應該與 Oracle 聯機恢復日志和 Oracle 回滾數據段表空間的大小總和相等
請創建一個或多個占據邏輯盤上定義的全部空間的日志文件
與文件組中存儲的數據不同
事務日志項總是按先後順序寫入
並不按比例填充
有關 RAID 的詳細信息
請參見 SQL Server 聯機圖書
Windows NT Server 文檔資料和 Microsoft Windows NT Resource Kit
事務日志和自動恢復 Oracle RDBMS 在每次啟動時執行自動恢復
它檢查表空間文件的內容與聯機恢復日志文件的內容是否一致
如果不一致
Oracle 會將聯機恢復文件的內容應用於表空間文件(前滾)
然後刪除回滾數據段中發現的所有未授權的事務(回滾)
如果 Oracle 無法從聯機恢復日志文件獲得所需的信息
它會到歸檔恢復日志文件中查找
Microsoft SQL Server
也能執行自動數據恢復
它在每次啟動時檢查系統中的每個數據庫
它首先檢查 master 數據庫
並啟動恢復系統中所有其它數據庫的線程
自動恢復機制對每個 SQL Server 數據庫檢查事務日志
如果事務日志中有任何未授權的事務
則復原事務
然後恢復機制檢查事務日志中那些尚未寫入數據庫的授權事務
如果找到這樣的事務
它就重新執行事務(前滾)
每個 SQL Server 事務日志都具有 Oracle 回滾數據段和 Oracle 聯機恢復日志的組合功能
每個數據庫都有自己的事務日志
它記錄了數據庫的所有更改
並且由該數據庫的所有用戶共享
當某項事務開始
數據被修改的時候
日志中記錄下一個 BEGIN TRANSACTION 事件(和修改事件)
在自動恢復期間要使用這個事件來判斷事務的起始點
接收到每個數據修改聲明時
更改情況先寫入事務日志
然後再寫入數據庫本身
SQL Server 有一個自動檢查點機制
可以確保已完成的事務定期從 SQL Server 磁盤高速緩存寫入事務日志文件
檢查點將自上一個檢查點以來已被修改的緩存頁寫入數據庫
用檢查點將這些緩存頁(也叫髒頁)寫入數據庫可確保所有已完成的事務都被寫入磁盤
這個過程縮短了恢復系統故障(比如斷電)的時間
這個設置是可以更改的
請使用 SQL Server 企業管理器或 Transact
SQL sp_configure 系統存儲過程來修改恢復間隔設置
備份和恢復數據 Microsoft SQL Server
提供了幾個數據備份選項
數據庫全部備份 數據庫備份將制作整個數據庫的拷貝
並不是所有頁都被復制到備份集
而只是復制那些實際含有數據的頁
數據頁和事務日志頁都被復制到備份集
數據庫備份集用於重新創建 BACKUP 語句完成時的數據庫
如果只存在數據庫的數據庫備份
它只能恢復到服務器或數據庫故障發生之前的上一次數據庫備份時的數據庫原貌
要進行數據庫全部備份
請使用 BACKUP DATABASE 語句或備份向導
差異備份
完成數據庫全部備份後
請定期用 BACKUP DATABASE WITH DIFFERENTIAL 或備份向導只備份那些已經更改的數據和索引頁
事務日志備份 Microsoft SQL Server 中的事務日志是與單個數據庫關聯的
事務日志文件會一直
From:http://tw.wingwit.com/Article/program/Oracle/201311/16857.html