jhdatabase의 등록된 링크

 jhdatabase로 등록된 티스토리 포스트 수는 137건입니다.

[AWS - Role 전환 설정] [내부링크]

AWS관리자 계정에서 다른 관리대상 계정에 접속하기 위해 cross-account access를 설정하여 로그아웃->로그인을 하는 번거로움을 없애고 Role전환하며 편하게 관리할 수 있습니다. 새로운 역할 구성 AWS 관리 콘솔 > IAM > 역할 > 역할만들기 Administrator Access 선택 정책 생성 사용자 생성 사용자 재로그인 후 역할 전환 역할 전환 확인

[AWS - Local(Window)에서 ec2(Linux)로 파일 전송 방법] [내부링크]

SCP 형식 scp -i [키페어의 위치와 키페어] -r [보내는 파일] [우분투서버에서 저장할 위치] Window powershell 에서 scp 실행 ※ permissions for pem are too open 에러 발생 PS C:\AWS_key> scp -i C:\AWS_key\kimjeonghyun.pem -r C:\install [email protected]:/home/ec2-user Bad permissions. Try removing permissions for user: BUILTIN\\Users (S-1-5-32-545) on file C:/AWS_key/kimjeonghyun.pem. @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@..

[MySQL - Transaction Isolation Levels] [내부링크]

MySQL 격리 수준(from Real MySQL 8.0) 여러 트랜잭션이 동시에 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있게 허용할지 말지를 결정하는 것 크게 "READ UNCOMMITTED" "READ COMMITTED" "REPEATABLE READ" " SERIALIZABLE"로 나뉜다. 하지만 일반적인 데이터베이스에서 READ UNCOMMITTED는 거의 사용하지 않고, SERIALIZABLE또한 동시성이 중요한 데이터베이스에서는 거의 사용되지 않는다. 격리 수준이 높아질수록 성능 개선이나 저하는 발생하지 않는다. ※ 일반적인 온라인 서브스 용도에서는 READ COMMITTED와 REPEATABLE READ 중 하나를 사용합니다. READ UNCOMM..

[MySQL - 강제 복구 모드 innodb_force_recovery] [내부링크]

테이블 손상이 발생할 수 있는 경우 1. InnoDB 테이블이 손상되는 경우는 상당히 희박 - Double write, Checksum 그리고 기타 Validation 로직들과 버그 보완으로 인해서, 실제로 MyISAM에 비해서 InnoDB 테이블 스페이스 및 데이터 파일은 상당히 안정적이다. 2. 대부분의 손상은 인덱스에서 발생 - 많은 사람들이 경험하는 InnoDB 데이터 파일의 손상은 80~90% 정도가 InnoDB 인덱스 (Secondary index)에 발생한 손상인 경우이며, 이 경우에는 단순히 ALTER TABLE 또는 데이터 덤프 및 재 적재만으로 해결된다. 복구 모드 "1 ( SRV_FORCE_IGNORE_CORRUPT )" 참조. 3. 이외 - InnoDB 테이블의 문제점들의 경우는 덤..

[MySQL - 로컬 컴퓨터 to MySQL 서버 데이터 이관] use.MySQL workbench [내부링크]

데이터 사이즈가 크다면 물론 마이그레이션 전용 서버를 만드는 것이 좋습니다. 하지만 덤프파일 사이즈가 크지않고 로컬 컴퓨터의 여유공간이 있다면 따로 마이그레이션 전용 서버 생성하지 않고 데이터를 Export/Import 할 수 있습니다. Workbench 툴을 이용해 로컬 컴퓨터로 덤프파일을 export 후 import 해보았습니다. Test Data Export Data Export 상단 바에서 Server -> Data Export 클릭 Dump 대상 데이터베이스 선택 좌측이 database, 우측이 table 선택 후 덤프 받을 경로 지정 Start Export 덤프파일 확인 Import Data Import 상단 바에서 Server -> Data Import 클릭 Import..

[MySQL - Online DDL] use.Gh-ost [내부링크]

Gh-ost란, MySQL에서 online alter 기능이 있지만 아직 완벽하지는 않습니다. 이를 보완하기 위해 percona 의 pt-online-schema-change 스크립트를 사용하기도 하는데요, 원본과 복사본 테이블의 sync 를 trigger 기반으로 맞춘다는 단점이 있습니다. 특수 케이스에서는 일관성 문제도 야기될 수 있고, trigger 가 유발할 수 있는 Lock 으로 인해서 마지막에 swap 할 때 쿼리들이 실패하기도 합니다. 이러한 컨셉은 2009년부터 이어져왔고 큰 변화가 없었습니다. gh-ost 가 이러한 단점을 보완해서 pt-online-schema-change 를 대체할 수 있을지 조심스레 살펴보고 있습니다. 원본과 복사본(ghost table) 간의 sync 를 맞추는데 ..

[MySQL - Orchestrator VIP설정 part 3 use. Keepalived] [내부링크]

Orchestrator 나 MHA 와 같은 HA 툴의 경우 Failover 등의 가용성 기능을 제공을 하지만 VIP 리소스 에 대한 기능은 제공하지 않아 별도의 스크립트 등으로 구현 해서 사용 해야 합니다. 물론 hooking이 되는 파라미터 나 스크립트 내 호출 함수 등에 대한 정보, 사용시 수정 해야할 사항 등은 정보가 제공되지만 VIP 를 Assign 하고 Relocate 하는 등의 실제 동작하는 부분에 해당하는 스크립트나 프로그램은 별도로 작성이 필요로 합니다. 따라서 저같은 경우에는 keepalived 툴을 사용하여 VIP 관리 할 예정입니다. Keepalived란? '로드밸런싱'과 '고가용성(HA)'를 제공하는 프레임워크. -. 로드밸런싱은 L4 수준의 로드 밸런싱(HAProxy와 함께 사용하..

[MySQL - Orchestrator Takeover & Failover 테스트] part 2 [내부링크]

Orchestrator 구축 이후 Takeover 및 Auto Failover를 설정하겠습니다. Orchestrator 구축 1편 : https://jhdatabase.tistory.com/134 [MySQL - Orchestrator 구축] part 1 Orchestrator란? MySQL용 복제 토폴로지 관리자로써 고가용성 및 복제 관리 툴입니다. 체인을 위아래로 훑으면서 마스터와 슬레이브를 찾아 MySQL 환경의 복제 토폴로지를 검색하는 기능을 제공합니다 jhdatabase.tistory.com Takeover Test Master 확인 현재 Master -> 192.168.100.35 (DB 1번) mysql> show slave status\G; *************************..

[MySQL - Orchestrator 구축] part 1 [내부링크]

Orchestrator란? MySQL용 복제 토폴로지 관리자로써 고가용성 및 복제 관리 툴입니다. 체인을 위아래로 훑으면서 마스터와 슬레이브를 찾아 MySQL 환경의 복제 토폴로지를 검색하는 기능을 제공합니다. 또한 GUI를 통해 복제 토폴로지를 리팩터링하는 데도 사용할 수 있는데, 드래그 앤 드롭 인터페이스를 사용해서 슬레이브를 마스터로 승격할 수 있습니다. 상태 개념을 사용해서 올바른 복구 방법을 지능적으로 선택하고 사용할 적당한 마스터 승격 프로세스를 결정하므로 노드에 장애가 발생할 경우 복구를 지원합니다. Orchestrator 기능 복제 트리의 토폴로지 및 상태를 자동으로 감지하고 모니터링합니다. GUI, CLI 또는 API를 사용하여 상태를 확인하고 작업을 수행할 수 있습니다. 마스터의 자동 ..

[MySQL - Read/Write Split 부하분산 구성] use. ProxySQL [내부링크]

MySQL 3node 운영중 Master노드의 리소스 과부화 현상을 해소하고자 Read/Write Split을 하게되었습니다. Proxy서버로 ProxySQL을 사용하여 최종적으로 Write트랜잭션은 Master노드로만, Read 트랜잭션은 모든 노드로 가도록 설정하습니다. 테스트 환경 Hostname IP VIP DB Version proxy 192.168.100.84 proxysql-2.4.4 master 192.168.100.80 192.168.100.88 MySQL 8.0 slave1 192.168.100.81 MySQL 8.0 slave2 192.168.100.83 MySQL 8.0 사전 구성 MySQL서버 3nodes MHA구성 MariaDB [(none)]> show slave hosts\G..

[MySQL - 간단한 백업 성공 이메일 스크립트 설정] [내부링크]

안녕하세요 DB백업 데일리 성공 여부를 받아볼 수 있는 간단한 이메일 스크립트 설정을 해보았습니다. 아래 스크립트를 기반으로 데일리로 받아보고자 하는 정보를 조금씩 수정하여 사용하면 될거 같습니다~ 사전 설정 send mail을 사용하여 구글 메일로 발송 할 계획이라 sendmail 설치가 되어있어야합니다. sendmail 설치 [root@mysql]# yum install -y sendmail sendmail-cf config 수정 [root@mysql]# vi /etc/mail/sendmail.mc -- 52,53라인에 dnl을 삭제 [root@mysql bin]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 25번 포트 open 확인 [root@..

[Prometheus - 원하는 데이터 뽑기] part 3 use. mysql_exporter [내부링크]

MySQL_exporter (모니터링 대상 서버에서 진행 mysql server) MySQL 서버에 SQL을 질의한 결과를 Prometheus에 쌓은 뒤 이를 Grafana에서 대시보드로 구성하기 위해 mysql_exporter를 구성 MySQL에 적재되어 있는 테이블 데이터에 SELECT SQL을 질의한 결과를 Prometheus에 적재할 수 있다면, Grafana의 다양한 그래프를 이용해서 실시간 데이터 변경 추이를 시각적으로 조회 할 수 있습니다. 원하는 데이터를 뽑아 적재하여 grafana로 가시화 할거며, 원하는 값을 뽑기 위해서는 select SQL쿼리를 가지고 프로메테우스로 뽑아 올 예정입니다. Prometheus MySQL Exporter를 설치하기 위해서는 다음과 같은 Python 관련 ..

[Prometheus - exporter 설치 & Grafana] part 2 [내부링크]

Prometheus 메트릭 수집을 위한 exporter 구축 (mysql서버) Exporter 설치 download URL : https://prometheus.io/download/ Download | Prometheus An open-source monitoring system with a dimensional data model, flexible query language, efficient time series database and modern alerting approach. prometheus.io mysqld_exporter와 node_exporter 두개를 설치합니다. mysqld_exporter -> MySQL 서버의 상태를 수집 node_exporter -> 해당 서버의 시스템 상..

[Prometheus - MySQL모니터링 서버 설치] part 1 [내부링크]

Prometheus란, Apache 2 라이센스로 공개되어 있는 오픈소스로 모니터링 툴입니다. 다른 모니터링 도구와 가장 다른 점은 대부분의 모니터링 도구가 Push 방식 즉, 각 서버에 클라이언트를 설치하고 이 클라이언트가 메트릭 데이터를 수집해서 서버로 보내면 서버가 모니터링 상태를 보여주는 방식인데 반해서 Prometheus는 Pull 방식입니다. 그래서 서버가 각 클라이언트를 알고 있어야 하는게 아니라 서버에 클라이언트가 떠 있으면 서버가 주기적으로 클라이언트에 접속해서 데이터를 가져오는 방식입니다. 따라서 모니터링 대상 서버의 모니터링으로 인해 발생하는 부하를 줄여줍니다. 프로메테우스는 Time-series DB이기 때문에 시간과 함께 데이터를 저장합니다. Exporter란 모니터링 대상의 Me..

[Redis - MySQL cache server 구성 테스트] use. python [내부링크]

Cache란 캐시는 고속 저장소로 대용량 데이터, 복잡한 수학적 연산 결과, 정적 컨텐츠 등을 연산 없이 데이터를 불러올 수 있어 CPU 기능 부하와 지연 시간을 줄여줄 수 있고 퍼포먼스를 향상 시킬 수 있습니다. 보통 RAM이나 인메모리 엔진 같이 가볍고 빠른 하드웨어에 설치되어 실행됩니다. 캐시 히트율(cache hit rate)은 요청이 들어왔을 때 캐싱된 데이터가 있는 확률로 들어온 전체 요청 수 대비 캐시가 히트돼서 응답한 개수를 나타냅니다. 캐시 히트율이 높다는 건 그만큼 캐싱 데이터가 쓰여서 성능이 높다는 걸 의미합니다. 하지만 무조건 높다는 게 좋은 건 아닙니다. RDB인 MySQL과 캐시 DB인 Redis는 실시간 싱크(synch)가 이뤄지지 않기에 즉각적인 데이터 반영이 필요한 경우 캐..

[Apache Jmeter - 설치 및 설정 for 부하 테스트] [내부링크]

프로젝트 진행 중 DB 성능 테스트를 할 일이 생겨서 회사 사수님의 가르침으로 Jmeter툴을 사용해 테스트 진행했습니다. JMeter 파일 다운로드 JMeter Download URL : https://jmeter.apache.org/download_jmeter.cgi Apache JMeter - Download Apache JMeter Download Apache JMeter We recommend you use a mirror to download our release builds, but you must verify the integrity of the downloaded files using signatures downloaded from our main distribution directo..

[OCI - ATP to Oracle DBLink] [내부링크]

OCI의 ATP 서비스와 일반 VM 또는 on-prem의 Oracle DB와 DBlink를 생성하였습니다. ATP 특성상 OS 접근이 안되기 때문에 일반적으로 생성하는 DBlink와는 방법이 조금 다릅니다. Wallet용 디렉토리 생성 (target DB) [root@target-oracle ~]# mkdir -p /u01/server/wallet [root@target-oracle ~]# mkdir -p /u01/client/wallet [root@target-oracle ~]# mkdir /u01/certificate [root@target-oracle ~]# chown -R oracle.oinstall /u01/server [root@target-oracle ~]# chown -R oracle...

[OCI - ATP Database 접속 방법] [내부링크]

Oracle Autonomous Database 란 Oracle Autonomous Database 는 탄력적으로 확장되고 빠른 쿼리 성능을 제공하는 사용하기 쉽고 완전 자율적인 데이터베이스를 제공합니다. 서비스로서 Autonomous Database 는 데이터베이스 관리가 필요하지 않습니다. Autonomous Database 를 사용 하면 하드웨어를 구성 또는 관리하거나 소프트웨어를 설치할 필요가 없습니다. 자율 데이터베이스 는 데이터베이스 프로비저닝, 데이터베이스 백업, 데이터베이스 패치 및 업그레이드, 데이터베이스 확장 또는 축소를 처리합니다. Autonomous Database 는 완전히 탄력적인 서비스입니다. 언제든지 OCPU 또는 스토리지 용량을 확장, 늘리거나 줄일 수 있습니다. Auton..

[맛집편 - 세계 3대 스테이크 '울프강 스테이크 하우스' 청담] [내부링크]

안녕하세요 오랜만에 일상 글을 올립니다..! 더이상 일상 글은 안쓰려했으나 이런곳은 또 자랑하고 싶어 못참아서 쓰게됐습니다 하하 여기가 그렇게 유명하다는데 여친님 덕분에 저는 처음 알았네요..! 네이버 예약이 필수 입니다! 약 3주전에 미리 예약했었습니다 이번에 다녀온곳은 세계 3개 스테이크 맛집 중 하나인 울프강 스테이크 하우스 청담입니다. 위치 : 서울 강남구 선릉로152길 21 입장하는 통로에서 인증샷은 필수입니다! 3시반 예약이였는데 3시에 도착했어도 들여보내줍니다 매뉴 정보입니다. 저는 Classic 코스로 예약해서 스테이크 굽기 강도랑 사이드, 디저트 정도만 골랐습니다. 미디움, 머쉬룸, 티라미슈 골랐어요 처음엔 탄산수와 미네랄 물 중 고릅니다. 첫 코스는 식전빵이 나옵니다. 두번째로 샐러드와..

[MySQL - Tunner 설치] [내부링크]

MySQL Tunner란 MySQL현재 설정값과 서버의 사양, 사용상태들을 비교하여 MySQL설정을 하는 방법으로, perl 스크립트로 동작하며 현재 설정과 서버의 사양 , 사용 상태들을 비교하여 mysql 의 설정을 어떻게 바꾸면 좋을지 몇 가지 기본 성능 제안과 함께 간단한 형식으로 알려주는 툴입니다. MySQLTuner 는 MySQL / MariaDB / Percona Server에 대해 300 여개의 지표를 지원합니다. MySQL, MariaDB 에서 동작하며, 리눅스에서 동작하나, 윈도우에서는 지원하지 않습니다. 저와같은 초보 DB관리자가 성능개선을 위해 이것저것 알아볼때 빠뜨리는 부분을 확인 할 수 있어 좋습니다. 호환성 목록 [MySQL] MySQL 8 (partial support, p..

[NCP - Object Storage 마운트] use. awscli [내부링크]

Naver Cloud의 오브젝트 스토리지를 블록스토리지처럼 서버에 마운트하여 데이터를 올리는 테스트를 해보았습니다. golang install golang URL : https://go.dev/dl/ Downloads - The Go Programming Language Downloads After downloading a binary release suitable for your system, please follow the installation instructions. If you are building from source, follow the source installation instructions. See the release history for more information about..

[MySQL - Temporary Tablespace] [내부링크]

메모리 부족 이슈 발생시 볼만하다는 소리를 듣고 찾아보게 되었습니다. temporary tablespace는 사용자가 임의적으로 create ~문 등을 사용해 임시 테이블을 생성할 때 undo 로그가 저장된다고 합니다. Temp tablespace ibtmp1 : global temporary tablespace 공간은 사용자가 생성한 임시 테이블의 롤백 세그먼트를 저장합니다. innodb_temp_tablespace_dir : SESSION LEVEL로 ON-DISK 내부 임시테이블이 생성되는 공간 [사용자가 만든 임시 테이블 & 옵티마이저가 사용하는 임시 테이블 ] MariaDB [(none)]> show variables like '%temp%'; +-------------------------..

[MySQL - Error 2013/Error 2006] [내부링크]

Error 2013 에러 발생 데이터 이관 중 export시 발생 [root@localhost data]# mysqldump -u kim-p --routines --triggers --single-transaction kim --events > /dump/dump.sql mysqldump: Error 2013: Lost connection to MySQL server during query when dumping table `***` at row: 167770 발생 이유 2013은 서버 연결이 끊어 졌음을 의미 1. 누군가 세션을 kill하여 발생할 수 있습니다. 2. 네트워크 문제로 인해 연결이 끊어져서 발생 할 수 있습니다. 3. 서버 내 충돌이 일어나 끊길 수 있습니다. 4. 연결이 유휴 상..

[MySQL - QPS/TPS] [내부링크]

QPS ( Query Per Seconds ) 초당 Query량 즉, MySQL Server가 초당 실행하는 Query 총량을 말합니다. 조회량 /초 는 한서버가 1초에 해당하는 조회 횟수로 특정한 조회 서버가 규정된 시간 내에 처리하는 조회량이 얼마인지에 대한 평가 기준입니다. ※ 계산 방법 Questions = SHOW GLOBAL STATUS LIKE 'Questions'; Uptime = SHOW GLOBAL STATUS LIKE 'Uptime'; QPS=Questions/Uptime MariaDB [(none)]> SHOW GLOBAL STATUS LIKE 'Questions'; +---------------+------------+ | Variable_name | Value | +-----..

[MySQL - Character set & Collation] [내부링크]

Character Set이란, 캐릭터 셋을 명시적으로 설정하지 않으면 MySQL 5.7 이하는 latin1, MySQL 8은 utf8mb4 가 된다. 현재 character set 확인은 다음과 같이 mysql 클라이언트로 연결한 후에 status 명령어로 알수 있다. 문자의 집합으로 즉, 텍스트 데이터에 대한 저장공간의 크기를 지정하기 위함이다. 대표적으로는 utf8, euckr 그리고 utf8mb4가 있다. Collation이란, 정렬방식으로 저장된 텍스트 데이터를 정렬할 경우 어떻게 비교하여 정렬할 것인가에 대해 지정하기 위함이다. "ORDER BY 'text' ASC"에 대해 데이터로 a, b, A, B가 있을 경우 어떤 방식으로 비교하여 정렬을 할 것인가를 지정하는 것이다. 주로 많이 사용되는 ..

[MySQL - Parameter 정리] [내부링크]

파라미터 설명 Docs URL https://dev.mysql.com/doc/refman/8.0/en/server-option-variable-reference.html MySQL :: MySQL 8.0 Reference Manual :: 5.1.4 Server Option, System Variable, and Status Variable Reference MySQL 8.0 Reference Manual / ... / MySQL Server Administration / The MySQL Server / Server Option, System Variable, and Status Variable Reference 5.1.4 Server Option, System Variable, and Status V..

[MySQL - 임시테이블(tmpdir) FULL 이슈] [내부링크]

발생 이슈 ※ 최근 운영 중인 DB(Maria)서버에서 tmpdir 디스크가 100% 되어 DB가 내려갔습니다. [root@jhtest ~]# df -h Filesystem Size Used Avail Use% Mounted on devtmpfs 32G 0 32G 0% /dev 32G 4.0K 32G 1% /dev/shm tmpfs tmpfs 32G 3.1G 29G 10% /run tmpfs 32G 0 32G 0% /sys/ /dev/xvda 48G 0G 48G 100% / [root@jhtest tmpdir]# ll total 23461140 -rw-rw---- 1 mysql mysql 9322496 Oct 13 16:10 #sql_a4a_11.MAD -rw-rw---- 1 mysql mysql 2..

[MySQL - mysql-proxy] part 2. Read/Write Split & 부하테스트 [내부링크]

Master 서버로는 Read & Write 작업을하고 Slave 서버로는 Read 작업을하여 select 쿼리에 대한 부하분산 구성을 하고 sysbench를 이용해 부하테스트를 진행하여 ProxySQL 툴과의 성능 비교를 진행하였습니다. 읽기와 쓰기 분리 기술을 구현하는 방법에는 여러 가지가 있습니다. 읽기 및 쓰기가 분리된 lua 파일이 포함되어 있습니다. 이 파일은 mysql-proxy를 사용하여 읽기 및 쓰기 분리를 달성하는 데 사용해야 하는 파일이기도 합니다. 구문 분석을 위해 lua 파서가 필요합니다. 따라서 루아 파서를 설치해야 합니다. config 파일 생성 [root@mysqlproxy mysql-proxy]# mkdir /usr/local/mysql-proxy/conf/ [root@..

[MySQL - mysql-proxy 설치] part 1. [내부링크]

MySQL proxy이란 네트워크 프로토콜을 사용하여 네트워크를 통해 MySQL의 서버와 클라이언트 사이의 통신을 제공하는 애플리케이션이다. 기본적인 구성에서 클라이언트의 쿼리를 MySQL 서버로 전달하고 서버의 응답을 클라이언트에게 반환한다. 기본 구성 외에도 클라이언트와 서버간 통신을 모니터링하고 변경할 수 있다. 클라이언트에서 쿼리를 가로 채서 서버에 보낸 쿼리 목록에 추가 쿼리를 삽입하고 서버에서 반환 할 때 추가 결과를 제거 할 수 있다. proxy 서버를 구축 이유 보안 : 익명의 사용자가 서버에 직접 접근하는 것을 막는다. 속도 : proxy 서버는 사용자의 요청을 cache 해서, 동일한 요청이 들어오면 cache의 자원을 반환한다. 이는 서비스의 속도를 높여준다. ACL : 사이트 접근에..

[PostgreSQL - PostGIS 플러그인 설치] [내부링크]

PostGIS이란, 객체 관계형 데이터베이스 시스템인 PostgreSQL의 확장 프로그램으로, 데이터베이스에 GIS(지리정보 시스템) 객체를 저장할 수 있게 해 줍니다. PostGIS는 GiST 기반 R-Tree 공간 인덱스를 지원하며, GIS 객체의 분석 및 공간 처리를 위한 기능을 포함하고 있습니다. PostGIS를 사용하면 지리 정보 데이터를 다양하게 다룰 수 있습니다. 주요기능 : 공간 데이터 관리, 공간 데이터 연산, 분석, 공간 인덱스 지원 등 공간 인덱스란 특정의 좌표를 찍어 지도 내에서 무언가 사용자가 원하는 데이터를 검색하기 위해서 사용한다고 보면 이해하기 쉽습니다. 사용 예시 : 카카오 택시같이 지도내에 있는 택시를 검색해서 호출한다거나, 네이버 지도에서 식당이나 카페를 검색하는 것과 ..

[MySQL - phpMyAdmin 설치] [내부링크]

phpMyAdmin 은 PHP로 개발 된 오픈소스이고, 웹 기반의 MySQL 관리 툴 입니다. 웹에서 편리하게 DB 관리를 해보기 위해 이번 테스트를 진행했습니다. 사전 mysql db설치 & httpd설치 mysql> select @@version; +-----------+ | @@version | +-----------+ | 8.0.28 | +-----------+ 1 row in set (0.00 sec) [root@myadmin ~]# yum -y install epel-release [root@myadmin ~]# yum -y install httpd php 설치 ※ php설치할 당시 phpMyAdmin을 구동하기 위한 관련 패키지를 진행하지 않은 접속이 불가합니다. 따라서 나머지 php..

[MSSQL - NAS 네트워크 드라이브 연결] [내부링크]

사전 작업 NAS 생성 & 연결 NAS 생성 및 연결 NAS를 연결했음에도 MSSQL에서 데이터베이스 생성 시 NAS의 경로가 보이지 않습니다. xp_cmdshell 활성화 exec sp_configure 'show advanced options', 1; go reconfigure; go exec sp_configure 'xp_cmdshell',1 go reconfigure; go Fileserver NAS의 경로, NAS유저 패스워드, NAS유저 ID exec xp_cmdshell 'net use E: \\\n2370497_testjj11\data /USER:\gwnupoc' output --------------------------------------------------------..

[MySQL - Online DDL] part 3 use. pt-online-change-schema [내부링크]

pt-online-change-schema 이란, Mysql에서 몇억건 이상의 대량의 데이터를 갖고 있는 테이블을 수정 하는것은 어렵습니다. 단순히 alter table을 해버리면 4시간, 5시간 이상 수행되기 떄문에 이를 해결 하기 위해 create select(CTAS) 방법을 사용합니다. MySQL은 특히나 온라인 스키마 변경이 취약합니다. 물론 5.6부터는 online alter기능이 포함되어 있다고는 하나 100% 완벽하게 모든 상황을 온라인스럽게 제공해주지도 않고 그렇다하더라도, 일정 트래픽 이상의 데이터 변경이 이루어지는 경우, 게다가 슬레이브 지연을 염두한다면 꺼려지는 상황이 있습니다. (마스터에서 온라인 스키마 변경이 이루어졌을지라도, 이 관련 alter구문이 슬레이브로 넘어갔을 때는, ..

[MySQL - Online DDL] part 2. 실습 [내부링크]

Online DDL 작업 정보 계측 memory ※ 사전 조건 performance_schema=ON MariaDB [(none)]> show variables like 'performance_schema'; +--------------------+-------+ | Variable_name | Value | +--------------------+-------+ | performance_schema | ON | +--------------------+-------+ Performance_schmea.setup_instruments 조회 mysql> select substring_index(name,'/',1) as cate, count(*) as cnt from performance_schema.s..

[MySQL - Online DDL] part 1. 알고리즘 [내부링크]

Online DDL이란 테이블의 구조를 변경(스키마 변경)을 실행하는 도중에도, INSERT나 UPDATE와 같은 DML들을 실행할 수 있도록 해주는 기능입니다. MySQL 서버에서 Online DDL이 지원되지 않았던 시절에는 pt-online-schema-change와 같은 3-rd party 도구들을 이용해야 했지만, (이런 도구들은 불필요한 작업이 너무 많이 수반되어 서비스 영향도가 높은 편이어서) 이제는 대부분의 경우 MySQL 서버의 Online DDL을 이용합니다. InnoDB에서 지원하는 online ddl 알고리즘 - copy - inplace - instant (mysql 8.0) Copy - 변경된 스키마가 적용된 임시 테이블을 생성하여 기존 테이블의 데이터를 복사한 후 테이블 이..

[NCP - CloudDB for MySQL 데이터 마이그레이션] use. mysqldump [내부링크]

안녕하세요 이번글에서는 Naver Cloud의 CloudDB for MySQL서비스에서의 데이터 마이그레이션 작업을 진행해보겠습니다. 실제 사이트에서 작업중 일어난 에러들도 함께 정리해보았습니다. 해결방법은 제 개인적인 생각으로 진행했으므로 최선의 방법이 아닐 수 있습니다 테스트 환경 기존 DB : CloudDB for MySQL -> AS-IS 대상 DB : CloudDB for MySQL -> TO-BE 마이그레이션을 위한 임시 서버 생성 -> VM 인스턴스 (mig) Export ※ 에러 1번 TABLE1 테이블이 오랜 미관리로 인해 손상되어 있어 dump불가하며 조회시 없다고 나옵니다. [root@mig ~]# mysqldump -h -u -p --routines --triggers --singl..

[MySQL - 테이블 단편화 optimize/analyze table 정리] [내부링크]

※ analyze table 1. optimizer가 사용하는 통계정보의 갱신처리입니다. 2. InnoDB에서는 자발(자동)적으로 통계 정보를 갱신하기 때문에 크게 필요없다고 합니다. MyISAM의 경우는 카디날리티가 정확하게 갱신되어 있지만 InnoDB는 아주 부정확하고 analyze table을 실행하면 빈번이 값이 바뀐다. InnoDB의 경우 자동으로 갱신되는 조건은 아래와 같다. - 전에 인덱스 통계정보를 갱신한후 테이블의 전체행수의1/16이 갱신된경우 - 전에 인덱스 통계정보를 갱신한후 20억행이상이 갱신된경우 3. analyze table은 랜덤으로 페이지를 8회추출해서 그 페이지내에 포함된 행 데이타를 조사해서 인덱스의 통계정보를 근사치로 갱신한다. 근사치이지만 옵티마이저가 사용하기 위한 통..

[MySQL - 4node MHA & select 부하분산] use. NCP Loadbalancer [내부링크]

현재의 Master+Slave1,2,3 MHA 구성에서 Slave 2,3을 MHA에서 제외시킨 뒤 LoadBalancer를 통해 Slave 2,3을 select 용 부하분산을 할 예정입니다. 여기서 가장 중요한 점은 was단에서 read와 write를 각 IP별로 나눠줄 수 있어야합니다. 먼저 확인 후 진행하시길 바랍니다. 최종적으로 MHA manager + Master + Slave1 이 write작업 및 고가용성을 지원하며, Slave2 + Slave3은 read 부하분산용으로 사용 예정입니다. 따라서 write용 IP는 MHA의 VIP가 서비스 IP가 되며, read용 IP는 Loadbalancer의 도메인이 됩니다. Slave2,3 MHA에서 제외 (mgr) [root@jh-mgr ~]# vi..

[MySQL - 4node MHA 구축 & failover테스트] part 2. [내부링크]

part1에 이어 구축 진행 및 failover테스트를 하도록 하겠습니다. part1 : https://jhdatabase.tistory.com/101 [MySQL - 4node MHA 구축] part 1. 그동안 master-slave 구조에서의 mha는 2node가 보통입니다. 이번 포스팅에선 총 4node를 구성할 예정이며 master와 slave 3대를 구축하여 LB를 통해 부하분산이 최종 목표입니다. 테스트 환경 Hostname Public I. jhdatabase.tistory.com MHA scripts 수정 [root@jh-mgr ~]# cp /root/mha4mysql-manager-0.57/samples/scripts/master_ip_failover /var/log/masterha..

[MariaDB - Galera Cluster & ProxySQL read/write split] [내부링크]

Galera Cluster를 구축한 뒤, proxysql을 이용하여 Master에서는 read+write Slave에서는 read 가 되도록 READ/WRITE Split을 할 수 있도록 구성하였습니다. 테스트 환경 Hostname IP Version galera001 192.168.100.40 MariaDB10.2.12 galera002 192.168.100.41 MariaDB10.2.12 galera003 192.168.100.42 MariaDB10.2.12 Haproxy 192.168.100.43 HA-Proxy version 2.5 ※ 사전 mariadb 설치 진행 galera 설치 & 기동 (galera1,2,3) [root@jh-galera001 ~]# yum -y install rsync..

[Oracle - ACFS (ASM Cluster File System) 생성] [내부링크]

데이터 이관을 위해 datapump 덤프를 받으려는데 용량이 너무 커서 받을만한 파일시스템이 없어서 ACFS로 data diskgroup 파일시스템 만들어서 사용하였습니다. Oracle MOS : Example About How To Perform An EXPDP (Export Data Pump) on ACFS. (Doc ID 1437402.1) ACFS( ASM Cluster File System )이란, datafile을 제외한 나머지 Oracle및 Application 파일의 저장/관리를 위해 사용되는 시스템 - Oracle ACFS 정보 Oracle ACFS는 Oracle Database 외부에서 유지 관리되는 고객 파일 시스템 애플리케이션 데이터에 대한 지원을 제공하는 범용, 단일 노드 및 클러..

[MySQL - NCP & OCI 이기종 플랫폼] part 2. 무중단 이관 [내부링크]

이전 part 1에 이어 이기종 플랫폼간 replication을 통해 최대한 무중단 이관이 가능하지 않을까해서 테스트 해보았습니다. part 1. URL : https://jhdatabase.tistory.com/96 [ Mysql - NCP & OCI 이기종 플랫폼 ] part 1. Replication Naver Cloud 플랫폼과 Oracle Cloud 플랫폼 간에 설치형 db로 이중화 구성을 해보았습니다. 테스트 환경 Hostname Platform Public IP DB Version ncp-master NCP(naver cloud) 101.101.218.225 8.0.28 oci-slave.. jhdatabase.tistory.com 혹시 다른 방법이 있거나 보통은 어떤 방법으로 진행되는지 댓..

[MySQL - 4node MHA 구축] part 1. [내부링크]

그동안 master-slave 구조에서의 mha는 2node가 보통입니다. 이번 포스팅에선 총 4node를 구성할 예정이며 master와 slave 3대를 구축하여 LB를 통해 부하분산이 최종 목표입니다. 테스트 환경 Hostname Public IP Private IP DB version Role VIP jh-mgr 115.85.183.80 192.168.100.35 MHA manager jh-master 101.101.210.29 192.168.100.36 Mysql 8.0.28 Master 192.168.100.40 jh-slave1 49.50.161.52 192.168.100.37 Mysql 8.0.28 Slave jh-slave2 118.67.131.204 192.168.100.38 Mysql ..

[MariaDB - Maxscale GUI 구성] [내부링크]

MaxScale은 MariaDB 에서 지원하는 DB Proxy 입니다. HA proxy 와 동일하나 DB read/ write 쿼리를 지정한 DB 서버로 나눠주는 기능이 있는 등 DB에 더 특화되어있습니다. read / write 분산이 필요한 아키텍처에서 MaxScale 을 사용하면 효율적으로 분산 구조를 구성할 수 있습니다. 이번 포스팅에서는 Maxscale을 GUI로 구축하여 웹에서 통제 해보았습니다. 테스트 환경 Hostname IP server1 192.168.100.23 server2 192.168.100.20 maxscale 49.50.163.26(public IP) , 192.168.100.21 필수 패키지 설치 [root@jeong ~]# yum -y install libcurl li..

[MySQL - NCP & OCI 이기종 플랫폼] part 1. Replication [내부링크]

Naver Cloud 플랫폼과 Oracle Cloud 플랫폼 간에 설치형 db로 이중화 구성을 해보았습니다. 테스트 환경 Hostname Platform Public IP DB Version ncp-master NCP(naver cloud) 101.101.218.225 8.0.28 oci-slave OCI(oracle cloud) 146.56.153.8 8.0.28 Master DB서버 생성(NCP) Slave DB 서버 생성(OCI) 각각의 Mysql DB 설치 진행 DB Config ## master [root@ncp-master ~]# vi /etc/my.cnf [mysqld] datadir=/data socket=/tmp/mysql.sock expire_logs_days=7 server..

[ 맛집편 - 광화문 맛집 오마카세 '스시산원궁'] [내부링크]

안녕하세요. 오랜만에 일상생활 카테고리에 포스팅을 합니다~ 요즘 장마철이라 비가 많이 오네요..! 비가 정말 많이 오는날 이번에 포스팅 할 스시산원궁이란 오마카세 식당을 다녀왔습니다. 위치 : 서울 종로구 종로1길 50 더케이트윈타워 지하1층 제14호 예약은 캐치 테이블로 가능합니다! 런치오마카세 60,000원 디너오마카세 100,000원 브레이크 타임 14:30 ~ 18:00 매일 11:30 ~ 22:00 화요일 휴무 제 가방이 조명 아래 절묘하게 있어서 눈에 띄네요ㅋㅋㅋ..문 앞에 의자가 준비되어 있습니다! 거기서 대기하다가 시간되면 직원분께서 나오셔서 부르면 입장 할 수 있습니다 밖에서 기다리다보니 직원분께서 10분정도 일찍 불러주셔서 예약시간보다 일찍 들어갔네요ㅎㅎ 에피타이저로 계란 푸딩(?)이 ..

[MariaDB to MySQL 데이터 이관] use. mysqldump [내부링크]

안녕하세요 이번에는 MariaDB에서 Mysql로 데이터 이관 테스트를 진행해보았습니다. Mysqldump 유틸리티를 이용했습니다. 호환성이 좋아서 이관에 크게 문제는 없었습니다~ 테스트 환경 DB version OS AS-IS 10.2.32-MariaDB-log Centos 7.3 TO-BE Mysql 8.0.28 Centos 7.3 As-Is 이관 대상 확인 tuning이란 데이터베이스만 이관 예정 MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | kim | | mysql | | percona_schema | | performance_sc..

[Oracle - AL32UTF8 한글 깨짐 현상] [내부링크]

NLS 파라미터를 한글로 변경하였습니다. 파라미터 적용을 시키기 위해 DB를 재부팅 하니 한글이 깨지는 현상이 발생했습니다... 오렌지나 토드 같은 클라이언트 툴을 이용해 DB에 접속하면 문제 없으나, shell에서 sqlplus를 이용해서 접속하면 문제가 발생하더라고요... 발생 이슈 - 쉘에서 sqlplus 를 이용해 접속 시 한글 깨짐현상 변경 파라미터 NLS Environment NLS_LANGUAGE='KOREAN' NLS_TERRITORY='KOREA' NLS_CURRENCY='₩' NLS_ISO_CURRENCY='KOREA' NLS_NUMERIC_CHARACTERS='.,' NLS_DATE_FORMAT='RR/MM/DD' NLS_DATE_LANGUAGE='KOREAN' NLS_SORT='BI..

[NCP - CloudDB for MySQL Slave 부하 분산] use. Loadbalancer [내부링크]

Naver Cloud 플랫폼에서 지원하는 관리형 DB인 Cloud DB for Mysql에 LB를 추가하여 부하 분산 해볼 예정입니다. Cloud DB for Mysql에서 고가용성으로 생성하게 되면 Master-Slave 구조로 생성됩니다. 이 두 노드는 failover시 서로 role이 바뀌어가기 때문에 standby master의 role을 가진 slave DB는 LB에 추가 할 수도 접속 할 수도 없습니다. 따라서 이번 테스트에서는 Master와 Standby Master 두 노드를 제외한 Slave DB 2개를 추가하여 구성하였습니다. 전체적인 구성은 위 그림과 같습니다. WAS에서 아래와 같이 설정하여 Slave노드에 read작업을 부하분산 하도록 설정하였습니다. Write 작업 -> Mast..

[Oracle - TTS 데이터이관] part2 [내부링크]

part1 :https://jhdatabase.tistory.com/90 [Oracle - TTS 데이터이관] part1 Transportable Tablespace는 오라클에서 오라클 데이터베이스로 데이터를 이동할때 가장 빠른방법이라고 합니다. 데이터펌프나 Export, Import 유틸리티를 사용할때는 그냥 insert작업을 하는 것과 비슷하 jhdatabase.tistory.com AS-IS incremental 백업 테스트를 위해 데이터 insert SQL> insert into jh.test1 values('incre'); SQL> insert into kjh.test2 values ('incre'); SQL> commit; SQL> select * from jh.test1; NAME ---..

[Oracle - TTS 데이터이관] part1 [내부링크]

Transportable Tablespace는 오라클에서 오라클 데이터베이스로 데이터를 이동할때 가장 빠른방법이라고 합니다. 데이터펌프나 Export, Import 유틸리티를 사용할때는 그냥 insert작업을 하는 것과 비슷하다고 한다면 Transport Tablespace는 Datapump를 사용하여 메타데이터 즉 구조만 추출하고 데이터파일 자체를 이동시켜 migration 작업을 합니다. Endian의 정보가 다르더라도 RMAN을 통해서 Converting하여 데이터파일의 형식을 변경할 수 있어 모든 OS에서 호환이 가능합니다. Endian에 대한 정보는 v$transportable_platform 뷰를 통해서 확인할 수 있습니다. 테스트 환경 Hostname IP DB version Platfo..

[Oracle - Shrink Space] [내부링크]

HWM(High Water Mark)란 마지막까지 등록된 블록위치로 데이터가 대량으로 delete 되면 실제로 사용되는 데이터는 HWM보다 훨씬 작을 것이지만 이전에 표시되었던 HWM은 그대로이기 때문에 데이터를 조회시 HWM 표시부분까지 읽습니다. 따라서 불필요한 DISK I/O가 발생합니다. HWM는 관리자가 별도로 초기화하거나 축소시키지 않으면 늘어나기만 하고 줄어들지 않기때문에 별도의 관리가 필요합니다. 데이터 풀스캔 시 데이터 스캔의 범위 기준이 바로 HWM 이기 때문이라 중요합니다. ※ shrink space 주의 사항 1) 오라클 10g 이상(Init.ora parameter 'Compatible' must be >=10.0) 2) 세그먼트 관리방식이 반드시 ASSM(Auto Segment ..

[Terraform - NaverCloud vm생성] part 2 [내부링크]

vm생성 part1에 이어 terraform을 실행해보겠습니다. https://jhdatabase.tistory.com/87 [Terraform - NaverCloud vm생성] part 1 Terraform 이란, 테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구입니다. AWS, Azure, GCP 등 여러 cloud 플랫.. jhdatabase.tistory.com Terraform init Terraform provider로 ncloud 등록 [root@terraform ~]# terraform init init 성공시 아래와 같은 로그들 확인 가능 Terrafor..

[Terraform - NaverCloud vm생성] part 1 [내부링크]

Terraform 이란, 테라폼(Terraform)은 Hashicorp에서 오픈소스로 개발 중인 클라우드 인프라스트럭처 자동화를 지향하는 코드로서의 Infrastructure as Code, IaC 도구입니다. AWS, Azure, GCP 등 여러 cloud 플랫폼에서 사용이 가능하며, 국내 플랫폼중에서는 네이버 클라우드 플랫폼이 유일하게 등록되어 있습니다. Terraform 기본 개념 resource : 실제로 생성할 인프라 자원을 의미 provider : 리소스들이 배포될 환경을 정의한 것으로 ncp, aws, gcp 등 output : 인프라를 프로비저닝 한 후에 생성된 자원을 output 부분으로 뽑을 수 있습니다. Output으로 추출한 부분은 이후에 remote state에서 활용 가능 bac..

[MSSQL - Always On 구축] part 7 AD서버 이중화 [내부링크]

이번 포스팅은 AD서버 이중화입니다. AD서버 이중화를 하지 않으실 분들은 part 6에서 끝내시면 됩니다~ AD1번에서 ADDS 생성 후 AD2번 서버에서 진행 DNS 설정 (AD1번, AD2번 둘다 진행) 기본 DNS => 자신 IP 보조 DNS => AD1 의 IP 역할 및 기능 추가 Active directory 기능 추가 기존 AD 설정과 동일 기존 도메인에 도메인 컨트롤러 추가합니다. Domain이름 입력, 선택 재부팅 AD1번 서버에서 확인 양쪽 AD서버에서 AD간 복제가 정상적으로 이루어지는지 확인 repadmin /showrepl

[MSSQL - Always On 구축] part 6 Always on 구성 [내부링크]

Management studio 접속 ※ 사전에 샘플 데이터 insert한 상태 (SampleData 데이터베이스) 데이터베이스 backup Always on 고가용성 설정을 하기 위해 database full backup이 필요합니다. full backup받을 폴더 생성 backup 파일 생성 확인 AlWays On 고가용성 -> 새 가용성 그룹 마법사 클릭 가용성 그룹 이름 지정 데이터베이스당 DTC 지원 체크 복제본 추가 -> MAINDB02 연결 가용성 그룹 수신기 추가 -> DB의 VIP이다. 해당 IP로 Master / Slave role 바껴도 Master로 붙을수 있게 하기 위해 사용하지 않는 IP입력 ※ 10.70.101.81은 이미 사용하는 있는 IP라 다른 사용하..

[MSSQL - Always On 구축] part 5 DB(MSSQL)설치 [내부링크]

setup 설치 진행 설치 탭 -> 새 SQL Server 독립 실행형 설치 또는 기존 설치에 기능 추가 선택 설치 기능 선택 서비스 계정 선택 후 찾아보기 클릭 AD서버 유저인 sqlmainadmin 입력 후 이름 확인 클릭 암호 입력 암호 입력, SQL server 관리자 지정 -> 현재 사용자 추가 데이터 디렉터리 , 로그 디렉터리 등 경로 설정 Temp DB 크기 설정 설치 완료 management studio 설치 management studio 접속 및 서버 인증 변경 MAINDB01 우클릭 -> 속성 -> 보안 sa유저 로그인 속성 변경(활성화, 암호변경, 로그인시 사용)

[MSSQL - Always On 구축] part 4 Cluster구성 [내부링크]

클러스터에 쿼럼 설정 구성 클러스터 우클릭 -> 추가작업 -> 클러스터 쿼럼 설정 구성 AD 서버의 컴퓨터 이름 입력 [AD서버] [MAINDB01서버]

[MSSQL - Always On 구축] part 3 Quronum생성/설정 [내부링크]

공유할 폴더 생성 AD서버 공유 설정(AD 서버) 서버 관리자 -> 파일 및 저장소 서비스 -> 공유 -> 우클릭 새공유 클릭

[MSSQL - Always On 구축] part 2 Failover Cluster 구성 [내부링크]

maindb 1,2번 서버에서 진행 장애 조치 (failover) 기능 추가 Failover Cluster 기능 추가 --서버 재부팅-- 우클릭 -> 클러스터 만들기 (한쪽 노드 DB01에서만 클러스터 생성 후 노드 추가해주면 된다.) maindb01 maindb02 -> 이름확인 클릭 유효성 검사할 클러스터 멤버 추가 유효성 검사 테스트 항목 요약 유효성 검사 진행 VIP 입력 노드 확인(DB01)

[MSSQL - Always On 구축] part 1 AD 설정 [내부링크]

Always on 개념 MS SQL Server 2012년부터 도입된 Enterprise용 고가용성 솔루션입니다. 가용성 그룹을 통해 주 서버에 있는 데이터베이스들을 보조 서버에서 복제본을 생성하고 변경 사항에 대해 실시간 동기화하며, 이기능을 통해서 고가용성 및 재해복구에 대해 어느정도 보장할 수 있습니다. AlwaysON 미러링의 단점(미러DB 작업불가)을 해결한 방식 데이터베이스 및 SQL 인스턴스 수준의 고가용성 제공 * 클러스터링과 미러링의 장점을 결합 * 데이터베이스 수준(가용성 그룹 AG) 및 SQL 인스턴스(서버) 수준의 장애조치 * 최대 4대의 보조서버 구성 가능 * 미러링과 달리 보조서버에서 작업이 가능 * 공유 스토리지가 필요 없음 * Enterprise 에디션에서만 사용 가능 A..

[MySQL - InnoDB cluster] part 4 Router설치 [내부링크]

이전 part 1,2에 이어 관리용으로 Router를 설치하겠습니다. https://jhdatabase.tistory.com/76 [ Mysql - InnoDB cluster] part 1 Mysql 설치 & shell설치 Mariadb에서는 Galera cluster가 있다면 Mysql에서는 InnoDB cluster가 있습니다. InnoDB Cluster 요구사항 - 3개 이상의 MySQL 서버로 구성하여 고가용성 및 확장 기능을 제공하는 솔루션 - Group replicatio.. jhdatabase.tistory.com https://jhdatabase.tistory.com/77 [ Mysql - InnoDB cluster] part 2 cluster생성/인스턴스 추가 part 1에 이어 Cl..

[MySQL - InnoDB cluster] part 3 복구 테스트 [내부링크]

Slave DB 복구 테스트를 진행하겠습니다. 이 부분은 구성하는데 필수 부분이 아니기 때문에 넘어가셔도 좋습니다~ Test data insert (master서버) ## 넣으려는 sakila 샘플 데이터가 MyISAM 스토리지 엔진을 사용. 안에 내용을 innodb로 수정 [root@jh-my001 ~]# sed -i 's/MyISAM/InnoDB/g' sakila-mv-schema.sql [root@jh-my001 ~]# mysql -uroot -p < sakila-mv-schema.sql Enter password: [root@jh-my001 ~]# sed -i 's/MyISAM/InnoDB/g' sakila-mv-data.sql [root@jh-my001 ~]# mysql -uroot -p <..

[MySQL - InnoDB cluster] part 2 cluster생성/인스턴스 추가 [내부링크]

part 1에 이어 Cluster를 생성하고 인스턴스를 추가하겠습니다. Cluster 생성 (Master) 현재 cluster를 생성한 1번 인스턴스는 seed 인스턴스로 데이터베어스의 초기 상태를 보유한 인스턴스이며, 클러스터에 멤버가 추가되면 다른 인스턴스에 데이터를 복제해주는 역할을 합니다. [root@jh-my001 ~]# mysqlsh [email protected]:3306 Please provide the password for '[email protected]:3306': * Save password for '[email protected]:3306'? [Y]es/[N]o/Ne[v]er (default No): Y MySQL Shell 8.0.28 Copyri..

[MySQL - InnoDB cluster] part 1 Mysql 설치 & shell설치 [내부링크]

Mariadb에서는 Galera cluster가 있다면 Mysql에서는 InnoDB cluster가 있습니다. InnoDB Cluster 요구사항 - 3개 이상의 MySQL 서버로 구성하여 고가용성 및 확장 기능을 제공하는 솔루션 - Group replication ( 그냥 replication하고 다름 )을 기반으로 자동 멤버 관리, 내결함성, 자동 Failover등과 같은 기능을 제공 - 기본적으로 Sinlge-Primary 모드로 실행되며, Multi-primary 모드로 변경 할 수 있다. - Multi-primary 기능 권장 X -> Shared Stroage가 아니기 떄문에 - Group replicatoin 동기식 / replicaiton 비동기식 - EE 부터 지원한다 - Inno D..

[Mysql - Slow query 메일 전송] use. pt-qeury-digest [내부링크]

pt-query-digest 이용 TOP10 쿼리를 뽑아 mail로 첨부파일 형식으로 주에 한번씩 보내볼 예정입니다. Slow query에 변수로 인한 같은 쿼리임에도 불구하고 숫자하나만 다른 데이터가 들어가도 top 쿼리에 찍힙니다..결국 중복된 쿼리가 찍혀있을 수 있기때문에 필터링하는 방법을 강구해야할 거 같습니다. 사전 작업 pt-query-digest 설치 https://jhdatabase.tistory.com/53?category=953606 [pt-query-digest - Mysql slowquery 분석 ] 안녕하세요 이번글에서는 Mysql or Mariadb에서 쿼리 실행 시간이 설정된 시간 이상으로 걸릴 시 slow query log가 남게됩니다. 하지만 가시성 가독성이 떨어지기 때문에..

[NCP - mail 전송 방법] use.(sendmail/mutt) [내부링크]

일반 텍스트 메일 보내는 방법(sendmail) sendmail 설치 [root@mysql]# yum install -y sendmail sendmail-cf config 수정 [root@mysql]# vi /etc/mail/sendmail.mc -- 52,53라인에 dnl을 삭제 [root@mysql bin]# m4 /etc/mail/sendmail.mc > /etc/mail/sendmail.cf 25번 포트 open 확인 [root@mysql]# netstat -anp | grep sendmail | grep LISTEN tcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 22675/sendmail: acc start [root@mysql]# systemctl start..

[ Slack - Webhook 이용 alert 설정] [내부링크]

애플리케이션 관련 문제 발생시 얼롯을 받기위해 Slack을 사용하였습니다. Slack 어플을 다운로드 후 얼롯팅 받을 새로운 워크 스페이스를 생성합니다. 새 워크스페이스 추가 채널을 우클릭하여 세부정보를 open합니다. 통합 -> 앱 추가 클릭 incoming-webhook 앱 설치 Incoming Webhook 외부 소스로부터 Slack 으로 메시지를 게시할 수 있는 방법을 제공하는 Plugin HTTP 요청을 사용하여 원하는 형태의 메시지 (더불어 기타 세부 정보)를 JSON 페이로드와 함께 사용가능 얼롯을 받고자하는 채널에 설치 Webhook URL을 잘 저장해둡니다. https://hooks.slack.com/services/T03E6JT5QAD/B03DR4ANLCD/iCwZn0..

[Ansible - Semaphore playbook테스트] part 3 [내부링크]

Mariadb 설치 yml파일 실행 테스트 [root@jh-semaphore playbooks]# vi dbinstall.yml --- - name: mariadb_install hosts: all remote_user: root tasks: - name: Connection Test ping: - name: Install wget yum: name: wget state: present - name: Create directoty file: path: /root/Downloads state: directory mode: 0775 - name: Download mariadb_repo_setup File get_url: url: https://downloads.mariadb.com/MariaDB/maria..

[Ansible - Semaphore Web설정] part 2 [내부링크]

[분류별 설명] Dashboard : 대시보드 Task Templates : Ansible-PlayBook 실행(Task)을 정의하는 템플릿을 작성합니다. (매개변수 포함) Inventory : 대상서버들의 목록(ansible의 Hosts 파일로 생각하면 됩니다.) Environment : 환경변수 설정 Key Store : Target 서버로 접근할때 사용할 Key(SSH Key or ID/Password 등…) Repositories : Playbook 저장소 설정 Team : Project별 사용자 관리 Task Templates을 만들기 위해서는 KeyStore / Environment / Repositories / Inventory이 필요합니다. Inventory와 Repository를 만들기 ..

[Ansible - Semaphore 설치] part 1 [내부링크]

Semaphore란 Ansible Tower의 대쳉용 오픈소스로 Semaphore버전입니다. Ansible Tower의 대부분 기능이 구현되어 있으며 가격은 community는 free, Enterprise는 commercial H/W Requirement Spec - CPU: 3.4Ghz(2cores) / Memory : 4GB / Storage : 40GB Prerequisites - Mysql : 5.6.4 / MariaDB : 5.3 / git : 2.x Ansivle semaphre install Docs : https://docs.ansible-semaphore.com/administration-guide/installation Installation - SemaphoreDocs If you ..

[Ansible - AWX설치] [내부링크]

AWX는 Ansible을 GUI환경에서 작업하기 위해 사용됩니다. 크게 Tower,AWX,Semaphore 가 있는데 Tower는 돈내고 사용해야돼서..AWX 커뮤니티 버전을 설치해보았습니다. awx 가 docker 기반으로 설치가 되기 때문에, centos 6 에서는 설치가 쉽지 않습니다. (docker 에서 공식 지원을 하지 않는다.) Ansible AWX는 ver 17을 기준으로 설치방법이 나뉩니다. Version 17 이하는 Linux OS 위에 Docker를 기반으로 설치를 진행하며, Version 18 이상부터는 Kubernetes 기반위에서 설치하는 것을 기본으로 합니다 Ansible 설치 [root@jh-awx ~]# yum -y install epel-release [root@jh-aw..

[ PMM - Home dashboard 설정 ] part 2 [내부링크]

이전 글에서 만든 템플릿 JSON파일을 export하여 대시보드로 설정하는 방법을 포스팅 하겠습니다. ## 도커 컨테이너로 PMM을 설치해서 컨테이너에서 작업 필요 컨테이너 접속 [root@gm-git01 ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS 642b17464e13 percona/pmm-server:2 "/opt/entrypoint.sh" 2 months ago Up 2 months (healt b3ba834e9832 percona/pmm-server:2 "/bin/true" 2 months ago Created [root@gm-git01 ~]# docker exec -it 642b17464e13 /bin/bash PMM 대시보드 ..

[ PMM - Dashboard 설정 ] part 1 [내부링크]

TEMPLATE 다운로드 URL https://grafana.com/grafana/dashboards/?category=databases&dataSource=prometheus&search=mysql Dashboards grafana.com JSON 파일 import하는법 datasource를 PMM에 추가하던지 아니면 존재하는 datasource로 Json파일을 다운로드합니다. Create -> Import -> Json파일을 업로드하거나 dashboard 번호를 입력 템플릿 만드는법 New dashboard -> 톱니바퀴 클릭 대시보드 설정값 변경사항은 별도의 저장을 해야합니다. [+New] 버튼을 클릭하여 다음과 같이 Interval 변수를 설정합니다. 입력시 대소문자를 확실히 구분하여..

[MSSQL - NCP Cloud DB for MSSQL 데이터이관] [내부링크]

NCP에서 Cloud DB for MSSQL은 데이터 Migration을 하려면 네이버에서 만든 TOOL을 이용해야합니다. -> DMT(https://github.com/NaverCloudPlatform/DataMigrationTool) GitHub - NaverCloudPlatform/DataMigrationTool Contribute to NaverCloudPlatform/DataMigrationTool development by creating an account on GitHub. github.com DMT (Data Migration Tool)는 네이버 클라우드 데이터베이스 서버에 전체 백업과 로그 백업을이용해 서비스를 클라우드로 마이그레이션 하거나, 사용 중인 클라우드 데이터베이스 백업을 내려..

[NCP - window서버 스토리지 추가] [내부링크]

콘솔에서 Server -> Storage -> 스토리지 생성 클릭 원하는 서버에 원하는 크기의 스토리지를 추가해줍니다. 대상서버 접속 디스크 초기화 시작 -> windows 관리 도구 -> 컴퓨터 관리 -> 디스크 관리 할당되지 않은 디스크를 찾아 우클릭 후 새 단순 볼륨 클릭 전부 다음 클릭 해당 디스크 우클릭 ->드라이브 문자 및 경로 변경 클릭 추가 -> 드라이브 문자 할당 -> 확인 확인

[MSSQL - Sample Data 입력 방법] [내부링크]

아래 URL에서 SQL Server 샘플 데이터베이스 zip파일 다운로드합니다. https://www.sqlservertutorial.net/load-sample-database/ Load SQL Server Sample Database This tutorial shows you step by step how to load a sample database BikeStores into the SQL Server for practicing. www.sqlservertutorial.net BikeStores Sample Database - create objects.sql – 이 파일은 스키마 및 테이블을 포함하는 데이터베이스 객체를 생성하기 위한 것입니다. BikeStores Sample Database..

[MSSQL - 로컬에서 Source DB 접속] use Microsoft SQL Server Management Studio [내부링크]

로컬 PC에서 Cloud 및 가상 머신에 설치된 MSSQL(SQL-Server)에 Microsoft SQL Server Management Studio 툴을 이용해서 접속하기 위해 세팅하는 방법을 포스팅 하겠습니다. 테스트 환경 OS Version : Windows Server 2016 (64-bit) English Edition DB Version : ko_sql_server 2019 Enterprise Edition Target PC에서 작업 ## 1433포트 IP all 되어있나 확인 시작 -> SQL Server 2019 구성 관리자 IP ALL 부분의 TCP 포트를 확인합니다. Microsoft SQL Server Management Studio 접속 인증 방식 -> Window 인증 로..

[ 맛집편 - 여의도 맛집 '진주집' ] [내부링크]

안녕하세요 이제 봄이 온듯합니다. 날도 더워지고 벚꽃이 이쁘게 폈네요~ 오늘 소개할 맛집은 여의도에 정말 유명한 식당인 진주집 입니다. 위치 : 서울특별시 영등포구 국제금융로6길 33 지하 1층 약 2년만에 다시 방문했습니다..2년전 정말 맛있다는 생각은 들었는데 이정도로 유명해졌을 줄이야.. 주말 오후 점심타임이 지나고 방문을 했는데도 정말 줄이 길더라구요 하지만 끝까지 기다려서 맛을 볼 수 있었습니다 하하 처음오는 분들은 아마 찾기 힘들지 않을까 싶습니다 구)여의도 백화점 건물 지하에 위치해있습니다! 건물 바로앞 지하로 내려갈 수 있는길이 있습니다 이통로로 가시면 더 빨리 갈 수 있어요! 진주집이 사람이 많아져서 그런지 두 식당으로 운영중인데 한곳에서 만들어 두곳에서 먹는듯합니다..부엌이 하나라 많은..

[MySQL & MariaDB - innodb_flush_log_at_trx_commit 파라미터] [내부링크]

innodb_flush_log_at_trx_commit 파라미터는 Transaction이 Commit되었을때 디스크에 저장되는 방법을 지정하는 변수이다. 해당 파라미터에 따라 성능을 차이가 날 수 있으므로 잘 고려해야합니다. * innodb_flush_log_at_trx_commit = 0 -MySQL 서버에 문제가 생기면 마지막 1초의 Transaction 유실 발생 * innodb_flush_log_at_trx_commit = 1 - Default 값으로 데이터 유실 발생하지 않는다. * innodb_flush_log_at_trx_commit =2 - OS가 crash되거나 파워가 나가면 마지막 1초(혹은 그 이상..)의 트랜잭션이 유실될 수 있습니다. nnodb_flush_log_at_trx_com..

[MSSQL - DB Link (MSSQL to MySQL)] [내부링크]

mysql connector 다운로드 URL : https://dev.mysql.com/downloads/connector/odbc/ MySQL :: Download Connector/ODBC Select Operating System: Select Operating System… Microsoft Windows Ubuntu Linux Debian Linux SUSE Linux Enterprise Server Red Hat Enterprise Linux / Oracle Linux Fedora Linux - Generic Oracle Solaris macOS Source Code Select OS Version: All Windows (x86 dev.mysql.com 해당 Windows 서버에 My..

[PostgreSQL - PGDUMP 백업&복구] [내부링크]

PG_DUMP 유틸리티 장점 : 특정 데이터베이스를 선택하여 백업 및 복구 할 수 있음, 테이블의 읽기 엑세스 권한 필요 ※ 데이터베이스 전체를 백업하는 경우 슈퍼유저(postgre)로 해야합니다. Dump는 SQL, File 형태로 백업 받을 수 있으며, PG_RESTORE 유틸리티를 이용하여 복원 가능. test data insert (kim사용자로 test 데이터베이스) postgres@jh-post002:/home/postgres# psql -h 192.168.1.11 -U kim -d test; test=> CREATE TABLE t AS SELECT gs as idx, '테스트 문자열' || gs AS test_string, md5(random()::text) AS random_strin..

[PostgreSQL - Wal-g 백업 & 복구] part 2 [내부링크]

데이터 입력 postgres=# \l List of databases Name | Owner | Encoding | Collate | Ctype | Access privileges -----------+----------+----------+-------------+-------------+----------------------- postgres | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | repmgr | repmgr | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | template0 | postgres | UTF8 | ko_KR.UTF-8 | ko_KR.UTF-8 | =c/postgres + | | | | | postgres=CTc/post..

[PostgreSQL - Wal-g 백업] part 1 [내부링크]

wal 아카이빙 장점 : 1. 백업 크기는 백업 빈도에 따라 선형적으로 증가하지 않음(각 WAL 파일이 정확히 16MB이지만 대부분 비어 있 는 경우 몇 KB로 압축할 수 있음). Postgres 문서에서는 1분에 한 번 빈도를 제안하여 백업을 훨씬 더 자주 수 행가능. 2. WAL 아카이빙은 특정 시점 복구 기능을 제공. 단점 : 1. WAL 아카이브에서 복구하는 것은 파일 시스템 백업에서 복구하는 것보다 느림. WAL 아카이브는 마지막 기 본 백업 이후로 가져와서 재생해야 하지만 파일 시스템 백업은 가장 최근 체크포인트에서 재생되는 즉시 실 행 할 준비됨(기본적으로 체크포인트는 최소 5분마다 수행되지만 발생할 수 있음. 트래픽이 많은 데이터베이 스에서 더 자주함) 2. WAL 파일은 제한된 간격으로만..

[Mysql - Performance parameter] [내부링크]

mysql에서 사용되는 성능관련 파라미터 요약 정리를 해보았습니다. ## System variables 동적으로 Set문을 사용하여 설정할 수 있는 파라미터 sort_buffer_size 파일 정렬 버퍼의 크기 제어함. 변수를 높게 설정하고 행 정렬이 필요한 여러 연결이 있는 경우 메모리가 많이 사용됨. 이 값을 너무 낮게 설정해도 디스크 다이브를 수행하여 데이터가 무작위로 검색되기 때문에 더 느릴 수 있음. 쿼리 수정하는 것이 가장 좋으며, Redis와 같은 쿼리 캐싱을 처리하는 도구를 사용하는 것이 효율적. mysql> show variables like 'sort_buffer_size'; +------------------+--------+ | Variable_name | Value | +-----..

[Mariadb - Sharding] use Spider Engine [내부링크]

안녕하세요 이번글에서는 mariadb에서 spider엔진을 이용하여 데이터노드에 데이터를 분산하여 입력하는 테스트를 해보겠습니다. 기존의 MySQL의 샤딩은 DB단에서 구현하지 않고, DB 앞단에서 구현을 합니다. Spider 엔진이란 Spider 스토리지 엔진은 샤딩 기능이 내장 된 스토리지 엔진입니다. 파티셔닝 및 xa 트랜잭션을 지원하며 다른 MariaDB 인스턴스의 테이블을 마치 동일한 인스턴스에있는 것처럼 처리 할 수 있습니다. Remote 테이블은 스파이더 엔진이 아닌 MariaDB가 지원하는 모든 스토리지 엔진을 사용할 수 있습니다. 스파이더 엔진을 통한 마스터 노드와 스파이더 노드들의 연결은 Local MariaDB 노드에서 Remote MariaDB노드로 연결설정을 통하여 완성됩니다 Ma..

[pt-query-digest - Mysql slowquery 분석 ] [내부링크]

안녕하세요 이번글에서는 Mysql or Mariadb에서 쿼리 실행 시간이 설정된 시간 이상으로 걸릴 시 slow query log가 남게됩니다. 하지만 가시성 가독성이 떨어지기 때문에 Percona에서 만든 툴을 이용하여 분석하기 편하게 변환하도록 하겠습니다. PT 쿼리 다이제스트는 MySQL 느린 쿼리를 분석하는 데 사용되는 도구입니다. show processlist 또는 tcpdump에서 캡처한 binlog, 일반 로그, slowlog 및 MySQL 프로토콜 데이터를 분석할 수 있습니다. 분석 결과를 파일로 출력할 수 있습니다. 분석 과정은 먼저 쿼리문의 조건을 매개변수화 한 다음 통계를 위해 매개변수화된 쿼리를 그룹화하는 것입니다. 각 쿼리 의 실행 시간 , 횟수, 비율을 계산할 수 있습니다. 분..

[Mariadb - MHA chain 구성을 통한 데이터 이관] [내부링크]

현재 MHA구성으로 manager서버 / master(node1) / slave(node2) 구조입니다. 다운타임을 최소화하여 새로운 노드로 이관을 하며 기존 노드를 뺄 예정이기 때문에 new-node를 node2에 slave로 붙여 chain 구성 후 이관해볼 생각입니다. 전체 순서 new-node를 node2의 slave로 replication 구성 master 노드 제거 -> failover되며 node2가 master로 승격 mha manager에 new-node정보 추가 및 failover 스크립트 수정 mha 재시작 node2 제거 -> failover되며 new-node가 master로 승격 결과 확인 (new-node에 vip가 붙으며 role이 master이면 성공) 테스트 환경 host..

[OCI - DBCS RAC생성 & patch ] [내부링크]

Oracle cloud 콘솔을 통해 PaaS상품인 DBCS에서 RAC를 구성 후 패치를 진행하도록 하겠습니다. 패치셋은 OCI에서 진행하는 패치셋만 콘솔을 통해 적용 할 수 있으며 원하는 패치셋을 On-prem와 같이 패치를 적용 할 수있을지는 다음 테스트를 통해 알아보도록 하겠습니다.. DBCS RAC생성 DB시스템 구성 항목의 총 노드 수를 2로 설정 subnet 22port open 노드간 통신 creating 2 node, 1 database Patch Patch 순서 DB System precheck -> DB System patch -> DB precheck -> DB patch Grid 패치 precheck (OCW패치는 GRID 홈, ORACLE 홈 두 곳 모두 적용합니다. ..

[Oracle - Statspack 그래프 출력 use Python] part 3 [내부링크]

안녕하세요 이번글에서는 statspack report를 뽑은 txt파일을 보기 편하도록 그래프로 출력하여 분석하겠습니다. statspack report 출력 SQL> @?/rdbms/admin/spreport Git & Python install [root@localhost ~]# yum -y install git [root@localhost ~]# git clone https://github.com/ora600pl/statspack_scripts.git [root@localhost ~]# sudo yum install -y epel-release [root@localhost ~]# sudo yum install -y https://repo.ius.io/ius-release-el7.rpm [roo..

[Oracle - Statspack manual / Snapshot설정] part 2 [내부링크]

Statspack Job 스크립트 수정 및 생성에 이어 snapshot 관리 manual을 포스팅하도록 하겠습니다. part1 URL : https://jhdatabase.tistory.com/48 [Oracle - Statspack manual / Job 생성] part 1 안녕하세요 이번글에서는 oracle db 성능 분석을 위해 라이센스가 standard edition인 고객사에서 AWR report 사용 불가로 statspack 사용하게되는데 snapshot 주기 및 설정 방법을 포스팅 하도록 하겠습니다. S jhdatabase.tistory.com Snapshot 삭제(delete) SQL> show user; USER is "PERFSTAT" SQL> @?/rdbms/admin/sppurge ..

[Oracle - Statspack manual / Job 생성] part 1 [내부링크]

안녕하세요 이번글에서는 oracle db 성능 분석을 위해 라이센스가 standard edition인 고객사에서 AWR report 사용 불가로 statspack 사용하게되는데 snapshot 주기 및 설정 방법을 포스팅 하도록 하겠습니다. Statspack이란 Oracle DB내에서 특정 시간대의 데이터베이스에 대한 성능과 관련 데이터를 수집하여 database에 저장하여 두고 이로 부터 성능 분석 report를 생성해 내는 script들로 구성이 되어 있습니다. - 한 시점의 성능 data들은 snapshot이라고 불려 집니다. - Statspack report는 두 시점의 snapshots들로부터 얻어 집니다. ## 사전 확인 ## 추출한 Report에 시간 정보 추가 SQL> show parame..

[Oracle - killed 세션] [내부링크]

oracle에 붙어있던 session을 kill했을때 상태가 killed로 남는 경우가 있습니다. -- session 종료 시, immedaite 옵션을 주지 않아 transaction 종료되었지만, session은 client에서 추가적인 action이 수행되지 않음 으로 STATUS가 KILLED로 남습니다. ## session 확인 SQL> select username, sid, serial#, status from v$session where username='KIM'; USERNAME SID SERIAL# STATUS ------------------------------ ---------- ---------- -------- KIM 1531 63390 INACTIVE 정상적인 경우 ## ses..

[Mysql - MSR(Multi Source Replication)구성] [내부링크]

안녕하세요 이번글에서는 MSR(Multi Source Replication)을 구성해보았습니다. 보통 log성으로 많이 사용한답니다. 여러 db의 log를 분석하기 힘드니 한 slave에 모아 한번에 분석하는 느낌(?)이랍니다. MSR 이란 기본 Replication구조에서 확장된 개념으로 Binary Log를 기본으로 하여 각각의 마스터를 CHANNEL로 연결하여 Replicate 하는 구조입니다. 각각의 CHANNEL을 통해 Master / Slave 간 연결을 하고, 이 CHANNEL은 Replication 연결에 사용되는 Thread(IO, SQL, Worker 및 Coordinator 등)들을 관리합니다. 전체적인 틀로 여러개의 Master DB를 1개의 Slave 인스턴스에 연결하여 복제하는 ..

[Oracle - startup error] ORA-01565,ORA-27037 [내부링크]

DB 기동시 error SQL> startup ORA-01078: failure in processing system parameters LRM-00109: could not open parameter file '/u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/initDB0225.ora' 초기화 파일의 기본 위치 $ORACLE_HOME/dbs ## 사전에 pfile을 만든게 있다면 pfile을 이용해서 기동 SQL> create pfile='/u01/app/oracle/product/19.0.0.0/dbhome_1/dbs/kim.ora' from spfile; SQL> startup pfile='/u01/app/oracle/product/19.0.0.0/dbhome_1/..

[Oracle - ORA-12520] tns-15220 error [내부링크]

사용자가 oracle에 Client를 통해 접속시 'ORA-12520:TNS 리스너가 요청한 유형의 서버에서 사용할 수 있는 처리기를 찾을 수 없습니다.' 에러가 메시지가 나오며, alert log에 tns에러가 찍힐시 의심해볼 파라미터를 정리하겠습니다. ## 원인 ORA-00020: maximum number of processes (1600) exceeded 에러로 인하여 DB에서 생성할 수 있는 최대 프로세스를 초과하였기 때문에 Client에서 DB로 신규 접속을 맺지 못하여 발생. ## alert.log 2022-03-05T12:33:47.073378+09:00 ORA-00020: maximum number of processes (1600) exceeded ORA-20 errors will no..

[Oracle - PDB접속 방법 use TNS] [내부링크]

이번글에서는 정말 별거아니지만.. oracle multitenant 구조에서 tns를 이용하여 CDB에서 PDB로 접속하는것이 아닌 sqlplus 유틸리티 이용 바로 접속 방법을 포스팅하도록 하겠습니다. CDB -> PDB접속 $sqlplus / as sysdba ## 현재 CDB SQL> show con_name; CON_NAME ------------------------------ CDB$ROOT SQL> show pdbs; CON_ID CON_NAME OPEN MODE RESTRICTED ---------- ------------------------------ ---------- ---------- 2 PDB$SEED READ ONLY NO 3 ORCLPDB READ WRITE NO SQL> a..

[Mysql - Haproxy 구성] [내부링크]

안녕하세요 이번글에선 개발사나 고객사측에서 실수하는일이 없도록 방지차원해서 db앞단에 haproxy 서버를 구성하였습니다. Haproxy 서버를 생성하여 Haproxy의 public IP와 해당 지정 port로 접속하면 MHA구조의 vip로 붙도록 설정할 수 있습니다. VIP로 DB에 접속하게 하여 MasterDB가 down되더라도 Slave로 자동 접속이 가능하도록 할 수 있습니다. DB 앞단에 haproxy서버를 두어 vip를 통해 접속 시 master가 죽었는데 slave를 master로 착각하고 data를 넣는 일을 방지하기 위해 사용하였습니다. Haproxy -Load Balancer로 사용 할 수 있는 오픈소스 -Active Health Check이 가능해 안정적인 운영가능 테스트 환경 Hos..

[OCI - SR(Service Request) manual] [내부링크]

온프레미스 oracle database 뿐만 아니라 oracle cloud에서도 어떠한 문제가 있을때 SR(Service Request)를 올려 도움을 받는데 이번 글에선 oracle cloud에서 버그, 패치, 각종 기술적 도움을 받기 위해 SR 올리는 방법을 포스팅 하겠습니다. 일단 올리기 위해선 oracle support에 필수적으로 partner관계이어야 합니다.. ## 사전 확인 OCI 콘솔 접속 후 Tenancy 정보 확인 ## Database 시스템 정보 확인 ## SR 진행 1. Oracle support 접속 접속 URL : https://support.oracle.com/cloud/faces/index?_afrLoop=141825368617661&_afrWindowMode=0&_adf...

[OCI - DBCS autobackup Email 얼롯팅 설정] [내부링크]

Oracle Cloud에서 DBCS의 autobackup을 진행하고 진행결과를 이메일로 얼롯팅 받기위해 설정하였습니다. 해당 작업은 스크립트를 생성해서 돌리는것이 아니라 oci 이벤트 서비스를 이용하여 얼롯팅 구성을 하였습니다! ## 알림 생성 OCI 콘솔에서 탐색 메뉴 -> 개발자 서비스 -> 애플리케이션 통합 ->알림 -> 토픽 생성 클릭 주제 이름 입력 + 설명 입력 + "만들기" 클릭 ## 구독 생성 좌측 바에서 구독 클릭 -> 구독 생성 이전에 생성된 주제 선택 + 프로토콜은 이메일이어야 함 + 알림을 수신할 이메일 주소를 입력 + "생성" 클릭 ## 구독 상태 -> pending 상태 ## 이메일 확인 3단계에서 지정한 이메일 주소로 "Oracle Cloud Infrastructure Noti..

[Oracle - Password 에러] ORA-20001 , ORA-65096 [내부링크]

안녕하세요 이번글에선 오라클에서 유저 생성시 흔히 볼 수 있는 에러와 해결 방법을 포스팅하겠습니다. ORA-20001 ## user 생성 시 패스워드가 8자리 미만이여서 에러 발생 SQL> create user kim identified by kim; create user kim identified by kim * ERROR at line 1: ORA-28003: password verification for the specified password failed ORA-20001: Password length less than 8 ## 해결 방법 #vi /u01/app/oracle/product/11.2.0.4/dbhome_1/rdbms/admin/utlpwdmg.sql => 패스워드 limit 확인 R..

[ PMM - DB monitoring 서버 구축 ] [내부링크]

안녕하세요 이번 글에선 도커를 이용하여 기본 PMM percona 모니터링 서버 구축해보도록 하겠습니다. PMM 이란 PMM은 서버 클라이언트 형태로 MySQL(MariaDB), MongoDB를 모니터할수 있는 플랫폼입니다. PMM Server는 Docker 이미지로 배포됩니다. 따라서 docker 설치 후 컨테이너 생성. • PMM Client : 모니터링하고자 하는 DB서버에 직접 설치한다. 서버정보, DB정보, 쿼리정보등을 수집해 PMM Server로 보내준다. • PMM Server : PMM Client에서 수집된 데이터를 저장하고 이를 이용해 웹기반의 대시보드와 그래프를 보여준다. 공식 문서 https://www.percona.com/doc/percona-monitoring-and-manage..

[Mariadb - mariabackup error] failed to copy enough redo log [내부링크]

안녕하세요 고객사에서 mariabackup을 받는데 아래와 같은 error가 떠서 찾아보게 되었습니다. 해당 에러는 작업의 마지막 부분에서 필요한 log file size보다 현재 설정된 size가 더 작으면 mariabackup에 fail가 발생합니다. redo_log_file_size확인 방법 Redo log (from LSN 3183381317949 to 3183385508864 ) was copied 부분을 확인. 3183385508864 - 3183381317949 /1024/1024 => redo_log_file_size를 얼마나 썼는지 확인 할 수있습니다. 해결 방법 ## 현재 innodb_log_file_size 확인 ## my.cnf innodb_log_file_size=50331648 ..

[MariaDB - Galera Cluster & sysbench 이용 동기화 테스트 ] part 3 [내부링크]

안녕하세요 이번 글에선 galera cluster의 sysbench 이용하여 대량의 데이터를 insert 시켜 동기화 성능 테스트를 진행해 보겠습니다. part 1 https://jhdatabase.tistory.com/34 [MariaDB - Galera Cluster 구성] part 1 안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터 jhdatabase.tistory.com part 2 https://jhdatabase.tistory.com/35 [MariaDB - Galera Cluster & maxscale 구성 및 ..

[MariaDB - Galera Cluster & maxscale 구성 및 failover test] part 2 [내부링크]

[MariaDB - Galera Cluster 구성] part 1 편에 이어 maxscale 구성을 진행하도록 하겠습니다! part 1 URL https://jhdatabase.tistory.com/34 [MariaDB - Galera Cluster 구성] part 1 안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터 jhdatabase.tistory.com Maxscale 갈레라에서 MaxScale은 다수의 MariaDB간에 Read / Write 분산과 모니터링, change master Replication에서 Healt..

[MariaDB - Galera Cluster 구성] part 1 [내부링크]

안녕하세요 이번글에선 galera cluster를 구성하도록 하겠습니다. 최종적인 아키텍처는 아래와 같으나 저는 DB node 3개와 그를 관리할 maxscale을 설치 진행하겠습니다. Galera Cluster란 갈레라 클러스터는 동기 방식의 복제구조를 사용하는 멀티마스터 RDB 클러스터입니다. 현재 Galera cluster는 MySQL, MariaDB 그리고 Percona XtraDB 까지도 클러스터를 구성할 수 있습니다. Master Slave 구성의 Replication 과는 다르게 모든 노드에서 Write가 가능합니다. Galera Cluster는 Write-Set Replication API (이하 wsrep api) 를 통해 각 노드와 데이터를 동기화합니다. 장점 모든 노드의 데이터가 일관..

[ 호캉스편 - 포포인츠 바이 쉐라톤 서울 강남 ] [내부링크]

안녕하세요 오랜만에 호캉스가서 여유좀 느끼고 왔습니다. 이번엔 디너 뷔페 포함하여 가격은 30만원 초반에 예약을 했습니다! 이번 소개해드릴 호텔은 Four Points by Sheraton Seoul Gangnam 입니다. 위치 : 서울 강남구 도산대로 203 서울 강남구 신사동 587-21 제가 찍었습니다 건물 외관이요! 라운지는 생각보다 작더라구요.. 방은 12층 배정받아서 아쉬웠네요.. 그래도 내부는 깔끔하니 고급진 느낌이라 좋았습니다 경치는 나쁘지 않았어요 시티뷰! 디너는 오후6시~9시까지로 3층에서 먹었습니다~ 뷔페 이용 및 주류로 샴페인, 맥주도 무한이에요! 여친님이 한접시 먹더니 배부르답니다 하하 저는 꽤 대식가 답게 두접시나 쾌속으로 해치웠지만 여친님은 먹고싶은거에 비해 입이 짧아..역시 ..

[ 맛집편 - 63빌딩 레스토랑 Walking On The Cloud ] [내부링크]

안녕하세요 예전에 여자친구랑 갔었던 63빌딩에 워킹 온더 클라우드라는 레스토랑을 소개해볼까 합니다! 먼저 63빌딩 레스토랑 워킹온더클라우드는 여의도에 위치해있습니다! 위치 : 서울 영등포구 63로 50 59층 제가 이용한 코스는 루나코스입니다. 가격은 아래 사진과 같이 17만 9천원입니다. 여자친구와 둘이해서 약 34만원 정도에 이용했습니다! 믿기 힘드시겠지만 63빌딩이에요 제가 찍었습니다 레스토랑은 59층에 있는데 굉장히 높아서 세상을 위에서 내려다볼 수 있습니다 뷰 맛집이에요! 첫번째 요리입니다. 수저,포크,나이프 등등 너무 많아서 뭐로 먹어야할지 모를땐 인터넷 검색하셔야합니다..저도 몰라서요.. 이건 달팽이 요리라는데 소스가 맛있어서 달팽인줄도 몰랐어요ㅋㅋ맛있어요! 이건 저 빵같은거 안에 무슨 스프..

[ Zabbix - 카카오톡 얼롯팅 설정 ] part 5-2 최종 [내부링크]

안녕하세요 에러 발생시 카카오톡을 통한 얼롯팅 설정 5-1편에 이어 마지막 설정까지 진행 해보도록 하겠습니다. 카카오톡 알림 설정 5-1 : https://jhdatabase.tistory.com/30 [ Zabbix - 카카오톡 알림 설정 ] part 5-1 안녕하세요 이번 글에선 카카오톡 알림 설정을 진행해보겠습니다. 에러 발생시 카카오에서 제공하는 rest api를 이용하여 zabbix에 등록한 파이썬 스크립트를 돌려 자신의 카카오톡으로 알람이 오 jhdatabase.tistory.com ## 토큰 불러오기 토큰 유효기간 확인 ※ access token은 6시간에 한번씩 새롭게 토큰을 발급해줘야하니, refresh token으로 진행. ## access token 생성 [root@mha-manage..

[ Zabbix - 카카오톡 알림 설정 ] part 5-1 [내부링크]

안녕하세요 이번 글에선 카카오톡 알림 설정을 진행해보겠습니다. 에러 발생시 카카오에서 제공하는 rest api를 이용하여 zabbix에 등록한 파이썬 스크립트를 돌려 자신의 카카오톡으로 알람이 오도록 구성을 하였는데 해당 파이썬 스크립트를 짜는것이 저같은 새내기한텐 어려워서..회사 선배의 도움을 받았습니다ㅎㅎ 바로 진행해보겠습니다. 카카오 developers : https://developers.kakao.com/ Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다. developers.kakao.com kakao api 설정 ## kakao developers 회원가입 상단의 내애플리케..

[ Zabbix - Telegram 연동 & PDF report생성 ] part 4 [내부링크]

서버단에서의 에러나 DB 에러 발생 시 전 게시글에서 email을 통해 얼롯팅 받는 설정을 하였습니다. 이번 글에서는 Telegram을 통해 얼롯팅 받는 설정을 하고 PDF로 report를 뽑아보는 글을 써볼까 합니다. 사전에 Telegram어플리케이션을 설치하고 회원가입을 하며 시작을 하겠습니다!! Zabbix & Telegram 연동 설정 윈도우 PC버전 텔레그램 다운 : http://www.telegram.pe.kr/ 텔레그램 한글사이트 텔레그램 PC버전 다운로드,텔레그램 메신저 소개,한국어 한글 제공 telegram.pe.kr ## 회원가입 ## 문자로 날라오는 코드만 입력하면 가입완료 ## Botfather 검색 후 선택-> start 클릭 ## 메세지 작성 /newbot 입력 봇 이름 생성 (..

[ Zabbix - email 얼롯팅 설정 ] part 3 [내부링크]

서버 리소스의 임계치까지 사용했을때나, DB에 문제가 발생했을때 email을 통해 얼롯팅 받을 수 있도록 설정해보았습니다. (에러 발생시점부터 약 1~2분내로 노티 받을 수 있습니다.) gmail 설정 외부 프로그램 연결 수신 Gmail 계정 활성화 • http://gmail.google.com 로그인 화면에서 Gmail 사용자 이름과 비밀번호를 입력하십시오. • https://myaccount.google.com/lesssecureapps 덜 안전한 응용 프로그램을 사용하려면 옵션을 선택하십시오. ## GMAIL POP/IMAP 설정 gmail 톱니바퀴 모양 클릭 -> 모든 설정 보기 전달 및 POP/IMAP -> IMAP사용 ## SSMTP 설치 (zabbix-server) [root@localhos..

[ Zabbix - zabbix 수집 구성 ] part 2 [내부링크]

part 1에 이어 zabbix 설정을 하고 대시보드 확인까지 하도록 하겠습니다. zabbix 설치는 아래 part 1을 보고 설치하면 됩니다! part 1 URL : https://jhdatabase.tistory.com/26 [ Zabbix - DB monitoring 서버 구축 ] part 1 요즘 큰 회사에서도 DB 모니터링을 위해 Zabbix를 많이 쓴다고합니다. 클라우드 콘솔에서 서버단 모니터링과 notification 서비스가 있지만, 어디까지나 서버단 리소스이라 DB를 모니터링할 tool이 필 jhdatabase.tistory.com 서버 리소스 모니터링 설정 ## 첫 Dashboard 화면 ## Configuration -> Host groups -> Create host group ##..

[ Zabbix - DB monitoring 서버 구축 ] part 1 [내부링크]

요즘 큰 회사에서도 DB 모니터링을 위해 Zabbix를 많이 쓴다고합니다. 클라우드 콘솔에서 서버단 모니터링과 notification 서비스가 있지만, 어디까지나 서버단 리소스이라 DB를 모니터링할 tool이 필요해서 사용해보았습니다. 대시보드도 보기 편하고 커스터마이징이 가능하며 자체 템플릿을 많이 지원합니다. 본인에 맞는 템플릿을 써도 되고 만들어서 편하게 사용하면 됩니다! 얼롯팅 또한 email , telegram 등 여러 템플릿을 지원하므로 메신저까지 연동하여 얼롯팅을 받아보도록 하겠습니다. 테스트 환경 ZABBIX SERVER(Monitoring 수집서버) : 10.70.101.80 ZABBIX Agent1(Monitoring 대상 서버) : 10.70.101.78 ZABBIX Agent2(Mo..

[ Graylog - Email 얼롯팅 설정 ] part 3 [내부링크]

SysLog와 DB Log를 Email을 통해 얼롯팅 받을 수 있도록 설정해보겠습니다. 저는 Gmail로 얼롯팅 받기 위해 사전 설정을 진행하였습니다. ## 외부 프로그램 연결 수신 Gmail 계정 활성화 • http://gmail.google.com 로그인 화면에서 Gmail 사용자 이름과 비밀번호를 입력하십시오. • https://myaccount.google.com/lesssecureapps 덜 안전한 응용 프로그램을 사용하려면 옵션을 선택하십시오. ## GMAIL POP/IMAP 설정 ## SSMTP 설치 (zabbix-server) [root@localhost]# yum -y install ssmtp [root@localhost]# vi /etc/ssmtp/ssmtp.conf ##자기 메일 설정..

[ Graylog - Syslog & DBlog 수집 구성 ] part 2 [내부링크]

원격지 서버에서 syslog 수집하기 위해 설정 Graylog에서 Input 생성하기 위해서, 원격지 시스템에서 로그가 생성되고, Graylog로 송신 해야합니다. Graylog에서는 해당 송신되는 log를 받아 처리할 수 있는 수신 포트를 설정해야하며 보통 syslog 수신을 위한 포트는 UDP 514가 default이나 graylog서버에서 1024 이하의 TCP/UDP 포트 번호는 권한 오류가 발생합니다. 해당 이슈 해결을 위해 UDP 514 -> 1514 포트로 리다이렉션 되도록 처리. SysLog 수집 설정 ## Graylog Input 생성 System -> Inputs -> Syslog UDP -> Launch new input 클릭 ## Node 선택 & Port 변경 ## 정상적으로 po..

[ Graylog - 로그수집서버 설치 ] part 1 [내부링크]

안녕하세요. 여러대의 서버들에 하나하나 접속해서 log를 확인하기 힘들고 귀찮기때문에 graylog를 이용해 로그 수집서버를 구성해서 받아 볼 생각입니다! Graylog란 MongoDB와 Elasticsearch 기반으로 동작하며 로깅 수집과 분석을 타겟으로 제공하는 오픈소스 솔루션입니다. 리눅스 기반 설치가 가능하며, 로그가 많은 경우 시스템의 메모리 및 Disk IO를 적절히 지원한다면 매우 유용합니다. Graylog 장점 설치가 쉽고 빠르며 오픈소스 기반이다. 얼롯팅 가능, 대쉬보드를 통해그래프 기능 지원 Graylog 단점 그래프 기능이 약간 부족하다.. 플러그인 부재 graylog 아키텍쳐 -MongoDB = 구성정보, 메타정보 저장용으로 사용되는 DB -Elasticsearch = Log 원격..

[Ansible - Mysql 설치 & 배포] [내부링크]

Ansible은 잘만 사용하면 굉장히 편한 opensource tool입니다. 배포하고자 하는 대상 서버에 별 다른 agent 설치가 필요없습니다!! 이번 글에서는 Mysql DB설치 배포를 하고, 다음엔 MHA 구성하는 playbook을 짜보겠습니다..! ※ 테스트 환경 (NCP) hostname IP private IP version db version node1 115.85.182.24 192.168.100.51 centos7.8 mysql5.7 node2 49.50.164.159 192.168.100.52 centos7.8 mysql5.7 ansible 118.67.132.167 192.168.100.53 centos7.8 ## host 등록 (사전에 host를 등록해야 해당 IP 인식 가능) [..

[PostgreSQL - repmgr구성 + PGPOOL&PGBOUNCER] part2 [내부링크]

part 1에 이어 proxy구성까지 해보도록 하겠습니다. part1 URL : https://jhdatabase.tistory.com/11 [PostgreSQL - repmgr 구성 & Failover test] part1 안녕하세요~오늘은 postgresql의 db서버들을 고가용성 구성을 해볼까 합니다. DB server 3대와 witness 서버를 repmgr로 이중화를 시킨뒤, 윗단에 proxy server를 두어 connection pool과 로드밸런싱 기능으로 구.. jhdatabase.tistory.com proxy 서버에는 PGPOOL과 PGBOUNCER를 사용할 예정입니다. 각 용도는 간단하게 아래와 같이 사용할 예정입니다. pgpool -> 부하분산용 pgbouncer -> connec..

[MySQL - MHA 구성 + failover/switchover] part 2 [내부링크]

1편 MHA 구성에 이어 스크립트 생성 및 failover테스트를 진행하도록 하겠습니다. 1편 URL : https://jhdatabase.tistory.com/19 [Mysql - MHA 구성 + VIP생성] part 1 MHA란 Master DB가 장애로 서비스가 불가능한 상태가 되면, 자동으로 failover를 수행하여 slave DB를 master DB로 승격시켜 서비스 다운타임을 최소화 auto failover 솔루션입니다. Master와 Sla.. jhdatabase.tistory.com ## Master ip_online_chanage 설정 [root@jh-mha-manager bin]# cp /root/mha4mysql-manager-0.57/samples/scripts/master_ip_..

[MySQL - MHA 구성 + VIP생성] part 1 [내부링크]

MHA란 Master DB가 장애로 서비스가 불가능한 상태가 되면, 자동으로 failover를 수행하여 slave DB를 master DB로 승격시켜 서비스 다운타임을 최소화 auto failover 솔루션입니다. Master와 Slave에서는 하나의 VIP를 공유하며 DB접속은 해당 VIP를 이용하며 장애발생시 VIP를 이용하여 절제를 진행합니다. MHA manager 서버에 MHA 소프트웨어를 설치 및 노드들의 정보를 설정하여 노드들에 이상이 있는지 감시하는 역할을 합니다. 노드에 장애 발생시 -> MHA manager는 slave 노드를 master로 승격시키며 vip역시 slave 노드로 넘어가게됩니다. 요약 : master node와 slave node는 replication 관계. (slave..

[Oracle - RESTART 19c install] part 2 [내부링크]

part1편에 이어 계속 하겠습니다. 글이 너무 길어지면 관리하기도 힘들고 보기도 힘들더라구요..그래서 나눠서 했습니다. 해당 포스팅을 보시기 전에 사전 구성을 안하신 분들은 part1부터 진행해주시면 될거 같습니다. https://jhdatabase.tistory.com/17 [Oracle - RESTART 19c install] part 1 사전 구성 ##버전 확인 (버전과 os 플랫폼마다 필요한 rpm 패키지가 다르기때문에 RESTART 문서 참고해서 필요 패키지 설치) [root@jh ~]# uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP W.. jhdatabase.tistory.com ## grid 설치 # su - grid ..

[Oracle - RESTART 19c install] part 1 [내부링크]

사전 구성 ##버전 확인 (버전과 os 플랫폼마다 필요한 rpm 패키지가 다르기때문에 RESTART 문서 참고해서 필요 패키지 설치) [root@jh ~]# uname -a Linux localhost.localdomain 3.10.0-862.el7.x86_64 #1 SMP Wed Mar 21 18:14:51 EDT 2018 x86_64 x86_64 x86_64 GNU/Linux ## Group , User 생성 [root@jh ~]# groupadd dba [root@jh ~]# useradd -g dba oracle [root@jh ~]# useradd -g dba grid [root@jh ~]# mkdir /oracle /grid [root@jh ~]# chown oracle.dba /oracle ..

[Oracle - Client password version에러] ORA-28040 [내부링크]

## 가끔 아래와 같은 ORA-28040 에러를 마주친다. ## 해당 user의 password_version을 보면 10G 11G버전이다. SQL> set linesize 200 SQL> col username for a25 SQL> select username,password_versions from dba_users where account_status='OPEN'; USERNAME PASSWORD_VERSIONS ------------------------- ----------------- SYS 11G 12C SYSTEM 11G 12C AA 11G 12C PDBADMIN 11G 12C B 11G 12C USER2 11G 12C HR 11G 12C TEST3 11G 12C A 11G 12C JEO..

[MSSQL - SQL Server2019 install] [내부링크]

Oracle cloud 에서 일반 instance 생성 후 MSSQL 설치를 진행하겠습니다. 사전 구성 os 정보는 아래 사진에 나온대로 Windows server 2016입니다. ## 인스턴스 생성 & 구성 정보 ##초기 비밀번호 입력 및 새로운 비밀번호 입력 OCI에서 window서버는 초기 비밀번호를 제공합니다. opc 유저로 접속하면 되고 처음 접속해서 비밀번호를 바꾸면 됩니다! ##설치파일이 한국어용 설치팩이기 때문에 언어를 한국어로 설정 설정 -> Region & lanuage에서 한국어 options에서 download 후 set as default로 기본 설정 ##사용자 추가 제어판 -> 사용자 계정 ## 사용자 계정 -> 다른 계정 관리 -> 사용자 계정 추가 ## USER 권한 부여 S..

[NCP - Tomcat & Mysql 연동] [내부링크]

안녕하세요 오늘은 tomcat & mysql 연동 하도록하겠습니다. 테스트 환경은 NCP에서 진행하였으면 일반 vm에서 해도 동일할거 같습니다 Version mysql 5.7 tomcat 8.5 connector 5.1.40 OS - ubuntu linux 18.04 사전 구성 ※ tomcat과 mysql 사전 설치 되어 있어야합니다. ## mysql connector 설치 (jdbc) https://dev.mysql.com/downloads/connector/j/ MySQL :: Download Connector/J MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to..

[NCP - Cloud DB for Redis & tomcat 연동 (session clustering)] [내부링크]

Naver Cloud에서 제공하는 Cloud for DB Redis 서비스를 이용해서 was(tomcat)과 연동하여 session clustering을 진행하도록 하겠습니다. 테스트 환경 was1(tomcat) , was2(tomcat) redis 서버(고가용성) Redis 생성 버전과 라이센스 선택 불가..고가용성 선택 시 자동 리다이렉션 됩니다. 생성 후 아래와 같이 확인 가능하며 도메인 확인은 관리->Redis 설정 에서 가능합니다. Redis에 접속할 서버를 redis DB ACG에 추가해줍니다. 생성 후 redis 접속을 위해 redis client 설치 root@was001:~# mkdir -p /etc/redis-client root@was001:~# cd /etc/redis..

[OCI DBCS Metrics 설정] [내부링크]

OCI콘솔 상에서 Metrics를 설정하면 아래 사진과 같이 서버단의 리소스 사용률을 확인 할 수 있습니다. 개인 정보가 노출되는 부분은 모두 가리도록 하겠습니다. Basic Management : 무료 • Basic 모니터링 메트릭 • CDB Performance Hub의 ASH 분석과 SQL Monitoring Full Management : 유료 $0.04 OCPU Per Hour (월 환산시 1 OCPU당 $29.76) • + Basic Management • Advanced Performance Hub(ADDM, Blocking Sessions) • SQL Job • Tablespace monitoring • (Plan) PDB 모니터링 • For the Oracle Database Standa..

[ 호캉스편 - 신라스테이 광화문 ] [내부링크]

오랜만에 호캉스 갔다왔습니다~코로나때문에 어디 나가기도 애매하고 호텔가서 쉬다왔습니다. 가끔 호텔가서 여유즐기고오면 리프레쉬도 되고 몸도 푹 쉴 수 있어서 정말 좋은거 같네요!! 블로그에 이렇게 일상생활 글쓰려니 좀 창피한(?) 느낌이 드네요 하하.. 올리려고 찍어둔 사진 몇장 올리고 이만 물러가도록 하겠습니다ㅎ 이번 소개해드릴 호텔은 신라스테이 광화문 330여 개의 객실이 있고 지하4층, 지상 19층의 꽤 규모가 있는 4성급 호텔이랍니다! 근처에 인사동도 있어 둘러보다 가기 좋아요! 위치 : 서울 종로구 삼봉로 71 사진 정말 못찍죠ㅎㅎ 1층엔 스타벅스도 있습니다! 여긴 특이하게 로비가 8층에 있어서 엘리베이터 타고 8층가서 체크인 해야합니다~ 피트니스 센터도 있는데 전 그런거 모릅니다 운동을 못해서...

[PostgreSQL - repmgr 구성 & Failover test] part1 [내부링크]

안녕하세요~오늘은 postgresql의 db서버들을 고가용성 구성을 해볼까 합니다. DB server 3대와 witness 서버를 repmgr로 이중화를 시킨뒤, 윗단에 proxy server를 두어 connection pool과 로드밸런싱 기능으로 구성할 생각입니다. 이번 글에선 repmgr을 이용하여 DB서버를 이중화 하려고 합니다. 전체적인 구성은 아래 사진과 같습니다. IP Version Primary 172.40.40.64 PostgreSQL 12.3 Replica1 172.40.40.65 PostgreSQL 12.3 Replica2 172.40.40.66 PostgreSQL 12.3 witness 172.40.40.67 사전 준비 ## 편의를 위해 Alias 추가 (모든 노드) [postgre..

[NCP - VPC환경 vip생성] [내부링크]

네이버클라우드 플랫폼에서 VPC환경에선 vip를 생성할때 naver cli를 이용해야합니다. 이번 글에선 naver cli 이용하여 api로 vip생성 방법에 대해 포스팅 하겠습니다. 사전 확인 1.네이버 콘솔에서 Secret key와 Access key를 확인 후 기록해둔다. 편의상 각 key를 A와 B로 쓰겠습니다. Access key : A Secret key : B 2.네이버 콘솔에서 CLI 파일을 download 받습니다. ##네이버 CLI파일 [root@jh-post001 ~]# unzip CLI_1.1.1_20210916.zip [root@jh-post001 ~]# cd cli_linux [root@jh-post001 cli_linux]# chmod -R 755 /root/cli_linux/..

[Pacemaker & corosync 구성 Vip failover] [내부링크]

postgreSQL 구성중 failback을 위해 pacemaker를 이용하여 구성게되었습니다. pacemaker는 Redhat에서 나오는 고가용성 클러스터입니다. Corosync란: 클러스터 인프라 지원(Quorum 관리, 메시지 관리 등) Pacemaker란: 클러스터 자원 관리자 pcs란: corosync와 pacemaker를 손쉽게 관리할 수 있는 management 프로그램 구분 node1 node2 hostname jh-cluster001 jh-cluster002 OS centos7.3 centos7.3 Public IP 118.67.132.251 27.96.134.40 Private IP 10.41.43.141 192.168.100.60 10.41.142.140 192.168.100.61 V..

[PostgreSQL - 12.3 install] [내부링크]

yum 설치 sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm sudo yum install -y postgresql12-server sudo /usr/pgsql-12/bin/postgresql-12-setup initdb sudo systemctl enable postgresql-12 sudo systemctl start postgresql-12 Compile 설치 ## 다음의 3개 패키지가 사전에 설치되어 있어야 합니다. (CentOS7, RHEL7, Fedora22 기준) ① gcc ② readline-devel ③ zlib-deve..

[Redis - Sentinel 설정 & Failover test] part 2 [내부링크]

이전 글 redis install & replication 에 계속해서 진행하도록 하겠습니다. https://jhdatabase.tistory.com/5?category=946638 [Redis 1. install & replication] Redis(레디스; REmote DIctionary System)은 요즘 각광 받고 있는 In-memory Data(key-value) Store입니다. Redis Cluster는 최대 1000개의 노드로 구성이 가능하며, session clustering , cache server 용도로.. jhdatabase.tistory.com 서버 구성 정보 Server Public IP Private IP 비고 Redis1 115.85.182.24 192.168.100.51..

[Redis - install & replication] part 1 [내부링크]

Redis(레디스; REmote DIctionary System)은 요즘 각광 받고 있는 In-memory Data(key-value) Store입니다. Redis Cluster는 최대 1000개의 노드로 구성이 가능하며, session clustering , cache server 용도로 Redis를 많이 사용합니다. 저는 NaverCloud에서 구성하였습니다! 테스트 구성 정보 Server Public IP Private IP 비고 Redis1 115.85.*.* 192.168.100.51 192.168.100.54 (vip) Redis2 49.50.*.* 192.168.100.52 Sentinel 118.67.*.* 192.168.100.53 ※ NCP 사용시 network interface 추가 ..

[MariaDB 10.1 to 10.2 Upgrade] [내부링크]

안녕하세요~ 본 포스팅에선 mariadb 10.1 -> mariadb 10.2로 upgrade 내용을 게시하도록 하겠습니다! 사전 확인 MariaDB [(none)]> select @@version; +-----------------+ | @@version | +-----------------+ | 10.1.45-MariaDB | +-----------------+ 1 row in set (0.00 sec) MariaDB [(none)]> show databases; +--------------------+ | Database | +--------------------+ | information_schema | | kim | | mysql | | performance_schema | | sakila | ..

[Mysql 5.7 binary install] [내부링크]

다운로드 경로 https://downloads.mysql.com/archives/community/ ## 해당 경로에서 version과 OS에 맞게 download받은 파일을 서버에 전송 wget 이용해서 받으셔도 됩니다 #wget https://downloads.mysql.com/archives/get/p/23/file/mysql-5.7.32-linux-glibc2.12-x86_64.tar.gz [root@localhost ~]# ll 합계 649804 -rw-------. 1 root root 1464 7월 11 2019 anaconda-ks.cfg -rw-r--r--. 1 root root 1512 7월 11 2019 initial-setup-ks.cfg -rw-r--r--. 1 root root ..