DB를 복원하고 나면 생기는 문제가 있습니다. 사용자계정에 로그인 계정이 연결이 안되있네 '로그인 없이'사용이라늬!! 인터페이스가 따로 지원이 안되니 쿼리를 날려서 연결해주어야 합니다. EXEC sp_change_users_login 'Update_One', '[DB사용자]', '[로그인 계정]' 명령을 사용하면 로그인 이름이 연결된것을 볼수 있습니다. 참쉽죠잉~
결국 서버에 DB를 저장하던 하드가 맛이 가서 인식을 못 하네요 ㅡ,.ㅡ; 1. 새 인스턴스 설치 (이 글을 읽을 정도라면 인스턴스를 생성하는 방법을 모를 리 없으니 과정은 생략합니다.) 결국 인스턴스를 옮길 수가 없어서 씨디 넣고 추가로 인스턴스를 설치하였습니다. 2. 새 인스턴스 설정 기존 인스턴스는 어차피 하드가 없어서 시작되지 않습니다. 새 인스턴스를 시작하고 아래 과정을 진행합니다. 2-1. 기존 인스턴스 설정 구성 관리자() > SQL Server 구성 관리자(SQL Server Configuration Manager) 에 가서 'SQL Server 네트워크 구성'을 확장한 후 기존 인스턴스에 대한 프로토콜의 TCP/IP를 꺼줍니다. 2-2. 새 인스턴스 설정 새로 추가한 인스턴스의 'TCP/..
이전 글에서 master DB를 옮기는 것을 했습니다. (참고 : [MSSQL2008] master DB 옮기기) 마스터DB를 제외한 시스템DB들은 쿼리를 이용하여 간단하게 옮길수 있습니다. 1.경로 확인 로컬 파일 위치를 확인합니다. 마스터DB 때와 마찬가지로 메니지먼트 스튜디오로도 확인이 가능합니다. 아래 쿼리로도 가능하죠. SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_id = DB_ID(N'model'); SELECT name, physical_name AS CurrentLocation, state_desc FROM sys.master_files WHERE database_i..
집에서 운영하는 서버에 DB를 저장하는 하드가 맛이 갔는지 툭하면 인식이 되지 않습니다. (참고 : MSSQL이 시작되지 않을때 ) 어쩔수 없이 다른 드라이브로 위치를 병경해야 되서 하는 김에 정리해 둡니다. 이전버전에서는 master 같은 시스템db를 옮길때 단독모드로 했어야 합니다만 2008부터는 단독모드가 아니여도 작업을 할수 있습니다. 단지 디비를 재시작해야 적용되죠 ㅎㅎㅎ (참고 : MSDN - 시스템 데이터베이스 이동) 다른 시스템 디비를 옮기시고 싶으시면 다음글을 참고해 주세요 (참고 - [MSSQL2008] 시스템 DB 옮기기 ) 1.옮길 파일의 이름 찾기파일위치는 매니지먼트 스튜디오에서 확인 할수 있습니다. 쿼리로도 확인 가능합니다. SELECT name, physical_name AS ..
이건뭐 버전마다 다른가보네요. 2008용 겨우 찾았습니다 ㅎㅎㅎㅎ MSDN - How to: Configure Server Startup Options (SQL Server Configuration Manager) 사실 시작 파라메타는 보통 커맨드창에서 사용해서 위치를 모르는 경우가 많습니다. 나이가 드니 타자치기가 귀찬아 ㅡ.-;; MSSQL 2008에서는 SQL Server 구성 관리자 > SQL Server > SQL Server(SQLEXPRESS) 오른쪽 클릭 > 속성 > 고급 > 시작 매개 변수 여기서 주의 해야 할것이 용도에 따라 'SQL Server(SQLEXPRESS)' 나 'SQL Server(MSSQLSERVER)'의 매개변수를 수정하셔야 합니다. (두개의 매개변수는 따로 관리가 됩니..
MSSQL에서는 쿼리 결과를 xml로 출력 해주는 기능이 있습니다. 다행이 MSDN에 자세한 내용이 있으니 걱정없이 고고씽~ MSDN - RAW 모드 사용 1.기본 출력참 간편하게 쿼리에 끝에 'For XML Raw' 만 붙이면 되죠. 그런데 쿼리를 해보면 쿼리 결과 우리가 일반적으로 보던 XML과 좀 다릅니다. 우리는 보통 아래와 같은 모양의 XML을 많이 보죠. 10 10 100 1 30 10 20 10 200 2.속성(attribute)을 요소(element) 바꾸기일단 어트리뷰트로 값이 들어간것을 엘리먼트로 빼겠습니다. 일반적으로 쿼리결과는 속성값이 아니라 요소값으로 쓰기 때문입니다. 물론 아닌경우도 있죠 ㅡ.-;; 그럴땐 수작업해야 하는데 일단 이글의 끝에서 수작업 하는 법을 알려 드리겠습니다...
sa계정에 디폴트 디비를 지정하는 경우가 얼마나 흔한지는 모르겠지만 저 같은 경우 sa는 사용하지 않고 sa에게 권한을 부여받은 계정을 주로 사용하기 때문에 디폴트 디비를 지정해주는 경우가 종종 있습니다. 그런데 모든 계정은 디폴트디비가 삭제되면 로그인이 되지 않습니다 ㅡ,.ㅡ; 사용자 기본 데이터베이스를 열 수 없습니다. cannot open user default database. login failed 이런 에러가 발생합니다. 1. 윈도우 인증을 확인해 보자 이런 경우 제일 먼저 해봐야 할 것은 '윈도우 인증'으로 로그인이 되나 입니다. 되면 해당 계정의 DB를 다시 지정하면 되는 것이니까요. 보안 > 로그인 > sa계정 속성 2. 'sqlcmd'를 이용한 방법 문제는 '윈도우 인증도 막혔다면?' ..
저번에 디비 이관작업하다가 대박 사고가 나니 "역시 디비옮길땐 파일을 옮기는것 만큼 좋은게 없구나" 라는 생각을 더 욱 하고 있습니다 ㅜㅡ 1. 파일 정보 확인 '.bak'로 통빽업을 했다면 안에 'mdf'파일과 'ldf'파일이 그대로 있으니 너무 걱정하지 않으셔도 됩니다. (하지만 증분빽업된거라면? 명복을 ㅎㅎㅎ) 복원하기전에 아래 명령을 사용하여 백업파일의 정보를 확인해야 합니다. --1) DB 백업 파일 정보 restore filelistonly from disk='[경로]' --mdf와 ldf파일의 이름을 확인한다. 2. 복구 위에서 얻은 정보를 이용해 아래 명령을 실행합니다. -- 2-1) DB 복구 restore database [넣을DB 이름] from disk='[경로]' with move..
DB를 옮겨야하는 내보내기하면 계속 오류나고 해서 일단 데이터만 옮기고 테이블은 스크립팅 하여 저당해두었습니다. 장비를 반납해야 하는거라 시간이 없어서 '데이터 가져오기 및 내보내기'로 일단 데이터만 후다닥 내보낸거였는데 복구를 하려고 보니 뷰가 테이블이 되어있네? 뷰가 데이터 테이블로 변환되어있는 현장 그러니 다시 내보내기를 하면 뷰에다 인서트를 하니 에러가 나고 있던 것입니다.(원래 뷰에 인서트가 가능은 합니다만 내보내기할때 뷰는 경우가 다르니 넘어갑시다 ㅋㅋㅋ) 거기다 뷰는 따로 정렬이 되기때문에 "왜 테이블 생성이 안되지?" 라는 생각을 하면 수동으로 생성해보니 이미 있는 이름이라고 나오고 '드롭 테이블' 하면 테이블이 아니라는 에러가 나는 겁니다. -_-; 이런경우 자기가 구성한 DB가 아니면 ..
이미 사용중이 테이블에 ID 사양(Identity Specification)이 지정되있지 않아 지정했더니 "작업을 실행하는데 오래 걸릴수 있다"라는 식의 경고가 뜨길례 "그래라"하고 살포시 무시 했는데... 테이블을 수정할 수 없습니다. 제한 시간이 만료되었습니다. 작업을 완료하기 전에 제한 시간이 경과되었거나 서버가 응답하지 않았습니다. Unable to modify table. Timeout expired. The timeout period elapsed prior to completion of the operation or the server is not responding. 오 쉣!!! 검색해봐도 그렇다할 답이 안나오네 ㅡ,.ㅡ;; 그런던중 발견한것이 "트렌잭션 시간 늘려보시죠?" 오홍 sql 서..