复制数据库更改
问题描述:
我想将数据库“复制”到外部服务。为此,我可以复制整个数据库(SELECT * FROM TABLE)。复制数据库更改
如果进行了一些更改(INSERT,UPDATE,DELETE),是否需要重新上传整个数据库,或者是否存在描述这些操作的日志文件?
谢谢!
答
这听起来像你的“外部服务”不只是另一个数据库,所以传统的复制可能不适合你。有关该服务的更多详细信息会很棒,因此我们可以自定义答案。这取决于你有多久获取数据到应用程序中的外部服务和性能要求,一些主要的选项是:
- 触发器:添加INSERT/UPDATE/DELETE触发器 不断更新的外部服务的 数据时您的数据的变化(这 可能是在你的应用程序的 表现粗糙,但提供近 为您的外部 服务的实时数据)
- 日志处理:您可以解析从日志中的变化,并使用ETL的一定程度的确保他们将在您的外部服务的数据存储上正常运行。如果你不熟悉你的特定DBMS的结构,我不会推荐进入这个领域。
- 递增差异:您可以在某个时间间隔(例如每天3次)运行差异,并且执行cron作业或计划任务来运行脚本,将所有数据移动到一个大块中。这优先考虑您的应用在外部服务上的表现。
如果您选择触发器,您可能可以调整现有的基于触发器的复制解决方案来更新您的外部服务。我没有用过这些,所以我不知道这会是多么的疯狂,只是一个想法。一些示例是Bucardo和Slony。
答
有很多方法可以复制PostgreSQL数据库。在当前的9.0版本中,PostgreSQL全球开发小组引入了两项新的功能,称为Hot Standby和Streaming Replication,将PostgreSQL提升到新的水平并引入内置解决方案。
在维基,存在的新的PostgreSQL-9.0's功能完成的审查: http://wiki.postgresql.org/wiki/PostgreSQL_9.0
有喜欢Bucardo这,Slony聚-I,Londiste(Skytools)等其他应用程序,它可以也使用。
现在,你想要做什么日志处理?你想要什么?问候
那个数据库引擎是这样的吗?您标记了MySQL和PostGreSQL。 – 2010-10-27 14:36:13
可能重复的[我如何同步两个具有相同结构和不同服务器的MySQL表](http://stackoverflow.com/questions/3942380/how-can-i-synchronize-two-mysql-tables-that-have -same-structures-and-different-se) – 2010-10-27 17:23:18
是否有一些用于处理日志文件的库(如MySQL二进制日志)?将数据库服务器连接到互联网上的服务器有没有安全和简单的方法? – carlosalbertomst 2010-10-27 19:25:13