欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

阿里云数据库迁移遇到的问题总结

程序员文章站 2022-03-12 12:31:54
注:本文不深究任一知识点,仅限于记录阿里云迁移数据库遇到的问题及解决办法。原博客服务器:阿里云ECS+Ubuntu18.04原博客数据库:阿里云RDS+pgsql目标:将RDS数据库迁移到ECS上自建的pgsql数据库原RDS快要到期了,跑去阿里云续费页面看了一眼,简直贵的吐血:对于只是用于学习没人访问的小破站,一年1500我万万不能接受。换成MySQL又比较麻烦,想来想去,还是在ECS上再搭建个数据库服务比较靠谱,0成本。问题一:在服务器上安装的pgsql只能本地访问解决方法:....

注:本文不深究任一知识点,仅限于记录阿里云迁移数据库遇到的问题及解决办法。

  • 原博客服务器:阿里云ECS+Ubuntu18.04
  • 原博客数据库:阿里云RDS+pgsql
  • 目标:将RDS数据库迁移到ECS上自建的pgsql数据库

原RDS快要到期了,跑去阿里云续费页面看了一眼,简直贵的吐血:
阿里云数据库迁移遇到的问题总结

对于只是用于学习没人访问的小破站,一年1500我万万不能接受。换成MySQL又比较麻烦,想来想去,还是在ECS上再搭建个数据库服务比较靠谱,0成本。


问题一:在服务器上安装的pgsql只能本地访问

解决方法:

  1. 我的pgsql安装不完整。请不要使用
sudo apt-get install postgresql

这安装的只是核心包。我卸载原来的,重新使用这个命令:

sudo apt-get install postgresql postgresql-contrib
  1. 修改配置文件postgres.conf,该文件位于/etc/postgresql/x.x/main下(x取决于你的版本号),编辑或新增如下一行
listen_addresses = '*'

再修改文件pg_hba.conf,和postgres.conf在一起。编辑或新增如下一段

# TYPE  DATABASE  USER  CIDR-ADDRESS  METHOD
host  all  all 0.0.0.0/0 md5
  1. 修改阿里云安全组配置。因为阿里云默认屏蔽5432端口,所以需要手动打开。在入方向和出方向都添加规则:
    阿里云数据库迁移遇到的问题总结

问题二:数据库迁移报错

问题描述:

  • navicat上执行操作,无论是转储为sql文件再执行还是直接数据传输,都无法正确的迁移。(猜测是外键约束或者自增字段错乱的问题。我有在dev模式下的字段自增竟然是prod模式下的seq,搞不清楚这方面。)

解决方法:

  • 手动重新创建表结构、外键、索引,再使用navicat的数据同步将数据迁移过来。

问题三:数据库迁移后自增字段值不对

问题描述:

  • 由于新数据库的表结构是我手动新建的,新表的自增id字段都重新置为1了,但表里在迁移后有了很多数据,占用了很多id值。一旦id字段自增到数据库已有的id,就会冲突报错。

解决办法:

  • 通过观察和查阅资料我发现id自增是通过sequence实现的,所以只要使用命令将自增id的值设置为比数据库里最大的id大1就可以了。
# 设置 sequence 的开始值
select setval('"article".article_id_seq', 1000, false);

更多精彩文章请访问我的个人博客(zhuoerhuobi.cn)

本文地址:https://blog.csdn.net/s1293678392/article/details/107376833