'Server Story..../mysql'에 해당되는 글 5건

  1. 2014.04.23 mysql backup
  2. 2011.01.26 DB 자동저장 스크립트
  3. 2010.12.17 mysql 백업 및 자동삭제 스크립트
  4. 2010.12.17 우분투 8.04 mysql에서 DB파일의 위치를 변경 방법 (1)
  5. 2010.09.10 my sql 튜닝 - 체크사항

백업


mysqldump -Qq -R -F  -uroot -p dbname > dbname_jp_201404231756.sql


복원

복원시 해당 데이터 베이스가 있어야 한다. 

mysql 접속후

create database dbname;


 mysql -uroot -p dbname < dbname_jp_201404231756.sql 



'Server Story.... > mysql' 카테고리의 다른 글

mysql backup  (0) 2014.04.23
DB 자동저장 스크립트  (0) 2011.01.26
mysql 백업 및 자동삭제 스크립트  (0) 2010.12.17
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법  (1) 2010.12.17
my sql 튜닝 - 체크사항  (0) 2010.09.10
Posted by Sumin Family

DB 자동저장 스크립트 





/etc/cron.daily 에 파일을 만들어 두거나
crond 에 등록해서 사용하시면 됩니다.
[기능요약]
1.root 계정으로 전체 디비를 디비별로 백업 가능함
2.옵션으로 테이블 별 백업 가능함.
3.보존 설정 기간 이후 자동 삭제
--------------------------------------------
source----------------------------------------------------------
#!/bin/sh
###########################################################################
#
#
# By 질주본능 2009/06/03
#
# V 2.0
#
# 데이터 베이스별 혹은 테이블 별로 백업 받을 수 있도록 변경했으며
# 30 LINE 에 명기된 배열에 속하는 디비들만 테이블 별로 백업 받는다.
#
# 데이터베이스 단위로 받은 파일은 DB. 으로 시작하고
# 테이블 단위는 TB. 으로 시작하는 파일명을 갖는다.
#
# 백업 파일은 dump.gz 로 형성 되며 설정된 보존 기간이 지나면 자동 삭제 된다.
#
###########################################################################
##### SET VARIABLES ##### 전체를 백업 받으려면 여기에 root 계정을 입력한다.
DBHOST="yourhost"
DBUSER="yourid"
DBPWD="yourpassword"
#백업 경로
BACKUPDIR="/home/your_backup_dir/"
#로그 작성 경로
LOGDIR="/home/your_backup_log_dir/"
#로그 파일 앞에 붙을 특정 텍스트
LOGNAME="log_"
###### SET DB NAMES which BACKUP by TABLES ###### 여기 표시된 DB 들은 테이블
별로 백업된다.
DB_TBARR=(dbname1 dbname2 dbname3)
#백업 옵션을 원하는 대로 설정
#routine 옵션은 5버전 이상에서만 사용(function 등을 백업함)
OPTIONS="--skip-comments --default-character-set=euckr --routines"
##### SET CHARGE LIMIT ########## 백업 파일 저장 기간(일단위)
CHARGE_LMT=3
##### DELETE OLD_BACKUP FILES #######
find ${BACKUPDIR} -name "*.gz" -mtime +${CHARGE_LMT} -exec rm -rf {} ;
##### START LOG CREATE ##########
YMD_S=`date +%Y%m%d%H%M%S`
touch ${LOGDIR}${LOGNAME}${YMD_S}.start
##### DB LIST GET ###############
#IF YOU WANT TO EXCEPT SOME DATABASE ADD THIS
#grep -v Database | grep -v somename | grep -v somename`
#
#grep -v dbname 하면 백업 시 제외 된다.
RESULT=`mysql -u$DBUSER -p$DBPWD -h$DBHOST -e "show databases" | grep -v
Database`
for DB in $RESULT; do
sw=0
##### compare DB to TBARR #####
for i in ${DB_TBARR[@]}; do
if [ $i = $DB ]; then
let "sw=sw+1"
fi
done
if [ $sw = 0 ]; then
# BACKUP by DB
FNAME=${BACKUPDIR}DB.${DB}_${YMD_S}.dump
#echo $FNAME
touch $FNAME
echo "set foreign_key_checks=0;" >> $FNAME
mysqldump -u$DBUSER -p$DBPWD -h$DBHOST $OPTIONS $DB >> $FNAME
echo "set foreign_key_checks=1;" >> $FNAME
gzip --rsyncable $FNAME
else
# BACKUP by TABLES
RESULT_TB=`mysql -u$DBUSER -p$DBPWD -h$DBHOST $DB -e"show
tables" | grep -v heap | grep -v Tables_in `
for TB in $RESULT_TB; do
FNAME=${BACKUPDIR}TB.${DB}.${TB}_${YMD_S}.dump
#echo $FNAME
touch $FNAME
echo "set foreign_key_checks=0;" >> $FNAME
mysqldump -u$DBUSER -p$DBPWD -h$DBHOST $OPTIONS $DB $TB >>
$FNAME
echo "set foreign_key_checks=1;" >> $FNAME
gzip --rsyncable $FNAME
done
fi
done
##### END LOG CREATE ###########
YMD_E=`date +%Y%m%d%H%M%S`
touch ${LOGDIR}${LOGNAME}${YMD_E}.end



'Server Story.... > mysql' 카테고리의 다른 글

mysql backup  (0) 2014.04.23
DB 자동저장 스크립트  (0) 2011.01.26
mysql 백업 및 자동삭제 스크립트  (0) 2010.12.17
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법  (1) 2010.12.17
my sql 튜닝 - 체크사항  (0) 2010.09.10
Posted by Sumin Family

[Linux] 자동 백업 스크립트, DB백업, 복구

##################################

################# 로그파일 삭제 #########

##################################

#!/bin/sh


#delete Log File

find /var/log/au* -ctime +3 -exec rm -f {} \;

find /var/log/apache2/err* -ctime +3 -exec rm -f {} \;

find /var/log/sys* -ctime +3 -exec rm -f {} \;

find /var/log/cro* -ctime +3 -exec rm -f {} \;

find /var/log/daem* -ctime +3 -exec rm -f {} \;

find /var/log/ker* -ctime +3 -exec rm -f {} \;

find /var/log/lpr* -ctime +3 -exec rm -f {} \;

find /var/log/mai* -ctime +3 -exec rm -f {} \;

find /var/log/user* -ctime +3 -exec rm -f {} \;

find /var/log/deb* -ctime +3 -exec rm -f {} \;

find /var/log/mess* -ctime +3 -exec rm -f {} \;

find /var/log/mysql/err* -ctime +3 -exec rm -f {} \;

find /var/webmin/mini* -ctime +3 -exec rm -f {} \;


#############################################


 > vi wwwbackup.sh 
해서 다음과 같이 작성한다.

#!/bin/sh

#mysql DB
mysqldump -u root -p[비번] -A(전부백업한다면) > /backup/mysql_db_bak_$(date +%Y%m%d).sql
mysqldump -u root -p[비번] junn(DB명) > /backup/junn_db_bak_$(date +%Y%m%d).sql

#html
tar cvfpz /backup/html_bak_$(date +%Y%m%d).tar.gz /home

#delete
find /backup -ctime +3 -exec rm -f {} \;


주의할 점은 $(date +%Y~~)하는 곳에서 date 이후 꼭 한칸을 띄울 것

그 다음에 cron 에 등록해야 한다. 자세한 설명은 http://linuxer.pe.kr/tag/cron 참고
(no crontab for root 라는 문구가 나온다면 등록된 것이 없어서 그러니 신경쓰지 말자)

crontab -e 해서 0 3 * * * /backup/wwwbackup.sh

라고 등록해주었다.

잘되었는지는 내일 확인해보도록 해야겠다.

=> 작동을 안했다-_- chmod 755를 안해줘서 실행이 안된 것 같다는 선배의 말씀

그냥 귀찮아서 etc/cron.daily 라는 폴더에 집어넣고 chmod 755해줬다.

==> 작동했다

복구는 

mysql -uuser -ppassword dbname < backup.sql


만약 모두 백업한것이었다면 dbname에도 -A 로 쓴다.

/////////////////////DB 백업, 복구 예제////////////////////////////
  1. Linuxing 2005/06/26 02:25  address  modify / delete  reply

    1. 모든 DB 백업<br />
    mysqldump -u root -p -A > all.sql<br />
    <br />
    2. 특정 DB 백업<br />
    mysqldump -u root -p [DB명] > dbA.sql<br />
    <br />
    3. 특정 Table 백업<br />
    mysqldump - u root -p [DB명] [Table명] > tableA.sql<br />
    <br />
    4. 복구<br />
    mysql -u root -p [target DB명] < tableA.sql

  2. Linuxing 2005/06/26 02:26  address  modify / delete  reply

    // 모든 디비 백업<br />
    # mysqldump -u root -p --all-databases > AllDB_Backup.dump<br />
    <br />
    // 디비 하나만 백업(e.g. mysql이라는 디비를 백업)<br />
    # mysqldump -u root -p mysql > mysql_Backup.dump<br />
    <br />
    // 디비에서 테이블 하나만 백업<br />
    # mysqldump -u root -p mysql user > mysql_userTB_Backup.dump<br />
    <br />
    <br />
    <br />
    // 복구는 어떻게 하는가!!<br />
    . --all-databases 를 사용하여 모든디비백업을 한 경우<br />
    # mysql -u root -p < AllDB_Backup.dump<br />
    <br />
    . 디비 하나만 백업한 경우(디비는 생성되어 있어야 함.)<br />
    # mysql -u root -p mysql < mysql_Backup.dump<br />
    <br />
    . 테이블 백업한 경우(디비는 생성이 되어있어야 함.)<br />
    # mysql -u root -p mysql < mysql_userTB_Backup.dump


'Server Story.... > mysql' 카테고리의 다른 글

mysql backup  (0) 2014.04.23
DB 자동저장 스크립트  (0) 2011.01.26
mysql 백업 및 자동삭제 스크립트  (0) 2010.12.17
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법  (1) 2010.12.17
my sql 튜닝 - 체크사항  (0) 2010.09.10
Posted by Sumin Family

우분투 8.04 mysql에서 DB파일의 위치를 변경 방법 ]

 

 

: 우분투 8.04 mysql의 DB파일 기본위치는 /var/lib/mysql 입니다.

: 이 위치를 만약 /export/mysql 로 바꾸고자 한다면...

 

 

1. /etc/init.d/mysql stop  (mysql 을 중지합니다.)

 

2. mv -R /var/lib/mysql  /exprt/   (DB 디렉토리를 원하는 곳으로 옮깁니다.)

 

3. /etc/mysql/my.cnf 파일을 열어서 아래 항목을 수정합니다.

 

       datadir                = /var/lib/mysql

         => 한줄 수정 

       datadir                = /export/mysql

 

4. /etc/apparmor.d/usr.sbin.mysqld 을 열어서 아래 항목을 수정합니다.

 

      /var/lib/mysql/ r,

      /var/lib/mysql/** rwk,

        => 위의 두줄을 아래와 같이 수정

      /export/mysql/ r,

      /export/mysql/** rwk,

 

  권한 수정 :  sudo  chown -R mysql:mysql [dir]

  권한 수정2 : sudo chmod 755 [dir]


5. /etc/init.d/apparmor restart  (apparmor 설정 재로딩)

 

6. /etc/init.d/mysql start (mysql 시작)


위와 같이 해서 안되면 

sudo start mysqld


한뒤  webmin에서 확인해볼것,



'Server Story.... > mysql' 카테고리의 다른 글

mysql backup  (0) 2014.04.23
DB 자동저장 스크립트  (0) 2011.01.26
mysql 백업 및 자동삭제 스크립트  (0) 2010.12.17
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법  (1) 2010.12.17
my sql 튜닝 - 체크사항  (0) 2010.09.10
Posted by Sumin Family

1. 연결을 할 수 없습니다.

 

MySQL 에러번호 1045 'root'@'localhost' 엑세스 거절

 

패스워드 틀림:아님

 

만약 당신이 올바른 연결인지를 체크하기 원한다면

 

ping 버튼을 클릭하세요.

 

2. mysql 로그인에 실패한 오류입니다.

 

3. mysql 서버 켜져있는지 확인하고 my.ini 설정을 확인하시고 퍼미션 확인하세요.

 

4.

1. 오딘 v 986 압축 푸세요

 

2. 나비캣을 까세요 !<필수>

 

3. 비밀번호가 없다면     시작 --> 프로그램 --> Mysql --> MYsql server 의 구동파일같은걸

실행후 비밀번호 거세요 !

 

4. 안에는 키스토얼 파일들이  다있어서 우선  db.properties 이파일을 메모장으로 엽시다 ^^

# qualified class name of your JDBC driver
driver=com.mysql.jdbc.Driver
# JDBC URL to your database
url=jdbc:mysql://127.0.0.0:3306/odinms
# credentials for database access
user = root
password =

이렇게 나와있군요 !그럼 여기서

저 127.0.0.0 을 자기 아이피말고 !! localhost 로 고쳐줍시다 !

 

# qualified class name of your JDBC driver
driver=com.mysql.jdbc.Driver
# JDBC URL to your database
url=jdbc:mysql://localhost:3306/odinms
# credentials for database access
user = root
password =

이렇게요 !! 다음은 저기 맨밑의 바로 위 패스워드 를 root 으로 고쳐줍시다 !

# qualified class name of your JDBC driver
driver=com.mysql.jdbc.Driver
# JDBC URL to your database
url=jdbc:mysql://localhost:3306/odinms
# credentials for database access
user = root
password = root

이러면 db파일은 설정 완료입니다 ^^
그다음은

world.properties

파일을 메모장으로 엽시다 ^^

# experience factor
net.sf.odinms.world.exp=1000
# meso factor
net.sf.odinms.world.meso=1000
# drop factor
net.sf.odinms.world.drop=5
# bossdrop factor
net.sf.odinms.world.bossdrop=1
# spawn a character for debugging purposes on every map
net.sf.odinms.world.faekchar=false
# time in milliseconds between loginqueue runs
net.sf.odinms.login.interval=500
# time in milliseconds between ranking updates (default: 30 minutes)
net.sf.odinms.login.ranking.interval=1800000
# total user limit of the server
net.sf.odinms.login.userlimit=500
# defaults for channelservers
net.sf.odinms.channel.net.port=7575
net.sf.odinms.channel.net.interface=127.0.0.0
# active event scripts
net.sf.odinms.channel.events=lolcastle,3rdjob,Boats,Trains,Flights,ZakumPQ,Subway,KerningPQ

라고 나옵니다

여기 또한 127.0.0.0 이있습니다  그러나 저곳엔 자신의 아이피를 적습니다

만약 아이피가 123.123.123.123 이라면

# experience factor
net.sf.odinms.world.exp=1000
# meso factor
net.sf.odinms.world.meso=1000
# drop factor
net.sf.odinms.world.drop=5
# bossdrop factor
net.sf.odinms.world.bossdrop=1
# spawn a character for debugging purposes on every map
net.sf.odinms.world.faekchar=false
# time in milliseconds between loginqueue runs
net.sf.odinms.login.interval=500
# time in milliseconds between ranking updates (default: 30 minutes)
net.sf.odinms.login.ranking.interval=1800000
# total user limit of the server
net.sf.odinms.login.userlimit=500
# defaults for channelservers
net.sf.odinms.channel.net.port=7575
net.sf.odinms.channel.net.interface=123.123.123.123

# active event scripts
net.sf.odinms.channel.events=lolcastle,3rdjob,Boats,Trains,Flights,ZakumPQ,Subway,KerningPQ

이러면 구축은 완료 !

이제 나비캣으로 갑시다 !

 

연결  localhost

이름 localhost

아디 root

비번 root 합니다

그리고 연결을 한후

오른쪽 마우스 클릭 뉴 데이타 베이스 만들기

<New Datebase >

그리고 이름 odinms 확인

클릭후 또 오른쪽마우스 클릭후 E머시기 Batch file 클릭

배치파일 !@

.... 을 누른뒤 오딘 파일 폴더의 sql 파일 <메모장 > 다 불러옵시다 텍스트파일만요 ! sql 파일 폴더라고 있습니다

그리고 서버파일있는곳의 odinms 를 불러온후 다끝나면 웹에서 아디를 만드시구 

월드 로그인 채널 순으로 킵시다 0.55 wz 넣으시구요 ^^

 

5. 아이피는 직접 만드는게 아닙니다 시작눌러서 실행 눌러서 cmd치고 엔터하고 ipconfig 치고 엔터누르고

거기서 ip address 이게 님아이피주소임.

 

6. 주석달았음

[mysqld]
# MySQL이 설치된 디렉터리
basedir="C:/APM_Setup/Server/MySQL5/"
# MySQL데이터베이스 데이터가 저장될 디렉터리
datadir="C:/APM_Setup/Server/MySQLData/"

# MySQL 기본 케릭터셋
default-character-set=euckr
# MySQL에 연결될때 실행하는 명령어
init_connect=SET NAMES euckr
# MySQL 메세지 표시 언어 설정 ( C:\APM_Setup\Server\MySQL5\share\ 의 디렉터리명을 설정한다.
language=korean

# INNODB타입을 사용할지 하지 않을지
skip-innodb

# BDB타입을 사용할지 하지 않을지
skip-bdb

# 시스템 잠금을 사용할지 하지 않을지
#skip-locking

# 외부접속 차단, 특별히 외부에서 접속하지 않을 경우에는 주석을 해제한다.
#  - 주석처리 시에는 외부 접속을 허용하게 되므로 보안상 좋지 않다.
#    알기 어려운 root패스워드 등을 지정하셔야 보안상 위험이 적다.
#skip-networking
#shared-memory

# MySQL 3.x의 패스워드 체계를 사용하도록 설정
# 이전 버전에서 디비를 백업해서 이곳에 복구 하지 않을 경우에는 주석 처리 하는 것이 좋다.
old_passwords=1

connect_timeout = 10

# show status 명령을 했을때 , max_used_connections을 보고 늘리던가, 줄이던가 해야 한다.
# 최대값보다 10% 정도 더 크게 잡는 것이 좋다.
max_connections = 3000
wait_timeout = 60

# 인덱스를 위한 버퍼크기, 키 버퍼의 크기는 공유된쓰레드의 크기이며 중복된 키를 자주 사용할 경우 속도를 높일 수 있고,
# 기준은 show status 명령을 했을 때 Key_blocks_used를 체크해서 key_buffer 사이즈를 줄이던가 늘리던가 해야 한다.
# 일반적인 key_buffer 의 크기는 Key_blocks_used*1024 로 잡으면 된다.
# Key_reads 가 크다면, key_buffer_size 변수가 너무 작은 것이다.
# 대용량 테이블일 경우 쿼리가 느리다면, 인덱스 버퍼 크기가 작아서 느릴 수 있으므로 key_buffer 크기를 늘려 주어야 한다.
# show status 명령에서 다음과 같이 계산되는 것이 key_buffer 설정이 적당한 것이다.
# Key_reads/Key_read_request < 0.01   [ 0.00112318293327 ]
# key_write/key_write_request = 1     [ 0.0763101585936 ]
# | Key_blocks_used          | 360325     |  > 368972800
# | Key_read_requests        | 386263882  |
# | Key_reads                | 433845     |
# | Key_write_requests       | 5685285    |
key_buffer = 256M

# 클라이언트 통신에 대해 사용되는 버퍼가 커질수 있는 최대 크기,
# 이변수의 가장 큰 값은 MySQL 4 이전은 16MB 가 될 수 있고 MySQL 4와 그 이후는 1GB까지 될 수 있다.
# 클라이언트가 커다란 BLOB나 TEXT값들을 전송하는 경우라면, 이 서버 변수를 늘릴 필요가 있고 클라이언트 측에서도 이것을 늘려야 할 것이다.
max_allowed_packet = 1M

# MySQL 서버가 한번에 열수 있는 테이블의 개수 설정,
# 기본값은 64개이다, Opened_tables 값이 크다면 table_cache 값이 너무 작은 것이다.
# max_connections 값과도 관계가 있는데, 만약 100이라면 table_cache는 100*n 으로 설정해 주는것이 좋다.
# n은 조인해서 열수 있는 최대 테이블 개수이다.
# ex ) 사용중인 테이블이 20개이고, max_connections=100이라면, table_cache 는 그의 5~6배인 table_cache=512 정도로 설정하는 것이 좋다.
table_cache = 6000

# 정렬을 위해 사용하는 버퍼 크기, ORDER BY 나 GROUP BY 절을 빠르게 하기 위해서는 이 값을 증가시킨다.
# 4.0.3 이전에서는
# sort_buffer_size => sort_buffer
# read_buffer_size => record_buffer
# 라는 변수로 쓰였다.
# max_used_connections에 따라서 증가시키는 것이 좋다. 한번에 많은 쓰레드가 동시에 붙을 경우는 증가시키는 것이 좋다.
# max_used_connections가 높을 경우 sort_buffer=6M 정도로 설정하는 것이 좋고, record_buffer=2M 정도가 적당하다.
# sort_buffer와 record_buffer 를 합쳐서 8M를 넘지 않는 것이 좋다.
# (sort_buffer+record_buffer)*max_connections를 할 경우 ram을 다 차지할 수 있기 때문이다.
# 많은 연속적인 테이블 스캔이 이루어진다면 read_buffer_size 값을 증가시켜야 한다.
sort_buffer_size = 1M
read_buffer_size = 1M

# MyISAM 테이블 타입에서 인덱스를 만들거나(create table ..), 인덱스로
# 변경(alter table ...) 하거나, 복구( repair ...) 할 때 사용하는 버퍼크기
myisam_sort_buffer_size = 64M

thread_cache = 8

# 쿼리 캐시 버퍼 사이즈
query_cache_size= 16M

# CPU개수 * 2 를 한 값을 입력 ( 솔라리스에서만 사용된다는데 정확하게는 잘 모르겠음.. )
thread_concurrency = 4

[client]
default-character-set=euc-kr
init_connect=SET NAMES euc-kr
language=korean

[mysqldump]
default-character-set=euc-kr
init_connect=SET NAMES euc-kr
language=korean

7. 네 mysql서버를 확인하라는겁니다. mysql 서버는 데이터베이스서버를 말하는건데 이 서버에 레벨이나 끼고있는 아이템같은 캐릭터정보가 들어갑니다. IO속도를 높이고 편의성을 위해서 사용하는겁니다. 이 데이터베이스 서버는 따로 실행하셔야 됩니다. APMSETUP이라는 프로그램깔면 자동으로 쉽게 설치가 가능합니다.

 

진짜 힘들게 썼네요 채택점여.

전에쓴질문도 같이 채택해주세요.

'Server Story.... > mysql' 카테고리의 다른 글

mysql backup  (0) 2014.04.23
DB 자동저장 스크립트  (0) 2011.01.26
mysql 백업 및 자동삭제 스크립트  (0) 2010.12.17
우분투 8.04 mysql에서 DB파일의 위치를 변경 방법  (1) 2010.12.17
my sql 튜닝 - 체크사항  (0) 2010.09.10
Posted by Sumin Family


티스토리 툴바