Search Results for 'DBMS'

66 POSTS

  1. 2012.04.05 Data Export & Backup in Console
  2. 2012.03.16 Replication에서 SKIP시키기
  3. 2012.02.28 Jedis를 이용한 Redis 따라가기

Data Export & Backup in Console

Posted 2012. 4. 5. 16:23


 MySQL용 GUI Tool을 사용하다보면 어느순간 기본명령어를 잊게 된다.

윈도우 상에서만 작업한다면, 그리고 항상 내가 작업하다 PC에서만 작업한다면 문제가 없겠지만 그렇지 않은 경우, 예를 들어 ssh만으로만 연결되어 작업한다던가, 콘솔앞에서 작업해야 하는 등의 경우에 직면하면 당황하게 마련이다.

1. Data Export.

GUI Tool에서 결과에서 마우스 오픈쪽 클릭한후 Export를 누르던 행위에 해당한다.

mysql > SELECT * FROM USERS
        -> INTO OUTFILE '/tmp/user_data.txt';


간단하다. 하지만 결과로 나온 데이터를 확인하는 차원이 아닌 엑셀에나 기타 다른 곳에서 활용해야 하는 경우 위의 결과는 쓸모가 없어진다. 그럴 경우는 다음의 옵션등을 주어서 결과를 받아야 한다.

 mysql > SELECT * FROM USERS
         -> INTO OUTFILE '/tmp/user_data.txt'
         -> FIELDS TERMINATED BY ',' 
         -> ENCLOSED BY '"'
         -> LINES TERMINATED BY '\r\n';

엑셀에서 가져다 쓸데 많이 사용하는 csv 파일의 경우 위와 같이 export하면 그대로 문제 없이 사용가능하다.

한가지 덧붙이자면 INTO OUTFILE 의 경로를 '/tmp/' 로 정한것은 디렉토리 권한에 제약받지 않고 파일을 생성할수 있기 때문이다.
root로 로그인 했다 할지라도 /root/ 디렉토리 밑으로 파일을 지정하게 되면 파일을 생성할수 없다는(정확히는 파일이 없다는) 오류메시지를 보게되는데, 알다시피 mysql 은 mysql 계정으로 실행되기 때문이다.


2. Dump

dump 는 주로 데이터를 백업하거나 이관할때 사용하게 된다. dump는 mysqldump라는 명령어로 쉘상에서 수행하게 된다.
mysqldump의 옵션은 매우 다양하다. 자세한 설명은 http://dev.mysql.com/doc 또는 http://mysqlkorea.com/  을 참고하면 된다.

# mysqldump -u root -p DB_USER > mydatabase.sql 


서로 다른 호스트로 데이터베이스를 옮기거나 복사하려는 경우, 원격으로 그 데이터베이스에 접속이 가능하다면 다음과 같이 별도의 dump파일을 생성하지 않고 한번에 복사할수 있다.

# mysqldump -u root -p DB_USER [table_name]|  mysql -h  192.168.0.xxx DB_USER

원격에 있는 서버에는 데이터베이스를 미리 만들어 주어야 한다.

CREATE DATABASE DB_USER CHARACTER SET utf8 COLLATE utf8_general_ci

character SET의 경우 환경에 맞게 변경해서 데이터베이스를 생성하면 된다.


아무리 쉬운 명령어라도 자주 사용하지 않으면 까먹기 마련. 

참고사이트 : http://www.tutorialspoint.com/mysql/mysql-database-export.htm


머리가 나쁘면 몸이 고생한다지만 몸이 편하려고 하면 머리도 나빠지는 법...




Replication에서 SKIP시키기

Posted 2012. 3. 16. 02:38

Replication이 깨져서 마스터-슬레이브가 동기화가 되지 않을경우 다음의 명령어로 중지된 Replication을 재개하도록 한다.

mysql>SET GLOBAL SQL_SLAVE_SKIP_COUNTER=1; START SLAVE;
mysql>show slave status\G;



Jedis를 이용한 Redis 따라가기

Posted 2012. 2. 28. 01:01
Redis란?
Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets.

처음 Redis를 접한건 cache system에 대한 고려로 memchached를 관심두고 있을때였다. 그리고는 다시 개발에 쫓겨서 뒷전...
그러다가 지난 12회 JCO 컨퍼런스에 memchached vs Redis를 비교하는 세션을 듣고 다시 관심목록에 추가.

앞으로 시스템에 도입하는 그날까지 틈틈히 테스트해 보며 연구(?)를 해보자.

오늘은 첫번째로 Redis 관련 글을 찾아보았다.
Google과 Naver를 검색해 본 결과물은....

1. 조급하지말고 천천히 : http://dol9.tistory.com/150
2. Redis로 빠르고 가벼운 웹어플리케이션 만들기(KTH 개발자 블로그) : 링크
3. Saltfactory : NoSQL redis - Commands - key 편 : 링크
4. slideshare.net 에 올라온 중국 개발자 슬라이드 : 링크
5. 그리고 Redis 홈페이지 : redis.io 

1. 설치 (CentOS 6.2에 설치함)
홈페이지에서 최신 redis (현재 2.4.8버전) 를 다운로드 한다. 다운로드 링크
# wget http://redis.googlecode.com/files/redis-2.4.8.tar.gz
# tar xzf redis-2.4.8.tar.gz
# cd redis-2.4.8
# make

위의 설치과정은 redis 다운로드 페이지에 나온 그대로다.
하지만 모든 패키지가 다 설치되어 있지 않은 관계로 make가 이루어 지지 않음.
c로 개발되어진 redis를 install하려면 gcc 와 같은 컴파일러가 설치되어 있어야 함.
# yum install -y gcc

그리고 make를 하면 정상적으로 설치 완료.

아무생각없이 /root/ 밑에 설치한 관계로 실행위치는
/root/redis-2.4.8/src/redis-server
카산드라와 같이 fore-ground back-ground 에서 실행하는 옵션이 안보인다.
홈페이지 나와있는데로 따라하며 테스트... 요기서는 위의 검색글중 3번 Saltfactory 블로그 글을 참고함.

재미없는 command 명령어를 하다가 Redis Clients를 찾았다. 난 자바로 밥먹고 사니까 자바클라이언트를 설치해서 빨리 개발에 적용하고자 하는 마음뿐임.
각 언어별로 다양한 client가 개발되어 있다.
Jedis Repository xetorthio
JRedis RepositoryHomepage SunOf27
JDBC-Redis RepositoryHomepage mavcunha
RJC Repository e_mzungu 
위의 제품중 당연히 별표가 붙어있는 Jedis를 선택함.
 Repository 로 이동하여 소스  다운로드하면 된다.
난 아직까지도 svn만 사용하는데, 요즘 대세가 되어 가고 있는 github로 소스를 배포한다. github 설치하기 귀찮으므로 zip 파일을 다운로드 함.
다운로드 파일 풀어보니 pom.xml이 보인다.  maven...
maven plugin도 없는데... 여기선 어쩔수 없이 Maven Plugin 설치하고 다음을 진행한다. (오늘따라 MarketPlace가 무자게 시간 잡아먹음)

JUnit Test 파일 하나씩 열어서 테스트 돌려보았지만 전부 Fail & Error  ㅠ.ㅠ;;;

눈 빠지게 찾은소스가
redis.clients.jedis.tests.HostAndPortUtil & redis.clients.jedis.tests.JedisPoolTest
defaulthnp1.host 를 서버 IP로 변경하고  Test를 돌려보지만 에러...

jedis.auth("foobared");
인증을 요구하는 부분에서 에러가 발생한다.

여기서 소스에 함께 포함되어 있는 redis.conf, redis2.conf 가 눈에 들어옴.
redis.conf 복사해서
/root/redis-2.4.8/conf 를 만들고 넣어준다.
실행할때 위의 설정파일을 인식하라고 옵션 넣어주면 됨.

# nohup ./src/redis-server /root/redis-2.4.8/conf/redis.conf &
#tail -f nohup.out<== 요렇게 하고 nohup파일을 계속 보고 있으면 로그파일이 올라온다.

다시 JUnit Test 돌리니 드디어 전부 초록색...

오늘은 여기까지 하고 끝내자.

다음은 Master-Slave 설정을 해서 적용시켜 보도록 한다.
틈틈히 Command 명령어는 익혀야 할듯하다.




'DBMS > NoSQL' 카테고리의 다른 글

MongoDB 오픈세미나 후기  (0) 2012.08.31
Cassandra 시작시 MalformedURLException 발생  (0) 2012.04.12
MongoDB Naming Rule  (0) 2011.11.30
MongoDB GUI Tool for Mac osx : MongoHub  (0) 2011.11.23
MongoDB 컴포넌트 목록  (0) 2011.10.03


« PREV : 1 : ··· : 6 : 7 : 8 : 9 : 10 : 11 : 12 : ··· : 22 : NEXT »