본문 바로가기
반응형

IT/MSSQL170

MSSQL 데이터베이스 마이그레이션(DB Migration) 방법 구 버전 데이터베이스 서버를 폐기하고 신규 서버 및 MSSQL 버전2016으로 업그레이드 하는 작업이 있어 진행하였습니다 데이터베이스 마이그레이션 작업을 진행 할 때 많은 자료를 찾아보았고 이런 경험을 바탕으로 같은 작업을 하는 작업자분들께 도움이 될까 하여 자료를 자세히 정리하려고 합니다 ** 자세히 설명하다 보니 글 길이가 좀 길어졌네요 참고하시기 바랍니다 ** [마이그레이션 진행 순서] [MSSQL 2005] -> [MSSQL 2014]> [MSSQL 2016] [SQL 세부 버전정리] SQL 버전은 해당 데이터베이스에 접속해 SELECR @@VERSION 를 쿼리하면 결과가 나옵니다 - 마이그레이션 대상 MSSQL 버전 [MSSQL 2005] Microsoft SQL Server 2005 - 9... 2020. 10. 16.
MSSQL 데이터베이스 생성 및 삭제하기 (DB생성하기) 디비 접속툴인 SSMS(SQL Server Management Studio)를 이용하여 데이터베이스에 접속한다 SSMS가 없는 사람은 다운로드를 받고 설치를 진행하도록합니다 [다운로드 링크] https://docs.microsoft.com/ko-kr/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15 1 데이터베이스 접속 아이피와 아이디 패스워드를 넣고 디비에 접속 계정은 sa 를 사용했습니다 2 데이터베이스 생성 디비에 접속하면 왼쪽 [개체 탐색기]창이 활성화 됩니다 신규 데이터베이스를 만들기위해 [데이터베이스] 를 마우스 오른쪽 클릭 후 [새 데이터베이스] 를 선택합니다 [데이터베이스 이름 입력] 일반 탭에 데이터베이스 .. 2020. 10. 15.
MSSQL 데이터 I/O 병목현상 확인하기(SQL서버 느려짐) MSSQL 데이터베이스를 운영하면서 생긴 경험을 공유해보고자 작성합니다 [오류 증상] MSSQL 데이터베이스를 운영하는 중에 갑자기 디비가 느려졌다 결론부터 말하면 윈도우서버의 I/O 처리에 문제가 발생하였기 때문이었다. SQL서버의 로그를 확인한 결과 아래와 같은 오류 메시지를 확인 할 수 있었다 [MSSQL 오류로그] sql server has encountered 1 occurrence(s) of i/o requests taking longer than 15 seconds to complete autogrow of file 'templog' in database 'tempdb' was cancelled by user or timed out after 117437ms [처리과정] 1 현재 대기 보류 .. 2020. 10. 15.
MSSQL 모든 데이터베이스 인스턴스 논리적 파일이름 가져오기 데이터베이스 마이그레이션을 할 일이 생겨서 데이터베이스의 모든 DB인스턴스이름에 대한 논리적 파일이름을 가져와야 할 일이 생겼다 원하는 정답이 될지는 모르겠지만 도움이 되고자 작성해본다 진행순서 아래와 같다 1. 모든 DB의 인스턴스이름 가져오기 2. 모든 DB의 .mdf .log 파일 용량만 가져오기 3. 테이블 합병(모든 DB의 논리적 파일이름 추출) 1 모든 DB의 인스턴스 이름 가져오기 MSSQL에서는 sys.databases 라는 테이블을 조회하면 모든 인스턴스를 조회가능하다 우리는 필요한 디비 인스턴스 이름만 가져오도록한다 #DATABASE_NAME 라는 임시테이블을 생성하여 sys.databases 에있는 name 만 순서를 붙여서 테이블 생성(디비 인스턴스 수량에 따라 시간이 약간 소요될 .. 2020. 10. 14.
SSMS(SQL Server Management Studio) Tip 정규식 사용해서 텍스트 바꾸기 정규식을 사용하여 텍스트를 봐꾸는 방법 테스트를 위해 샘플 문자를 준비 메뉴에서 [편집] > [찾기 및 봐꾸기] > [빠른봐꾸기]를 선택하거나 CTRL+H를 눌러서 [찾기 및 봐꾸기 창을 엽니다] 1.와일드 카드를 이용해 변경하기 (범위의 숫자를 문자로 봐꾸기) 찾을내용에는 [1-9] 를 넣어주시고, 봐꿀내용에는 _Trans 를 넣어줍니다 그리고 하단에 정규식사용 을 체크합니다 모두봐꾸기 버튼을 눌러서 변경 하면 글자가 변경된 것을 확인 할 수 있습니다 2.여러 문자열을 하의 문자열로 변경 찾을내용에는 a|b 를 넣어주시고, 봐꿀내용에는 MSSQL 를 넣어줍니다 그리고 하단에 정규식사용 을 체크하고 모두봐꾸기를 클릭하면 글자가 변경된 것을 확인 할 수 있습니다 2020. 10. 12.
MSSQL 사용자 리스트를 가져오는 프로시저 --사용자 리스트를 가져오는 프로시저 만들기(만든 후 사용자 맵핑까지 해준다) 패스워드는 새로 설정해줘야 됨. USE master GO IF OBJECT_ID ('sp_hexadecimal') IS NOT NULL DROP PROCEDURE sp_hexadecimal GO CREATE PROCEDURE sp_hexadecimal @binvalue varbinary(256), @hexvalue varchar (514) OUTPUT AS DECLARE @charvalue varchar (514) DECLARE @i int DECLARE @length int DECLARE @hexstring char(16) SELECT @charvalue = '0x' SELECT @i = 1 SELECT @length = D.. 2020. 9. 29.
MSSQL 계정 생성하기 보안-로그인-새로그인 SQL Server 인증을 을 클릭하여 새로은 계정을 생성 계정이 사용할 디비를 매핑하면 완료 생성된 계정으로 로그인 하면 끝. 2020. 9. 25.
MSSQL 스케줄러(scheduler) 등록 [배치잡 등록] MSSQL 배치잡 등록 방법에 대해서 알아보자 SQL Server 에이전트 - 새작업 이름과 설명 입력 단계 - 새로만들기 단계이름 및 프로시저 명령어 작성 일정 - 새로만들기 이름 입력 및 배치잡 일정 선택 후 확인 MSSQL 배치잡 생성이 완료되었으며 SQL Server 에이전트 - 작업 탭을 가시면 등록된 배치잡을 확인가능. 2020. 9. 15.
MSSQL 락 조회 및 kill .1. Lock 걸린 SPID 조회 (Mode 컬럼값이 X) EXEC sp_lock 2. Lock 걸린 SPID의 실행중인 쿼리 조회 DBCC INPUTBUFFER (206) -- ex) DBCC INPUTBUFFER (51) 3. 누가 소유자인지 확인(SPID) exec sp_who2 206 참고사항. sp_who2 를 실행하면 cpu 점유율 을 볼수있다 ex) exec sp_who2 51 exec sp_who2 'active' 실행중인것만 조건은 Status 가 RUNNABLE 상태, CPUTime 의 값이 유독 높은놈이 있다. 물론 해당 SPID를 로 INPUTBUFFER ,sp_who2 로 조회 후 kill여부 결정 4. Lock을 유발하는 SPID Kill KILL 912 2020. 9. 2.
MSSQL 로그 쉬링크(shrink)작업 빈 쿼리창을 열고 아래의 DBNAME 만 변경해서 실행하면 자동 축소가 진행된다. USE [DBNAME] ------------------------------------------------------------------------------ GO -- Declare variables DECLARE @SqlStatement as nvarchar(max) DECLARE @LogFileLogicalName as sysname -- 2) Alter the database to simple recovery SET @SqlStatement = 'ALTER DATABASE ' + DB_NAME() + ' SET RECOVERY SIMPLE' EXEC ( @SqlStatement ) -- 3) Make sure .. 2020. 8. 28.
반응형