2012-07-25 17 views
2

在Advantage中进行备份时,我们只想备份一些包含某些结构数据的表格。这些表可能会在数据库更新中更改,但大多数表不会。其他表格包含大量的blob数据:潜在的10个演出。备份和恢复Advantage数据库中的特定表格

如果在数据库更新中发生错误,并且我们希望恢复已备份的表,那么我们有哪些选项可以保留原始大型表,但还原所选表?将它们还原到现有数据库,保留旧的大型表格?释放大表并将它们添加到新恢复的数据库中?

(注:备份表和大表之间没有RI规则,但大表做备份的表参考autoincs。)

回答

3

您可以使用包含列表来限制表备份或恢复。例如,如果您使用的是adsbackup.exe命令行工具,你可以限制备份到两个表:

adsbackup -i"table1,table2" test.add c:\mypath\backup\ 
具有还原

然后,你还可以将其限制在特定的文件:

adsbackup -r -i"table1,table2" c:\mypath\backup\test.add c:\mypath\restore\test.add 

请注意,使用包含列表指定还原操作时,字典(.add)文件只有在尚不存在时才会被还原。因此,如果您还原到包含列表的现有字典,它将只复制指定的表。

+0

因此,恢复到包含列表的现有字典将保留来自非包含表的数据?这不会导致表与非包含表的字典问题不同步? – 2012-07-30 19:55:57

+0

@EricG:一般来说,不会,因为字典不会被复制(如果您还原到现有位置)。但是如果非恢复表与恢复表之间存在任何形式的关联,则会导致逻辑不一致(您说没有RI,但有时候数据库随着时间的推移而隐含相关)。 – 2012-07-30 20:24:23

+0

太棒了。我会仔细检查并运行一些测试,以确保我们没有遗漏任何东西。感谢澄清! – 2012-07-30 20:30:24