전체 글 98

VACUUM type 에 따른 redo 발생량 차이

일반적으로 다음과 같은 순서로 REDO 로그량이 많이 발생합니다:VACUUM FULL > VACUUM > VACUUM FREEZE [테스트 시나리오]데이터 준비100만 건의 초기 데이터 생성각 VACUUM 테스트 전에 서로 다른 패턴으로 데이터 업데이트/삭제각 VACUUM 유형별 특징VACUUM FULL: 테이블 전체 재작성으로 가장 많은 REDO 발생일반 VACUUM: 삭제된 레코드 정리VACUUM FREEZE: 트랜잭션 ID 에이징 처리측정 방법pg_current_wal_lsn() 함수로 WAL 위치 측정pg_wal_lsn_diff() 함수로 발생한 REDO 로그량 계산pg_size_pretty() 함수로 읽기 쉽게 포맷팅결과 분석각 VACUUM 유형별 REDO 로그 발생량 비교 제공VERBOSE 옵..

Postgresql/admin 2024.11.13

PostgreSQL architecture (Local Memory)

Local Memory ㄴ 세션별로 독립적인 메모리 공간ㄴ 작업 유형에 따라 동적 할당ㄴ 성능 최적화 고려사항 큰 정렬 작업이 많은 경우 work_mem 증가대규모 vacuum 작업 시 maintenance_work_mem 조정- maintenance_work_mem: VACUUM, INDEX 생성, 테이블 변경, FK추가 등 관리 작업에 사용- work_mem: 정렬, 해시 테이블 등의 작업에 사용- temp_buffers: 임시 테이블을 위한 버퍼- catalog_cache: system catalog 메타데이터 사용공간 -- 현재 세션의 메모리 사용량 확인SELECT * FROM pg_stat_activity WHERE pid = pg_backend_pid(); [TEST] 동시접속자 10명이 트랜..

[book] PostgreSQL 9.6 성능 이야기 - vacuum

postgresql 중 vacuum 이란 것에 대해서 정리 vaccum 이란 불필요한 데이터를 정리하고 압축해서 디스크공간의 효율성을 높인다오래된 트랜잭션을 정리하는 작업도 수행Multi-Version Concurrency Control = 동시에 여러 개의 데이터 버전을 제공할수 있는 기법오라클의 MVCC와 postgresql MVCC의 차이특성PostgreSQLOracleMVCC 구현 방식같은 row의 여러 버전이 테이블에 함께 저장됨Dead tuple은 vacuum으로 정리Undo 세그먼트에 이전 버전 저장자동으로 관리됨공간 관리vacuum 작업 필요관리자의 주기적인 관리 필요테이블 bloat 발생 가능Undo 세그먼트 자동 관리별도 관리 작업 불필요테이블 크기 안정적동시성 처리읽기 작업이 쓰기를 ..

oracle 유용 명령어

oerr ora 03113 oerr tns 93321 변경 이력을 찾는 쿼리 select versions_startscn st_scn, versions_endscn endscn, versions_xid txid, versions_operation opt , 회원 from 회원 versions between scn minvalue and maxvalue where tel = ‘11’; db_recovery_file_dest 와 관련해서 에러나면 해당 쿼리로 원인,권장사항 찾을 수 있음 select object_type, message_type, message_level, reason, sugeested_action from dba_outstanding_alterts;

카테고리 없음 2024.10.28

mysql 모니터링 관련

- mysql 관련해서 핵심 모니터링 지표를 제시한다 - 보통 쿼리 응답시간이나 cpu 또는 메모리 관련된 지표들을 확인해 볼 수 있다.    -- CPU 사용률이 높은 쿼리 확인SELECT DIGEST_TEXT, COUNT_STAR, SUM_TIMER_WAIT/1000000000 as exec_time_ms, SUM_CPU_TIME/1000000000 as cpu_time_msFROM performance_schema.events_statements_summary_by_digestWHERE SUM_CPU_TIME > 0ORDER BY SUM_CPU_TIME DESCLIMIT 10;-- 메모리 사용량 확인SHOW GLOBAL STATUS LIKE 'Innodb_buffer_pool..

Mysql & Maria/admin 2024.10.24

PostgreSQL architecture (shared Memory)

Shared Memory (공유 메모리) ㄴ 디스크 I/O를 최소화하기 위해 사용되는 메모리 공간ㄴ PAGE SIZE 8K(Default)이다. 파라미터는 shared_buffersㄴ oracle 의 SGA와 유사 shared buffer = data : page (block)단위로 구성이 되고 기본이 8k 크기oracle의 buffer cache 와 유사하고 postgresql.conf 의 shared_buffers 파라미터 값으로 크기 조정 가능기본이 128MB 1GB이상의 RAM이 있는 서버에는 25%를 권장한다. ( shared_buffers = RAM * 0.25 )4GB RAM: 1GB (25%)8GB RAM: 2GB (25%)16GB RAM: 4GB (25%)32GB RAM: 8GB (25%..

oracle linux 7 + oracle 19c rac+asm DB 설치 시나리오

삽질을 한 8번 가까이 해서 설치만 몇번을 했는지..ㅋㅋ 조만간 동영상 녹화로 설치영상 업로드할예정 설치사항- Oracle virtual box - Oracle linux 7.6- Oracle Grid 19.3- Oracle Database 19.3 오라클 리눅스 설치파일은 http://edelivery.oracle.com/ 에서 다운로드 받음Oracle Linux Release 7 Update 6 for x86 (64 bit)(V980739-01).iso 서버 구성VMHost NameMemoryNet Adapter 1Net Adapter 2구성 방법RAC1rac18GB어댑터에브리지호스트 전용 어댑터리눅스 설치RAC2rac28GB어댑터에브리지호스트 전용 어댑터RAC1 복제- net adapter 2 는 ..

오라클/설치 2024.10.15

percona toolkit 설치

기존 레포지토리 정리 및 재설치# 기존 percona 레포지토리 제거sudo rpm -e percona-release# yum 캐시 정리sudo yum clean all# percona 레포지토리 다시 설치sudo yum install -y https://repo.percona.com/yum/percona-release-latest.noarch.rpm Percona 레포지토리 활성화 확인 및 설정# 저장소 상태 확인sudo percona-release show# Percona Tools 저장소 활성화sudo percona-release enable-only tools release# yum 캐시 업데이트sudo yum clean allsudo yum makecache 레포지토리 설정 파일 확인# 레포지토..

Mysql & Maria/admin 2024.09.14

centos 7, mysql 5.7 설치

VMware에 5.7 mysql 설치 후 8.0 으로 upgrade 하는 시나리오에 대해 포스팅하려고한다 일단은 OS 설치는 되어있다고 전제하에 mysql 만 설치하는 걸로 - centOS- mysql 5.7 서버별 호스트 변경 hostnamectl set-hostname server1 1. GPG Key 다운로드## GPG Key 다운로드rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022 2. wget 설치## wget 설치yum install -y wget 3. MySQL5.7 다운로드## MySQL5.7 다운로드wget https://dev.mysql.com/get/mysql57-community-release-el7-11.noarch.rpm 4..

Mysql & Maria/admin 2024.09.14