【问题标题】:Sybase: Dump/load from a larger database to a smaller databaseSybase:从较大的数据库转储/加载到较小的数据库
【发布时间】:2012-03-01 12:46:46
【问题描述】:

如何将数据库(架构和数据)移动到较小的数据库中? Sybase 不允许将转储加载到比原始数据库更小的数据库中。

Sybase 12.5.3 ASE

【问题讨论】:

  • 编辑成问题。谢谢!

标签: database load dump sap-ase shrink


【解决方案1】:

我刚刚遇到了类似的问题,但没有意识到 Sybase 不支持“收缩”数据库的能力!所以我想出的唯一选择是......

转储和加载

做一个完整的dump and load。但是,如果您的目标服务器没有足够的磁盘空间,那么您就不走运了!像我这样的情况真的很痛苦,源数据库只使用了 5%,但转储 + 加载仍然需要完整的 100% 分配的数据库。

提取 DDL 和 BCP 数据

使用 DDLGen 或 Embarcadero DBArtisan 之类的工具从源数据库中提取 DDL。然后使用BCP从源数据库中提取数据并导入目标数据库

【讨论】:

  • 转储和加载:我无法加载到比原始数据库更小的数据库中。也许我错过了一个选项?
  • 你说得对,Brian,你不能加载到更小的数据库中。我的回答是“转储和加载”对我也没有好处,因为您必须加载到相同分配大小的数据库中
【解决方案2】:

一种解决方案是将转储放入相同大小的数据库中,然后将架构和数据传递给较小的数据库。

你可以删除第一个数据库(最大的)。


使用 Sybase Central,您可以快速从数据库中获取模式,然后您只需要 bcp 数据。

【讨论】:

  • 如何传递架构和数据?
  • @Brian 你使用 Sybase Central 吗?
  • 不,值得一看吗? Sybase Central 如何传输数据库?通过脚本?我尝试使用 RapidSQL 和另一个工具来编写模式脚本。我发现的最大障碍是他们不了解存储过程之间的依赖关系。为了让它变得更狡猾,一些存储过程依赖于其他存储过程创建的临时表。其他问题:这些工具没有正确使用用户定义的类型编写列默认值,而且我们还有一些违反 FK 约束的数据(是的,很糟糕)。这一切都让通过脚本传输数据库变得很痛苦。
猜你喜欢
  • 2015-06-25
  • 2016-04-03
  • 1970-01-01
  • 2018-10-12
  • 2018-04-14
  • 2010-09-17
  • 1970-01-01
  • 1970-01-01
  • 2020-01-13
相关资源
最近更新 更多