일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ssl.key
- 숲을 바라보는 개발자
- private.pem
- django #django 5.0 #django 5.0 요약
- django slack
- slack bot
- 개발자와 비즈니스 관계
- 비즈니스적 관점에서 생각하는 개발자
- 정렬
- MySQL
- #데이터베이스 #트랜잭션 #ACID #격리수준
- sed명령어
- #알고리즘
- 개발자와 비즈니스
- AWS Aurora
- 개발자의 마인드
- 데이터베이스 오류
- innodb_buffer_pool_size 오류
- 업비트 웹소켓
- add colume
- 비즈니스
- 웹소켓 api
- 비즈니스적 관점에서 생각하는 개발자 #개발자 마인드
- #백준 #드래곤커브 #알고리즘
- 슬랙봇
- django slack bot
- django 슬랙봇
- public.pem
- 개발자에세이
- 알고리즘
- Today
- Total
목록데이터베이스 (6)
Info-Tech
5.6 설치 sudo add-apt-repository 'deb http://archive.ubuntu.com/ubuntu trusty universe' sudo apt-get update sudo apt install mysql-server-5.6 mysql-client-5.6 sudo service mysql start UTF -8 로 설정하기 (/etc/mysql/my.cnf) [client] default-character-set=utf8 [mysqld] character-set-client-handshake = FALSE init_connect="SET collation_connection = utf8_general_ci" init_connect="SET NAMES utf8" character-..
문제상황 약 3gb가 넘는 table에 새로운 컬럼을 하나 추가해야하는 상황이었다. (대략 4억 이상의 데이터 값들이 들어있음) 첫번째. 처음에는 아무생각없이 아래와 같은 방법으로 컬럼을 추가해봤다. alter table ~~ add new_colume after ~~ 도저히 끝날 기미가 보이지 않고, 실제 운영중인 서비스이기 때문에 최대한 lock (downtime)이 걸리면 안되었다. 두번째. 갓 스택오버플로우의 검색결과 abc라는 테이블에 컬럼을 추가한다고 했을 때, abc_v2 테이블을 하나 만들고 여기다가 colume 추가 후 abc의 값들을 abc_v2로 옮기는 방법이다. 30분씩 50만개씩 쉬지않고 data를 옮긴다고 가정했을 때, 4억 / 50만개 = 24000분 => 400시간 => 16..
어느날 갑자기 디비 서버접속이 안되는 경우가 발생 mysql의 error.log를 살펴본 결과 아래와 같은 로그가 발생함. 2018-11-28 08:12:00 7805 [Note] Plugin 'FEDERATED' is disabled. 2018-11-28 08:12:00 7805 [ERROR] Function 'innodb' already exists 2018-11-28 08:12:00 7805 [Warning] Couldn't load plugin named 'innodb' with soname 'ha_innodb.so'. 2018-11-28 08:12:00 7805 [ERROR] Function 'federated' already exists 2018-11-28 08:12:00 7805 [Warni..
20GB가 넘는 db를 테스트 서버로 이동 한 후 다시 import 해야하는 상황이 생겼다. 첫번째 시도 맨 처음 아무런 옵션없이 이런식으로 넣어주었다. 1시간이 지나도 아무런 반응이 없었다.. 뭔가 잘못되어가는 느낌 (용량이 거대해서 기다리는 시간이 큰 느낌이었습니다) myslq -u root -p ‘db table’ < backup.sql 두번째 시도 https://support.tigertech.net/mysql-large-insertshttps://manios.org/2013/03/19/import-a-large-sql-dump-file-to-a-mysql-database-from-command-line 위의 링크를 참조한 결과 set global net_buffer_length=1000000; ..
mysql dump 하는 대표적인 방법 옵션의미Default비고 -A, --all-databases모든 db dump -l, --lock-tablesLock all tables for read.O--skip-lock-tables 로 제외가능 --single-transactionlock 을 걸지 않고도 dump 파일의 정합성 보장XInnoDB 일때만 사용 가능 --master-data이 옵션이 명시되면, dump 파일의 헤더 부분에 CHANGE MASTER TO 구문을 포함시키며,이 구문에는 덤프 시작 시점의 Binary log 파일명과 위치 정보 및 호스트 정보를 포함하고 있다. 이 값을 1로 설정하면 CHANGE MASTER TO 구문이 실제 실행 가능한 형태로 포함되며, 2로 설정되면 SQL 코멘..
데이터베이스에서 하나의 논리적인 실행단계를 트랜잭션이라고 한다. 은행에서 계좌이체를 트랜잭션이라고 할 수 있다. 이러한 트랜잭션이 안전하게 이루어지기 위해서는 ACID가 지켜져야 한다. Atomicity (원자성) 은행에서 계좌이체를 할 때 돈을 보내는 계좌에서는 돈이 차감이 되었지만, 받는 사람의 걔좌에서는 입금이 되지 않으면 안된다. 이처럼 처음부터 끝까지 작업이 실패하면 안되도록 하는 것이다. Consistency(일관성) 트랜잭션이 성공되면 언제나 일관성 있는 데이터베이스 상태로 유지되어야 한다. 트랜잭션 전, 후 데이터베이스가 정해논 제약을 어겨서는 안된다. Isolation(고립성) 트랜잭션 수행시 다른 트랜잭션의 연산작업이 끼어들지 못하도록 막는 역할이다. 즉, 각 트랜잭션끼리 영향을 끼쳐서..