| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 2026 ADsP 시험일정
- 티스토리챌린지
- PostgreSQL
- 논리복구
- 논리복제
- pg_basebackup
- dap
- 오라클
- postgresql물리백업과 복구
- 샤또 라 리보 메독 크뤼 브르주아
- pgBackRest
- 델타복원
- chateau la ribaud 2018 medoc cre bourgeios
- 복제테이블변경
- 리눅스
- ADP시험일정
- mariaDB
- 물리복제
- SQLD
- Linux
- 오블완
- 물리복구
- oracle
- 물리백업
- 2026 ADP 시험일정
- rds for oracle
- Cloudy Bay Sauvignon Blanc
- SQLP
- dasp
- 논리백업
- Today
- Total
목록DATABASE/Postgresql (15)
IT study
1. pg_basebackup을 이용한 전체 백업pg_basebackup은 postgresql이 제공하는 기본 백업 도구로 전체 백업 간편하게 수행할 수 있다.# pg_hba.conf 파일에 로컬 복제 항목 추가[postgres@11039b77a76b svcdb]$ vi $PGDATA/pg_hba.conf# TYPE DATABASE USER ADDRESS METHODlocal replication postgres peer# archive_command 설정archive_mode = on archive_command = 'dd if=%p of=/dbbacku..
물리 백업 : 데이터베이스 클러스터를 구성하는 파일 단위의 백업 온라인 백업 - 인스턴스가 기동 중인 상태에서 수행 오프라인 백업 - 인스턴스를 종료한 뒤 수행 장애시점까지의 '완벽한 복구'를 지원하며, 사용자의 실수로 데이터가 삭제되었을 경우에도 손실 직전 시점까지 복구할 수 있는 시점 복구(Point-in-Time Recovery) 기능 제공1. 백업 및 복구 개요1) 백업 유형 - 전체 백업 ( Full Backup ) : 데이터베이스 클러스터 내의 모든 파일을 백업 - 증분 백업 ( Incremental Backup ) : 마지막 증분 백업 이후에 변경된 내용만 백업 - 차등 백업 ( Differential Backup ) : 마지막 전체 백업 이후에 변경된 내용만 백업 2) 복구에 필요한 백업..
논리 백업은 백업 시점의 데이터를 복원하는 용도로 사용되며, 복구보다는 데이터 보관 및 이행 목적으로 활용된다. 물리백업처럼 아카이브 파일을 이용해서 장애 시점까지 복구 할 수 있는 기능이 없다. Pg_dumpall, pg_dump, COPY 명령어를 제공한다. 1. Pg_dumpall 을 이용한 백업데이터베이스 클러스터 내의 모든 데이터베이스와 관련 정보를 한꺼번에 백업할 수 있는 기능을 제공한다. 압축 및 병렬 백업 기능을 제공하지 않는 다는 단점이 있음.주로 논리 복제 구성 시에 데이터베이스 클러스터 내의 모든 형상 정보와 롤(Role) 정보를 백업하는데 사용 데이터베이스 클러스터 생성 스크립트 백업 방법 모든 오브젝트 생성 스크립트만 백업할 경우 -s 옵션을 사용한다.데이터는 백업하지 않고 오브젝..
Publication 을 테이블 레벨로 생성한 경우, 복제 대상 테이블을 추가, 삭제 또는 재설정할 수 있다.ALTER PUBLICATION 명령어를 이용한다. 작업명령어테이블 추가Alter publication 명> add table 테이블 목록>;테이블 삭제Alter publication 명> drop table 테이블 목록>;테이블 재설정Alter publication 명> set table 테이블 목록>; 테이블 추가1. 테이블 생성 --발행 서버에 테이블 생성 및 초기 데이터 추가svcdb=# Set role svc;SETsvcdb=> Create table svc.t3(c1 integer, c2 integer, constraint t3_pk primary key(c1));CREATE TABLE..
논리 복제의 전체 아키텍처와 동작 순서를 확인.물리복제에 비해 구조가 더 복잡하며, 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)..