Porque nossa empresa usou o banco de dados postgresql9.6 instalado online pelo apt no início da instalação do banco de dados.Recentemente, o serviço precisa ser armazenado em contêineres, então o banco de dados precisa ser migrado, mas porque a instalação do apt é diferente do método de migração do banco de dados de instalação de origem.
Em primeiro lugar, usei o ubuntu16.04 para este teste. A versão do banco de dados é postgresql9.6
A premissa da migração do banco de dados é que a versão do banco de dados e o sistema do servidor devem ser consistentes com as informações antes da migração
Então instale a mesma versão do banco de dados postgresql de antes na nova máquina de acordo com o método de instalação apt
1、安装postgreSQL
sudo add-apt-repository "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main"
wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
sudo apt-get update
sudo apt-get install postgresql-9.6
Modifique o arquivo de configuração do postgresql após a instalação
vim /etc/postgresql/9.6/main/postgresql.conf
修改data_directory = '/opt/pgdata' pgdata是你从其他服务器上拉取过来的目录
然后systemctl restart postgresql
Possíveis problemas
psql: FATAL: database locale is incompatible with operating system
DETAIL: The database was initialized with LC_COLLATE "zh_CN.UTF-8", which is not recognized by setlocale().
HINT: Recreate the database with another locale or install the missing locale.
solução
localedef -f UTF-8 -i zh_CN zh_CN.UTF-8
Depois de reiniciar o postgresql, veja as informações do banco de dados como as novas informações do banco de dados