有什么方法来掩盖mysqldump?

poy*_*ode 2 ruby mysql mysqldump masking

有人知道mysqldump中某些表的屏蔽(匿名化)效率吗?我已经完成了我的分析器但遗憾的是它不工作,关于大堆放好(让说1GB的++转储),因为它确实增加了转储时间因解析.

我所做的是首先解析表列(不应该花很长时间)并解析特定表的整个插入字符串.

我正在使用ruby,如果可能的话我想使用它.

我还研究了导出转储,转储它,通过内部ruby代码更新(屏蔽)然后再次导出转储的想法.虽然我没有尝试过多长时间.

当前的工作流程是:从服务器获取转储,解压缩,然后转储到mysql

新的将从服务器转储,解压缩,屏蔽机密数据并转储到mysql

对于1-2GB ++转储,当前的工作流程最多需要2个小时但不幸的是我已经在新的一个上花了4个小时,但它仍未在解析/屏蔽部分完成.

我还被建议通过取出变量和消耗更多内存的东西来即兴创建代码,因为据说ruby gc不是1:1的比例.我相信这是在REE(ruby企业版)上进行了优化,但我现在也在使用REE.

有没有人这样做,也许分享他们的想法?谢谢.

bar*_*lle 6

多年以后,但对未来的搜索可能有用(比如我的).你可以做的,如果你的结构不是一直改变,就是滥用custom wheremysqldump 的功能来注入SQL.

例如:

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

对于三列表,这将执行转储,第一列未触及,第二列设置为某个常量值,第三列使用任意函数进行修改.