2010-12-21 6 views
1

누구나 mysqldump에서 일부 테이블의 마스킹 (익명화) 효율성을 알고 있습니까? 필자는 파서를 이미 마쳤지만 유감스럽게도 덤프 시간이 길어지기 때문에 큰 덤프 (1GB 덤프라고 말하면 ++)는 잘 작동하지 않습니다.어떤 방법으로 mysqldump를 가면 되나요?

내가 한 것은 테이블 열을 먼저 구문 분석 (긴 시간이 걸리지 않아야 함)하고 특정 테이블에 대한 전체 삽입 문자열을 구문 분석하는 것입니다.

나는 루비를 사용하고 있으며 가능한 경우 사용하고 싶습니다.

은 또한 다음 내부 루비 코드를 통해 (마스킹) 업데이트를 덤핑, 그것을 덤프 수출 다시 덤프 수출의 개념으로 보았다. 나는 이것이 얼마나 오래 걸릴지는 시험하지 않았지만. 서버에서 GET 덤프, 다음, mysql을

에 압축을 덤프 새로운 하나는 서버, 압축 해제, 마스크 기밀 데이터에서 GET 덤프 수와 MySQL로 덤프 것 :

이에 대한 현재 워크 플로우는 것

현재 워크 플로우는 1~2기가바이트 ++ 덤프 최대 2 시간이 걸릴 것입니다하지만 불행히도 난 이미 새에 4 시간을 보냈다 있지만 여전히 일부를 마스킹/구문 분석에 완료되지 않습니다. : 1 비율 루비 GC가 1에없는 것으로 알려져 있기 때문에

나는 또한 더 많은 메모리를 소모 변수와 물건을 복용하여 코드를 즉석에서 조언했다. 나는 이것이 REE (루비 엔터프라이즈 에디션)에 최적화되어 있다고 믿지만 현재 REE도 사용 중이다.

누구든지이 작업을 수행하고 생각을 공유 했습니까? 감사. http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html#option_mysqldump_ignore-table

답변

3

당신은 당신이 덤프하고 싶지 않은 테이블을 지정할 수 있습니다. 구조가 항상 바뀌지 않는다면, mysqldump의 custom where 함수를 악용하여 SQL을 주입하는 것입니다. 예를 들어

: 세 열의 테이블

mysqldump -options -w "0=1 union select field1, 'constant', 
anonymize(field3) from table" database table 

이 뜻은, 본래 최초의 열 일부 상수 값을 상기 제 세트의 임의의 기능을 갖는 제 혼용에 덤프 할.

3

년 후,하지만 (광산 등) 향후 검색에 유용 할 수 있습니다

관련 문제