| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- dap
- parkmgm
- 리눅스
- 논리복제
- 2026년SQLP시험일정
- 오라클
- 오블완
- sqlp공부방법
- 논리복제아키텍처
- oracle
- myvegas comp room calendar
- autocommit설정
- sqlp합격후기
- job관리
- myvegs
- 물리복제
- 티스토리챌린지
- dasp
- 2026SQLD시험일정
- myvegascomproom
- SQLD
- sqlp시험
- 데이터자격검정시험
- PostgreSQL
- Linux
- 2026년 dasp dap 시험일정
- mariaDB
- 동기모드
- comp room calendar 2026
- SQLP
- Today
- Total
목록DATABASE/Postgresql (11)
IT study
논리 복제의 전체 아키텍처와 동작 순서를 확인.물리복제에 비해 구조가 더 복잡하며, replication slot, tablesync worker 등 새로운 구조와 프로세스가 포함되어있다. 논리 복제 동작 순서 1. 논리 복제 1단계Subscription이 생성되면, 생성한 개수만큼 apply worker 프로세스가 자동으로 기동. 이전 포스팅에서 1개의 subscription을 생성했기때문에 한 개의 apply worker프로세스가 실행된다.Subscription이 생성시 다양한 옵션 설정 가능하며copy_data 옵션은 구독 시작 시점에 Publication 테이블의 데이터 복제 여부를 결정하는 옵션이며 기본값은 true로 구독생성시 발행서버의 테이블 모든 데이터 초기 복제함. 초기 데이터 복제 ..
논리복제 : WAL 파일의 내용을 분석해 DML 쿼리를 생성하여 전달. Logical decodingPg 버전이 달라도 복제를 수행할 수 있는 장점이 있다. 이 특성을 활용하여 메이저 버전 업그레이드시에 활용 가능서비스별로 DB분리된 환경에서 배치 업무를 위한 필요 테이블만 한곳에 모아 작업 가능 ㅇ논리 복제 구성 절차발생(Publication) 서버의 파라미터 설정 변경Publication 생성Publication 전용 유저 생성구독(Subscription) 서버에 스키마 및 테이블 생성Subscription 생성 0. 테스트 환경 구성 svcdb=# grant usage, create on schema svc to svc;GRANTsvcdb=# set role svc;SETsvcdb=> create ..
물리복제 - 동기 모드 트랜잭션 성능 저하되지만 failover 상황에서 트랜잭션 유실되지않는다.최소 두개의 리플리카 서버가 필요하다.가용성 향상을 목적으로 소프트웨어 이중화 방식을 적용할 때 고려되는 구성 방식 소프트웨어 이중화는 마스터 서버에 장애가 발생했을 때, 리플리카 서버가 마스터로 승격(promote)되는 구조이므로, 트랜잭션 유실 방지하려면 반드시 동기 모드로 구성해야한다. 동기모드는 마스터서버가 리플리카 서버의 응답을 대기해야하므로 트랜잭션 성능이 크게 저하되는 단점이 있다. 트랜잭션 변경 내용이 리플리카 서버까지 반영되어야만 트랜잭션 완료.리플리카 서버에 장애가 발생하면 마스터 서버의 트랜잭션이 대기(hang) 상태에 빠지는 문제 발생.이런 상황 방지를 위해 동기모드 구성하려면 최소 두개..
물리복제는 트랜잭션의 변경사항을 담고 있는 WAL 파일의 내용을 스트리밍 방식으로 리플리카 서버에 전송하는 복제 방식이다. walsender (1) : wal 데이터를 walreceiver(2)에게 전송, walsender 프로세스는 walreceiver 프로세스가 마스터 서버에 접속할 때, postgres데몬 프로세스에 의해 생성된다. 리플리카 서버당 walsender 프로세스 1개씩 할당walreceiver(2) : walsender프로세스로부터 전송받은 wal 데이터를 wal 파일에 기록startup recovering(3) : wal 파일을 읽어 변경 내용을 공유 버퍼에 적용 ㅇ물리복제의 우수성트랜잭션 로그를 송신하는 프로세스와 수신하는 프로세스 각각 존재커밋 이전에도 변경된 데이터를 리플리카 ..
docker 에 rocky9 linux 컨테이너 생성하여 그 위에 postgresql 설치 window 위에 docker desktop 설치하여 docker command로 작업 1. docker에 rocky linux 이미지 다운로드 및 실행# 이미지 다운로드 docker pull rockylinux:9#확인 docker images#컨테이너 생성 (run=생성&시작)docker run -it -d --name pgtest01 rockylinux:9#확인docker ps#컨테이너접속docker exec -it pgtest01 /bin/bash#중지되어있다면 docker start pgtest01로 시작 2. PostgreSQL 설치#패키지 업데이트[root@1ae72e5a5f0d /]# dnf upd..
테이블, 시퀀스, 함수, 트리거 등 각종 오브젝트에 대한 권한 조회입니다 -- 유저 grant role 조회select grantor::regrole::varchar(100) as grantor, member::regrole::varchar(100) as grantee, string_agg(roleid::regrole || (case when admin_option = true then '(★)' else '' end),', ' order by roleid::regrole,admin_option) as grant_roles -- admin_option: is_grantablefrom pg_catalog.pg_auth_members pam where member::regrole::varchar(100)..
테이블 스키마, 소유자 및 오브젝트 소유자 변경 관련 쿼리입니다. 간단한 문구로 소유자 변경이 가능합니다. 테이블 소유자 변경 alter table {table_name} owner to {new_role}; 테이블 스키마 변경 ALTER TABLE {table_name} SET SCHEMA {new_schema_name}; 특정 소유자가 소유한 모든 객체 owner 변경 REASSIGN OWNED BY {old_role} TO {new_role}; 하지만 ! 변경하려는 오브젝트가 사용중인 트랜잭션이 있다면.. Lock대기가 발생하겠죠 운영중에는 영향도를 파악하여 진행해야합니다. 관련 실습예제입니다./* 버전 : PostgreSQL 15.8 (Ubuntu 15.8-1.pgdg24.04+1) on x86_..
유저삭제시에 해당 유저가 소유한 객체와 부여받은 모든 권한이 제거되어야하므로 우선 소유한 객체를 확인하는 용도로 쿼리를 정리하였습니다. pg_catalog를 활용한 테이블, 뷰, 시퀀스, 인덱스, 함수, 프로시저, 트리거 등 오브젝트의 스키마, 소유자를 조회하는 쿼리입니다. select * from ( -- 테이블, 뷰, 시퀀스, 인덱스 ,Mview, toast table, foreign table 등 조회 SELECT r.rolname as owner, n.nspname as schema_nm , case when c.relkind = 'r' then 'table' when c.relkind = 'v' then 'view' when c.relkind = 'S' then 'sequence' when c...
스펙을 최대한 낮춰서 EC2 ubuntu환경에 postgresql 15 설치하다 사용 중 PG깨지는 현상이 발생했다.. 가장 큰 문제는 wal log를 수용할 디스크공간이 없던것!!psql 을 접속할 수 없어서 아무생각없이 wal log폴더 내 데이터 삭제해버림 ㅠ 그 결과 Postgresql 서버가 올라오지 못하고 DB시스템이 shut down됨!! 2024-11-14 16:05:19.069 KST [7685] LOG: starting PostgreSQL 15.8 (Ubuntu 15.8-1.pgdg24.04+1) on x86_64-pc-linux-gnu, compiled by gcc (Ubuntu 13.2.0-23ubuntu4) 13.2.0, 64-bit2024-11-14 16:05:19.071 K..
Shared Memory 데이터베이스 기동 시 공용 메모리 공간인 Shared Memory가 할당모든 backend 프로세스들에 의해 공유되는 공간 1) Shared Buffers데이터 변경 사항을 Block 단위로 저장하여 물리적 I/O를 하지 않아 데이터 처리를 빠르게 함postgres=# show shared_buffers; shared_buffers---------------- 128MB --* Shared buffer 크기 : 128MB = 16384 * 8KBpostgres=# select name, setting from pg_settings where name = 'shared_buffers'; name | setting----------------+--------- sh..
