轉:更改SQLServer實例默認字符集

需求html

      安裝數據庫時,將字符集安裝成了「SQL_Latin1_General_CP1_CI_AS」,如今須要將其更改成「Chinese_PRC_CI_AS」。數據庫

 

 

 

方法安全

           從新生成系統數據庫 ,而後還原配置信息。服務器

 

侷限spa

從新生成 master、model、msdb 和 tempdb 系統數據庫時,將刪除這些數據庫,而後在其原位置從新建立。 若是在從新生成語句中指定了新排序規則,則將使用該排序規則設置建立系統數據庫。 用戶對這些數據庫所作的全部修改都會丟失。 例如,您在 master 數據庫中的用戶定義對象、在 msdb 中的預約做業或在 model 數據庫中對默認數據庫設置的更改都會丟失。3d

 

前期準備日誌

在從新生成系統數據庫以前執行下列任務,以確保能夠將系統數據庫還原至它們的當前設置。htm

  1. 記錄全部服務器範圍的配置值。
    SELECT * FROM sys.configurations;
  2. 記錄全部應用到 SQL Server 實例和當前排序規則的 Service Pack 和修補程序。 從新生成系統數據庫後必須從新應用這些更新。
    SELECT
    SERVERPROPERTY('ProductVersion ') AS ProductVersion,
    SERVERPROPERTY('ProductLevel') AS ProductLevel,
    SERVERPROPERTY('ResourceVersion') AS ResourceVersion,
    SERVERPROPERTY('ResourceLastUpdateDateTime') AS ResourceLastUpdateDateTime,
    SERVERPROPERTY('Collation') AS Collation;
  1. 記錄系統數據庫的全部數據文件和日誌文件的當前位置。 從新生成系統數據庫會將全部系統數據庫安裝到其原位置。 若是已將系統數據庫數據文件或日誌文件移動到其餘位置,則必須再次移動這些文件。
    SELECT name, physical_name AS current_file_location
    FROM sys.master_files
    WHERE database_id IN (DB_ID('master'), DB_ID('model'), DB_ID('msdb'), DB_ID('tempdb'));
  1. 若是將 SQL Server 的實例配置爲複製分發服務器,請找到該分發數據庫的當前備份。
  2. 確保您有從新生成系統數據庫的相應權限。 必須是 sysadmin 固定服務器角色的成員才能執行此操做。 有關詳細信息,請參閱服務器級別角色
  1. 將原數據庫的賬號、JOB等與系統數據庫相關的信息所有備份起來(能夠先生成相應的腳本),分離掉全部用戶庫。

 

從新生成系統數據庫對象

運行下面的命令就可重建數據庫(根據您的系統,須要作相應的修改 ;D:/Setup 是數據庫安裝文件所在的路徑)blog

D:/Setup /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS=Administrators /SAPWD=XXXX/SQLCOLLATION=Chinese_PRC_CI_AS

參數說明:

參數名稱

說明

/QUIET 或 /Q

指定在沒有任何用戶界面的狀況下運行安裝程序。

/ACTION=REBUILDDATABASE

指定安裝程序將從新建立系統數據庫。

/INSTANCENAME=InstanceName

SQL Server 實例的名稱。 對於默認實例,請輸入 MSSQLSERVER

/SQLSYSADMINACCOUNTS=accounts

指定要添加到 sysadmin 固定服務器角色中的 Windows 組或單個賬戶。 指定多個賬戶時,請用空格將賬戶隔開。 例如,請輸入BUILTIN\Administrators MyDomain\MyUser 當您在賬戶名稱內指定包含空格的賬戶時,用雙引號將該賬戶引發來。 例如,輸入 NT AUTHORITY\SYSTEM

[ /SAPWD=StrongPassword ]

指定 SQL Server sa 賬戶的密碼。 若是實例使用混合身份驗證(SQL Server  Windows 身份驗證)模式,則此參數是必需的。

安全說明

安全說明

sa 賬戶是一個廣爲人知的 SQL Server 賬戶,而且常常成爲惡意用戶的攻擊目標。 所以,爲 sa 登陸名使用強密碼很是重要。

不要爲 Windows 身份驗證模式指定此參數。

[ /SQLCOLLATION=CollationName ]

指定新服務器級排序規則。 此參數可選。 若是沒有指定,則使用服務器的當前排序規則。

重要說明

重要提示

更改服務器級排序規則不會更改現有用戶數據庫的排序規則。 默認狀況下,全部新建立的用戶數據庫都將使用新排序規則。

有關詳細信息,請參閱設置或更改服務器排序規則

 

安裝程序完成後,將顯示以下信息,(你也能夠檢查 Summary.txt 日誌文件以驗證從新生成過程是否成功完成。 此文件位於 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs)。

 

檢查和修復

系統數據庫恢復完成後,先檢查一下字符集是否按要求恢復了:

字符集更改完成後,咱們還須要附加上用戶數據庫,將原來的賬號和JOB等信息以及配置信息作修復,還須要修復孤立賬號等。

 

附加說明

  若是您只須要更改某個用戶數據庫的字符集,很是簡單:

  --修改數據庫字符集

  alter database DBName collate Chinese_PRC_CI_AS

 

注意

    以上恢復是在SQLServer2008R2版本上面完成的,不一樣的版本您可能須要作一些修改,另外此方法存在必定的風險(主要是在重建數據庫階段),產品環境

最好仍是從新安裝數據庫。

原文地址:http://www.cnblogs.com/fygh/archive/2012/05/15/2501598.html

相關文章
相關標籤/搜索