如果我有一个在 RHEL 上运行的 MonetDB 数据库,该数据库在数亿行(数百 GB)的区域内有数十个(但不是数百个)表,并且我有兴趣为它实施一个体面的备份策略,特别是关于这样做的机制。
到目前为止,我一直在使用 bash 脚本迭代地调用 msqldump,在数据库中的每个表中调用一次,然后将数据输出到如下文件中:
msqldump -u [username] -t [tablename] -d [dbname] > /path/[tablename].sql.gz
我已经设置了一个 .monetdb 文件,因此在每次调用 msqldump 时不会提示我输入密码,因此可以调用此脚本并允许在无人值守的情况下完成。
这似乎有效,因为我得到了一组文件,其中包含将这些表恢复到 MonetDB 数据库所需的所有数据和模式,但它看起来确实很粗糙(并且执行起来很耗时),所以我想知道是否有“更好”的方法?
例如,如果数据库的内容在 msqldump 操作期间发生变化,我是否应该担心会发生什么?是否有更清洁和/或更快的方法来获得 MonetDB 数据库的完整备份,可能是通过停止 db/farm 并仅复制数据文件本身,如果是,实现此目的的确切方法是什么?是否有人/组织以任何类型的大规模或企业方式使用 MonetDB,他们如何实现可能为 MSSQL 数据库或类似数据库实施的相同类型的备份策略?
我在网上和 StackOverflow 上搜索了很多东西,但找不到太多关于这个主题的指导方式,所以我希望这里有人能提供帮助。
提前致谢。