db 백업하기

리눅스 2019. 1. 23. 16:22

출처: http://www.happyjung.com/lecture/50?sca=MySQL&page=3&device=mobile


Linux 서버에서 mysqldump 받기 +++++++++++++++++++

mysql DB를 백업하시려면 우선, 텔넷으로 웹서버에 접속을 한 다음 아래와 같이 명령을 넣어주시면 됩니다.

명령어 : mysqldump -h DB서버주소 -u 계정 -p DB명 > 저장할 파일명
(부등호의 방향에 주의합니다.)
위와 같은 명령을 실행하면 Database 안에 있는 모든 자료가 입력한 "파일명"을 가진 파일로 저장됩니다.


1.1 데이타베이스 전체
$> mysqldump -u[사용자아이디] -p 데이터베이스명 > 저장될 파일명
예1) mysqldump -uhappy -p db_happy > db.sql
예2) mysqldump --default-character-set=utf8 --set-charset --extended-insert=FALSE -uhappy -p db_happy > db.sql

1.2 테이블 전체
$> mysqldump -u[사용자아이디] -p 데이터베이스명 테이블명 > 저장될 파일명
예) mysqldump -uhappy -p db_happy tbl_happy > db_table.sql

1.3 특정 DB의 특정 테이블만 덤프
mysqldump -u mysql_admin -p edu a -w'no=>7 and no=<10' > edu_a_cond.sql

1.4. 디비 스키마(Schema)만 백업받기 (DDL)
mysqldump -u mysql_admin -p -d edu > edu_db.sql

1.5 특정DB의 틎정 테이블 스키마만 백업받기(DDL)
mysqldump -u mysql_admin -p -d edu a> edu_a_table.sql

[환경옵션]은 백업시에 어떤환경으로 백업을 할것인가에 대한 옵션이다.
--default-character-set=utf8 # 지정된 캐릭터셋을 기본으로함
--set-charset # 기본지정된 캐릭터셋(default-character-set)을 SET NAMES default-character-set로 설정
--opt # 메모리에 로드하지 않고 바로 화일로 덤프
--create-options # create문 백업시에 테이블 설정을 포함함.
--compatible=DB # 백업sql이 특정 db에 호환되도록 함 예) mysql40, mysql41, oracle, mssql
--extended-insert=FALSE # insert 문을 한줄씩 만든다
--result-file=file # 지정된 file 로 바로 넣음.. "> /BackUp/Mysql/Backup.sql" 과 같은 의미
--triggers # 트리거 덤프
--no-create-db # DB 생성정보를 뺌
--no-create-info # 테이블 생성정보를 뺌
--no-data # 테이블의 데이터를 뺌


2. mysqldump를 이용한 Backup

가장 널리 이용하는 방법이고 가장 확실한 방법이다.
다만 DB 데이터가 큰 경우 Backup 시간이 많이 걸릴수 있기 때문에
보통 크론등을 이용하여 주기적으로 새벽시간을 이용하여 백업받는다.

사용방법은 다음과 같다.
/usr/local/mysql/bin/mysqldump -uroot -pPassword [백업옵션] [환경옵션] > /BackUp/Mysql/Backup.sql
/BackUp/Mysql/ <== 임의로 정한 백업화일 위치이다.

[백업옵션] 의 내용은 아래의 4가지 형태만 알아도 될듯하다.
옵션들에 주의 해주면 다양한 형태로 백업을 받을수 있다.
--all-databases # mysql DB 전체를 백업다는것을 의미한다.
--databases DB1 DB2 DB3 # mysql 에서 특정 DB만 백업받는 것을 의미한다.
DB1 # DB1 이라는 DB 만 백업받을때 사용한다.
DB1 table1 # DB1 이라는 DB의 table1 이라는 테이블만 백업받을때 사용한다.

[환경옵션]은 백업시에 어떤환경으로 백업을 할것인가에 대한 옵션이다.
--default-character-set=utf8 # 지정된 캐릭터셋을 기본으로함
--set-charset # 기본지정된 캐릭터셋(default-character-set)을 SET NAMES default-character-set로 설정
--opt # 메모리에 로드하지 않고 바로 화일로 덤프
--create-options # create문 백업시에 테이블 설정을 포함함.
--compatible=DB # 백업sql이 특정 db에 호환되도록 함 예) mysql40, mysql41, oracle, mssql
--extended-insert=FALSE # insert 문을 한줄씩 만든다
--result-file=file # 지정된 file 로 바로 넣음.. "> /BackUp/Mysql/Backup.sql" 과 같은 의미
--triggers # 트리거 덤프
--no-create-db # DB 생성정보를 뺌
--no-create-info # 테이블 생성정보를 뺌
--no-data # 테이블의 데이터를 뺌
------------------------------------------------------------------------------------------

2.1 MySQL에 등록된 모든 DB 백업 받기.
# mysqldump --all-databases > mysql_all_db.dump

2.2 MySQL에 등록된 moffice21 과 sms DB 백업 받기.
# mysqldump --databases moffice21 sms > mysql_moffice21_sms_db.dump

2.3 MySQL에 등록된 moffice21 DB 백업 받기.
# mysqldump moffice21 > mysql_moffice21_db.dump

2.4 MySQL에 등록된 moffice21 DB의 approval table 백업 받기.
# mysqldump moffice21 approval > mysql_moffice21_approval_table.dump

2.5 MySQL에 등록된 moffice21 DB의 스키마만 백업 받기.
# mysqldump -d moffice21 > mysql_moffice21_schema.dump

2.6 MySQL에 등록된 moffice21 DB의 데이터만 백업 받기.
# mysqldump -t moffice21 > mysql_moffice21_data.dump

글구 옵션[Option] 설명.
--quick : C API의 mysql_use_result() 함수를 사용하므로 속도가 빠르다.
--add-drop-table : 덤프 결과에서 create table 앞에 drop table 절을 추가합니다.
--add-locks : 덤프하기 전에 LOCK table을 이용하여 테이블을 잠그고 덤프후 UNLOCK table을 실행합니다.
--extended-insert : insert 문 하나에서 모든 레코드를 삽입하는 insert 문을 생성합니다.
※ --opt : 위에 나온 옵션을 동시에 사용한 것과 같은 결과를 가져옵니다.
--no-date or -d : 테이블의 스키마만 덤프합니다.
--no-create-info or -t : create table을 출력하지 않고 데이터만 덤프합니다.
--opt 옵션을 주어서 백업하면 나중에 원복을 할때 기존 DB와 TABLE, DATA를 삭제하고 백업한 내용으로 Update를 합니다.
★ --opt 옵션과 -d or -t는 같이 사용할 수 있습니다.

----------------------------------------------------------------------------------
mysqldump -uID -p (TABLE명 혹은 DB명) > 백업할 파일이름.sql
// local 호스트가 아닌경우 호스트를 지정
mysqldump -h192.168.11.10 -uID -p (TABLE명 혹은 DB명) > 백업할 파일이름.sql
// 일반 port가 아닌 포트를 지정한 경우 socket 옵션
mysqldump --socket=(소켓모듈) -uID -p (TABLE명 혹은 DB명) > 백업할 파일이름.sql
// 테이블 구조만 백업받기
mysqldump -h host -u user -ppassword -d database > script.sql
----------------------------------------------------------------------------------



Windows 서버에서 mysqldump 받기 +++++++++++++++++++

1. 원격접속으로 서버에 접속

2. 시작 > 실행 > cmd (windows98 인경우 command)

3. 실행된 도스창에서 mysql > bin 폴더로 이동

4. mysqldump -udbID -p dbName > 백업파일.sql (엔터)
Enter password: dbPass (엔터)

5. 파일 생성을 확인


###### 데이타를 특정 캐릭터셋으로 백업받고자 할때 ###### (2007-06-01 추가)
## euc-kr 백업
$ mysqldump --default-character-set=euckr -hdb.com -udbID -p dbName > backup.sql
Enter password: dbPass (엔터)

$ mysqldump --default-character-set=euckr --extended-insert=FALSE -h주소 -u아이디 -p비밀번호 디비명 > db20101101.sql

## utf8 백업
$ mysqldump --default-character-set=utf8 -hdb.com -udbID -p dbName > backup.sql
Enter password: dbPass (엔터)

$ mysqldump --default-character-set=utf8 --extended-insert=FALSE -h주소 -u아이디 -p비밀번호 디비명 > db20101101.sql


<< 참조 >>
http://cafe.naver.com/bioms/3037
http://tong.nate.com/delusion/33780281
http://blog.naver.com/owner71?Redirect=Log&logNo=20045354948

그누보드5 apm 셋팅 정리

카테고리 없음 2019. 1. 19. 20:54

센토스7  기본 설정 셋팅


putty , ftp


apm 순서로 정리해두기

이미지 텍스트 정렬

PHP 2019. 1. 16. 11:30

다른 사이트 : http://www.homejjang.com/03/html.php/img_align.php

출처 : http://reubwe.tistory.com/entry/%EC%9D%B4%EB%AF%B8%EC%A7%80-%ED%85%8D%EC%8A%A4%ED%8A%B8-%EC%A0%95%EB%A0%AC


이미지를 배치할 때 글자의 위치를 이미지와 연관시켜 배치시킬 수 있다. 
'ALIGN=속성'이라는 것을 추가해 주면 된다. 
즉,이미지가 글자를 중심으로 볼 때 오른쪽에 위치한다든가 혹은 그림을 중심으로 볼 때 글자들이 그림의 오른쪽 부분에 맨 윗부분부터 차례로 나열된다든가 하는 등 이미지와 글자와의 관계를 정의내려 준다. 
다른 태그들과는 달리 따옴표가 적용되지 않으므로 주의해야 한다.


이미지를 중심으로 텍스트를 배치할 경우

<IMG SRC="image.gif" ALIGN=align> 
align=top,middle,bottom

top-글자를 이미지의 가장 윗부분에 정렬시킨다.
middle-글자를 이미지의 중앙선에 정렬시킨다.
bottom-글자를 이미지의 가장 밑부분에 정렬시킨다.

ALIGN옵션을 사용하지 않았을 때에는 초기값으로 ALIGN=bottom옵션을 사용한 것과 같은 결과을 보게 된다. 
그리고 문장이 한줄을 넘어 갈 경우,자동적으로 이미지 밑으로 위치하게 된다는 것에 주의해야 한다.

<IMG SRC="aaa.gif" ALIGN=TOP>나우깨비<br>
<IMG SRC="aaa.gif" ALIGN=MIDDLE>나우깨비<br>
<IMG SRC="aaa.gif" ALIGN=BOTTOM>나우깨비<br>

view



출처 : http://church.catholic.or.kr/sapa/hanaro/htmlguide/ss01/ss01l.html


글자를 중심으로 이미지를 배치할 경우

<IMG SRC="image.gif" ALIGN=align> 
align=left,right,center

left-이미지를 글자의 왼쪽에 정렬한다.
right-이미지를 글자의 오른쪽에 정렬한다.
center-이미지를 문서의 가운데로 정렬한다.

<IMG SRC="aaa.gif" ALIGN=left>
<IMG SRC="aaa.gif" ALIGN=right>나우깨비

view


TEXT와 이미지를 혼합배치하기
<IMG SRC="aaa.gif" ALIGN=left VALIGN=TOP>

네스케이프 3.0의 경우 그래픽 이미지의 크기가 클 경우 그 주위에 글자들을 한 줄이 아닌 여러 줄로 표현하는 기능을 갖고 있다.
즉 위의 두 속성들을 다 사용함으로써 이미지를 왼쪽에 TEXT를 이미지의 오른쪽 맨 윗부분에 위치시킨다.

<IMG SRC="aaa.gif" ALIGN=left VALIGN=top>인터넷이 우리의 생활 깊숙히 들어옴에 따라서 우리의 생활에 많은 변화가 일어났다.

view


<BR CLEAR=ALL>

이미지에 붙는 문서가 아님을 선언한다.

<IMG SRC="aaa.gif" ALIGN=left>인터넷처럼 빨리 변하는 것은<BR>
없을 것이다.<BR CLEAR= ALL>
어제까지만 해도 존재했던 사이트가<BR>
오늘은 없어지고 없다.

view


'PHP' 카테고리의 다른 글

Secure CRT에세 한글이 깨지는 현상  (0) 2013.06.27
secure CRT 사용방법  (0) 2013.06.27

crontab 재시작

리눅스 2019. 1. 9. 19:48

/etc/init.d/crond restart

리눅스 vi editor line(행) 이동 관련 명령 키

리눅스 2019. 1. 4. 14:47

출처 : https://www.leafcats.com/115


리눅스 대표적 텍스트 편집기인 vi 에디터는 GUI가 아닌 순수 텍스트 명령어 기반으로 작동한다. 따라서 MS 윈도우의 GUI 기반 환경에 익숙한 리눅스 입문자들이 처음 사용하기에는 다소 어려울 수 있다.


[ vi 에디터 기초 사용법 : http://www.leafcats.com/111 ]


vi editor는 텍스트 명령어 기반의 에디터 이지만, 편리한 사용을 돕는 다양한 키가 존재한다.

이 중에서 알아두면 편리하게 사용할 수 있는 가장 많이 사용하는 명령 키가 Line관련한 키이다.

vi editor에서 편집을 할 때에는 마우스로 위치를 이동할 수 없고, 방향키로 이동해야 하기 때문이다. 이 때 원하는 곳으로 빠르게 커서를 이동할 수 있게끔 도와주는 명령 키이다.



vi 에디터를 실행해서 line number를 표시하기 위해서는, 콜론(:) 키를 눌러 라인명령모드로 전환한 다음 set number를 입력한다. 그러면 아래와 같이 행번호가 표시된 모습을 볼 수 있다.



이 상황에서 원하는 라인으로 가고자 한다면, 아래 화면처럼 라인명령모드에서 이동을 원하는 행을 입력하고 엔터키를 누르면 된다.



기본적으로 vi 에디터에서 커서를 이동할 때에는 방향키 4 개와 Page up, Page down키 , Home, End키를 사용하게 된다.


이 밖에 유용하게 사용되는 라인 이동 관련 명령키는 아래와 같다.

gg : 첫 행으로 이동.

G (Shift + g) : 마지막 행으로 이동.

^ / Home / Shift + 6 : 현재 행의 첫 문자로 이동.

$ / End / Shift + 4 : 현재 행의 마지막 문자로 이동.

숫자 타이핑하고 Shift + G : 타이핑한 숫자에 해당하는 행으로 이동.

자동 백업을 위한 간단한 쉘(Shell) 스크립트 - 메일발송까지

리눅스 2019. 1. 3. 13:15

출처 : http://blog.nooree.com/post.cfm/shell


오랜만에 crontab에서 사용할 백업용 쉘 스크립트를 정리했습니다. 이런건 대부분 웹에서 찾아서 쓰는데 덤프기능외에 메일발송도 되면 좋을 거 같아서 추가했습니다. 잘 짜여진 건 아니지만 그럭저럭 쓸 만 하네요. 참고로 Ubuntu 시스템에서만 테스트해봐서 다른 배포판에서는 될련지 모르겠습니다. 아래 쉘을 적당히 backup.sh라고 만들고 crontab에 등록하여 사용하세요. 

여기서 사용된 백업경로, DB명, DB아이디/패스워드, 메일주소 등은 예시로 든 것이니 환경에 맞춰 변경하세요.

다운로드 : backup.sh.zip


01#!/bin/sh
02 
03#실행시각
04NOW_DATE=`date`
05 
06#백업날짜
07BACKUP_DATE=`date +"%Y%m%d"`
08 
09#웹루트
10WWWROOT_DIR=/home/sample/public_html
11 
12#백업파일을 저장할 경로
13BACKUP_DIR=/home/sample/backup
14 
15#MySQL백업
16mysqldump -usampledb -psampledbpass sampledb > ${BACKUP_DIR}/${BACKUP_DATE}.sql
17 
18#웹소스백업
19tar zcvf ${BACKUP_DIR}/${BACKUP_DATE}.tar.gz ${WWWROOT_DIR} --exclude=${WWWROOT_DIR}/WEB-INF
20 
21#소유주 및 권한변경(타 계정의 접근 차단용)
22chown -R root.root ${BACKUP_DIR}
23chmod -R 700 ${BACKUP_DIR}
24 
25# 오래된 백업데이터 삭제(3일 이상 된 것)
26find ${BACKUP_DIR}/ -mtime +3 -exec rm -f {} \;
27 
28#메일 발송 (수신메일추가는 공백으로 구분하여 마지막에 열거)
29echo "백업시각: ${NOW_DATE}\n백업경로: ${BACKUP_DIR}\n\n위와 같이 DB와 웹파일이 백업되었습니다." | mail -a "From:서버관리자 <noreply@sample.com>" -a "Content-Type: text/plain; charset='UTF-8'" -s "자동서버백업안내" manager@sample.com
30 
31exit 0


리눅스 백업스크립트

리눅스 2019. 1. 3. 13:03

개인 웹 서버를 운용하는 상황에서는 백업이 굉장히 중요한 요소입니다. 
대형 블로그 서비스들은 다 내부적으로 수행하고 있지만, 저는 수행하고 있지 않았는데 수행하는 방법에 대하여 알아보았습니다. 

Lael's World 님의 블로그 포스팅을 참조하여 수행하였습니다.


저는 일단 파일만 압축하여 디비도 함께 압축하여 저장하는 방식을 사용했습니다.
db 까지 따로 백업하려면, 경우에는 아래의 참조에서 링크를 타고 가시면 좋은 설명이 되어 있습니다.

저는 내장 DB sqlite3를 사용해서 해당 명령어는 필요 없다고 판단했습니다. 
저는 블로그를 호스팅 하여 사용하기 때문에, 백업이 필요하다고 판단하여 백업을 미루다 미루다 오늘 포스팅 하게 됩니다. 


- 백업할 디렉토리 및 저장 기간, 저장 방식 설정 

저 같은 경우에는 블록 스토리지가 있어서 해당 스토리지에 저장하는 방식을 사용합니다.
백업의 경우에 해당 방식을 많이 사용하겠지만, 같은 디스크의 다른 폴더에 그냥 백업을 할 수도 있을 겁니다. 

$df -Th

위의 명령어를 통해서 디스크의 여유 공간을 확인합니다. 


저는 10GB의 스토리지를 보유하고 있고, 현재 한 번 압축하면 해당 파일이 차지하는 용량은 500MB 정도로 보여집니다. 
따라서, 어느 정도 된 파일은 지속적으로 지워줘야 됩니다. 
DB가 지속적으로 증가할 것을 고려하면 대략 하루에 한 번씩 백업하면, 14~15일 정도가 지금으로써는 적당한 것 같습니다. 

블록 스토리지가 상대적으로 저렴하기 때문에, 비용을 2000원(제 호스팅 서비스) 정도 추가하면 보름 정도는 더 저장할 수 있는 것 같습니다. 
스토리지 용량에 기간을 맞추는 것이 아니라, 원하는 기간에 맞춰서 알맞게 스토리지를 맞추는 것도 좋을 것 같습니다. 



백업 방식의 종류로는 아래와 같은 방식이 있습니다. 
저는 증분을 사용하고 싶지만, 지식이 부족하여 압축을 사용하기로 했습니다.

압축 백업 : (tar -czpf 백업) 일반적으로 많이 쓰이는 백업입니다. 이 작업에는 CPU 가 많이 사용됩니다.
10GB 미만 압축이면 상관없는데 그 이상의 대용량의 압축 백업은 주의가 필요합니다. 백업 시켜놓고 CPU 사용량을 확인하세요.
복사 백업 : (cp -R 백업) 압축하지 않고 복사만 합니다. 사용 용량을 많이 차지하지만 (압축하지 않는다는 뜻) 백업할 때 CPU 사용량이 크게 증가하지는 않습니다.
증분 백업 : (rsync 백업) 변동사항만 비교하여 백업합니다. 비교를 위해서 파일은 항상 압축되지 않은 상태로 보관됩니다.

어짜피 개인 블로그 목적의 백업이고, 새벽 시간을 이용하면 CPU 자원이 충분하기 때문이라고 생각해서입니다. 



아래와 같이 정리해보았습니다. 

@ 백업 정책 @
보관 기간 : 14일
백업 방식 : 압축 백업
백업 시간 : 새벽 4시
백업 횟수 : 하루 1회





아래의 명령어에서 () 는 빼고 사용하셔야 합니다. 

1) 백업할 폴더 생성 후 퍼미션 설정

$ mkdir (백업하고 싶은 위치)
$ chmod 700 (백업하고 싶은 위치)


2) 백업 스크립트 작성 

$ cd /root
$ vim backup.sh


tar 명령어는 파일 압축 백업을 실시합니다. 

find 관련 명령어는 10일이 지난 파일을 삭제합니다. 
find 명령어 뒤에 파이프라인을 보면 rm 명령어를 확인하실 수 있습니다. 
리눅스 명령어를 배우고, 활용을 안해봐서 직접 작성은 쉽지 않네요. 

역시 명령어에서 괄호는 모두 제거하고 넣어주세요 

  #!/bin/bash

  tar -czpf (백업할 디렉토리명)/(자신이 사용할 파일명).`date +%Y%m%d%H%M%S`.tgz (백업을 원하는 원하는 파일, 폴더) 1>/dev/null 2>/dev/null
  3 find (백업할 디렉토리명) -type f -mtime +14 | sort | xargs rm -f



3) 백업 스크립트 퍼미션 설정 및 수행 확인 

$ chmod 700 backup.sh
$ ./backup.sh
저는 테스트 결과 아래와 같이 파일이 잘 생성되었습니다. 




4) 주기적인 실행 

crontab -e

위와 같은 명령어를 실행해서, 아래와 같이 명령어를 추가해줍니다. 
4가 시간입니다.  24시간 기준이고 가령 오후 4시에 하고 싶으면 12를 더한 16을 사용하면 됩니다. 

0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null

#

# For more information see the manual pages of crontab(5) and cron(8)

#

# m h  dom mon dow   command
0 4 * * * /root/backup.sh 1>/dev/null 2>/dev/null



5) 확인해보자!

자고 일어나서 확인해보세요~ 



- 출처 - 

https://blog.lael.be/post/1449 

그누보드 공부

그누보드5테스트서버 2018. 12. 16. 22:06



호스팅 : ex)사무실



사용툴 아톰, MAMP


강력한거 추천->Laragon 


html만써서 정적인 홈피가능

+css 화려해짐

+js 역동적인거가능 등....




서버    <-------   클라이언트

          -------->


웹하는대 대충 필요한거

html , css, js, mysql(db), php, jsp


그누보드+쇼핑몰 => 영카트


그누보드에 쓸수있는거 html css jsp php mysql

c++ oop프로젝트 9장

카테고리 없음 2018. 9. 28. 18:07

이쁘게  cpp, h파일 나눠서 저장하면됨

c++ q

☆C언어/소스 2018. 9. 19. 01:56

//기본적인 큐라 효율이 쓰래기

#include<iostream>

using namespace::std;


template<typename T>

class Queue

{

enum { cap = 10 };

T arr[cap];

int front;

int rear;


public:


Queue() :front(0), rear(0) {};


void Push(T num)

{

arr[rear = (rear + 1) % cap] = num;

}

void Pop()

{

cout << arr[front=(front+1)%cap] << endl;

}

bool Empty()

{

return front == rear;

}

};


int main()

{


Queue<int> q;



q.Push(10);

q.Pop();

q.Empty();

q.Push(20);

q.Push(30);


q.Pop();

q.Pop();

q.Pop();



}

'☆C언어 > 소스' 카테고리의 다른 글

8-3 연습문제  (0) 2018.09.18
문자열 숫자 쉽게 숫자로 바꾸기  (0) 2017.12.25
'q' 입력시 종료  (0) 2017.11.21
달력  (0) 2017.11.13
괄호 검사  (0) 2017.06.17