Backend/데이터베이스 5

[PostgreSQL] Logical Replication로 데이터 Migration하기

개요PostgreSQL의 Logical Replication 기능을 사용하여 다른 PostgreSQL DB로 데이터 Migration 하기  Logical Replication이란?Logical Replication은 PostgreSQL의 데이터베이스 간에 특정 테이블의 변경 사항을 동기화할 수 있는 기능이다. 기존의 Physical Replication과 달리, 테이블 단위(또는 테이블 그룹 단위)로 데이터 변경 사항을 추출하여 이를 다른 PostgreSQL 서버에 전송한다. 이를 통해 전체 데이터베이스가 아닌 일부 테이블만 복제할 수 있다. Logical Replication은 WAL (Write-Ahead Logging)을 decoding하여 테이블의 변경 사항을 추출하는 방식으로 동작한다. Pos..

오라클 19c 설치 (REHL 8) with RPM

요구사항 프로젝트 수행 중 AWS에 있는 RDS를 설치형 RDB로 변경해서 진행해야하는 요구사항이 있었다. 우리가 사용하는 RDS는 MariaDB인데, 고객사가 보안정책 상 Oracle을 사용해야한다 해서 설치하게 되었다. (JPA만세) 우여곡절이 정말 많았던 설치. Oracle은 처음이여서 처음보는 에러와 난관에 2~3일은 걸린 듯하다. 나중에 내가 다시 보기위해 포스트를 한다. 만약 처음부터 설치하고 싶은 사람은 Docs 참고하길 바란다. 백엔드 개발자라면 DB설치도 할 수 있어야한다고 생각한다 1. REHL 8에서 누락된 compat-libca1, compat-libstdc++-33 패키지 설치 yum install -y http://mirror.centos.org/centos/7/os/x86_64..

AWS RDS(MariaDB), MongoDB 운영 데이터를 개발로 이관하기

요구사항 AWS에 구성된 MariaDB(RDS), MongoDB 운영DB 데이터를 개발로 이관(백업)하자 제약사항 MariaDB(운영)는 Private Subnet에 존재해서 로컬에서 직접 접근이 불가하다. MariaDB(개발, 운영)은 RDS로 서비스 중이므로 서버 명령어를 직접적으로 실행시킬 수 없다. 이관 시 새로운 스키마/DB를 개발 DB에 미리 생성하고, 생성한 스키마/DB에 운영 데이터를 이관해야한다. 작업 시작 빠르게 처리해야만 하는 Task여서 여러가지 방법을 비교하거나 고려하지는 못했다. 더 좋은 방법이 있을 것 같지만, Task를 진행하는 순간에는 아래 방법이 가장 빠르다고 판단했다. 나는 운영DB에서 데이터를 로컬로 백업한 다음, 다시 개발 DB에 넣어주는 플로우를 선택했다. (모든 ..

MariaDB 명령어 정리 (테이블/유저/백업/복구)

테이블 관리 [테이블 생성] create database 디비명; [테이블 삭제] SET FOREIGN_KEY_CHECKS = 0; /*foreingkey 제약조건 비활성화*/ set @tables = null; select group_concat(table_schema, '.', table_name) into @tables from information_schema.tables where table_schema = '스키마명'; set @tables = concat('drop table ', @tables); prepare stmt from @tables; execute stmt; deallocate prepare stmt; SET FOREIGN_KEY_CHECKS = 1; /*foreingkey 제약..

[데이터베이스 / DB] Error Code: 1175, You are using safe update mode and you tried to update a table without a WHERE.... 처리방법

MySQL Workbench를 사용하여 모든 코드 값을 변경해주는 업데이트(Update) 작업을 진행하다 에러가 났다. Error Code: 1175. You are using safe update mode and you tried to update a table without a WHERE that uses a KEY column To disable safe mode, toggle the option in Preferences -> SQL Editor and reconnect. Error Code : 1175, 대충 해석하자면.. 안전한 업데이트 모드를 사용하고, where절을 빼고 실행하려 했다고 한다. 해결방법은 안전한 업데이트 모드를 꺼주는 것인데, 1. MySQL Workbench 설정. Edi..