- 일반적으로 Database를 복구 할때 복구 서버를 사용해서 해당 서버에 복구를 진행하는 경우가 많음
- 하지만 복구서버에 동일한 이름의 DB가 있다면 다른 이름으로 DB를 복구해야하는 경우가 발생할 때가 있음
TEST DATA
wget <https://downloads.mysql.com/docs/sakila-db.zip>
[root@lee ~]# unzip sakila-db.zip
[root@lee sakila-db]# mysql -uroot -proot < sakila-schema.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
[root@lee sakila-db]# mysql -uroot -proot < sakila-data.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
Export
[root@lee backup]# mysqldump --single-transaction --triggers --routines --events --no-create-db --master-data=2 -uroot -proot sakila | gzip > leeyun.sql.gz
Import
- 현재 DB서버에 Sakila DB가 존재하기 떄문에
Sakila_backup
이라는 DB로 복구를 진행할 예정
- 백업 끝났을 떄의 Binary Log 시점 확인
[root@lee backup]# zcat leeyun.sql.gz | head -30
(생략)
-- CHANGE MASTER TO MASTER_LOG_FILE='mysql-bin.000006', MASTER_LOG_POS=1360568;
--
-- Table structure for table `actor`
--
DROP TABLE IF EXISTS `actor`;
/*!40101 SET @saved_cs_client = @@character_set_client */;
/*!50503 SET character_set_client = utf8mb4 */;
Sakila_backup
DB 생성
[root@lee backup]# mysql -uroot -proot -e "create database sakila_backup"