SQL Server

SQL Server 는 sp_readerrorlog 라는 시스템 프로시저를 지원합니다.이 프로시저는 SQL Server 로그를 읽어오는 역할을 수행합니다. xp_readerrorlog 역시 지원하는데, 이는 sp_readerrorlog 보다 좀더 많은 기능을 지원합니다.단지 기능만을 지원하는 것 뿐이지 출력 형식이 달라진다거나 그러지는 않습니다.xp_readerrorlog 와 sp_readerrorlog 의 차이점은 아래 포스팅을 참고해 주세요.https://mozi.tistory.com/296 구동 시점 이후의 오류만 출력하는 쿼리 그럼 먼저 구동 시점 이후의 오류만 뽑아오는 쿼리를 보여드리고 아래서 설명을 진행하겠습니다.CREATE TABLE dbo.TEMP_logcnt (LogNumber INT, ..
MSSQL 은 데이터베이스에 백업을 위한 3가지 모델(전체, 대량 로그, 단순)을 지원하며,백업의 종류는 전체, 차등, 로그 백업으로 구성됩니다. 이해가 좀 어려울 수 있는 데, 간단히 설명드리겠습니다. 모델은, 트랜잭션 로그파일에 어떻게 기록하는지에 대한 정의를 내리는 부분입니다.백업은, 말그대로 현재 데이터 파일을 물리적으로 복사한다 라고 생각하면 됩니다. 데이터베이스의 복구 모델데이터베이스 복구 모델은 전체(Full), 대량 로그(Bulked Log), 단순(Simple) 세 가지 모델이 있습니다.예를 들어 SQL Server 에서 제공하는 AdventureWorks2017 데이터베이스의 복구 모델은 단순으로 설정되어 있습니다.1. 전체 복구 모델데이터베이스가 문제가 발생할 때 문제가 발생한 시점까..
MS-SQL 에는 파일 그룹이라는 개념이 있습니다. 논리적인 관점으로 특정 데이터베이스에는 PRIMARY 라는 하나의 기본 그룹이 있고 그 안에 하나의 데이터 파일이 있습니다.그리고 트랜잭션 로그 파일도 있는데, 이는 파일 그룹과 관련이 없습니다.즉, 파일 2개와 그룹 1개인 최소한의 구조로 구성되며, 기본적인 파일 그룹 PRIMARY 의 이름은 변경하거나 제거할 수 없습니다. 물리적인 관점에서 본다면 생성된 데이터베이스는 하나의 하드디스크에 데이터 파일과 트랜잭션 로그 파일로 구성됩니다.하지만 동시다발적으로 데이터가 대규모로 입력될 때 하나의 디스크에 동시에 접근한다면 성능은 느려질 수 밖에 없습니다.따라서 데이터 파일과 트랜잭션 로그 파일은 기본적으로 서로 다른 디스크에 분리해서 관리해야 합니다. 하..
MS-SQL 에서 데이터베이스는 최소한 다음 2개의 파일을 소유하고 있어야 합니다. 첫 번째는 주 데이터 파일(Primary Data File), 확장명이 .mdf 로 실제 데이터가 저장되는 공간입니다.두 번째는 트랜잭션 로그 파일(Transaction Log File), 확장명이 .ldf 로 데이터베이스 복구에 사용되는 트랜잭션 로그가 저정되는 공간입니다. 그리고 추가로 가질 수 있는 파일이 있습니다.보조 데이터 파일(Secondary Data File)로 확장명은 .ndf, 추가적으로 데이터가 저장되는 공간입니다. 그렇다면 보조 데이터 파일은 무엇을 하는가? 입니다.데이터파일에 저장 시 하나의 파일그룹을 사용할 때 보다 좋은 성능을 낼 수 있기 때문에 보조데이터 파일을 사용합니다.예를 들어서 자주 접..
MS-SQL 를 설치하면 master, model, msdb, tempdb 네 가지의 시스템 데이터베이스를 지원합니다. 데이터베이스 역할 master 디스크 공간, 시스템 전체의 구성 정보, 계정 정보, 사용자 데이터베이스에 대한 정보 등 중요한 목록이 포함되어 있습니다. model 사용자 데이터베이스를 생성할 때 기본 모델이 되는 데이터베이스 입니다. msdb SQL Server 에이전트가 사용하는 데이터베이스로 예약된 작업등의 내용이 들어있습니다. tempdb SQL Server 가 임시로 사용하는 데이터베이스 입니다. SQL Server 를 가동할 때마다 항상 새로 생성되므로 임시로 사용해야 할 것만 저장해야 합니다. 쿼리의 중간 결과(특히 정렬)를 저장하며, 일반 사용자가 만드는 임시 테이블도 저..
MSSQL 의 쿼리 중에서 심심찮게 .. 을 사용한 쿼리를 볼 수 있습니다. 기본적으로 . 은 선객체 내에 속한 후객체 접근을 의미합니다. 물론 권한이 있어야 하겠죠.예를 들어서 스키마.테이블 은 해당 스키마에 속한 테이블을 나열합니다. 그럼 .. 은 뭘까요?MSSQL 은 데이터베이스명.스키마명.테이블명 으로 쿼리를 구성할 수 있습니다.이 때 해당 유저의 기본 스키마를 사용한다면 중간의 스키마명을 빼고 데이터베이스명..테이블명 으로 작성할 수 있습니다. 글로만 보면 어려우니, 사진으로 확인해 보겠습니다. 유저의 기본 스키마는 dbo 입니다.dbo 스키마에 mozi 테이블을, guest 스키마에 mozi2 의 테이블을 만든 후, .. 을 사용해서 조회를 시도해 봅니다. dbo 스키마에 속한 테이블객체는 ...
SQL Server 가 기본 포트(1433)을 사용하는 경우 SSMS 에서 연결할 때 포트를 적어주지 않아도 가능합니다.이러한 이유는 포트를 작성하지 않을 시 내부적으로 1433 이라는 포트가 연결이 되기 때문에 가능하며, 기본포트가 아닌 경우에는 SSMS 에 포트를 입력해 주어야 합니다. 그러면 연결은 어떤방식으로 작성해야 할까요?아마 다른 벤더사에 친숙한 분들은 아이피와 포트가 ; 으로 구분될거라 예상하지만 SQL Server는 , 로 구분됩니다. IP\INSTANCENAME,PORT SERVERNAME\INSTANCENAME,PORT 사진으로 같이 보겠습니다.테스트는 기본포트를 사용했고, SSMS 접속시 포트를 사용하는 방법만 작성합니다. LOCAL 에서는 . 혹은 (local) 혹은 SERVERN..
MS SQL 은 인스턴스에서 사용할 수 있는 최소 메모리와 최대 메모리의 산정 량을 제공합니다. SQL Server 가 정상적으로 구동되어 있는 상황이라면, SSMS 를 통해서 쉽게 제어할 수 있습니다.물론 이 때는 SQL Server가 재구동이 필요합니다. [SSMS를 통해서 최대/최소 메모리를 구성하는 방법]1. SSMS를 실행한 후 해당 인스턴스에 접속합니다. 2. 인스턴스 우클릭 - 속성으로 들어갑니다.3. 메모리 탭에서 최대 메모리를 설정합니다. 4. SQL 구성관리자에서 해당 인스턴스를 다시 시작합니다. 이번 포스팅은 최대 메모리를 너무 낮게 산정해서 SSMS도 실행할 수 없는 경우에 대해 알아봅니다. SQL Server 미 구동인 환경에서 최대/최소 메모리를 구성하는 방법1. SSMS에서 최..
MS-SQL에서 지원하는 Data Migration Assistant(이하 DMA)를 사용하여 SQL Server 를 마이그레이션 하는 방법입니다. 테스트 환경은 다음과 같습니다. 환경 버전 DMA Data Migration Assistant v4.2 Source Windows Server 2012, SQL Server 2008 Target Windows Server 2017, SQL Server 2017 DMA는 Source 서버에 설치되어 있습니다.Source와 Target 서버는 서로 통신이 가능합니다. Source 장비에서 2017버전 호환성 테스트 작업마이그레이션을 진행하기 전에 먼저 2008버전에서 사용중인 스키마, 데이터 등과 2017버전이 호환이 맞는지를 테스트 합니다. 1. DMA를 실행..
MS-SQL 은 다른 데이터베이스와는 다르게인스턴스 단위의 로그인 유저와 데이터베이스 단위의 사용자 유저로 나뉘어져 있습니다. 답변부터 말하자면,인스턴스 단위의 로그인 유저는 MS-SQL 에 로그인 하기 위한 계정,데이터베이스 단위의 사용자 유저는 MS-SQL 인스턴스 내의 특정 데이터베이스에 접근하기 위한 계정입니다. 특정 아이디로 로그인한 유저에 대해서는 특정 데이터베이스만 사용하도록 접근권한을 제어할 수가 있습니다. 좀 더 이해하기 쉽게 사진으로 설명합니다. 1. 인스턴스 단위의 로그인에 A 라는 사용자 유저를 생성합니다.2. MIG_TEST와 MIG_TEST2 의 데이터베이스를 생성합니다.3. MIG_TEST2 에만 A 의 유저를 생성합니다. 4. A 로 인스턴스에 로그인 한 후, 각 데이터베이스..
꽁담
'SQL Server' 카테고리의 글 목록 (8 Page)