更改SQLServer實例默認字符集


需求

      安裝數據庫時,將字符集安裝成了“SQL_Latin1_General_CP1_CI_AS”,現在需要將其更改為“Chinese_PRC_CI_AS”。

 

 

 

方法

           重新生成系統數據庫 ,然后還原配置信息。

 

局限

重新生成 master、model、msdb 和 tempdb 系統數據庫時,將刪除這些數據庫,然后在其原位置重新創建。 如果在重新生成語句中指定了新排序規則,則將使用該排序規則設置創建系統數據庫。 用戶對這些數據庫所做的所有修改都會丟失。 例如,您在 master 數據庫中的用戶定義對象、在 msdb 中的預定作業或在 model 數據庫中對默認數據庫設置的更改都會丟失。

 

前期准備

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

  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 是數據庫安裝文件所在的路徑)

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版本上面完成的,不同的版本您可能需要做一些修改,另外此方法存在一定的風險(主要是在重建數據庫階段),產品環境

最好還是重新安裝數據庫。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM