본문 바로가기
반응형

IT 실무/데이터베이스8

데이터베이스 회복 기법 정리 Database Recovery트랜잭션들을 수행하는 도중 장애로 인해 손상 된 데이터베이스를 손상되기 이전의 정상적인 상태로 복구시키는 작업 1. 장애의 유형 트랜잭션 장애: 트랜잭션의 실행 시 논리적인 오류로 발생할 수 있는 에러 상황 시스템 장애: H/W 시스템 자체에서 발생할 수 있는 에러 상황 미디어 장애: 디스크 자체의 손상으로 발생할 수 있는 에러 상황 2. Undo와 Redo Undo: 트랜잭션 로그를 이용하여 오류와 관련된 모든 변경을 취소하여 복구 수행 Redo: 트랜잭션 로그를 이용하여 오류가 발생한 트랜잭션을 재실행하여 복구 수행 3. 로그 파일 트랜잭션이 반영한 모든 데이터의 변경사항을 데이터베이스에 기록하기 전에 미리 기록해두는 별도의 데이터베이스 안전한 하드디스크에 저장되며 전원.. 2019. 12. 7.
숫자형과 문자형이 섞여 있을 때 order by 방법 MySQL이든 MariaDB든 Oracle이든 마찬가지일 것 같다. 1,2,3,4,5,6,7,8,9,10,11,12 가 string 형태의 필드에 저장되어 있을 때 order by를 하면1,11,12,2,3,4,5,6.. 이런식으로 정렬이 되어 버린다. 숫자가 아닌 문자를 기준으로 보자면 11보다 2가 더 크기 때문이다. 이럴 때 형변환(CAST)을 하여 사용하는 경우가 많은데 문제는 아래와 같은 경우이다. 1,2,3,4,5A1, A2, A3A1, B1, B2 이런 숫자와 문자들이 섞여 있는 경우. 예를어 앨범의 '트랙넘버' 필드 같은 경우가 저렇게 생겨먹을 수 있다. (CD는 1,2,3,4로 가지만 테잎이나 LP는 앞뒤면을 나누기 위해 문자가 붙음) 이럴때 조금 복잡한 방법으로, zero padding.. 2019. 3. 17.
mysql db를 전부 백업해서 옮기기(서버 이전 등) # mysql -uroot -p; mysql> show databases;+--------------------+| Database |+--------------------+| information_schema || bb231 || bu222 || cy333 || los324234 || lov123222 || mid2131 || mid123122 || mysql || performance_schema || pos || test || test_shop |+--------------------+13 rows in set (0.17 sec) mysql로 들어가서 목록을 본다. phpmyadmin같은 툴을 사용한다면 거기서 봐도 무방하다. 애초에 거기서 덤프까지 떠도 무방하지만, 필자의 경우 DB용량이 너무 크.. 2018. 1. 28.
[MySQL] Your password does not satisfy the current policy requirements MySQL의 특정 버전 이상부터는 Password validation 옵션이 default로 들어간다. MySQL을 새로 설치하고 간단한 패스워드로 테스트를 하려고 하다 보면 이와 같은 에러가 나서 막히는 경우가 생긴다. 이럴 땐 적당히 대소문자, 영어, 특수문자를 섞어서 패스워드를 설정하면 되긴 하지만 테스트를 하는 동안 이 패스워드 설정이 성가시다면 수정 할 수도 있다. mysql> show global variables like '%vali%'; +--------------------------------------+--------+ | Variable_name | Value | +--------------------------------------+--------+ | query_cache_wlo.. 2017. 1. 1.
MySQL 여러개의 필드를 묶어서 하나의 Primary Key로 만들기 ALTER TABLE table ADD PRIMARY KEY(field1,field2,field3); 만약 이미 키가 지정되어 있는 경우 아래와 같이 한다. ALTER TABLE table DROP PRIMARY KEY, ADD PRIMARY KEY(field1,field2,field3); 2015. 7. 19.
[PHP-MySQL] PHP mysqli Extension 간단 매뉴얼 편의상 php의 mysql와 관련된 함수들을 모아 class로 만들어서 사용하는 개발자들이 많다. 하지만 객체화 시키려면 굳이 mysql 함수군을 사용하지 말고 mysqli를 사용하면 된다. php에서 이미 객체화 시켜서 제공하고 있다. 조금만 있으면 이게 표준이 되고 mysql은 depricated된다고 하니 빨리 익숙해 두자. mysql.inc.php 사용 할때마다 아이디 비밀번호를 치기 귀찮다면 위와 같은 파일을 만들어서 항상 include_once시킨다. 내부 내용은 프로젝트에 맞게 알아서 수정하면 된다. 간단한 INSERT 는 아래와 같이 한다. insert된 id를 바로 알 수 있기 때문에 성공 처리를 할때 코딩하기가 한결 편해졌다. UPDATE랑 DELETE도 비슷한 방식으로 간단하게 할 수.. 2013. 10. 26.
[MySQL] 계정 생성, 권한 부여, 권한 삭제 등 1. 사용자 생성 내부적으로 mysql DB 의 user 테이블에 row를 추가하는 작업이다. 수동으로 DB에 추가 해 줘도 된다. GRANT USAGE ON *.* TO 사용자ID@접속호스트 IDENTIFIED BY "패스워드" GRANT USAGE ON *.* TO testuser@localhost IDENTIFIED BY "password" GRANT USAGE ON *.* TO testuser@"%" IDENTIFIED BY "password" *password('password')가 아님! 2. 권한 부여 내부적으로 mysql DB 의 db 테이블에 row를 추가하는 작업이다. GRANT 각종 권한들 ON 디비이름 TO 사용자ID@접속호스트; GRANT SELECT, INSERT, UPDATE .. 2013. 2. 7.
[MySQL] 한글이 깨지는 문제 mysql을 설치 후 처음 사용하려다 보면 기본 collation이 latin1_swedish_ci로 되어 있어 한글이 깨지는 경우가 있다.기본 character set 및 collation을 바꾸려면 my.cnf (우분투 12.04기준 /etc/mysql/my.cnf)파일을 열어서 [mysqld] 부분에 아래 두 줄을 추가 해 준다. (UTF-8기준) character_set_server = utf8collation_server = utf8_general_ci 배포판에 따라서 언더바(_)를 사용하기도 하고 그냥 바(-)를 사용하기도 하는데 레드햇 계열은 그냥 바, 데비안 계열은 언더바인 경우가 많다. 일단 두 줄을 추가 해 주면 기본 세팅은 바뀌는데 모든 세팅이 utf-8로 되어 있는데도 불구하고 한글.. 2012. 12. 1.
반응형