본문 바로가기
반응형

DATABASE85

[MariaDB][Linux] Log Setting (2) - Error Log 설정하기 MariaDB Error Log 설정 MariaDB에는 기본으로 기록하는 Log 인 Error 로그가 있다. Error Log는 따로 On/Off의 개념은 없지만, Log 파일이 설정되어 있지 않아서 저장되고 있지 않기에 로그를 저장하기 위해 로그 파일의 위치를 설정해주도록 한다. Error Log MariaDB의 Error Log는 서버의 운영 중에 발생한 심각한 오류나 테이블 손상, MariaDB 서비스 On/Off등에 대한 중요 정보에 대해서 기록하며, 기록의 자세한 내용을 옵션으로 조절 할 수 있다. Error Log 설정 확인 mysql > show variables like '%log_error%'; 아직 Log 파일이 설정되어 있지 않는 상태이다. 해당 로그파일 경로에 절대 경로 혹은 DAT.. 2024. 2. 2.
[Oracle] Table / Column Comment - 코멘트, 설명 달기 Comment -- Table Comment 추가 comment on table [Table Name] is '[Table Comment]'; -- Column Comment 추가 comment on column [Table Name].[Column Name] is '[Column Comment]'; 오라클의 테이블과 컬럼에 대한 코멘트를 다는 방법은 매우 간단하다. 테이블, 컬럼은 여러 사람이 같이 사용하는 공공재라고 볼 수 있는데, 이런 테이블과 컬럼에 코멘트를 달아 자세한 설명을 추가하는 것을 기본으로 한다. 테이블이나 컬럼 명칭은 표준화로 명확하지만 심플하게 만들되, 코멘트는 최대한 자세히 추가한다고 생각하자. Table Comment 테이블에 대한 코멘트 추가, 변경, 삭제는 하나의 명령어로 모.. 2024. 1. 26.
[MariaDB][Linux] Log Setting (1) - General Log, Slow Query Log 설정하기 MariaDB Query Log 설정 MariaDB에는 서비스의 질을 향상시키고자 지원되는 여러가지 Log 기능들이 있다. 그 중에 대표적으로 사용되는 모든 쿼리에 대해 저장하는 General Log와 특정 시간 이상 걸리 쿼리에 대해 저장하는 Slow Query Log가 있다. 이외에도 사용되는 많은 Log가 있지만, 오늘은 이 두개에 대해 알아보도록 한다. General Log MariaDB의 Audit과도 같은 Log 라고 볼 수 있는데, MariaDB의 모든 쿼리에 대한 로그를 저장한다. 여기에는 Slow Log, Error Log 등의 값도 포함이 된다. Genral Log 설정 확인 show variables like '%general%'; General Log는 위와 같은 명령어로 상태값을 .. 2024. 1. 19.
[DBA][MariaDB] 사용자 계정 접속 잠금, 비활성화(?) - ACCOUNT LOCK USER ACCOUNT LOCK MariaDB의 특정 사용자 계정의 로그인 불가 상태로 만드는 방법이다. MariaDB 10.4 버전부터 해당 옵션을 지원한다. alter [user_id]@'[host_address]' account lock; MariaDB 는 특성상 사용자 계정을 " 계정명@접근대역 " 으로 생성한다. 즉 동일한 계정명이 여러개이고 접근 대역만 다를 수 있는데, 이 중 사용자가 로그인 하지 않았으면 하는 계정@접근대역을 로그인하지 못하게 잠글 수 있는 기능이다. 계정 생성 시 로그인 잠금 CREATE USER로 새로 생성하는 계정을 로그인 불가 상태로 생성하는 방법이다. create [user_id]@'[host_address]' identified by '[password]' acc.. 2024. 1. 12.
[MariaDB] 장애 조치 - Galera Cluster 동기화 전송 지연 (Delete_rows_log_event::find_row) Galera Cluster 동기화 전송 지연 Galera Cluster를 구성할 때 제일 중요한 점이 하나 있다. 바로 각 Table에 PK가 무조건 있어야 한다는 것인데, 이는 PK값을 통해 해당 테이블의 값을 찾아 변경/삭제를 하여 동기화를 하기 때문이다. 원래 Galera Cluster를 구성할 때 모든 테이블에 PK를 조사하여, 없으면 생성 후 구성을 하였는데 간단한? 데이터 작업을 하기위해 Temp Table을 만들고 데이터를 삭제하는 과정에서 PK를 누락하여, 갈레라 클러스터 간의 동기화 지연 이슈로 서버가 먹통이 되었다. 이 장애의 내용부터 시작해 해결방법 그리고 얼마나 걸렸는지, 그 후속 테스트까지 간단하게나마 글로 남겨보도록 한다. 장애 내용 Galera Cluster가 구성되어있는 Ma.. 2024. 1. 5.
[MariaDB][Linux] 보안 설치 - mariadb-secure-installation MariaDB 보안 설치 MariaDB의 보안을 향상시키는 추가 설치이다. MariaDB 운영 단계로 넘어가기 전 해당 작업을 추가하는 것을 권장한다. mariadb-secure-installation MariaDB 설치 이후 해당 실행 파일은 아래의 경로에서 확인 할 수 있다. /usr/bin/mariadb-secure-installation 따로 인자없이 해당 파일을 실행하면 된다. 아래와 같은 내용을 적용 할 수 있다. - root 계정의 비밀번호를 설정 - Local Host 외부에서 엑세스 할 수 있는 root 계정 삭제 - 익명 사용자 계정 삭제 - 테스트 데이터베이스 삭제 적용 방법 아래와 같이 실행 하면 해당 순차적으로 실행되어 설정이 적용된다. /usr/bin/mariadb-secure-.. 2023. 12. 29.
[MariaDB] Password 복잡도 설정 - simple_password_check Plugin Password 복잡도 MariaDB의 계정의 패스워드에 대한 복잡도를 설정 할 수 있다. 계정의 패스워드에 최소 자리수, 대소문자, 특수문자, 숫자 등의 제한 값을 설정 할 수 있다. 이와 같은 내용을 설정 하는 플러그인 simple_password_check는 아래와 같이 적용 할 수 있다. 1. Plugin 확인 패스워드 복잡도를 설정하기위해 사용 할 simple_password_check 플러그인은 MariaDB와 함께 배포가 되지만, 기본적으로 설치되지는 않기에 확인 후 설치가 필요하다. Plugin Directory 경로 확인 -- 플러그인 경로 확인 mysql > show variables like 'plugin_dir%'; MariaDB의 플러그인이 모여있는 경로를 확인한다. simple_.. 2023. 12. 6.
[MsSQL] Database 복구 모델 - Simple, Full (단순 모델, 전체 모델) Database Recovery Models MsSQL의 데이터베이스 복구 모델은 데이터베이스의 트랜잭션 로그의 유지관리를 제어하는 중요한 속성이다. 단순 모델(Simple), 전체 모델(Full) 이냐에 따라 아래와 같은 내용을 제어할 수 있다. 트랜잭션이 기록되는 방법 트랜잭션 로그의 백업이 필요하며, 허용되는지 여부 데이터베이스 복원 시 작업의 종류 (트랜잭션 로그 백업의 사용) Simple Recovery Model 단순 모델은 말 그대로 단순한 복구 모델이다. 단순 모델의 가장 핵심은 트랜잭션 로그를 저장하고 있지 않다는 점이다. 정확히는 검사점(Check Point)이 발생 할 때 마다 트랜잭션 로그를 비워주어 로그 공간을 자동으로 회수한다. 자동으로 회수되는 로그 공간으로 인해, 트랜잭션 로.. 2023. 10. 16.
[MsSQL] OUTPUT - Update 사용 시, 변경 전/후 행 반환하기 (deleted/inserted) OUTPUT Output 구문은 insert, update, delete, merge 문과 함께 사용되며, 각 DML문에 처리되는 행을 반환하는 문법이다. 각 행을 반환하여, Into 구문를 통해 TABLE 혹은 TEMP TABLE 에 해당 행을 삽입한다. Update 문 사용 시 Output update TABLE_A set a_column1 = 'value3' -- output 구문 output deleted.a_column1, inserted.a_column2, deleted.a_column3 + inserted.a_column3 -- into 구문 into TABLE_B (b_column1, b_column2, b_column3) where [조건] update문 사용시, update ~set과 .. 2023. 9. 7.
[MSSQL] 커서(CURSOR) - 행(ROW) 단위 처리의 사용 법 Intro 안녕하세요. 초보 DBA 다뉴입니다. 처음 Database로 업무를 하고 제일 많이 사용했던 것이 오늘 소개할 커서라는 것 인거 같은데요. 나중에 알고보니 커서를 사용하기에 느려지는 트랜잭션들이 많다는 것을 알게되고, 최대한 줄이려고 노력한 것도 이 커서입니다. 하지만 필요할 때 사용해야 하는 커서(cursor)에 대해서 알아두면 좋으니 한번 알아보도록 하죠. Cursor 커서(Cursor) 란? 커서는 데이터의 처리를 집합단위가 아닌 행 (ROW)단위로 처리하기 위해 사용합니다. 일종의 반복문이죠. 데이터를 행단위로 처리하기에 행단위 작업에 대한 장점이 있지만, 일괄 처리를 하지않고 각 행의 조회, 처리, 커밋 등의 단위작업이 포함되게 되므로 속도가 느려질 수 있습니다. BOF (Begin .. 2023. 9. 6.
반응형