程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> SqlServer數據庫 >> 關於SqlServer >> 重建SQL Server的master數據庫(二)

重建SQL Server的master數據庫(二)

編輯:關於SqlServer

問題

在此系列之前的文章裡,我們已經講了如何去重建master數據庫,我們采取了逐項列出重建master數據庫的步驟,在這系列的第三篇文章裡將會向你介紹怎樣在返回狀態前重建恢復SQL實例的過程。在這一篇幅中將向你介紹什麼是參與銷毀你的實例,不管你是否相信,這也就是重建真正所做的。我知道你在即將做這些時可能會覺得很難,但是當你在按快捷鍵F5的時候,你就會知道所執行的結果是什麼了。在第一次執行查詢之前,首先需要分離出你所有的用戶數據庫:“我們將怎麼做!?”

希望本篇的內容能解決你的疑惑。

解決方案

在開始之前,你將遵循以下幾個先決條件:

1、腳本已經在此系列文章的第一篇中已經創建好;

2、在初次使用時,需要安裝SQL Server。

任務 Steps 步驟 分離所有用戶數據庫 使用這一系列文章中第一篇的腳本文件0.sql文件,您首先需要分離所有的用戶數據庫。 當master數據庫重建的時候,它沒有任何用戶數據庫或對象的實例所對應的數據。在重建之前通過分離用戶數據庫,可以保證在任何因為在重建過程中文件發生了錯誤,都可以徹底的清楚重建的操作。執行0.sql 。 載入Media 在你准備重建時,在對應的版本和平台中載入Media就很有必要,這可以直接加載到DVD驅動器的工作站/服務器中,或者直接從本地的共享文件中進行復制。 打開命令提示符,並開始重建進程 打開命令提示符然後運行以下命令,而不需要通過你的實例來獲取對應的值: start /wait <path>setup.exe [/qb | /qn] {VS=<VSName>} INSTANCENAME=<InstanceName> REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=<Current_Domain_User_Password> SAPWD=<New_PassWord> SQLCOLLATION=<NewSystemCollation>

<path>=path就是SQL Server 2005中setup.exe文件中的物理路徑

[ / qb或/ qn ]開關= / qb在重建的過程中不能阻止錯誤並且在工作站中進行提醒。 /qn將阻止這些信息。我喜歡正在執行過程的時候,發生的這些事件,我建議這個世界上所有的其他數據庫管理員,無論是多麼了解或者精通它們,都應該這樣做,所以你可以看到在我的例子當中,在腳本的下面就選擇了/gb開關。

VS=如果這是一個群集實例,你就需要包括VS(虛擬服務器)參數,它是實例在被重建的時候所用到的,在非群集SQL Server的實例中,此參數可以省略。

INSTANCENAME =如果SQL Server的目標實例是已經命名過了,就可以省略,例如,如果正在重建的是一個默認的SQL Server實例。

REINSTALL=此參數控制的具體過程是通過setup.exe來安裝。由於這一系列的重建與改變SQL實例排序的規則有關系,我們指定的參數值SQL_Engine REBUILDDATABASE = 1。

ADMINPASSWord =參數對應於當前登錄運行重建進程的用戶。使用者必須有一個成員的SQL實例的系統管理員服務器角色。

SAPWD =一旦master數據庫被重建,在SQ登錄中sa對應的密碼。就像以前一樣,需要設置一個安全性的密碼。

SQLCOLLATION =由於這一系列的重建與改變SQL實例排序的規則有關系,我們特別感興趣,此參數為你所定義的排序規則。 例如

示例的總體說明:

當前登錄域 DBA1是sysadmin角色的成員,密碼為' DBA1pwd '

Setup.exe的路徑= C:TempMSSQL.1

新的sa密碼是'!grac3undrpre$$ure!'

新的SQL排序規則是' SQL_LATIN1_GENERAL_CP1_CI_AS ' 示例1 : 在SQL Server 2005中重建群集的實例,如下:

虛擬服務器名稱= CLUST1

實例名稱= NODE1 c:>start /wait C:tempMSSQL.1setup.exe /qb VS=CLUST1 INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=DBA1pwd SAPWD=!grac3undrpre$$ure! c:>start /wait C:tempMSSQL.1setup.exe /qb VS=CLUST1 INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWord=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_LATIN1_GENERAL_CP1_CI_AS示例2 :在SQL Server 2005中重建非群集的實例,如下:

實例名稱= NODE1 c:>start /wait C:tempMSSQL.1setup.exe /qb INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWORD=DBA1pwd SAPWD=!grac3undrpre$$ure! c:>start /wait C:tempMSSQL.1setup.exe /qb INSTANCENAME=NODE1 REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWord=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_LATIN1_GENERAL_CP1_CI_AS示例3 :重建非群集的默認SQL Server 2005實例: c:>start /wait C:tempMSSQL.1setup.exe /qb REINSTALL=SQL_Engine REBUILDDATABASE=1 ADMINPASSWord=DBA1pwd SAPWD=!grac3undrpre$$ure! SQLCOLLATION=SQL_LATIN1_GENERAL_CP1_CI_AS 備份系統數據庫 一旦重建完成後,就需要花時間來備份master,model和msdb數據庫。我強烈建議從重建開始,就不要覆蓋之前已經備份好的這些數據庫,直到你確信重建是成功的。 對所有的補丁和安全進行更新 在重建過程中,您的系統數據庫會返回到RTM版還尚未打補丁的層次。緊接著,把之前重建過程之前的服務包和安全補丁全更新上。 備份系統數據庫 有些人稱之為OverKill,我則稱它為一個DBA:再次備份這些系統的數據庫,因為在重建前還有一個打補丁的操作。 在這一系列篇幅的後續過程中重新建立所有實例的具體內容 在這一系列篇幅的後續,你將通過執行在第1部分內容裡所有的腳本創建的步驟中重建實例。最終的結果是你的實例會返回到在重建前的狀態,就是你原來所需要的服務器的排序規則。

總結

在這一系列的最後一篇文章中,將引導您重新附加您的用戶數據庫並重新創建在重建前就存在的基於用戶為基礎的內容,這就是對重建的過程進行概括。

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