요청에 따라 로컬 데이터베이스가있는 라이브 mysql 데이터베이스간에 테이블을 동기화 할 수있는 솔루션을 찾고 있습니다. 특정 솔루션이 없다면 로컬 데이터베이스와 라이브 데이터베이스를 동기화하는 좋은 솔루션은 무엇입니까?(부분) mysql을 이용한 데이터베이스 동기화
답변
항상 선택한 테이블을 내보내고 다시 가져올 수있는 phpmyadmin이 있습니다.
개발 시스템으로 작업해야하는 라이브 DB가있는 경우 실용적인 솔루션입니다. 당신은 데이터베이스의 복사본을 가져 와서 작업 할 수 있습니다. 고객 테이블을 만든 다음 오프라인으로 라이브를 가져 와서 백업하고 고객 테이블을 제외한 모든 데이터를 삭제하고 업데이트 된 데이터베이스를 가져옵니다.
phpmyadmin의 장점은 쿼리를 보여 주므로 다음 스크립트를 함께 사용하여 다음에 업데이트 할 때 사용할 수 있다는 것입니다.
@ ʍǝɥʇɐɯ Mathew, 내가 찾고 있었던 것은 더 자동화 된 또는 자동화 가능한 (테이블을 선택하여 필요에 따라 동기화하거나 x 일마다 자동으로 동기화하는) 것입니다. 필자는 기술 수준의 초급 단계에 머물러 있지만 phpmyadmin을 알고 있으며 필자가 아직까지 가지고 있지 않은 몇 가지 기능이 없다면 필자가 얻을 수있는 가장 매뉴얼 인 것처럼 보인다. – Argoron
... 그렇지만 안정적으로 사용할 수있는 SQL 문은 없어집니다. 이것들은 텍스트 파일에 넣을 수 있고 mysql -u user -pPASSWORD database
다음과 같은 조건이있는 경우
- 필요한 모든 테이블은 InnoDB에있는
- 라이브 DB는 공용 IP에 액세스 할 수 있습니다
당신은 개별 테이블
의 mysqldump를 수행 할 수 있습니다 다음은 쉘 스크립트를 사용하여 로컬 시스템에서 실행할 때이를 수행하는 방법입니다.
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
--single-transaction
옵션을 사용하면 원본 데이터베이스에서 INSERT, UPDATE 및 DELETE를 계속 허용하면서 테이블의 특정 시점 스냅 샷을 생성합니다.
테이블이 너무 큰 경우 시간 초과 문제가 발생할 수 있습니다. 다음 스크립트를 대신 사용해보십시오.
LIVEDB_IP=192.168.1.10
MYSQL_SRCUSER=whateverusername
MYSQL_SRCPASS=whateverpassword
MYSQL_SRCCONN="-h${LIVEDB_IP} -u${MYSQL_SRCUSER} -p${MYSQL_SRCPASS}"
SOURCE_DB=mydb_source
MYSQL_TGTUSER=whateverusername2
MYSQL_TGTPASS=whateverpassword2
MYSQL_TGTCONN="-h127.0.0.1 -u${MYSQL_TGTUSER} -p${MYSQL_TGTPASS}"
TARGET_DB=mydb_target
TBLLIST="tb1 tb2 tb3"
for TB in `echo "${TBLLIST}"`
do
mysqldump ${MYSQL_SRCCONN} --single-transaction ${SOURCE_DB} ${TB} | gzip > ${TB}.sql.gz &
done
wait
for TB in `echo "${TBLLIST}"`
do
gzip -d < ${TB}.sql.gz | mysql ${MYSQL_TGTCONN} -A -D${TARGET_DB} &
done
wait
사용해보세요! 필요한 테이블의 MyISAM 인 경우
주의
그냥 mysqldump는에서 --single-transaction
를 제거합니다. 이로 인해 쿼리가 필요로하는 테이블로 mysqldump가 완료 될 때까지 원본 데이터베이스의 쿼리가 멈출 수 있습니다. 이 경우 적은 트래픽 시간에만이 스크립트를 수행하십시오.
데스크톱 db 관리자 SQLYog에는 이와 같은 설정을위한 "Job Scheduler"도구가 있습니다. 전문 또는 엔터프라이즈 라이센스가 필요합니다 (소리보다 쌉니다). 30 일 평가판은 처음에 체크 아웃하려는 경우 완전한 기능을 제공합니다.
- 1. mysql을 이용한 java 연결
- 2. Spring, Hibernate 및 mySQL을 이용한 트랜잭션 관리
- 3. 레일을 이용한 데이터베이스 구현
- 4. 인공물 - 부분 저장소 동기화
- 5. 데이터베이스 동기화
- 6. 데이터베이스 동기화
- 7. mysql을 이용한 서브 쿼리의 올바른 사용
- 8. jquery와 mysql을 이용한 다중 드롭 다운 선택
- 9. MySQL을 이용한 엄격한 데이터 유효성 확인
- 10. MySQL을 이용한 멀티 테넌트 레일 애플리케이션 구축
- 11. LIKE와 MySQL을 이용한 레코드 필터링은 변경되지 않습니다.
- 12. Spring, Hibernate 및 mySQL을 이용한 트랜잭션 관리
- 13. 보안 사이트와 비보안 사이트 간의 부분 데이터베이스 동기화?
- 14. 원격 서버 마스터와의 아이폰 로컬 데이터베이스 동기화
- 15. 원격 데이터베이스가있는 ipad의 동기화 데이터베이스
- 16. 데이터베이스 롤백을 이용한 단위 테스트
- 17. MongoDB 데이터베이스, LIKE를 이용한 쿼리
- 18. CakePHP 2.0을 이용한 데이터베이스 테스팅
- 19. shiro를 이용한 데이터베이스 인증 1.2.1
- 20. mysqldump를 이용한 mysql 데이터베이스 백업
- 21. mysql을 & PHP : 데이터베이스
- 22. PHP + MySQL을 - 데이터베이스
- 23. 동기화 2 MySQL 데이터베이스
- 24. MySql 데이터베이스 동기화
- 25. 데이터베이스 동기화 옵션
- 26. DataGridview와 데이터베이스 테이블 동기화
- 27. SQL 데이터베이스 동기화
- 28. SQL 데이터베이스 동기화
- 29. 두 데이터베이스 간 동기화
- 30. 서버와의 오프라인 데이터베이스 동기화
이 작업을 명확히하기 위해 liveDB의 테이블에서 localDB의 테이블로 새 데이터를 복사 하시겠습니까? localDB의 스키마를 변경 하시겠습니까? –
@ Cshift3iLike 아이디어는 주로 테이블 중 하나를 선택하여 데이터베이스 중 하나에 추가 된 데이터를 동기화하는 것입니다. – Argoron