본문 바로가기
반응형

MariaDB40

좌표(위도,경도)로 실제 거리 구하기 소수점 거리. GCS(Geographic Coordinate System)지리 좌표계(GCS)는 지구상에 위치를 정의하는데 3차원의 구면을 이용하는 좌표계로 한 지점은 위도(latitude)와 경도(longitude) 값으로 나타냅니다. 위도와 경도는 지구 중심에서 지표면 상에 지점까지 측정된 각으로 흔히 도(degrees)로 표시합니다. 위도와 경도에 대해 설명하면 아래와 같습니다. 위도(latitude)위도는 지구를 테이블위에 올려놓고 가로로 그은 선으로 생각하면 이해하기 쉽습니다.위 그림처럼 위도는 Equator를 기준으로 위쪽은 플러스 아래쪽은 마이너스 값을 가집니다.모두 아시겠지만 Equator는 "적도"입니다.우리에게 적도로 알려진 유래는 고대 중국 천문학에서 적도를 붉은 색으로 표현해서라고 합니다.위도는 .. 2024. 11. 14.
AWS RDS를 이용한 DB서버를 이중화 대한 간략 비교 설명 AWS에서 제공해주는  RDS를 통해 DB서버를 이중화 하는 방법을 알아보겠습니다. 1. AWS에 RDS를 구성하는 방법은 크게 두가지이다.   2. EC2인스턴스에 RDBMS를 설치하는 방법과, 관리형 서비스인 아마존 RDS를 이용하는 방법이다.  3. 전자는 직접 DB서버를 설치 및 관리하는 것으로 local 서버 환경을 AWS의 가상환경으로 옮긴 것 이외에는 크게 차이점이 없다.  4. OS와 RDBMS를 자유롭게 선택하고 설정할 수 있는 장점이 있다. 하지만 OS와 DB환경을 사용자가 직접 관리해줘야 하는 부담이 있다.  5. 패치 적용과 백업이 자동화 되어 있기 때문에 운영상에 큰 도움을 받을 수 있다. 6. 가능한 한 아마존 RDS를 사용하는 편이 설정과 운영에 들어가는 수고를 줄여줄 수 있지.. 2024. 10. 17.
Galera Cluster 대신 AWS Aurora 를 선택할까? C(Consistency) : RDB 를 사용하여 일관된 데이터를 지원A(Availability) : 어떠한 노드가 죽더라도 사용자로 하여금 끊김없는 서비스 가용 확보Mater 노드가 죽는 경우, Slave 가 승격Slave 노드가 죽는 경우, 다른 Slave 노드로 트래픽 분산Why use Galera Cluster (==purpose)Galera Cluster 의 목표는 뚜렷하다.Aiming Ultimate Availabilty using True Multi-master공식문서 상으로도, 아래와 같은 장점을 나열하고 있다.True Multi-master, Active-Active Cluster Read and write to any node at any time.Synchronous Replicati.. 2024. 10. 17.
프로비저닝(Provisioning) 이란? AWS 클라우드 작업을 하다보면 듣게 되는 프로비저닝(Provisioning) 단어가 어렵다 생각하지 마시고 있는 그대로 이해해보세요 프로비저닝(Provisioning) 이란 의미는 영어 직역한 그대로 "제공하는것" 이랍니다. 어떤 종류의 서비스든 사용자의 요구에 맞게 시스템 자체를 제공 하는 것을 프로비저닝이라고 하며  제공해줄 수 있는 것은 인프라 자원이나 서비스, 또는 장비가 될 수도 있다고 합니다. Server Resource Provisioning : CPU, Memory, IO 등과 같은 실제 서버의 자원을 할당해주고 운영할 수 있게 제공해주는 것을 말한다.1. OS Provisioning : OS를 서버에 설치하고 구성작업을 해서 사용할 수 있도록 제공하는 것을 말한다.2. Software .. 2024. 10. 16.
AWS RDS Replica 명령어 알아두기 클라우드 기반 DB 운영을 위한 AWS RDS에서 알아두면 좋을것 같은은 RDS 명령어들입니다.RDS에서 권한에 제한이 있어요. RDS는 Super권한 을 제한합니다.Super권한을 제한하면 아래와 같은 몇가지를 할 수 없습니다.SUPER권한이 없어서 불가능한 항목 * Replication 명령 : CHANGE MASTER TO, CHANGE REPLICATION FILTER, STOP SLAVE, START SLAVE ...* BINLOG관련 명령 : PURGE BINARY LOGS, BINLOG 명령등 불가* KILL 명령 : 오동작중인 thread를 죽여야 하기 때문에 필요* GRANT 명령 : USER 추가* 추가 접속 : max connection 까지 모두 차더라도 super 권한을 가진 1개.. 2024. 10. 15.
MySQL & Mariadb dual master 구성 - log_bin 설정 log_bin 설정 확인 및 참고사항RDS 구성시 dual master 구성을 진행중인데 log_bin = OFF 상태일때 관련 참고 내용입니다. MySQL 이진 로깅 형식을 설정하려면https://console.aws.amazon.com/rds/에서 Amazon RDS 콘솔을 엽니다.탐색 창에서 파라미터 그룹을 선택합니다.수정할 DB 인스턴스와 연결된 DB 파라미터 그룹을 선택합니다.파라미터 그룹에 대한 자세한 정보는 Amazon RDS의 파라미터 그룹 단원을 참조하십시오.기본 파라미터 그룹을 수정할 수 없습니다. DB 인스턴스 가 기본 파라미터 그룹을 사용하고 있는 경우 새 파라미터 그룹을 생성하여 DB 인스턴스 와 연결합니다.작업에서 편집을 선택합니다.binlog_format 파라미터를 선택한 이진.. 2024. 10. 14.
mysqldump 실행시 function 백업 구조 백업이 안될경우 잘되는데 왜 안되지 Grant 권한 추가 하는데 왜 안되지 하실때는 잠시 생각하시고 원인을 확인하시면 좋스빈다.  - mysqldump 실행시 function 백업 구조 백업이 안될경우 해당 권한을 부여 해야합니다. GRANT SELECT ON mysql.proc TO 'proc'@'192.168.1.%';# 추가 : 계정 성생 및 Grant 권한 추가 CREATE USER 'USER'@'HOST' IDENTIFIED BY 'password' PASSWORD EXPIRE NEVER;GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, ALTER, DROP, EXECUTE, SHOW VIEW, CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, TRI.. 2024. 9. 27.
Mysql Geo 함수 - 거리구하기 point, linestring, polygon, geometry 등 디비로 표현할 수 있는 지도 데이터는 다양합니다.다양한 타입에 데이터를 조금 더 유용하게 사용할 수 있도록 해준 함수들도 물론 존재했습니다.그중에서 이번글에서는 두 위치 사이의 거리를 구하는 함수에 대해 설명하고자 합니다.구글맵에서 손이 가는대로 아무곳이나 A, B 두곳을 찍어서 거리를 구해봤습니다.위와 같은 A, B 위치가 있고 두 위치 사이의 거리가 76.04m라는 값이 화면상에 표시됩니다.구글맵에서 두 위치 사이의 거리를 알려주는 것처럼 같은 기능을 sql을 통해서 얻어내고자 합니다.A와 B 사이의 거리를 구하고자 할때 수학시간에 배웠던 거리 구하는 공식대로 각각의 경도, 위도를 그 식에 대입해서 구하는 방법대로 거리를 구한다고 .. 2024. 7. 30.
Mysql / Mariadb 공간 데이터베이스 쉽게 설명하면 X, Y 좌표로 구성된 공간 데이터를 저장하고 연산할 수 있는 기능을 제공해주는 데이터베이스라고 생각하시면 됩니다. 다른 말로, 공간 데이터의 저장 형태를 구분하는 공간 데이터 타입과 공간 데이터를 연산할 수 있는 공간 함수가 제공되는 데이터베이스라고 표현 가능합니다.   우리가 일반적으로 사용하고 있는 RDBMS인 Oracle, MariaDB, MySQL, PostgreSQL 등에서 공간 데이터를 처리하기 위한 기능을 제공하고 있습니다. 이 솔루션을 이용해 공간 데이터베이스를 생성/관리할 수 있는 겁니다. 심지어 Hive에서도 관련 Library를 설치하면 공간 데이터를 저장하고 공간 연산이 가능합니다.   그럼, 공간 데이터 타입과 공간 함수를 알면 공간 데이터베이스를 정복하게 되는걸까.. 2024. 7. 29.
MySQL/MARIADB auto_increment_increment, auto_increment_offset 설정 듀얼 마스터 구성에서 auto_increment 에 대한 에러가 발생하게되는데 이때 시작과 변동폭을 지정해줘야 합니다. Auto_increment 가 2씩 증가해야 대문에 auto_increment_increment 설정이 2로 되어있어서 2씩 증가 하도록설정 하고 또한 시작점을 지정해줘야 2씩 증가를 하겠죠? mysql> SHOW VARIABLES LIKE 'auto_inc%'; +--------------------------+-------+ | Variable_name | Value | +--------------------------+-------+ | auto_increment_increment | 2 | | auto_increment_offset | 1 | +-------------------.. 2023. 9. 18.
SQL Injection A1Injection (인젝션)SQL, OS, XXE(Xml eXternal Entity), LDAP 인젝션 취약점은 신뢰할 수 없는 데이터가 명령어나 쿼리문의 일부분으로써, 인터프리터로 보내질 때 발생한다. 공격자의 악의적인 데이터는 예상하지 못하는 명령을 실행하거나 적절한 권한 없이 데이터에 접근하도록 인터프리터를 속일 수 있다. Injection은 주입이라는 뜻으로, SQL 언어를 주입하여 해킹을 하는 기법을 뜻한다. 방어방법. Statement 대신, PreparedStatement같이 안전한 구문을 사용한 보안코딩 사용. statement구문을 사용시에는 꼭 컬럼값에 Injection을 유발할 수 있는 '(외따옴표) ;(세미콜론) 같은 DB에서 사용하는 특수문자 값을 제거하여 보안성 강화 그외 .. 2023. 8. 28.
innodb_flush_log_at_trx_commit 알면 쉬워짐. 안녕하세요. 복제 구성을 하고 나서 동기화 지연이 발생하는데 왜 Second 타임이 안잡이지 할때가 있는데요. 특히 AWS나 리전간 동기화 타임에서 안잡힐때 설정하면 확인이 가능합니다. innodb_flush_log_at_trx_commit 위의 그림에서 알 수 있듯이, 해당 값에 따라 순간적인 장애시 트랜잭션을 잃을 수 있다. 0 인 경우, MySQL 이나 OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다. 1 인 경우, 안전하다. 2 인 경우, OS가 갑자기 crash 된다면 최대 1초동안의 트랜잭션을 잃을 수 있다. 하지만 MySQL 장애시에는 이미 OS 영역으로 데이터는 넘어갔기 때문에 안전할 수 있다. 각 값에 따라, 엄청난 성능을 보일 수 있다. 지난번에 엄청난 양의 l.. 2023. 8. 24.
MySQL에서 메모리를 정보 알고 사용하기 전역 버퍼 MySQL은 서버 시작 시 전역 버퍼를 할당하며, 이 버퍼는 모든 연결에서 공유됩니다. MySQL 메모리의 대부분은 innodb_buffer_pool_size, innodb_log_buffer_size, key_buffer_size 등 전역 버퍼에서 사용합니다. InnoDB 버퍼 풀 InnoDB 버퍼 풀은 일반적으로 MySQL 인스턴스에서 가장 큰 메모리를 사용하며, innodb_buffer_pool_size 매개변수를 사용하여 구성됩니다. 테이블 데이터와 색인, 변경 버퍼, 적응형 해시 색인, 기타 내부 구조를 캐시하는 데 사용됩니다. Google Cloud의 관리형 MySQL 서비스인 MySQL용 Cloud SQL은 인스턴스 크기에 따라 innodb_buffer_pool_size를 인스턴스.. 2023. 8. 18.
Mysql 이메일 검사 및 정규표현식 정규표현식? 1. 정규 표현식은 특정한 규칙을 가진 문자열의 집합을 표현하는데 쓰이는 형식 언어 2. 문자열을 처리하는 방법 중의 하나 3. 특정한 조건의 문자를 ‘검색’하거나 ‘치환’할 때 사용 4. mySQL에서는 REGEXP라는 키워드를 사용하여 정규표현식을 처리함 이메일주소 정규표현 검사 SELECT 'abcdefg@gmail.com' REGEXP '^[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9._-]@[a-zA-Z0-9][a-zA-Z0-9._-]*[a-zA-Z0-9]\\.[a-zA-Z]{2,4}$'; SELECT 'abcdefg@gmail.com' REGEXP '^[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$'; #정규 표현식으로 지정된 메일 조소인지.. 2023. 8. 17.
Mysql - Function - 사용자 함수 •절차형 sql을 활용하여 일련의 sql처리를 수행하고, 수행 결과를 단일 값으로 반환할 수 있는 절차형 SQL. •DBMS 에서 제공되는 공통적 함수 이외에 사용자가 직접 정의하고 작성할 수 있다. •기본적인 개념 및 사용법 , 문법 등은 프로시저와 동일 •종료 시 단일 값을 반환한다는 것이 프로시저와 가장 큰 차이점 •사용자 정의함수의 호출을 통해 실행되며 반환되는 단일 값을 조회 또는 삽입 수정 작업에 이용하는 것이 일반적임. 오늘은 Mysql , Mariadb function에 대해서 알아볼까 합니다. 프로시져를 이용한 Out 방식을 이용해도 되지만 사용자 정의 함수를 통해서도 가능하기 때문이죠. CREATE [AGGREGATE] FUNCTION [IF NOT EXISTS] function_nam.. 2023. 8. 13.
mariadb, mysql ignored in --skip-name-resolve mode 경고 어떻게 처리 해야하나? 안녕하세요. DB 데몬 구동이후 에러 로그를 보는데 저렇게나올경우 아주 간단히 해결할수도 있을것같긴 한데요. 서비스에 이상은 없는데 경고 메시지가 나오면 관리자라면 정말 걱정이 될거라 생각됩니다. 그래서 왜 생기는지는 알아야겠죠 . 2023-08-03 15:26:54 7 [Warning] 'proxies_priv' entry '@% HOSTNAME' ignored in --skip-name-resolve mode. 2023-08-03 15:26:54 7 [Warning] 'proxies_priv' entry '@% HOSTNAME' ignored in --skip-name-resolve mode. 2023-08-03 15:26:54 7 [Warning] 'proxies_priv' entry '@% HOS.. 2023. 8. 3.
Mysql Error Log logging 옵션 log_warnings, log_error_verbosity 안녕하세요 오늘은 Mysql Error Log logging하는 옵션에 대해서 알아볼께요. 에러만 기록할수도 있고 에러와 경고, 아니면 모든 Note 로그까지 기록하는 옵션이 있답니다. System variables –log_warnings[=#] 에러 로그에 경고 메시지를 생성하는 옵션으로 기본값은 5.7.2이전에는 1, 이후에는 2로 활성되어있다. 5.7.2부터 log_warnings에 의해 관리되는 정보는 log_error_verbosity에 의해 관리되며 log_error_verbosity는 이전 log_warnings 보다 우선 사용된다. log_warnings에 값을 할당하면 log_error_verbosity에도 할당이 되며 반대의 경우에도 마찬가지로 적용된다. log_warnings=0은 .. 2023. 8. 1.
Mysql - procedure 사용법 - 2 안녕하세요. 오늘은 프로시져 사용에 대한 두번째 자료를 업로드 할려고 합니다. 너무 자세한 설명보다는 사용 가능한 부분위주로 설명을 하기 때문에 부족한 부분이 많을거에요. 부족한부분은 다른 글이나 구글링을이용해주세요 TRANSACTION 실행부 1. 수행된 데이터 작업들을 DB에 적용할지 취소할지 결정하는 처리부 2. COMMIT: 하나의 트랜잭션이 성공적으로 끝났을 때 사용 3. ROLLBACK : 비정상적으로 종료되어 다시시작하거나 연산을 취소할 때 사용 Delimiter ~ Begin DELIMITER $$ 구분자 USE `DB_NAME`$$ // 사용할 디비명 DROP PROCEDURE IF EXISTS `p_프로시져명`$$ // 같은 이름이 있으면 삭제 CREATE DEFINER=`생성자`@`생.. 2023. 8. 1.
Mysql - Stored Procedure 사용 방법 - 1 안녕하세요. Mysql DB를 정말 오랬동안 사용하고 있는데요. 처음 나왔을때는 아니겠지만 버젼 4부터 사용해서 버젼 8까지 지금까지 사용하고있는듯합니다. 처음에는 DB 테이블이 수시로 깨지고 했었는데 5.5 이후부터 안정적인 서비스 운영이 가능해지면서 지금은 많은 업체에서 사용하고 있는것 같아요. 오늘은 Mysql Stored Procedure 사용 방법에 대해서 알아보도록 하겠습니다. •프로시저는 절차형 sql 을 활용하여 특정 기능을 수행 할 수 있는 트랜잭션 언어. •일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합. •프로시저는 호출을 통해 실행. 프로시저 의 장점 1. Stored procedure를 처음 호출하면 MySQL은 DB의 catalog에서 이름을 찾아서 Stored p.. 2023. 7. 28.
Mysql 알아가기 - Mysql control Monitoring Explain 등 안녕하세요. 지금가지 Dual Master 구성을 진행 했었는데요. 가능하면 듀얼 마스터를 순환형으로 구축을 한번 해보는것도 좋을것 같다는 생각이 듭니다. 가능하면 여러번 연습해서 내꺼로 만드는걸 강력하게 추천 드립니다. 이번에는 Mysql의 control, Monitoring, Explain등 추가적인부분을알아볼까합니다. Table Design - control – 대용량 MySQL instances/schemas/tables을 관리하는 추가 코스트 ( > 2TB) – 데이터 사이즈가 커짐에 따라 인덱스 구조가 더 넓어지고 깊어짐, 모든 SQL 작업에 영향 – 사용 하지 않는 이력 데이터에 대해서 삭제하거나 아카이브 성능 저하 – 신속하게 늘어나는 테이블에 대해서 대책을 세워야 함 – 파티션 테이블을 .. 2023. 7. 25.
반응형