일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- elasticSearch
- option pattern
- mysql
- User
- log
- vscode
- pg_stat_statements
- 윈도우즈 터미널
- user-secrets
- SQL Server
- IDX Project
- rc-service
- openrc
- Flutter
- opentelemetry
- 맥미니
- Android
- 옵션 패턴
- AnimatedPositioned
- module upgrade
- docker
- sqlc
- otel
- go
- shared_preload_libraries
- PostgreSQL
- DotNet
- 무선 디버깅
- Linux
- golang
- Today
- Total
목록Database/MS SQL (42)
CATCHV Blog
DB에서 특정 시간이 되면 Table lock도 없는데 시스템의 쿼리들이 멈추는 현상이 발생을 했다. 멈추는 순간에 wait info를 분석해 보니 DBMIRROR_DBM_EVENT wait가 발생을 했다. DB Mirror 구성을 High Safety 로 구성되어 있었다. DB 구성시 High Safety 로 구성을 하면 이런 현상이 발생 할 수 도 있다. 미러 상태 확인 쿼리 SELECT DB_NAME(database_id) As DatabaseName, CASE WHEN mirroring_guid IS NOT NULL THEN 'Mirroring is On' ELSE 'No mirror configured' END AS IsMirrorOn, mirroring_state_desc, CASE WHEN ..
Service 계정에 정말 정책이 잘 적용되었는지 아래의 방법으로 확인 할 수 있다. SSMS 에 접속하여 해당 명령어를 실행하면 된다. 물론 command를 서비스 계정으로 실행해도 된다. EXEC sp_configure 'show advanced options', 1 GO RECONFIGURE WITH OVERRIDE GO EXEC sp_configure 'xp_cmdshell', 1 GO RECONFIGURE WITH OVERRIDE GO EXEC xp_cmdshell 'whoami' GO EXEC xp_cmdshell 'whoami /priv' GO EXEC sp_configure 'xp_cmdshell', 0 GO RECONFIGURE WITH OVERRIDE GO EXEC sp_configur..
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED SELECT DB_NAME() AS DBNAME , ss.name AS SchemaName , st.name AS TableName , s.name AS IndexName , STATS_DATE(s.id,s.indid) AS [Statistics Last Updated] , s.rowcnt AS [Row Count] , s.rowmodctr AS [Number Of Changes] , CAST((CAST(s.rowmodctr AS DECIMAL(28,8))/CAST(s.rowcnt AS DECIMAL(28,2)) * 100.0) AS DECIMAL(28,2)) AS [% Rows Changed] INTO #Statis..
Replication을 구성해서 운영하다 어떤 문제로 인해서 replication을 다시 구성해야 하는 경우가 발생한다. 그런데 Distribute를 제거하지 않은 경우 기존의 데이터가 남아 있어서 문제가 없지만 Replication Monitor에 X 자로 Red 표시가 나오는 경우가 있다. 이런 경우 아래의 프로시져로 상태를 업데이트 해주면 해결이 된다. EXEC sp_MSload_replication_status
trigger 및 Procedure 에서 텍스트 찾기 DECLARE @Search varchar(255) SET @Search='Search Text' SELECT DISTINCT o.name AS Object_Name,o.type_desc FROM sys.sql_modules m INNER JOIN sys.objects o ON m.object_id=o.object_id WHERE m.definition Like '%'+@Search+'%' ORDER BY 2,1
CREATE TABLE #tempww ( LoginName nvarchar(max), DBname nvarchar(max), Username nvarchar(max), AliasName nvarchar(max) ) GO INSERT INTO #tempww EXEC master..sp_msloginmappings -- display results SELECT * FROM #tempww ORDER BY dbname, username -- cleanup DROP TABLE #tempww
Replication 삭제시 구독 서버에 접속 안되는 경우나 구독서버에서 구독을 삭제 한 경우 구독 서버에 접속 할 수 없다는 18482 에러가 발생한다. 그런 경우 USB [게시자 DB] GO sp_removedbreplication 로 삭제 할 수 있다.
SQL Server 의 Error Log의 데이터가 많을 경우 로드하는데 많은 시간이 발생됩니다. Error Log 파일의 구성을 보면 HKEY_LOCAL_MACHINE\Software\Microsoft\MSSQLServer\MSSQLServer 위치에 NumErrorLogs 의 숫자 만큼 파일이 보관되며(6개가 Default) 99개 까지 설정 할 수 있습니다. 파일 개수 변경 방법은 방법 1. USE [master] GO EXEC xp_instance_regwrite N'HKEY_LOCAL_MACHINE', N'Software\Microsoft\MSSQLServer\MSSQLServer', N'NumErrorLogs', REG_DWORD, [변경할 파일 숫자] GO 방법2. 로 파일 개수를 변경할 수..
버전 : SQL 2005, SQL 2008, SQL 2008 R2, SQL 2012 MS SQL Server 2005 이상부터 C++에나 있던 TRY CATCH 구문이 도입되어서 굉장히 편하게 에러가 발생되는 부분을 찾고 처리하기 쉽게 되었다. BEGIN TRY SELECT 1 / 0 END TRY BEGIN CATCH SELECT ERROR_NUMBER() AS ErrorNumber , ERROR_SEVERITY() AS ErrorSeverity , ERROR_STATE() AS ErrorState , ERROR_PROCEDURE() AS ErrorProcedure , ERROR_LINE() AS ErrorLine , ERROR_MESSAGE() AS ErrorMessage; END CATCH 그러나 ..
버전 : SQL 2008, SQL 2008 R2, SQL 2012 MS SQL 2008 부터는 BACKUP LOG [데이터베이스명] WITH TRUNCATE_ONLY GO 를 지원하지 않고 있습니다. 이유는 이걸 사용했을 경우 로그체인이 끊어져서 데이터베이스에 문제가 발생 할 경우 데이터를 복구 할 수 없는 상태가 발생 할 수 있습니다. 그러나 관리상의 문제나 기타 다른 문제로 LOG의 백업이 당장 필요 없는 경우도 발생을 합니다. 그럴 경우 사용 할 수 있는 방법은 다음과 같습니다. 주의!!! 아래의 방법은 권장하는 방법이 아니므로 반드시 전체백업 후에 진행하기시 바랍니다. 저의 TestDB 상태입니다. BACKUP LOG [데이터베이스명] TO DISK='NUL:' GO DBCC SHRINKFILE ..