본문 바로가기

반응형

개발(합니다)/DB

(13)
[MySql] DB 용량 확인하는 방법 서버를 이용하다보면 서버의 용량을 많이 사용하는 DB에 사용량과 여유량을 확인 해야 합니다. 정기적으로 데이터를 백업해주고 여유공간을 확보해주저야지 서비스가 중단되는 이슈를 막을 수 있습니다. DB에서 사용하고 있는 용량, 데이터베이스별, 테이블별을 포스팅합니다. 전체 용량 확인 SELECT SUM(data_length+index_length)/1024/1024 used_MB, SUM(data_free)/1024/1024 free_MB FROM information_schema.tables; 데이터베이스별 용량 확인 SELECT table_schema "Database Name", SUM(data_length + index_length) / 1024 / 1024 "Size(MB)" FROM informa..
[Mysql] MySql Lock 조회 및 해제 방법 쿼리를 날렸는데 정상적으로 동작하지 않아서 DB 서버에 쿼리가 제대로 동작하지 않아 락이 걸린 상황입니다. 아래처럼 Running... 도중에 클났다 하고 꺼버린 경우가 많지요 아래 명령어를 실행하여 프로세스를 확인하고 문제가 되는 프로세스를 kill 해줍니다. -- 모든 프로세스 조회 SHOW FULL PROCESSLIST; -- 트랜젝션조회 select * FROM information_schema.INNODB_TRX; -- 락만 조회 SELECT * FROM information_schema.`PROCESSLIST` WHERE Command 'Sleep' AND USER NOT IN ('system user', 'event_scheduler') ORDER BY TIME DESC; -- 해당 프로세스..
[DB] 식별 관계와 비식별 관계 개요 ERD를 작성하다보면 테이블 간의 관계를 설정하면서 외래키를 사용해 다른 테이블과의 키를 공유하고 조인을 합니다. 외래키를 이용하여 관게를 정립하기 위해 식별 관계와 비식별 관계 전략이 있습니다. 식별 관계 식별 관계 : 부모 테이블의 기본 키나 유니크 키를 자식 테이블이 자신의 기본키로 이용 -> 부모 데이터가 존재해야지 자식 테이블에 데이터를 추가할 수 있습니다. 위 그림에서는 PK를 part_id로 가지고 PFK로 pc_id를 가집니다. 부모 테이블의 키를 기본키로 가지고 있어서 부모 테이블의 데이터가 있어야지 자식 테이블에 데이터를 추가할 수 있습니다. 장점과 단점 장점 데이터의 정합성 유지를 DB에서 검증 단점 구조 변경이 어려움 비식별 관계 비식별 관계 : 부모 테이블의 기본 키나 유니크..
[liquibase] DB에서 리퀴베이스 리버스(revers) 문법(추출)만들기(generateChangeLog ) 리퀴베이스를 이용해서 DB에 저장하는 방법은 알지만 이미 구축되어 있는 DB에서 리퀴베이스 문법으로 추출하는 방식에 대한 포스팅입니다 관련 정보는 아래 사이트에서 확인할 수 있습니다. docs.liquibase.com/commands/community/generatechangelog.html docs.liquibase.com/workflows/liquibase-community/creating-config-properties.html www.baeldung.com/liquibase-refactor-schema-of-java-app liquibase.properties를 만드는 방법과 cmd에서 실행하는 방법이 있는데 방법은 같으므로 간단하게 cmd를 기준으로 작성하도록 하겠습니다. 1. Driver 설치..
[DB] tibero에서 job 사용하는 방법 DB에서 정기적으로 실행해야 하는 경우가 있습니다. 로그를 쌓는다거나 지표를 만들기 위한 쿼리가 있으면 linux의 crontab과 같이 잡을 생성하여 관리할 수 있습니다. 본 포스팅은 tibero를 기반으로 작성했으나 거의 모든 DBMS는 job을 비슷한 형태로 제공하므로 하나의 사용방법을 익히면 다른 DBMS에서도 금방 사용할 수 있습니다. 개요 DBMS_JOB은 PSM에서 사용 가능한 쿼리를 JOB에 등록하여 주기적으로 실행 할 수 있습니다. DBMS_JOB 패키지를 사용할 때 DBA 권한은 필요하지 않고 추가된 JOB은 오직 JOB 소유자만 실행하거나 변경할 수 있습니다. 특정 인스턴스에서 JOB을 실행하지 않도록 지정하는 기능은 지원하지 않습니다. JOB을 추가하거나 변경하는 경우 자동으로 커밋..
[DB] extract을 이용해 timestamp를 비교 및 일,시,분,초 추출하기 쿼리를 작성하다보면 날짜와 시간을 같이 비교해야 하는 경우가 발생합니다. sysdate는 날짜를, systime은 시간을 표시하고 systimestamp는 날짜와 시간을 표시합니다. systimestamp를 이용해 비교하고, 일, 시, 분, 초를 추출하도록 하는 방법입니다. oracle, tibero select EXTRACT ( DAY FROM SYSTIMESTAMP ) * 24 * 60 * 60 AS dd , EXTRACT ( HOUR FROM SYSTIMESTAMP ) * 60 * 60 AS hh , EXTRACT ( MINUTE FROM SYSTIMESTAMP) * 60 AS mm, EXTRACT ( SECOND FROM SYSTIMESTAMP) AS ss, EXTRACT ( DAY FROM TO..
[DB] 테이블 스페이스, 테이블, 컬럼 정보 조회하기(pg, mysql, oracle, tibero) 개발하다보면 테이블 스페이스의 용량이 얼마나 잡혀있는지, 사용 되어 있는지 확인하는 경우가 생깁니다. 혹은 테이블에 있는 컬럼 리스트를 뽑아봐야 하는 경우도 생기는데 필요한 쿼리를 정리합니다. 테이블, 컬럼 정보 Postgresql 1. 테이블 목록 조회 SELECT RELNAME AS TABLE_NAME FROM PG_STAT_USER_TABLES 2. 컬럼 목록 조회 select * from information_schema.columns where table_catalog = '데이터베이스명' and table_name = '테이블명' order by ordinal_position; 3. 기본키 조회 select cc.column_name as column_name from information_s..
[postgresql] DB 데이터 내보내기 CSV 파일로 내보내는 방법입니다. 콘솔 호출 1. 데이터 생성 및 확인 CREATE TABLE test_table(name varchar(10), age int);INSERT INTO test_table VALUES ('아무개', 25);INSERT INTO test_table VALUES ('누구게', 26);INSERT INTO test_table VALUES ('이리오게', 27);INSERT INTO test_table VALUES ('저리가게', 28);SELECT * FROM test_table; 2. 콤마(,)를 기준으로 내보내기 \COPY test_table (name, age) to './test_test.csv' WITH DELIMITER ','; 3. 내보내기가 정상적으로 이루어졌는..

반응형