본문 바로가기

반응형

[DataBase]/MSSQL

(6)
[MSSQL] 현재 락 걸린 쿼리 확인 & 죽이기 문제 없이 쿼리를 작성하는게 베스트겠지만 예상치 못하는 문제로 인해 LOCK이 걸려 작업이 불가능한 경우가 있다. 이럴경우 문제가 되는 쿼리가 실행중인 프로세스를 죽여주는 방법이 필요하다. 현재 실행중인 쿼리 확인 SELECT sqltext.TEXT, req.session_id, req.status, req.command, req.cpu_time, req.total_elapsed_time FROM sys.dm_exec_requests req CROSS APPLY sys.dm_exec_sql_text(sql_handle) AS sqltext 현재 락 걸린 쿼리 확인 SELECT DISTINCT name AS database_name, session_id, host_name, login_time, login..
[MSSQL] 싱글유저 모드에서 멀티유저 모드 변경 오류 DB작업시 현재 다른 연결을 끊어야 할 경우가 있다. 이럴경우 평소 엑세스 제한 모드를 제한된유저(restricted user)모드로 변경하고 작업하곤한다. 하지만 단일 사용자(Singleuser) 모드로 변경했을경우에는 주의해야할 점이 있다. 단일 사용자 모드의 경우 다른 세션이 살아 있기에 DB의 상태 변경을 하지 못하는 경우가 있을 수 있다. 이럴경우 ALTER DATABASE 'DB명' SET MULTI_USER명령어를 통해 다시 멀티유저로 변경시 다음과 같은 오류가 뜨게 된다. 지금은 데이터베이스 'DB명'의 상태나 옵션을 바꿀 수 없습니다. 데이터베이스가 단일 사용자 모드이며 현재 한 사용자가 연결되어 있습니다.이때 아래의 명령어를 실행하면 현재 내 DB에 접속중인..
MSSQL 인덱스 재구성, 인덱스 조각화 모음 MSSQL 인덱스 재구성, 인덱스 조각화 모음 인덱스 조각화 모음이 필요한 이유. 인덱스 생성 후 해당 테이블에 데이터 변경이 가해져 페이지에 빈 공간이 생기거나 페이지들의 순서가 맞지 않게 된다. 인덱스 조각화가 심하면 조회시 성능 저하, 불필요한 공간 차지 등이 발생한다. 해결방법에는 인덱스 재구성 or 인덱스 조각화 모음이 있다. 인덱스 재구성 장점 : 효과 가장 좋음 단점 : 서비스 중단 발생 인덱스 조각모음 장점 : 서비스 무중단 단점 : 완벽한 조각모음 아님 특정 테이블 인덱스 재구성 특정 테이블 인덱스 조각화 정도 확인 쿼리 테이블로 보기 DBCC SHOWCONTIG (테이블명) WITH TABLERESULTS 한번에 보기 DBCC SHOWCONTIG (테이블명)특정 테이블 인덱스 재구성 쿼..
[MSSQL] 보안 주의점 해킹시도 집에서 DB 사용시 주의점 평소 개인 프로젝트용으로 집의 db를 외부접속 가능하게해서 사용중이었다. 그냥 개인 공부용으로 하는거라 mssql의 기본 포트인 1433을 이용하고 있었는데 띠용???!!! 누군가가 계속 내 db에 로그인 시도를 하고있었다!!!! ip 위치추적해보니 호치민, 브라질, 파키스탄 등 아주 전 세계적으로 내 db를 공격하고있더라😖 구글링해보니 BruteForce 공격이라고 하더라 ㅠㅠ 해결방법에는 다양한 방법이 있지만 우선 급한대로 1433, 1434 포트를 막아주고 다른 포트로 db 연결이 가능하게 변경해줬다. 1분 내에도 4~7번씩 오던 로그인 시도가 우선 사라졌다. 하지만 이건 임시 해결책일뿐 구글링을해보니 포트스캔해서 열린포트 찾아서 또 공격 온다고 하더라...😭😢 해결방법은..
[MSSQL][시점복구] DB 원하는 시점으로 복구하기(+복구시점찾기, + 복구진행현황보기) MSSQL DB 원하는 시점으로 복구하기 😱 이 글을 읽으러 온 너... DB 날려먹었구나!😱 내가 DB 작업할 때는 꼭 트랜젝션 걸고하라했잖아!! 못들었다고? 그럼 다시 한번 보고와 https://ppoble.tistory.com/entry/mssql-%EC%A0%9C%EB%B0%9C-%EC%9E%91%EC%97%85%ED%95%A0%EB%95%8C-%ED%8A%B8%EB%9E%9C%EC%A2%80-%EA%B1%B8%EA%B3%A0%ED%95%B4 그래도 일단 지급 급하니까 빨리 방법을 설명해줄께 1. 복구하고자 하는 DB의 전체 백업본 있어없어? 빨리 말해! 전체 백업본이 뭐냐고?? 너 백업할때 저기 백업유형 전체로 되어있으면 전체 백업이야. 이거 있어야 가능해 없으면.... 미안하다... 원하는 시..
[MSSQL TARNSACTION] 제발 작업할때 트랜좀 걸고해 BEGIN TRAN SELECT * FROM tbl DELETE FROM tbl DROP TABLE tbl -- 확인 후 -- 성공 COMMIT TRAN -- 실패 (되돌리기) ROLLBACK TRAN 제발... 잊지말고 걸고하자 습관들이자 후회한다

반응형