데이터베이스는 웹 애플리케이션이나 서비스에서 중요한 역할을 한다. 데이터 손실을 막고 장애 상황에 대비하려면 정기적으로 데이터베이스를 백업하고 필요할 때 복구할 수 있어야 한다. 여기서는 PostgreSQL, MariaDB, Oracle SQL 데이터베이스의 백업과 복구 방법을 알아본다.
PostgreSQL 데이터베이스 백업 및 복구
PostgreSQL에서는 pg_dump
명령을 사용하여 데이터베이스를 백업할 수 있다. 다음은 mydb
라는 데이터베이스를 백업하는 예시이다:
pg_dump -U username -F c -b -v -f mydb.backup mydb
-U username
: 데이터베이스 사용자 이름을 지정한다.-F c
: 사용자 지정 백업 형식을 사용한다.-b
: 대용량 개체를 포함한다.-v
: 자세한 출력을 표시한다.-f mydb.backup
: 백업 파일 이름을 지정한다.
백업 파일에서 데이터베이스를 복구하려면 pg_restore
명령을 사용한다:
pg_restore -U username -d mydb -v mydb.backup
-d mydb
: 복원할 데이터베이스 이름을 지정한다.
MariaDB 데이터베이스 백업 및 복구
MariaDB에서는 mysqldump
명령을 사용하여 데이터베이스를 백업할 수 있다:
mysqldump -u username -p mydb > mydb.sql
-u username
: 데이터베이스 사용자 이름을 지정한다.-p
: 비밀번호를 입력하라는 프롬프트를 표시한다.mydb
: 백업할 데이터베이스 이름이다.> mydb.sql
: 백업 내용을mydb.sql
파일로 리디렉션한다.
백업 파일에서 데이터베이스를 복구하려면 mysql
명령을 사용한다:
mysql -u username -p mydb < mydb.sql
Oracle SQL 데이터베이스 백업 및 복구
Oracle SQL에서는 exp
유틸리티를 사용하여 데이터베이스를 백업할 수 있다:
exp username/password@database_name file=mydb.dmp log=mydb.log full=y
username
: 데이터베이스 사용자 이름을 지정한다.password
: 사용자 비밀번호를 지정한다.database_name
: 데이터베이스 이름을 지정한다.file=mydb.dmp
: 백업 파일 이름을 지정한다.log=mydb.log
: 로그 파일 이름을 지정한다.full=y
: 전체 데이터베이스를 백업한다.
백업 파일에서 데이터베이스를 복구하려면 imp
유틸리티를 사용한다:
imp username/password@database_name file=mydb.dmp log=mydb_import.log full=y
데이터베이스 백업 자동화
데이터베이스 백업을 자동화하려면 cron 같은 스케줄러를 사용할 수 있다. 예를 들어, 매일 자정에 PostgreSQL 백업을 실행하려면 다음 cron 항목을 추가한다:
0 0 * * * pg_dump -U username -F c -b -v -f /path/to/backup/mydb_$(date +\%Y\%m\%d).backup mydb
이 cron 항목은 날짜 형식을 사용하여 백업 파일 이름을 지정하므로 백업 파일이 덮어쓰이지 않는다.
데이터베이스 백업은 데이터 손실을 방지하고 장애 상황에 대비할 수 있는 중요한 작업이다. 이 글에서는 PostgreSQL, MariaDB, Oracle SQL에서 데이터베이스를 백업하고 복구하는 방법과 백업을 자동화하는 방법을 알아보았다.