sql server collation 변경
기본 요구 사항
* sql virtual account
* 설치 미디어 (edition 상관없음)
* 혼합모드면 sa 암호
sqlserver virtual account 가 필요함 (삭제 했으면 다시 복구할 것)
이 계정이 없으면 sp 설치시 실패 한다.
첨부된 powershell 로 복구 시도하고 추가로 더 설치한 서비스가 있으면 알아서 계정 추가하고 스크립트로 하던지 regedit 로 하던지 편한 방법으로 복구
설치 미디어 다운받기 위한 ie 설정 혹은 wget 윈도 버전으로 설치해서 하면 됨
http://faq.hostway.co.kr/Windows_ETC/2504
기존 edition 과 상관없이 evaluation 같은 버전을 하나 준비(압축 풀어야지요...)
우리는 sql server 2008 r2 이므로 이런곳에서 다운 받는다
- http://care.dlservice.microsoft.com/download/7/5/1/751DF8B3-1430-4B6F-A2E1-3679D77AA39C/1042/SQLFULL_KOR.iso?lcid=1042
서버레벨 변경만 상세설명
설치 미디어가 있는 폴더로 이동합니다.
cmd 모드에서 디렉토리 레터를 확인해 이동합니다.
d:
collation 을 변경하기위해서 아래 명령과 비슷하게 입력합니다.
Setup /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="WIN-FGPDFE2BQJD\Administrator" /SAPWD=P@ssw0rd /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
Setup /ACTION=REBUILDDATABASE /INSTANCENAME=MSSQLSERVER /SQLSYSADMINACCOUNTS="cnc6-collation2\Administrator" /SQLCOLLATION=SQL_Latin1_General_CP1_CI_AS
각각의 옵션은 https://msdn.microsoft.com/ko-kr/library/dd207003(v=sql.105).aspx 에 잘 설명되어 있습니다.
간단하게 설명드리면
INSTANCENAME : 인스턴스 이름을 확인합니다.
확인하는 쿼리는 아래와 같습니다.
select @@SERVICENAME;
SQLSYSADMINACCOUNTS : sysadmin role 을 가지고 있는 windows 계정을 입력합니다.
SAPWD : sa 암호 입니다.
Authentication Mode 가 윈도우와 SQL 을 동시에 사용하는 경우 반드시 입력해야 합니다.
입력하지 않으면 알수없는 오류가 발생하고 전체 프로세스가 실패 합니다.
이러한 모드를 확인하는 쿼리는 다음과 같습니다.
윈도우 sysadmin role 만 있으면 sql sa 암호는 알아서 작업하면 되지 시스템 데이터베이스 리빌딩 스크립트 작업하는 사람이 귀찮아서 입력한 암호로 로그인 해보고 이상 없으면 sa 를 입력받은 암호로 다시 만들게 작업한 보양 입니다. -_- 이자슥들 암호 몰라도 값은 만들어 넣을수 있는거 다 알낀데...짜슥......
SELECT CASE SERVERPROPERTY('IsIntegratedSecurityOnly')
WHEN 1 THEN 'Windows Authentication'
WHEN 0 THEN 'Windows and SQL Server Authentication'
END as [Authentication Mode];
SQLCOLLATION : 원하는 collation 을 입력합니다.
지원 가능한 전체 collation 을 확인하는 쿼리는 다음과 같습니다.
SELECT name, description
FROM fn_helpcollations();
성공적으로 작업이 완료되면 아무 메시지가 없이 명령 프롬프트로 돌아갑니다.
확인은 C:\Program Files\Microsoft SQL Server\100\Setup Bootstrap\Logs 아래 폴더에서 로그를 읽어 확인하거나
ssms 에서 다음 명령어를 입력합니다.
SELECT CONVERT (varchar, SERVERPROPERTY('collation'));
이 때 edition 이나 서비스팩은 기존 에디션과 서비스팩(sp3)은 잘 적용되어 있는것을 확인함
나머지 매뉴얼은 아래를 참고 할 것
서버레벨 변경은 https://msdn.microsoft.com/en-us/library/ms179254(v=sql.105).aspx
데이터베이스 레벨 https://msdn.microsoft.com/en-us/library/ms175835(v=sql.105).aspx
컬럼 레벨 https://msdn.microsoft.com/en-us/library/ms190920(v=sql.105).aspx