본문 바로가기

프로그래밍/TSQL59

[MSSQL]운영체제 오류 5 (엑세스라 거부되었습니다.) restore fail db복원중에 운영체제오류 5 라면서 실패가 납니다. 복원대상 파일을 지정할때도 백업파일 위치에서 .bak파일이 있는데 안보이는 현상이 있었습니다. 이 현상은 sql서버를 수행하고있는 윈도우 계정에 관리자 권한이 없을때 발생합니다. 계정은 서비스에서 확인이가능한데, 여기에서 시작 계정을 로컬계정으로 변경해도 됩니다. 계정에 권한이 주어 졌으면 서비스 재시작하고 정상적인 상태가 되었는지 확인하시면 됩니다. 보통은 에이전트도 같이 시작되는데 같이 시작이 안되면 따로 시작해주시고 가끔 에이전트에 xps옵션이 1에서 0으로 자동으로 바뀌는경우가 있으니 sp_configure에서 해당 옵션을 1로 변경해줍니다. 안되던 작업이 되어 기분이 좋네요 2022. 5. 27.
[MSSQL]서비스 재시작(w.에이전트 재시작) MSSQL 서비스를 오래 시작해둠으로 인해 생기는 문제를 방지하기 위해 자동 서비스 재시작을 도입했습니다. 아래와 같이 배치파일을 만들어 관리에 적용하였습니다. @echo off rem time set ST_TIME=%date%_%time:~0,2%.%time:~3,2%.%time:~6,2% rem backup set LOG=D:\LOG\LOG_%ST_TIME%.log echo "MSSQL RESTART가 진행중입니다..." echo ========================================================== >> %LOG% echo [RESTSRT] %ST_TIME% >> %LOG% echo ==============================================.. 2022. 5. 11.
[MSSQL]나만 빼고 다나가 세션 정리! DB 작업을 하기 전에 내 세션을 제외하고 모두 나가게 하고 싶다면 아래 쿼리를 활용 할 수 있다. @@SPID는 내 세션의 SPID를 가져오는 것이다. --■■ DISCONNECT ALL SESSION WITHOUT MINE!! DECLARE @DB_NAME VARCHAR(100) DECLARE @QUERY VARCHAR(MAX) SET @DB_NAME = DB_NAME() --■ KILL THEM ALL KKK SELECT @QUERY = @QUERY + 'KILL ' + CONVERT(VARCHAR(5), SPID) + ';' FROM MASTER.SYS.SYSPROCESSES WHERE DBID = DB_ID(@DB_NAME) AND SPID > 50 AND SPID @@spid EXEC (@QU.. 2022. 5. 10.
[MSSQL] DB MODE 확인 및 변경 SQL에서 DB MODE를 SINGLE로 두면 하나의 세션만 연결할 수 있는 상태가 된다. SSMS 상에서 DB 인스턴스를 속성을 클릭하여 옵션에서 엑세스 제한을 통해 변경 가능하고, 아래 쿼리로도 변경이 가능하다. 현재 DB 상태가 SINGLE인지 MULTI 인지 확인 하는 방법은 여러가지가 있는데, 아래 사용한 방법중에 DATABASEPROPERTYEX 와 SP_DBOPTION을 통해서는 잘 확인이 되었지만, SERVERPROPERTY로는 확인이 안되었다. 분기하여 사용할때 참고 하시기 바란다. --■ TEST DB의 모드를 SINGLE 로 변경 ALTER DATABASE TEST SET SINGLE_USER WITH ROLLBACK IMMEDIATE; SELECT DATABASEPROPERTYEX(.. 2022. 5. 10.