① 怎樣查看SQLServer2005鏡像資料庫的數據
鏡像資料庫是norecovery狀態,所以是看不了數據的,除非切斷鏡像將其恢復
不過鏡像是實時同步的,所以兩邊的數據是一模一樣的
② Oracle與SQLServer資料庫鏡像對比
資料庫鏡像是將資料庫事務處理從一個資料庫移動到不同環境中的另一個資料庫中 鏡像的拷貝是一個備用的拷貝 不能直接訪問 它只用在錯誤恢復的情況下 Oracle資料庫與MSSQL數據操作上有很大的不同 但是 在鏡像操作方面有類比的地方 這篇文章關於MSSQL資料庫鏡像在Oracle資料庫中是如何實現的 它們之間存在哪些差異呢
首先 微軟SQL資料庫中的鏡像資料庫類似於Oracle資料庫中的備用資料庫 我說的只是類似 確切的說 我們需要考慮不同資料庫在自己體系中的差異 MSSQL作為一個實例來操作 一個實例包含幾個資料庫 你首先要登錄一個實例 然後選擇哪個資料庫作用於該實例 而在Oracle資料庫中 簡單模式(忽略RAC)就只有一個資料庫與一個實例相聯系 因此 可以這么說 在Oracle資料庫中 備份資料庫(standby database)就完全是主資料庫的快照 而在MSSQL中 鏡像資料庫僅僅是選擇的那個資料庫的備份 但沒有包括代理 登錄 任務(這些或者更多的資料庫項目需要單獨在資料庫鏡像上創建或者復制)這些外部數據項
在伺服器數量上 Oracle的主資料庫和備用資料庫配置最小需要 台 在MSSQL中 最小數據是 個或 個 根據你所選擇的高可用性 高安全性 高性能方式所決定
高可用性方式 這個操作模式選項允許你在兩台伺服器上同步事務寫入 並支持自動錯誤恢復 要使用這個選項 你必須還要使用一個證人伺服器
高保護方式 這個選項可以讓你在兩台伺服器上同步事物寫入 但是錯誤恢復是手工的 因為自動的錯誤恢復不是這個選項的一部分 所以也不會用到證人伺服器
高性能方式 這個選項不關心兩台伺服器上的寫入是否是同步的 因此在性能上有所提高 當使用這個選項的時候 你只能假設鏡像伺服器上的所有事情都是成功完成 這個選項只允許手工的錯誤恢復 因此不會用到證人伺服器
為了保證故障自動恢復 就需要有第三台伺服器 可以稱之為目擊者(另外兩個就是主資料庫和鏡像資料庫) 你可以將這個目擊者當作群集中的一個成員 它實現了 比 投票的能力 當我的一個組件不可達 並因此需要進行錯誤恢復的時候 證人伺服器只有在你想實現自動錯誤恢復的時候才需要用到
在Oracle數據的一個事務中 日誌緩沖器在廢數據寫入數據文件(忽略write ahead情況)前被刷新或者寫入到redo日誌中 這種刷新或者寫入到redo日誌的行為是有必要的 如像實例失敗(使用前滾和回滾恢復過程)這樣的事件發生時 MSSQL也承認將日誌緩沖器寫入到磁碟的重要性 不過這里稱之為硬化(hardening) 首先將事務日誌緩沖器的信息寫入到磁碟或者硬化 接著將日誌記錄塊發送到鏡像資料庫中 鏡像資料庫接收到該日誌記錄塊後 將之存入到某個緩沖器中 隨後依次硬化該日誌記錄塊
當數據發生變化時 MSSQL資料庫如何保持主資料庫和鏡像資料庫的一致性呢?
Oracle用戶非常熟悉SCN 而MSSQL用戶通過使用mirroring_failover_lsn機制(粗略來講就是一個日誌序列號) MSSQL與Oracle不同 MSSQL將事務分離(兩個事務在兩個機器上) 而不是一個分布式事務(在自身提交前需要遠程等待提交)
另外一個相似點 但稍微有些畸變的反射就是redo日誌和事務日誌 在Oracle中 完成的redo日誌將被發送到遠程的伺服器中 將完成的redo日誌應用到備份數據中去 在MSSQL中 事務日誌沒有被傳輸 但是就像我以上提到的 日誌緩沖器數據發送到網路上 這就導致另外一個鏡像反射 備份和恢復模式
在Oracle中 當你處於歸檔模式或者非歸檔模式的時候 這些操作是內定的 如果歸檔redo日誌被傳輸或者提交到一個遠程的伺服器 那麼主資料庫明顯就是在歸檔模式下 那些文件就是這么產生的 運行在這種模式下 允許有少量的數據丟失 因為在發生故障(無論什麼樣的故障)前 恢復能夠在任意一個點上執行 在MSSQL中是類似的 但是有三種狀態需要選擇
《SQL Server聯機叢書》 像許多其它的在線資源一樣 講述了在使用MSSQL時 種恢復模式的不同點 快速的比較有 MSSQL完整模式對應於Oracle中的歸檔模式 簡單模式對應於非歸檔模式 bulk模式與使用直接路徑插入 添加提示 或者與nologging模式操作類似
根據以上三種模式(這三種模式很容易轉換 不需要關機或者重啟)的描述以及日誌緩沖器和歸檔redo日誌的討論中 很容易斷定在MSSQL中進行資料庫的鏡像需要將數據的回復模式設置成完全模式(full model) 簡單模式(Simple model)或許也能行 但是這種模式下維持事務日誌中的小部分數據 在備份中 如果在日誌被刪節了 整個鏡像過程也就破環了 因為當你在將事務發送到鏡像資料庫中的時候 如果日誌被刪節了 這個過程就不能完成
說到資料庫被破壞該怎麼辦呢?
這正是鏡像(或者說備份)的主要目的 當主資料庫斷開或者說遇到故障時候我們希望系統能回到鏡像前或者備份前的狀況去 這如何才能實現呢?我們能自動實現或者手動實現 想實現這些 需要一些已經完成的設置 在MSSQL中 自動故障恢復 回到原來狀態需要在HA模式 事務安全是full 數據傳輸是同步 有目擊伺服器的情況下 這種模式下運行還需要使用企業版的資料庫系統 高安全性和高性能在標准版的情況下也能實現
MSSQL還有其它版本的選擇 但是這些並不如Oracle的反射 干凈 這些版本包括 Developer Workgroup 和 SQL Express 舉個例子 目擊伺服器能夠是任何的版本 但是如果你想給鏡像伺服器做一個快照 那麼你就需要企業或者開發版的了
在設置夥伴(partner 通常有主資料庫和鏡像資料庫組成)過程中 他們的恢復狀態開始起作用 通過使用相同的名字 鏡像在遠程/鏡像伺服器上建立(使用配置資料庫鏡像安全向導是最簡單的方法)起來 並且鏡像資料庫被設置成NORECOVERY 通常它是恢復(recovering)狀態的 在MSSQL中 恢復資料庫是沒有的 因此沒有進行上述的設置 是不能被其他用戶當作只讀資料庫來使用的
為了避免這個中缺陷 你可以給鏡像做一個快照 使得該 影像 對用戶可見 正如我上述所提到的那樣 這需要你的資料庫版本是企業(或者開發)版 這就意味著用戶需要有快照資料庫的知識 知道如何進入存儲它 如何告訴應用程序使用哪個資料庫 慣例上來說 配置文件使用的 NET環境 你能建立一個主資料庫和一個故障回滾的輔資料庫 如果在Oracle中配置過備份資料庫 你就會覺得這很類似
結論
這篇文章內容包括按照Oracle的方式 如何更好的理解在另一種主流的RDBMS上執行鏡像或者復制 試著學習和解釋你的RDBMS如何工作的 從另外一種模式來得到你的注意有助於你搞清楚你當前資料庫系統運行原理 舉個例子 我發現非常有實用價值的是Oracle歸檔模式和MSSQL三種恢復模式之間的關系 使用在MSSQL中的一些術語(夥伴 主資料庫 目擊 鏡像)有助於你構成和識別Oracle中執行資料庫鏡像的操作
lishixin/Article/program/Oracle/201311/18083
③ sqlserver2008怎麼查看鏡像端點
方法/步驟
1
在要做鏡像的資料庫之上右鍵單擊,選擇備份
2
備份類型為完版整,注意記錄備份路徑權
3
重復以上操作,此次備份類型為事務日誌
4
將剛剛備份的文件拷貝到另外一台備份的資料庫內
5
右鍵資料庫,選擇恢復資料庫
6
選擇源設備
7
選擇完整備份的資料庫
8
單擊確定
9
勾選剛剛恢復的資料庫
10
點擊選項,勾選不對資料庫執行任何操作
11
右鍵選擇剛剛恢復的資料庫,選擇還原任務日誌
12
勾選從磁碟恢復,選擇對應的文件
13
同樣選擇不對資料庫執行任何操作
14
可看到正在同步和還原
右鍵剛剛的資料庫選擇鏡像
點擊配置安全
勾選使用見證伺服器
主伺服器
選擇鏡像伺服器
選擇見證伺服器
設置伺服器連接用戶名
點擊完成結束
點擊開始驚喜
鏡像結束
④ 關於sql server 資料庫鏡像的幾個問題
1.SQL Server 節點1 Tonym 和 Tonym02必須位於同一域中,並且SQL1 和SQL2都要使用域賬戶啟動SQL Server服務和SQLServerAgent服務。
保證同一個域帳戶對兩個服務都有許可權.
2.在企業管理器中刪掉local連接,應用Server Name注冊本地伺服器 Tonym,輔助伺服器Tonym02
3.在SQL1 伺服器上新建共享文件夾NorthwindBackupShare01,賦予啟動SQL Server賬戶的Full 許可權。在SQL1伺服器上新建文件夾 ReceiveSQL2Logs,用來在進行資料庫角色轉換時接收從SQL2上傳送過來的日誌。 在SQL2 伺服器上新建共享文件夾NorthwindBackupShare02,賦予啟動SQL Server賬戶的Full 許可權。在SQL2伺服器上新建文件夾 ReceiveSQL1Logs,用來接收資料庫SQL1上傳送過來的日誌。
4.設置想要應用Log Shipping的伺服器為完全恢復模式。
5.在Database Maintenance Plans上右鍵 New maintenance Plan,選擇進行LogShipping 的資料庫,每次只允許選擇一個資料庫。
6.去掉Back up the database as part of the maintenance plan,保證維護計劃唯一性(推薦)
7.指定資料庫日誌備份路徑。
8.指定存放日誌文件的共享文件夾。
8.添加目的資料庫。
Server Name 為目的名稱
Transaction Log Destination Directory 填寫從SQL1上傳送到SQL2上日誌文件的接收路徑.
Destination Database 選擇新建資料庫(指定數據文件,日誌文件存放路徑)或者應用已存在的資料庫
Database Load State
No recovery mode:使用者將無法進行資料查詢,只供備份使用.
Standby mode :設置成只讀模式,只要不是進行日誌回存的時候,都可以進行查詢。
Terminate users in database(Recommended) :在回存資料庫或是交易日誌文件時,回存程序將是資料庫唯一的使用者。
Allow database to assume primary role:允許主要伺服器與次要伺服器之間進行角色轉換。
選擇進行角色轉換後新主要伺服器的共享目錄路徑。
o
9.Initialize the Destination Database: 挑選最近一次的資料或是建立一份新的備份資料。對大型資料庫,使用即有備份比較有效率。但是要保證從備份之後的日誌都存在於主伺服器上的日誌共享目錄中。
10.設定主伺服器上日誌備份頻率。
11.設置輔助伺服器復制備份日誌和載入備份日誌的頻率,以及日誌文件在輔助伺服器上的留存時間。
12.針對日誌備份及日誌回存工作,設定合理的延遲時間,當超過臨界時間時,日誌傳送監控程序對話框會相應一個警告信息。
13.指定監控伺服器,應該指定獨立於主伺服器,輔助伺服器的第三台伺服器作為監控伺服器,或者指定輔助伺服器為監控伺服器。
14.點擊Next,指定維護計劃的名稱。Finish,開始進行Log shipping 的創建。
⑤ 如何啟用資料庫鏡像我的SQL Server 2005 產品是:Microsoft SQL Server Developer Edition(簡體中文)
需要在重新啟動SQL的服務時添加跟蹤標記
先net stop "MSSQLSERVER"
再net start "MSSQLSERVER" /T1400
然後把隨之停掉的AGENT服務也啟動一下
但每次重啟服務時都必須重做一遍,因此方便起見最好是打SP1以上補丁
⑥ 怎樣安裝SQL server ISO鏡像文件
我們需要使用虛擬光碟機daemon
tool,安裝鏡像文件的特別不錯的軟體。打開->添加鏡像文件->載入(一般會自動載入)。
雙擊映像目錄下的文件,會彈出安裝窗口,直接點擊運行
1.進入安裝列表後,選擇左側的安裝目錄,點擊全新sql
server獨立安裝
安裝過程,我們的原則是能默認的都默認,方便以後使用時更改
功能選擇界面,建議功能全選,其實也沒完全用不到的功能。
實例目錄,id以及命名,這里依舊選擇默認
伺服器設置,還是默認,不建議初學者修改
sql
server管理員必須填寫,選擇當前用戶即可
控制器名稱,直接默認為空,工作目錄根據自己情況而定,由於使用時個人需要多次更改,還是選擇默認
下一步之後就進入了安裝,安裝過程較慢,大約30-60分鍾,根據電腦配置而定
恭喜,安裝成功了
在開始菜單欄找到點擊運行就可以了
最後無關緊要的一步,彈出虛擬光碟機就可以了
⑦ 如何監控sqlserver 鏡像狀態報警
SQLServer2005以上版本提供了一個資料庫鏡像監視器,不過打開它的方法比較特別。有了圖形界面以後,SQLServer資料庫鏡像的維護難度跟成本大大降低了。
1.首先,打開SMS,在任意一個資料庫上面點右鍵,任務,啟動資料庫鏡像監視器。
2.點擊注冊鏡像資料庫,在伺服器實例下拉菜單中選擇鏡像資料庫的實例名,如果沒有,可以直接點連接,然後在鏈接到伺服器窗口中進行設置,如下圖所示:
3.設置好後點確定就出現如下窗口所示了:
4. 點擊警告選項卡,可以設置對警告的閾值進行設置,如下圖所示:
5.在步驟3的窗口上點擊歷史記錄,就可以查看SQLServer資料庫鏡像運行的歷史記錄了。如下圖所示:
⑧ MS SQL SERVER鏡像的問題
鏡像資料庫 "house" 包含的事務日誌數據不足,無法保留主體資料庫的日誌備份鏈。如果沒有從主體資料庫進行日誌備份或者沒有在鏡像資料庫上還原日誌備份,則可能會出現這種情況。(Microsoft SQL Server, 錯誤: 1478)
出現這個錯誤是由於沒有備份和恢復事務日誌
⑨ SQL Server 2008 資料庫鏡像部署實例之一 資料庫准備
一、目標
利用Sql Server 2008 enterprise X64,建立 非同步 (高性能)鏡像資料庫,同時建立見證伺服器實現自動故障轉移。
二、前提條件、限制和建議
2.1 、夥伴雙方(主體伺服器和鏡像伺服器)及見證伺服器必須使用 相同版本 的Sql Server
2.2 、如使用見證伺服器,擇須確保其系統上安裝 Sql Server 2005 或更高 版本
2.3 、在鏡像伺服器上創建鏡像資料庫時,確保制定 相同 的資料庫名稱WITH NOREBOVORY來還原主題資料庫備份。另外,還必須通過 WITH NORECOVERY 應用在該備份執行後創建的所有日誌備份。如果資料庫鏡像已經停止,則必須將對主體資料庫執行的所有後續日誌備份應用到鏡像資料庫中,然後才可以重新啟動鏡像。
2.4 、跨資料庫事務和分布式事務均不支持資料庫鏡像
2.5 、鏡像的資料庫 路徑 盡量與主體服務相同,如果主體伺服器CPU利用率在50%以上,擇不建議配置自動故障轉移
2.6 、建議配置高效穩定的網路環境
三、設置概述
3.1 、確保所有資料庫用戶在鏡像伺服器上都有登錄名
3.2 、在向另一個伺服器實例提供資料庫之前,您必須在該伺服器實例上建立資料庫用於新伺服器實例時所需的環境
3.3 、使用 NORECOVERY 還原最近的主體資料庫完整備份,以創建鏡像資料庫。WINgwiT確保執行備份時主體資料庫已使用 完整 恢復模式。鏡像資料庫和主體資料庫名稱必須相同,並且它們在資料庫鏡像會話中不能被重命名。
3.4 、設置安全性並啟動資料庫鏡像會話。可以使用 Transact-SQL 或資料庫鏡像向導來設置鏡像。
3.5 、(可選)將見證伺服器添加到會話。
四、在Windows Server 2008 R2上安裝Sql Server 2008 enterprise X64
4.1 、SQL Server 2008 需要.NET 3.5支持,所以安裝之前需要安裝.NET3.5。在伺服器管理的功能單元中,添加.NET Framework 3.5.1功能
4.2 、安裝時選擇全新SQL Server獨立安裝
4.3 、選定功能組件,注意安裝目錄與其他節點保持一致
4.4 、使用默認實例名稱,或者與其他節點相同
4.5 、設定服務啟動賬戶,這里配置所有,服務均使用 域管理 啟動
4.6 、設置混合身份登錄、制定SQL Server管理員
4.7 、點擊下一步,等待安裝完成。在其他節點按照同樣方式安裝SQL Server
五、配置資料庫鏡像前的資料庫准備
5.1 、確認資料庫使用了 完整 恢復模式:打開SQL Server Management,在VirtualManagerDB資料庫(將要鏡像的資料庫)上點擊右鍵選擇屬性,定位到選項頁,將恢復模式改為「完整」
5.2 、備份主體資料庫:在VirtualManagerDB資料庫上點擊右鍵——任務——備份,備份類型選擇完整
5.3 、將備份文件拷貝到鏡像節點,執行還原。右鍵點擊資料庫,選擇還原資料庫
選定備份文件,寫入還原資料庫名稱,注意此資料庫名稱必須與主體伺服器資料庫名稱一致。即VirtualManagerDB。
點擊選項頁,勾選覆蓋現有資料庫。選擇NORECOVERY模式
5.4 、進行 完整日誌 備份,執行backup LOG VirtualManagerDB to Disk = 'c:ackupvlogback.bak'
5.5 、同樣,事務日誌備份在鏡像資料庫上還原。鏡像資料庫上,點擊右鍵——任務——還原——事務日誌
5.6 、在還原選項中選中NORECOVERY,執行還原操作。
lishixin/Article/program/SQLServer/201404/30298
⑩ SQL SERVER 2008做鏡像備份
小系統每天做下資料庫和文件備份就好了,如果是大系統SQLSERVER的鏡像是影響系統性能的,回什麼雙活容答災軟體基本是騙錢的,一個幾十個G的高並發的資料庫你用個軟體來實現2個文件的同步?你難道每秒復制幾十個G的東西到另外一個伺服器上去,這是宇宙級伺服器嗎?
SQL的資料庫鏡像其實道理很簡單,你建好鏡像後,你會發現2個庫里的表裡都會多一個欄位,這個欄位的值都會很長,其實就是一個唯一編碼,資料庫根據這個唯一編碼來判斷另一個庫是否存在了這個數據,不存在就新增,存在就根據這個欄位來UPDATE。
對於應用層怎麼切換,最好是人為切換,當然你也可以資料庫連接打開失敗就切換,不過這樣畢竟會有以外不穩定,你只要保存數據盡可能不丟失就行了。