SQL Server

오류 발생 현상 SSMS 에서 데이터베이스 속성을 누르게 되면 아래와 같이 에러 창이 팝업되는 경우가 발생합니다.이 오류는 데이터베이스 소유자가 로그인 계정에 없는 경우 발생합니다. 요청한 대화 상자를 표시할 수 없습니다. 데이터베이스에 속성 Owner을(를) 사용할 수 없습니다. 이 속성이 이 개체에 대해 존재하지 않거나 액세스 권한이 부족하여 검색하지 못할 수 있습니다. 해결 방법sp_helpdb 명령어로 데이터베이스의 소유자를 확인해 봅니다.owner 가 '~~UNKNOWN~~' 으로 되어 있어서 소유자를 확인할 수 없습니다. 데이터베이스 소유자를 현재 생성되어 있는 로그인계정과 재 매핑해줍니다.이제 데이터베이스 속성창이 팝업되는 것을 볼 수 있습니다. 12345678910111213USE [TES..
데이터베이스 운용을 위해 필요한 파일은?DB 를 운영하기 위해서는 데이터파일과 트랜잭션로그파일이 필요합니다. 데이터파일은 말그대로 데이터가 저장된 파일을 의미하고트랜잭션 로그파일은 수행한 쿼리를 기록합니다. 만약 데이터파일이 유실되었고 백업파일이 없다면 복원이 불가능하지만트랜잭션파일이 유실된경우에는 현재 데이터파일에 있는 데이터만을 살릴 수 있습니다.* 커밋되지 않은 트랜잭션은 유실됩니다. 트랜잭션 로그파일이 손상된 경우 복원하는 방법1. 테스트 데이터베이스와 테이블 생성TEST 데이터베이스가 있고, 테스트를 위해 데이터를 저장할 샘플 테이블을 하나 생성합니다. 12345678CREATE DATABASE TESTON PRIMARY ( NAME = N'Test', FileName = N'C:\SQL Ser..
백업파일 압축하는 방법SQL Server 는 백업파일 압축을 지원합니다.백업 압축은 Standard, Enterprise 모두 지원하고 있습니다. 백업 압축 옵션은 WITH 뒤에 Compression 을 붙여서 사용할 수 있습니다. 1BACKUP DATABASE AdventureWorks TO DISK=N'C:\DBBackup\AdventureWorks.bak' WITH COMPRESSION, INITcs 압축을 하게 되면, I/O 에 대한 비용이 절약되며 백업속도 및 디스크 사이즈 면에서 크게 향상됩니다.하지만 압축을 하기위한 연산이 들어가야 하기 때문에 CPU 상승률은 증가합니다. 백업파일 압축률 확인하는 방법데이터베이스 백업 압축률을 확인하는 쿼리입니다.원래 백업 사이즈와, 압축된 백업 사이즈, 압..
syscomments 특정 단어가 포함된 프로시저를 찾을 때 사용하는 뷰 입니다.현재 위치한 데이터베이스의 프로시저에 대해서만 조회가 가능합니다. 특정 단어가 포함된 프로시저 찾는 방법 특정 데이터베이스에 아래 프로시저가 있습니다. 123456CREATE PROCEDURE [dbo].[P1]ASBEGIN SELECT 'mozi tistory'ENDGOcs syscomments 뷰를 사용하여 mozi tistory 문자열이 있는 프로시저를 검색합니다. 1234567SELECT textFROM sys.syscomments WITH(NOLOCK)WHERE OBJECTPROPERTY(id, 'IsProcedure') = 1 AND text LIKE '%mozi tistory%'OPTION (MAXDOP 1)cs
에러 내용 sp_rename 으로 테이블명을 변경 시 아래와 같은 오류가 발생하였습니다. [SQLSTATE 42000] (오류 15225)@itemtype '(null)'이(가) 입력으로 지정된 상태에서 이름이 'T1'인 항목을 현재 데이터베이스 'AdventureWorks'에서 찾을 수 없습니다. Msg 15225, Level 11, State 1,No item by the name of 'T1' could be found in the current database 'AdventureWorks', given that @itemtype was input as '(null)' 에러가 발생하는 원인sp_rename 의 Source 테이블에서 스키마가 명시되어 있지 않은 경우 발생할 수 있습니다.스키마가 명시..
에러내용 Integration Services 에 접속하려고 하면 아래와 같은 오류가 발생합니다. Connecting to the Integration Services service on the computer "localhost" failed with the following error:"This specified service does not exist as an installed service.". This error can occur when you try to connect to a SQL Server 2005 Integration Services service from the current version of the SQL Server tools.Instead, add folders to th..
Maintenance Plan 이란유지계획 으로, 패키지 같은 역할입니다.요즘에는 거의 쓰이지 않는 기능이긴 합니다. Export 하는 방법1. Integration Services 에 접속합니다. 2. Stored Packages -> MSDB -> Maintenance Plan 을 클릭합니다.3. 원하는 Maintenance Plans 를 우클릭 후 Export Package 를 클릭합니다. 4. File System 을 선택후 원하는 경로를 지정합니다.* Protection Level 은 Export 하는 패키지에 암호를 설정하는 레벨을 의미합니다. Import 하는 방법1. Integration Services 에 접속합니다. 2. Stored Packages -> MSDB -> Maintenan..
sp_prepexec 란 매개변수가 있는 트랜잭션을 실행할 수 있게 해줍니다.미리 컴파일 된 실행계획을 재사용할 수 있습니다. 자세한 사용법은 아래 URL 을 참고해주세요.https://docs.microsoft.com/ko-kr/sql/relational-databases/system-stored-procedures/sp-prepexec-transact-sql?view=sql-server-ver15 실행계획 재사용 테스트테스트 SP 생성합니다.@isvar 매개인자값에 따라 결과가 달라집니다. 12345678910111213141516171819CREATE PROCEDURE [dbo].[nxp_test01](@isvar tinyint,@result varchar(10) = null OUTPUT)ASset..
데이터 파일 사용량이 가득찰 때 발생하는 이슈데이터파일의 사용량이 가득차게 되면, SQL Server 는 AutoGrow 옵션에 설정된 크기만큼 데이터파일 크기를 증가시킵니다.이 때 자동증가가 완료될 때까지 다른 세션의 트랜잭션은 대기하게 됩니다. 디스크의 성능이 좋지 않아서 데이터파일의 크기를 증가시키는데 오랜 시간이 걸리게 되면,파일 증가가 시간 내에 완료되지 못하고 파일 증가도 롤백되고, 에러로그에 아래와 같이 기록됩니다. - SQL Server has encountered x occurrences of I/O requests taking longer than 15 seconds to complete on file - Autogrow of file 'FILE_NAME' in database 'DAT..
단순 모드 ( Simple Mode)SQL Server 엔진에서 트랜잭션 로그를 주기적으로 비워줍니다.단순 모드라고 해서 트랜잭션 로그가 기록되지 않는 것은 아닙니다. 트랜잭션 로그가 계속 증가하는 원인 분석 단순모드 DB 의 트랜잭션 로그 사용량이 갑자기 증가하기 시작하였습니다. 처음에는 SQL Server 에서 비워주기 전 로그가 많이 쌓여 사용량이 증가한 것으로 생각하였지만,4시간이 지나도록 정리되지 못하고 사용량이 67% 까지 증가하고 있었습니다. 왜 정리를 못하는지 확인해보니, 2184 세션의 트랜잭션이 84910 초동안 활성화 되어 있었습니다.그래서 해당 트랜잭션 로그 시점 이후의 로그들은 정리되지 못하고 계속 쌓이고 있었습니다. 해당 세션을 KILL 한 후 로그 사용량을 확인해보니 0.7% ..
꽁담
'SQL Server' 카테고리의 글 목록 (3 Page)