我必须将 80GB 的数据库从 pg8.2 迁移到 pg8.4。该数据库有很多库存程序,我需要一些技巧来成功(并且轻松 ;) )欢迎任何技巧 :)
答案1
除了其他答案中给出的有价值的具体建议外,这类问题的典型答案是阅读发行说明。例如,在从 8.2 升级到 8.4 时,您应该阅读发行说明
- 8.3 的:http://www.postgresql.org/docs/8.3/static/release-8-3.html
- 8.4:http://www.postgresql.org/docs/8.4/static/release-8-4.html
特别是列出已知不兼容性的迁移部分。
答案2
测试是绝对必要。由于你跳过了它,自 8.3 起:
非字符数据类型不再自动转换为TEXT (Peter, Tom)
我们花了相当多的工作来查找所有我们信任自动转换的地方(例如,我们必须WHERE dob LIKE '%-09-%'
发送生日电子邮件,它不仅信任 dob 被自动类型转换,还信任 Postgres 会为其输出选择 yyyy-mm-dd 格式)。
答案3
最好的建议是遵循Postgres 手册中提供了升级说明(另见本节) — 在您的情况下,这将涉及数据库转储和恢复。
您可能应该在开发机器上设置新数据库并测试恢复(和数据库功能),然后再在生产硬件上执行此操作。切换时
,您一定要备份PGDATA
旧安装的目录(或为新安装的数据目录提供新路径),以便在迁移过程中发生不可预见的灾难性故障时可以返回旧系统。
答案4
测试、测试、再测试。如果可能的话,在迁移之前将其安装在新机器/服务器上,并进行测试运行,检查哪些可以运行,更重要的是,哪些不能运行。制定一份测试计划,测试所有需要运行的程序。