วันจันทร์ที่ 18 มิถุนายน พ.ศ. 2555

SQL Server 2008R2 Change server collation

วิธีการเปลี่ยน Server Collation ของ SQL Server 2008 R2
ในกรณีที่ตอน Install ไม่ได้เลือก Collation ของ Server ให้เป็นไปตามต้องการ
(โดยปกติแล้ว Server จะ Default เป็น SQL_Latin bla bla bla)

1 หา setup.exe ใน Path ที่ Install SQL Server เช่น
  C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\SQLServer2008R2\
  หรือจาก Media Path ที่มี setup.exe อยู่ เช่น
   D:\SQL2008R2
2 run command window. เพื่อจะใช้คำสั่งผ่าน Command line.
3 จัดการรัน command ตามนี้
   setup.exe /QUIET /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLCOLLATION=Thai_CI_AI /SQLSYSADMINACCOUNTS="WIN2008BI\SQLadmin" /SAPWD="myP@ss"

ข้อควรระวังตรงนี้คือ User ที่จะใช้ในการรันจะเป็น Window user ไม่ใช่ sa ของ SQL Server น่ะ
จากตัวอย่างคือ "WIN2008BI" = Server Name , SQLadmin = Account , และ SAPWD = "myP@ss" คือ Password ในการ Login เข้า Window


---------------------------
ERROR LOG กรณีใส่ parameter ผิด

Log file สามารถเข้าไปดูได้ที่

C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Log

Summary.txt คือไฟล์สรุป Log สามารถดูที่บรรทัดสุดท้ายว่ามี Exception หรือไม่ ถ้ามีแสดงว่าการ Setup ไม่ผ่าน อาจจะมีข้อผิดพลาดจากเรื่อง User / Password หรืออื่นๆ ให้อ่านในส่วน Exception นี้

ตัวอย่าง

Exception summary:
The following is an exception stack listing the exceptions in outermost to innermost order
Inner exceptions are being indented

Exception type: Microsoft.SqlServer.Chainer.Infrastructure.InputSettingValidationException
    Message:
        The Windows account ”W28BI401\sos” does not exist and cannot be provisioned as a SQL Server system administrator.
    Data:
      SQL.Setup.FailureCategory = InputSettingValidationFailure
      DisableWatson = true
    Stack:
        at Microsoft.SqlServer.Chainer.Infrastructure.InputSettingService.LogAllValidationErrorsAndThrowFirstOne(ValidationState vs)
        at Microsoft.SqlServer.Configuration.SetupExtension.ValidateFeatureSettingsAction.ExecuteAction(String actionId)
        at Microsoft.SqlServer.Chainer.Infrastructure.Action.Execute(String actionId, TextWriter errorStream)
        at Microsoft.SqlServer.Setup.Chainer.Workflow.ActionInvocation.ExecuteActionHelper(TextWriter statusStream, ISequencedAction actionToRun)
    Inner exception type: Microsoft.SqlServer.Configuration.SqlEngine.ValidationException
        Message:
                The Windows account ”win2008BI\SQLadmin” does not exist and cannot be provisioned as a SQL Server system administrator.



ข้อควรระวังเกี่ยวกับ Account Name  , IT CASE SENSITIVE ตัวเล็กตัวใหญ่มีผลครับ - -"
เช่น WIN2008BI แตกต่างจาก win2008BI
ถ้า server name จริงเป็นตัวใหญ่หมดก็ต้องใช้ตัวใหญ่ทั้งหมดใน parameter ไม่งั้นมันก็บอกว่าไม่มี Account นั้น ฮ่าๆ

ขอให้เปลี่ยน Collation สำเร็จนะครับ :)
  



 

ไม่มีความคิดเห็น:

แสดงความคิดเห็น