본문 바로가기
반응형

DATABASE85

[MsSQL] Clustered 연구 노트 - 1. Heap Table 구조 파헤치기 (Page, Index) MsSQL Clustered 연구 노트 MsSQL의 테이블은 2가지 데이터 저장 자료구조를 가지고 있다. 하나는 데이터를 비어있는 Page에 데이터를 담는 Heap 구조와 Clustered Key 값을 가지고 정렬하여 저장하는 Clustered 구조를 가지고 있다. 이번에 작성하는 MsSQL Clustered 연구노트에는 Heap과 Clustered의 데이터가 저장되는 자료구조와 각 구조의 차이에 대해서 한번 Page단위까지 찾아가 보도록하겠다. 테스트를 위해 파일 그룹과 ndf파일을 분리하여 생성하였다. Table을 위치할 DATA 파일 그룹과 Index를 각각 위치시킬 INDEX_01 ~ INDEX_03 파일 그룹을 생성하여, 데이터의 변화 과정에 대해서 확인해보도록 하겠다. Test Table 만들.. 2024. 3. 12.
[Ignite][Linux] 4. Cluster Setting - 클러스터 노드 설정 Ignite Cluster Setting Ignite의 장점은 클러스터 구성을 하여 여러대의 서버 자원을 사용하기 편하다는 점에 있다. 기본적으로 Ignite를 사용하는데 있어서는 당연히 클러스터를 구성해서 사용한다고 생각한다. 여러대의 서버 메모리를 사용하기위해 클러스터 구성을 한번 해보도록 한다. 구성 옵션 지정하는 방법과 서버의 설정들에 대해서 알아보자. config.xml 설정 config.xml 파일에서의 설정은 크게 두가지로 나뉜다. 클러스터에 참여할 노드들의 리스트와 해당 노드들의 데이터를 동기화 할 포트의 설정이다. 클러스터 노드 속성 앞서 항성 작업하던 config.xml 파일에 노드에 대한 설정을 진행하도록 한다. [노드 1 IP]:[노드 연결 포트] [노드 2 IP]:[노드 연결 포트.. 2024. 3. 9.
[Ignite][Linux] 3-2. Config.xml - 보안 설정(계정) / 스키마 Ignite Config 옵션 두번째 두번째 내용으로는 간단한 Database Object 관련 된 설정을 알아보도록하자. [Ignite][Linux] 3-1. Config.xml - Memory / disk 관련 기본 설정 위에 링크한 첫번째 포스팅을 꼭 참고하길 바란다. 이전과 같이 config.xml파일에 추가하여 넣는 방법이다. 인증 설정 Ignite는 보안 설정인 인증은 기본적으로 비활성화가 되어있다. 비활성화의 경우 ID / PW없이 Database에 로그인이 가능하며, 해당 옵션을 활성화 할 경우, ignite / ignite 라는 기본 계정이 발급된다. 영구 저장소가 활성화 되어있어야 인증 설정을 활성화 할 수 있다. 당연하게도 새로운 계정을 만든다고 생각해봤을때, 영구적으로 저장이 되지않.. 2024. 3. 5.
[Ignite] Index - 생성부터 실행 계획과 힌트까지 인덱스의 모든 것 Ignite Index Apache - Ignite도 여타 Database와 마찬가지로 Index가 있다. Index도 Memory 영역에 위치하여 조회에 사용된다. Index를 만들고 사용하는 방법에 대해서 간략하게 설명 및 테스트를 해보자. Index DDL 기본적으로 Ignite 는 Key - Value 구성으로 PK는 테이블 생성시 함께 생성해야한다. 추가적인 인덱스에 대해서는 따로 아래와 같이 생성 및 삭제를 할 수 있다. -- index 생성 create index [INDEX NAME] on [TABLE NAME] ([COLUMN 1], [COLUMN 2] ...); -- index 삭제 drop index [INDEX NAME]; 실행계획 EXPLAIN 쿼리 최적화를 위해 실행계획을 확인 .. 2024. 3. 2.
[Ignite][Linux] 3-1. Config.xml - Memory / disk 관련 기본 설정 Ingite Config 옵션 Ignite의 옵션들은 Config.xml 파일을 통해 적용을 하는것을 기본으로 한다. Config.xml 파일에서 설정 할 수 있는 옵션들은 매우 많지만, 이번 포스팅에서는 운영에 직관적으로 필요한 간단한 옵션들 중 Memory와 Disk관련 된 설정에 대해서 적용해보도록 하겠다. 이전 포스팅에서 config.xml파일을 마운트해서 사용하는 방법을 통해 도커 컨테이너에서 실행 될 Ignite에 옵션들을 적용해본다. [Ignite][Linux] 2. Setting - Docker를 활용한 Ignite 세팅 default-config.xml Ignite는 기본적으로 다른 설정이 없다면, {$IGNITE_HOME}/config 에 위치한 default-config.xml을 불러.. 2024. 2. 27.
[MsSQL] Database Backup이란? - Full / Differential / Log Backup Backup 백업이란, 데이터베이스 또는 해당 트랜잭션 로그의 데이터 또는 로그 레코드를 다른 디바이스 등에 복사하여 두는 것이다. 데이터베이스 백업하고 해당 백업파일을 안전한 저장공간에 보관하고 있는 것이 치명적인 데이터 손실로부터 데이터를 유일하게 보호 할 수 있는 수단이다. MsSQL에서는 Database 혹은 Data File단위의 백업만 가능하다. 즉, 테이블 단위의 백업은 불가하다. MsSQL의 데이터베이스 백업에는 크게 아래와 같은 3가지가 있다. 전체 백업 - Full Backup 차등 백업 - Differential Backup 트랜잭션 로그 백업 - Transaction Log Backup Full Backup (전체 데이터베이스 백업) MsSQL의 데이터베이스 백업하는 방법 중 해당 .. 2024. 2. 24.
[Ignite][Linux] 2. Setting - Docker를 활용한 Ignite 세팅 Docker 옵션들을 통해 Ignite 세팅 우리는 아래의 지난 글에서 도커의 컨테이너에 Ignite를 설치하였다. [Ignite][Linux] 1. Setup - Docker를 활용한 Ignite 설치 LocalHost에 도커의 내부 컨테이너에 실행되고 있는 Ignite와 연결 될 기본적인 세팅하는 방법에 대해 소개해본다. 우리가 기존에 실행하고 있던 컨테이너에 대해서 삭제를 하고 새롭게 컨테이너를 올렸다 삭제해가며 세팅을 진행 해보자. 이 과정은 아래의 내용에 포함하지 않고 매번 컨테이너를 생성할 때마다 진행하지만 생략하겠다. -- 실행 중인 컨테이너 확인 docker ps -- 컨테이너 중지 docker stop [container id] -- 컨테이너 삭제 docker rm [container i.. 2024. 2. 20.
[Ignite][Linux] 1. Setup - Docker를 활용한 Ignite 설치 Docker로 Ignite 설치하기 Apache Ignite를 설치하는 방법이 몇 가지있지만 그 중 Docker를 활용하여 설치하는 방법에 대해 설명해볼까 한다. 리눅스에 기본적인 도커 설치에 대해서는 아래의 글을 참고 바란다. [Docker][Linux] (1) CentOS7 에서 도커 설치 및 Data Root DIR 변경 이글에 포함된 도커 혹은 도커 명령어에 대한 설명은 나중에 도커 관련 글에서 하도록 하겠다. Docker Image - Ignite Ignite 설치를 위해 도커 이미지를 검색하여 다운받는 과정을 거처야한다. 우선 우리가 설치할 Ignite 이미지를 검색해 보자. docker search ignite 위와 같이 검색시 여러 이미지들이 나오는데 그중 STARS가 제일 많은 apach.. 2024. 2. 17.
[MsSQL] 모든 DB에 한번 쿼리 던지기 / DB 모를 때 (SP_MSFOREACHDB 활용하기) 자주 쓰는 쿼리 - SP_MSFOREACHDB 특정 테이블을 찾고 싶은데, 어떤 데이터베이스에 있는지 모를 때, 혹은 여러 데이터베이스들을 돌아가며 파일사이즈를 조사할 때 같이 모든 데이터베이스에 같은 쿼리를 조회하고 싶을 때가 있다. 이럴 때 쓸수있는 시스템 프로시저로 단순 조회작업 뿐만 아니라 프로시저에 활용하여 로그성 데이터, 반복적인 쿼리 조회등을 단순화 하여 업무 능률을 향상 할 수 있다. Query 사용방법은 매우 간단하다. EXEC MASTER.dbo.SP_MSFOREACHDB ' use ? begin [QUERY] end ' SP_MSFOREACHDB의 파라미터로 ' use ? begin [쿼리문] end ' 값을 넣어주면, use ? 부분에 모든 데이터베이스가 한번씩 들어가 쿼리문을 실행.. 2024. 2. 13.
[DBA][MsSQL] Index 사용량 조회 / 미사용 Index 확인 자주 쓰는 쿼리 - Index 사용량 조회 테이블 조회 효율을 위해 인덱스를 생성하여 사용하는 것은 당연하다. 하지만 시간이 지나고 업무 계획의 방향성이 바뀌다보면, 이렇게 생성하여 사용하던 인덱스들 중 사용하지 않게 되는 인덱스가 생길 수 있다. 이렇게 사용하지 않는 인덱스를 한번씩 정리를 해주게 된다면, 테이블의 DML작업에 대해 효율이 조금이나마 올라갈 수 있게 되는데, 이럴 때 도움이 될 만한 인덱스 사용량 조회 쿼리에 대해서 한번 소개해보도록 한다. Query 인덱스 사용량을 조회하는 쿼리는 아래와 같다. use [DATABASE NAME] select db_name(s.database_id) as database_name, object_name(s.object_id) as table_name,.. 2024. 2. 10.
반응형