내부 서버와 웹 호스팅 서버에 각각 동일한 두 개의 MySQL 데이터베이스가 있습니다. 내부 서버의 데이터베이스로 매일 웹 호스트의 데이터베이스를 업데이트하고 싶습니다. 이 프로세스를 자동화하는 방법이 있습니까? 또한 수동으로 수행 할 수 있습니까? 수동으로 수행하려면 내부 서버에서 데이터베이스의 SQL 덤프를 가져온 다음 웹 호스트의 데이터베이스로 가져와야합니까? 조언을 부탁드립니다.
내부 서버와 웹 호스팅 서버에 각각 동일한 두 개의 MySQL 데이터베이스가 있습니다. 내부 서버의 데이터베이스로 매일 웹 호스트의 데이터베이스를 업데이트하고 싶습니다. 이 프로세스를 자동화하는 방법이 있습니까? 또한 수동으로 수행 할 수 있습니까? 수동으로 수행하려면 내부 서버에서 데이터베이스의 SQL 덤프를 가져온 다음 웹 호스트의 데이터베이스로 가져와야합니까? 조언을 부탁드립니다.
답변:
몇 가지 옵션이 있습니다.
서버간에 MySQL 복제를 설정하십시오. 내부 서버는 마스터 역할을하고 웹 호스트 서버는 슬레이브 역할을 할 수 있습니다. 마스터에서 수행 된 모든 업데이트는 작동중인 연결을 가정하여 즉시 슬레이브에 복제됩니다. 가장 쉽고 효과적인 옵션 일 것입니다. 복제를 사용하려면 웹 호스트에서 네트워크를 통해 내부 데이터베이스에 액세스 할 수 있어야합니다.
매일 내부 서버에서 mysqldump를 수행하고 덤프 파일을 웹 호스트에 업로드하고 데이터를 가져올 수 있습니다. 이것은 전체 덤프이므로 매우 큰 데이터베이스가있는 경우에는 이것이 불가능할 수 있습니다. 원하는 경우이 절차를 수동으로 수행하지 않아도되도록 스크립트를 작성할 수 있습니다.
내부 서버에서 이진 로깅 을 설정할 수 있습니다 . 그런 다음 이진 로그를 웹 호스트에 전달하고 데이터베이스에 적용하여 그날 발생한 모든 트랜잭션을 웹 서버에 효과적으로 재생합니다. 실제로 이것은 복제와 함께 발생하므로 거의 항상이 옵션 대신 복제 설정을 사용합니다.
두 데이터베이스간에 연결이없는 경우 매일 mysqldumps를 사용하는 것이 가장 쉬운 방법입니다.
두 데이터베이스를 동기화하는 데 도움이되는 symmetricDS 와 같은 옵션을 사용할 수도 있습니다 . 이를 통해 인터넷 대역폭을 절약 할 수있는 방식으로 동기화해야하는 테이블을 선택할 수 있습니다. 이는 두 위치 사이에 연결이 부족한 시나리오에도 적합합니다.
MariaDB로 데이터베이스 복제를 설정하는 방법 : https://www.techrepublic.com/article/how-to-set-up-database-replication-with-mariadb/