간혹, DB가 손상되는 경우가 있다. 


하지만 이런 경우에도 DB 백업시 Checksum 옵션을 사용하지 않으면 정상 백업이 가능하다.

심지어 CheckSum 옵션을 사용했는데도 불구하고 정상 백업되는 경우가 있다. 


이런 일을 방지하고자 한다면, 

우선 dbcc checkdb 로 오류 검사를 한후 

오류가 없는경우 Database Backup 을 하면 된다.



SET @sql = 'DBCC CHECKDB (' + QuoteName(@name) + ') WITH ... options ...' EXEC sp_executesql @sql IF @@ERROR <> 0 BEGIN .. Error Handler ... END ... Continue with backup ...


dbcc checkdb로 해당 DB를 체크한 후, 오류 발생시 @@ERROR가 0이 아니므로 가능한 코드겠다




* 참고 

@@ERROR : https://technet.microsoft.com/ko-kr/library/ms190193(v=sql.105).aspx

* 원문

http://forums.sqlteam.com/t/only-create-backup-if-dbcc-checkdb-is-ok/9459/2


1. 백업

C:\>mysqldump -uroot -p[비밀번호] [백업할DB명] > [백업파일명].sql

이렇게 하면 [백업파일명].sql 파일이 생성된다.
이 파일에는 테이블 생성 및 데이터 insert 등의 sql 문장이 가득 들어있다.

2. 복구

C:\>mysql -uroot -p[비밀번호] [복구할DB명] < [복구할파일명].sql

이렇게 하면 복구 된다.  참 ~ 쉽다.

전체를 백업할 때는 mysql 데이터베이스도 함께 백업 받아두어야 한다.


실제 예>
1. 백업

C:\> mysqldump -uroot -p1111 test > test_backup.sql

test 데이터베이스가 test_backup.sql 파일로 백업된다.

2. 복구

C:\> mysql -uroot -p1111 test < test_backup.sql

test 데이터베이스에 백업한 내용이 복구 된다.


- 헉~ 데이블과 데이터만 백업되네요.. 프로시저, 함수 등은 백업이 안되네요.. 다른 방법이 있을텐데.. 찾으면 다시 올릴게요

+ Recent posts