출처 : 윈도우즈(windows) 서버 백업 - 파일 & DB
1. 일반 파일들 백업 (Windows Server 계열)
아마 DOS 를 조금 다루어 보셨던 분들이라면 XCOPY 라는 명령어를
잘 알고 계실 겁니다. copy 명령어보다 더 많은 기능들을 하고 더 강력한
기능을 해주며 최대의 장점으로 네트워크상에서 다른 PC에 있는 파일도
정말 쉽게 복사해주는 장점이 있습니다.
수많은 옵션들이 제공되지만 기본적으로 붙여주는 옵션은 /Y, /E, /H 입니다.
간단하게 해석해 보자면 /Y(덮어쓰기 무조건OK), /E(비어있는 폴더도 복사),
/H(숨겨진파일과 시스템파일도 복사) 가 되겠습니다.
그럼 Windows Server 계열에서 다른 PC 혹은 서버에 있는 파일을 특정 위치에
복사해 넣고자 할 경우에는 어떻게 할까요?
예를 들어, 네트워크상에 A라는 컴퓨터가 있고 거기에 a라는 폴더를 공유해
놓았다고 합시다. 그렇다면 그 공유된 a폴더를 내 컴퓨터에서 도구,
네트워크 드라이브 연결로 링크를 걸어 네트워크 드라이브를 만듭니다.
그렇게 하면 임의 문자(예: X)가 할당되고 도스창에서 x: 로 쉽게 이동이 가능하게
됩니다. (공유는 물론 비밀번호가 걸려 있는 상태여야 하겠죠? ^^;)
그렇게 복사해야 하는 폴더들을 각 서버마다 공유를 걸어두고 백업을 받을 서버에서
그 것들을 네트워크 드라이브로 만들어 둡니다. 그렇게 한 후 xcopy 를 이용해서
아래와 같이 사용하면 됩니다.
위와 같이 하게 되면 x: 로 잡혀진 특정 폴더 전체를 백업 받는 서버의 C 밑에
A_server_backup 이라는 폴더로 복사가 됩니다.
만약 날짜별로 백업을 받고 싶다면 .bat (배치파일)을 만들어서 할 수 도 있습니다.
위와 같이 한 줄을 작성하고 autosave.bat 파일로 저장한 다음
도스창에서 autosave.bat 을 실행하게 되면 이제는 A_server_backup 이라는
폴더 밑에 2008-02-04 처럼 날짜가 적힌 폴더가 생성되고 그 아래에 파일들이
복사가 됩니다. 일일이 폴더를 만들어줄 필요가 전혀 없습니다.
마지막으로 위와 같이 .bat 파일을 만들었다면 Windows 에 있는
"예약된 작업" 에서 해당 .bat 파일을 특정시간에 실행하도록 등록을 해줘야 합니다.
그렇게 한다면 매일 해당 시간에 .bat 파일을 실행하여 백업을 자동으로 받게 됩니다.
아래에 설명할 DB백업도 모두 하나의 .bat 파일에 작성하면 되니까
결론적으로는 .bat 파일 하나만 있다면 Windows 서버 백업은 대부분 자동화가 됩니다.
2. DB백업 (MySQL, MSSQL)
자, 파일들은 xcopy 를 이용해서 쉽게 백업할 수 있음을 알게 되었습니다.
Windows 계열에서와 달리 Linux/UNIX 계열에서는 더 쉽게 백업을 할 수 있습니다.
강력한 cp명령어와 반복작업을 위한 cron명령어를 이용하여 백업을 자동화 할 수 있고
DOS와는 비교할 수 없는 shell 코드로 특정 조건에 맞게 백업도 할 수 있습니다.
어쨌든 파일들은 백업을 했는데, DB는 그럼 어떤 식으로 자동화 시킬 수 있을까요?
역시 Windows 기준으로 한 번 이야기 해 볼까 합니다. 아까 위에서 이야기 한대로
.bat 파일을 만들고 예약된 작업에 등록을 시키면 자동 백업이 됩니다.
그럼 그 .bat 파일에 작성할 코드를 입력하면 되겠지요?
MSSQL의 경우는 엔터프라이즈 관리자에서 DB를 오른쪽 클릭하면 모든 작업에
데이터베이스 백업이라는 것이 있습니다. 거기서 옵션들을 보시면 반복해서 백업을
할 수 있도록 해주는 부분이 나오는데 무척 쉽게 설정이 가능합니다.
거기서 백업한 파일(예: dbbackup.bak)을 어디다 저장할 것인지 설정하고,
그 저장될 폴더를 역시 위와 마찬가지로 공유를 건 다음 네트워크 드라이브로 설정하고
xcopy 를 이용해서 백업을 하면 됩니다.
요약하자면 MSSQL은 엔터프라이즈 관리자에서 백업 스케쥴 작업(Job)을 만들고
폴더를 지정한 후 공유를 걸고 xcopy 를 통해서 백업을 받으면 된다는 것입니다.
MySQL 의 경우는 이보다 훨씬 간단한 한줄로 백업이 가능합니다.
아까 .bat 파일을 만든다고 했었는데, 거기에 아래와 같이 한 줄을 작성하면 됩니다.
아, 물론 백업을 실행하는 서버에 MySQL이 설치되어 있어야 합니다.
Windows Server 의 경우 MySQL 5 for Windows 가 있으므로 그 것을 받아서
설치하면 될 것 같습니다. (mysql.com 참조)
--all-databases 옵션을 주면 해당 MySQL서버에 저장된 모든 데이터베이스들을
한 번에 백업하여 db.sql 파일 형태로 저장하게 됩니다. mysqldump 프로그램을
이용해서 백업을 .sql 파일 형태로 받게 되는데 .bat 파일에 위와 같이 한 줄만
작성해서 넣어주게되면 예약된 작업이 실행되면서 해당 MySQL 서버의 데이터들을
백업받게 됩니다.
1. 일반 파일들 백업 (Windows Server 계열)
아마 DOS 를 조금 다루어 보셨던 분들이라면 XCOPY 라는 명령어를
잘 알고 계실 겁니다. copy 명령어보다 더 많은 기능들을 하고 더 강력한
기능을 해주며 최대의 장점으로 네트워크상에서 다른 PC에 있는 파일도
정말 쉽게 복사해주는 장점이 있습니다.
수많은 옵션들이 제공되지만 기본적으로 붙여주는 옵션은 /Y, /E, /H 입니다.
간단하게 해석해 보자면 /Y(덮어쓰기 무조건OK), /E(비어있는 폴더도 복사),
/H(숨겨진파일과 시스템파일도 복사) 가 되겠습니다.
그럼 Windows Server 계열에서 다른 PC 혹은 서버에 있는 파일을 특정 위치에
복사해 넣고자 할 경우에는 어떻게 할까요?
예를 들어, 네트워크상에 A라는 컴퓨터가 있고 거기에 a라는 폴더를 공유해
놓았다고 합시다. 그렇다면 그 공유된 a폴더를 내 컴퓨터에서 도구,
네트워크 드라이브 연결로 링크를 걸어 네트워크 드라이브를 만듭니다.
그렇게 하면 임의 문자(예: X)가 할당되고 도스창에서 x: 로 쉽게 이동이 가능하게
됩니다. (공유는 물론 비밀번호가 걸려 있는 상태여야 하겠죠? ^^;)
그렇게 복사해야 하는 폴더들을 각 서버마다 공유를 걸어두고 백업을 받을 서버에서
그 것들을 네트워크 드라이브로 만들어 둡니다. 그렇게 한 후 xcopy 를 이용해서
아래와 같이 사용하면 됩니다.
위와 같이 하게 되면 x: 로 잡혀진 특정 폴더 전체를 백업 받는 서버의 C 밑에
A_server_backup 이라는 폴더로 복사가 됩니다.
만약 날짜별로 백업을 받고 싶다면 .bat (배치파일)을 만들어서 할 수 도 있습니다.
위와 같이 한 줄을 작성하고 autosave.bat 파일로 저장한 다음
도스창에서 autosave.bat 을 실행하게 되면 이제는 A_server_backup 이라는
폴더 밑에 2008-02-04 처럼 날짜가 적힌 폴더가 생성되고 그 아래에 파일들이
복사가 됩니다. 일일이 폴더를 만들어줄 필요가 전혀 없습니다.
마지막으로 위와 같이 .bat 파일을 만들었다면 Windows 에 있는
"예약된 작업" 에서 해당 .bat 파일을 특정시간에 실행하도록 등록을 해줘야 합니다.
그렇게 한다면 매일 해당 시간에 .bat 파일을 실행하여 백업을 자동으로 받게 됩니다.
아래에 설명할 DB백업도 모두 하나의 .bat 파일에 작성하면 되니까
결론적으로는 .bat 파일 하나만 있다면 Windows 서버 백업은 대부분 자동화가 됩니다.
2. DB백업 (MySQL, MSSQL)
자, 파일들은 xcopy 를 이용해서 쉽게 백업할 수 있음을 알게 되었습니다.
Windows 계열에서와 달리 Linux/UNIX 계열에서는 더 쉽게 백업을 할 수 있습니다.
강력한 cp명령어와 반복작업을 위한 cron명령어를 이용하여 백업을 자동화 할 수 있고
DOS와는 비교할 수 없는 shell 코드로 특정 조건에 맞게 백업도 할 수 있습니다.
어쨌든 파일들은 백업을 했는데, DB는 그럼 어떤 식으로 자동화 시킬 수 있을까요?
역시 Windows 기준으로 한 번 이야기 해 볼까 합니다. 아까 위에서 이야기 한대로
.bat 파일을 만들고 예약된 작업에 등록을 시키면 자동 백업이 됩니다.
그럼 그 .bat 파일에 작성할 코드를 입력하면 되겠지요?
MSSQL의 경우는 엔터프라이즈 관리자에서 DB를 오른쪽 클릭하면 모든 작업에
데이터베이스 백업이라는 것이 있습니다. 거기서 옵션들을 보시면 반복해서 백업을
할 수 있도록 해주는 부분이 나오는데 무척 쉽게 설정이 가능합니다.
거기서 백업한 파일(예: dbbackup.bak)을 어디다 저장할 것인지 설정하고,
그 저장될 폴더를 역시 위와 마찬가지로 공유를 건 다음 네트워크 드라이브로 설정하고
xcopy 를 이용해서 백업을 하면 됩니다.
요약하자면 MSSQL은 엔터프라이즈 관리자에서 백업 스케쥴 작업(Job)을 만들고
폴더를 지정한 후 공유를 걸고 xcopy 를 통해서 백업을 받으면 된다는 것입니다.
MySQL 의 경우는 이보다 훨씬 간단한 한줄로 백업이 가능합니다.
아까 .bat 파일을 만든다고 했었는데, 거기에 아래와 같이 한 줄을 작성하면 됩니다.
아, 물론 백업을 실행하는 서버에 MySQL이 설치되어 있어야 합니다.
Windows Server 의 경우 MySQL 5 for Windows 가 있으므로 그 것을 받아서
설치하면 될 것 같습니다. (mysql.com 참조)
--all-databases 옵션을 주면 해당 MySQL서버에 저장된 모든 데이터베이스들을
한 번에 백업하여 db.sql 파일 형태로 저장하게 됩니다. mysqldump 프로그램을
이용해서 백업을 .sql 파일 형태로 받게 되는데 .bat 파일에 위와 같이 한 줄만
작성해서 넣어주게되면 예약된 작업이 실행되면서 해당 MySQL 서버의 데이터들을
백업받게 됩니다.
댓글