Alguns comandos serão exigidos várias vezes neste manual, para isso você precisará usar os seguintes comandos (quando solicitado):
Quando for solicitado | Comando |
Conectar ao banco PostgreSQL | psql -U postgres |
Sair do banco (quando estiver conectado) | \q |
Reiniciar o PosgreSQL | systemctl stop postgresql systemctl start postgresql |
Verificar o status do serviços PosgreSQL | systemctl status postgresql |
Habilitar uma extensão no PostgreSQL | Conecte no banco PostgreSQL e execute o comando: CREATE EXTENSION nome_da_extensão; |
Outro item importante a ser falado é que ambiente do servidor PosgreSQL, integrado ao LDAP, neste manual poderá ser feito de dois modos. Demonstrados seguindo fluxo abaixo:
Para a configuração desse servidor instale o CentOS 9 (caso precise, leia nosso post Instalação padrão do CentOS para isso). Tenha os seguintes pré-requisitos antes de continuar:
- Faça o registro DNS (vincular o nome do servidor ao IP), para facilitar o acesso ao servidor para todas as equipes;
- Dois discos
- Instale o Sistema operacional todo no primeiro disco e deixe o segundo para configurar (descrito nesse manual) as bases do PostgreSQL;
- Para o PgAdmin, será necessário:
- Um grupo, no AD, para os usuários que poderão acessar.
- Uma conta do AD de serviço: que:
- Nunca expira
- No Logon
- Senha sem caracteres especiais
- O Distinguished Name (DN) do:
- Usuário de serviço;
- Da OU onde ficam os usuários;
- Do grupo com acesso ao pgAdmin;
Será instalado os seguintes pacotes (observando a matriz de compatibilidade do PostGIS):
Pacote | Versão | Onde obter |
PostgreSQL | 15.2 | https://postgresql.org |
pgAdmin4 | 6.21 | https://pgadmin.org |
GEOS | 3.10 | https://github.com/libgeos/geos |
SFCGAL | 1.4.1 | https://gitlab.com/Oslandia/SFCGAL/-/releases |
PROJ | 9.2.0 | https://github.com/OSGeo/PROJ/releases |
GDAL | 3.5.3 | https://github.com/OSGeo/gdal/releases |
protobuf-c | 1.4.1 | https://github.com/protobuf-c/protobuf-c/releases |
json-c | 0.14 | https://github.com/json-c/json-c |
PostGIS | 3.3.2 | https://postgis.net |
pgAgent | 4.2.2 | https://www.pgadmin.org/download/pgagent-source-code/ |
pgrouting | 3.1.4 | https://docs.pgrouting.org/3.1 |
Instalação
Instale o CentOS no padrão, ao final da instalação execute:
mv /usr/bin/pg_config /usr/bin/pg_config_old
yum install bison flex libpq-devel makecache readline-devel zlib-devel openldap openldap-clients openldap-devel -y
cd /tmp
wget https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gz
tar xpzf postgresql*.tar.gz
rm -rf postgresql*.tar.gz
cd postgresql*
./configure --prefix=/usr/local/pgsql --with-ldap
make
make install
cd contrib
make
make all
make install
cd /tmp
rm -rf postgresql*
firewall-cmd --zone=public --add-port=5432/tcp
firewall-cmd --zone=public --add-port=5432/tcp --permanent
adduser postgres
mkdir -p /usr/local/pgsql/data
chown postgres /usr/local/pgsql/data
chown postgres /var/lib/pgsql/data
cd /usr/local/pgsql/bin
for i in `ls *`; do ln -s /usr/local/pgsql/bin/$i /usr/bin/$i;done
su - postgres
initdb -D /var/lib/pgsql/data
pg_ctl -D /var/lib/pgsql/data -l logfile start
Volte como root e execute:
rm -rf /usr/share/pgsql
ln -s /usr/local/pgsql/share /usr/share/pgsql
cd /var/lib/pgsql/data
mkdir -p /etc/pgsql
for i in `ls *.conf`; do ln -s /var/lib/pgsql/data/$i /etc/pgsql/$i;done
sed -i "s/#listen_addresses =/listen_addresses = '*'\n#listen_addresses =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_destination =/log_destination = 'stderr'\n#log_destination =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#logging_collector =/logging_collector = on\n#logging_collector =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_directory =/log_directory = 'log'\n#log_directory =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_filename =/log_filename = 'postgresql.log'\n#log_filename =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_rotation_age =/log_rotation_age = 30d\n#log_rotation_age =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_rotation_size =/log_rotation_size = 0\n#log_rotation_size =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_truncate_on_rotation =/log_truncate_on_rotation = on\n#log_truncate_on_rotation =/g" /var/lib/pgsql/data/postgresql.conf
sed -i "s/#log_line_prefix =/log_line_prefix = '%m [%p] '\n#log_line_prefix =/g" /var/lib/pgsql/data/postgresql.conf
vim /usr/lib/systemd/system/postgresql.service
Pressione a tecla INSERT, para entrar em modo de edição e deixe o arquivo da seguinte forma:
[Unit] Description=PostgreSQL database server After=network.target [Service] Type=idle User=postgres Environment=PGDATA=/var/lib/pgsql/data Environment=PGPORT=5432 Environment=PGLOG=/var/log/postgresql.log #ExecStart=cd /home/postgres & /usr/local/pgsql/bin/pg_ctl -D /var/lib/pgsql/data -l /var/log/postgresql.log ExecStart=/usr/local/pgsql/bin/postmaster -D /var/lib/pgsql/data ExecReload=/bin/kill -HUP $MAINPID KillMode=mixed KillSignal=SIGINT TimeoutSec=0 TimeoutStartSec=0 TimeoutStopSec=1h OOMScoreAdjust=-1000 Restart=always RestartSec=30s [Install] WantedBy=multi-user.target |
Agora, execute os comandos:
systemctl enable postgresql
sed -i "s/host/#host/g" /var/lib/pgsql/data/pg_hba.conf
sed -i "s/local/#local/g" /var/lib/pgsql/data/pg_hba.conf
echo "# TEMPORARY LOCAL ACCESS (WITHOUT PASSWORD)" >> /var/lib/pgsql/data/pg_hba.conf
echo "local all all trust" >> /var/lib/pgsql/data/pg_hba.conf
echo "# DEFAULT ACCESS" >> /var/lib/pgsql/data/pg_hba.conf
echo "host all all 0.0.0.0/0 md5" >> /var/lib/pgsql/data/pg_hba.conf
Desabilitando o acesso local sem senha
ATENÇÃO: Esse procedimento pode impedir um backup ou restore de um banco, tenha cuidado e desfaça esse procedimento, caso precise.
Da forma como configuramos até aqui o PostgreSQL aceita conexões locais sem necessitar de senha, para mudarmos isso vamos:
Para definirmos uma senha ao usuário local postgres, execute:
passwd postgres
O sistema solicitará a senha a ser definida, informe a senha e em seguida confirme-a. Agora, para alterar a configuração de conexões locais e exigir autenticação, execute o seguinte comando:
psql -U postgres
Ao acessar o banco (ainda sem senha), execute o seguinte comando para definir a nova senha:
ALTER USER postgres password 'SENHA_PARA_ESTA_CONTA';
Para sair do banco digite \q
Agora execute:
LOCALCONN=`cat /var/lib/pgsql/data/pg_hba.conf | grep ^local`
sed -i "s/$LOCALCONN\nhost all postgres all md5/local all all md5/g" /var/lib/pgsql/data/pg_hba.conf
Por fim, reinicie o PostgreSQL:
systemctl stop postgresql
systemctl start postgresql
Melhorando as informações do log
O log padrão do PostgreSQL informa/salva apenas 2 valores: O datetime(%m) e pid(%p). Para deixar configurado um log mais completo altere o arquivo postgresql.conf, com o comando:
vim /var/lib/pgsql/data/postgresql.conf
Localize a linha log_line_prefix. Em seguida pressione a tecla INSERT, para entrar em modo de edição e altere essa linha:
De: | Altere para: |
log_line_prefix = ‘%m [%p] ‘ | log_line_prefix = ‘%t [%p]: user=%u,db=%d,app=%a,client=%h ‘ |
Depois de alterar, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida reinicie o PostgreSQL, com o comando:
systemctl stop postgresql
systemctl start postgresql
Agora o log gerado pelo PostgreSQL passará a ter informações mais completas.
Integração de autenticação com o Active Directory
Conforme explicitado inicialmente, há duas formas de executar o fluxo de autenticação do usuário com o Active Directory, abaixo daremos duas opções, mas antes de continuar, sugerimos que você teste se o seu servidor está tendo acesso ao seu LDAP (e se suas informações, necessárias para configurar, estão corretas), pra isso tente o seguinte comando:
ldapsearch -x -b “DN_DA_OU_ONDE_ESTAO_OS_USUARIOS” -H ldap://IP_DO_SEU_DC -D “conta_de_serviço@seudominio.com.br” “(&(objectClass=user)(memberOf=DN_DO_GRUPO_DO_AD))” -W
Opção 1 – Integrando a autenticação do Postfix com o LDAP
Antes de qualquer configuração, é necessário:
Para configurar, execute:
vim /etc/pgsql/pg_hba.conf
Localize a seguinte linha:
host all all 0.0.0.0/0 md5 |
Pressione a tecla INSERT do teclado, para entrar em modo de edição. Altere essa linha e deixe da seguinte forma (altere as partes em cinza, caso seja necessário, lembrando que o ldapbasedn não aceita apenas o domínio, PRECISA colocar uma OU):
host all all 0.0.0.0/0 ldap ldapserver=IP_DO_SEU_DC ldapbasedn=”DN_DA_OU_ONDE_ESTAO_OS_USUARIOS” ldapbinddn=”conta_de_serviço@seudominio.com.br” ldapbindpasswd=”SENHA_DESSA_CONTA” ldapsearchfilter=”(&(objectClass=user)(sAMAccountName=$username)(memberOf=DN_DO_GRUPO_DO_AD))” |
Após a edição, pressione a tecla ESC para sair do modo de edição, em seguida digite :wq! e pressione ENTER para salvar e sair.
Agora, vamos criar os usuários no banco de dados, para terem o acesso após se autenticarem. Para isso, execute:
su - postgres
psql
Dentro do PostgreSQL, para cada usuário que é membro do grupo do Active Directory, execute (alterando a parte em cinza):
create user "login_do_ad" superuser createrole createdb;
create database login_do_ad;
\q
Reinicie o serviço do PostgreSQL e teste a conexão com um usuário LDAP.
Opção 2 – Utilizando o pgAdmin4
rpm -i https://ftp.postgresql.org/pub/pgadmin/pgadmin4/yum/pgadmin4-redhat-repo-2-1.noarch.rpm
yum install pgadmin4-web policycoreutils-python-utils python-devel python3-devel -y
pip install https://ftp.postgresql.org/pub/pgadmin/pgadmin4/v6.9/pip/pgadmin4-6.9-py3-none-any.whl
pip install python-ldap psycopg2 ldap3
yum groupinstall "Development tools" -y
/usr/pgadmin4/bin/setup-web.sh
Configure o assistente (pode usar e-mail fictício)
firewall-cmd --zone=public --add-port=80/tcp
firewall-cmd --zone=public --add-port=80/tcp --permanent
Execute os comandos abaixo, alterando as partes em cinza conforme a realidade do ambiente:
sed -i "s/AUTHENTICATION_SOURCES = \['internal'\]/AUTHENTICATION_SOURCES = \['ldap'\] /g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_USERNAME_ATTRIBUTE = '<User-id>'/LDAP_USERNAME_ATTRIBUTE = 'sAMAccountName'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_SERVER_URI = 'ldap:\/\/<ip-address>:<port>'/LDAP_SERVER_URI = 'ldap:\/\/10.1.0.2:389'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_BASE_DN = '<Base-DN>'/LDAP_BASE_DN = 'dc=seudominio,dc=com'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_SEARCH_BASE_DN = '<Search-Base-DN>'/LDAP_SEARCH_BASE_DN = 'dc=seudominio,dc=com'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_SEARCH_FILTER = '(objectclass=*)'/LDAP_SEARCH_FILTER = '(&(objectClass=user)(memberof=DN_DO_GRUPO_DO_AD))'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_BIND_USER = None/LDAP_BIND_USER = 'conta_de_serviço@seudominio.com.br'/g" /usr/pgadmin4/web/config.py
sed -i "s/LDAP_BIND_PASSWORD = None/LDAP_BIND_PASSWORD = 'senha_desta_conta'/g" /usr/pgadmin4/web/config.py
Agora, acesse http://IP_DO_SEU_SERVIDOR/pgadmin4, caso tenha problemas com a autenticação LDAP, teste no Linux (comando ldapsearch -x -b “dc=seudominio,dc=com” -H ldap://IP_DO_SEU_DC -D “conta_de_serviço@seudominio.com.br” -W) e faça o troubleshoot do que há de errado.
Instalação do GEOS
yum install epel-release -y
yum install geos geos-devel -y
Instalação do SFCGAL
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install boost boost-devel cmake gcc-c++ gmp gmp-devel mpfr-devel qt5 SFCGAL SFCGAL-libs yasm -y
cd /tmp
wget https://github.com/CGAL/cgal/releases/download/v5.5.2/CGAL-5.5.2.zip
wget https://gitlab.com/Oslandia/SFCGAL/-/archive/v1.4.1/SFCGAL-v1.4.1.tar.gz
unzip CGAL-*.zip
tar xpzf SFCGAL-v1.4.1.tar.gz
rm -rf CGAL-*.zip
rm -rf SFCGAL-*.gz
cd CGAL
cmake .
make install
cd /tmp/SFCGAL-*
cmake . && make && sudo make install
cd /tmp
rm -rf *GAL-*
Instalação do PROJ
yum install libcurl-devel libtiff libtiff-devel sqlite libsqlite3x sqlite-devel -y
cd /tmp
wget https://github.com/OSGeo/PROJ/releases/download/9.2.0/proj-9.2.0.tar.gz
tar xpzf proj*.tar.gz
rm -rf proj*.tar.gz
cd proj*
mkdir build
cd build
cmake ..
cmake --build .
cmake --build . --target install
cd /tmp
rm -rf proj*
Instalação do GDAL
ldconfig
yum install epel-release libxml2-devel pcre-devel -y
cd /tmp
wget https://github.com/OSGeo/gdal/releases/download/v3.5.3/gdal-3.5.3.tar.gz
tar xpzf gdal*.tar.gz
rm -rf gdal*.tar.gz
cd gdal*
./configure --with-libkml --prefix=/usr
make
make install
cd /tmp
rm -rf gdal*
Instalação do protobuf-c
yum install protobuf protobuf-c protobuf-c-devel protobuf-devel protobuf-compiler --enablerepo=crb -y
cd /tmp
wget https://github.com/protobuf-c/protobuf-c/releases/download/v1.4.1/protobuf-c-1.4.1.tar.gz
tar xpzf protobuf*.tar.gz
rm -rf protobuf*.gz
cd protobuf*
./configure
make
make install
Instalação do json-c
yum install json-c -y
Instalação do PostGIS
rm -rf /usr/bin/sfcgal-config
cd /usr/local/bin
for i in `ls`; do ln -s /usr/local/bin/$i /usr/bin/$i;done
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install epel-release libxml2-devel pcre-devel -y
cd /tmp
wget https://download.osgeo.org/postgis/source/postgis-3.3.2.tar.gz
tar xpzf postgis-3.3.2.tar.gz
rm -rf postgis*.tar.gz
cd postgis*
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config --libdir=/usr/local/lib64/ --with-sfcgal=/usr/bin/sfcgal-config
make
make install
cd extensions/postgis
make clean
make
export PGUSER=postgres
make install
cd /tmp
rm -rf postgis*
cd /usr/local/lib64/
for i in `ls *.*`;do ln -s /usr/local/lib64/$i /usr/lib64/$i; done
Para habilitar, acesse o postgreSQL e execute o comando:
CREATE EXTENSION postgis;
Instalação do pgRouting
yum install cmake doxygen g++ pcre-devel perl texlive -y
cd /tmp
wget -O pgrouting-3.1.4.tar.gz https://github.com/pgRouting/pgrouting/archive/v3.1.4.tar.gz
tar xpzf pgrouting-3.1.4.tar.gz
rm -rf pgrouting*.tar.gz
cd pgrouting*
mkdir build
cd build
sed -i "s/\/usr\/include\/server/\/usr\/local\/pgsql\/include\/server/g" /tmp/pgrouting-3.1.4/cmake/FindPostgreSQL.cmake
cmake ..
sed -i "s/POSTGRESQL_EXECUTABLE\:FILEPATH/POSTGRESQL_EXECUTABLE\:FILEPATH=\/usr\/local\/pgsql\/lib\n#POSTGRESQL_EXECUTABLE\:FILEPATH/g" CMakeCache.txt
cmake -DWITH_TSP=ON -DWITH_DD=ON
make
sudo make install
ln -s /usr/lib64/pgsql/libpgrouting-3.1.so /usr/local/pgsql/lib/libpgrouting-3.1.so
cd /tmp
rm -rf postrouting*
Instalação do ogr_fdw
yum install gcc-c++
cd /tmp
wget https://github.com/pramsey/pgsql-ogr-fdw/archive/refs/tags/v1.1.3.tar.gz
tar xpzf v1.1.3.tar.gz
rm -rf v1.1.3.tar.gz
cd pgsql-ogr-fdw*
ln -s /usr/local/pgsql/lib/pgxs /usr/lib64/pgsql/pgxs
ln -s /usr/local/pgsql/include/server /usr/include/pgsql/
cp -R /usr/local/pgsql/include/server/* .
make
make install
cd /tmp
rm -rf pgsql-ogr-fdw*
ln -s /usr/lib64/pgsql/ogr_fdw.so /usr/local/pgsql/lib/
Para habilitar, acesse o postgreSQL e execute o comando:
CREATE EXTENSION ogr_fdw;
Saia do Postgres
Instalação do pointcloud
yum install autoconf automake CUnit-devel libxml2-devel --enablerepo=crb -y
cd /tmp
wget https://github.com/pgpointcloud/pointcloud/archive/refs/tags/v1.2.4.tar.gz
tar -xpzf v1.2.4.tar.gz
rm -rf v1.2.4.tar.gz
cd pointcloud*
./autogen.sh
Confirme que o comando retornou Now you are ready to run ‘./configure’, em seguida execute:
./configure --with-pgconfig=/usr/local/pgsql/bin/pg_config
make
make install
cd /tmp
rm -rf pointcloud*
Para habilitar, acesse o postgreSQL e execute o comando:
CREATE EXTENSION pointcloud;
Saia do Postgres
Instalação do tds_fdw
yum install freetds freetds-devel gcc make wget -y
cd /tmp
wget https://github.com/tds-fdw/tds_fdw/archive/refs/tags/v2.0.3.tar.gz
tar -xpzf v2.0.3.tar.gz
rm -rf v2.0.3.tar.gz
cd tds_fdw*
make USE_PGXS=1 PG_CONFIG=/usr/local/pgsql/bin/pg_config
sudo make USE_PGXS=1 PG_CONFIG=/usr/local/pgsql/bin/pg_config install
cd /tmp
rm -rf tds_fdw*
Para habilitar, acesse o postgreSQL e execute o comando:
CREATE EXTENSION tds_fdw;
Saia do Postgres
Instalação do pgAgent
cd /tmp
wget https://github.com/pgadmin-org/pgagent/archive/refs/tags/pgagent-4.2.2.tar.gz
tar xpzf pgagent*.tar.gz
rm -rf pgagent*.gz
mv pgagent* /usr/local/pgagent
ccmake /usr/local/pgagent
Na tela que abrir, digite c para configurar (aguarde), depois pressione e para voltar à tela anterior. Repita novamente os comandos (c e e), em seguida pressione g para gerar.
Agora compile:
make
make install
ln -s /usr/local/pgagent/pgagent /usr/bin/pgagent
ln -s /usr/local/pgagent/pgagent.control.in /usr/local/pgsql/share/extension/pgagent.control
Acesse o PostgreSQL (comando psql) com o usuário postgres e, dentro do banco, execute o seguinte comando:
CREATE EXTENSION pgagent;
CREATE LANGUAGE plpgsql;
Saia do PostgreSQL (comando \q) e execute:
groupadd pgagent
adduser pgagent --gid pgagent --system --shell /sbin/nologin
mkdir -p /etc/pgagent
mkdir -p /var/log/pgagent
touch /var/log/pgagent/pgagent.log
chown pgagent.pgagent /var/log/pgagent/pgagent.log
chmod 644 /var/log/pgagent/pgagent.log
vim /usr/lib/systemd/system/pgagent.service
Pressione a tecla INSERT, para entrar em modo de edição e deixe o arquivo com o seguinte conteúdo:
[Unit] Description=PgAgent for PostgreSQL After=syslog.target After=network.target After=postgresql.target [Service] Type=forking User=pgagent Group=pgagent # Location of the configuration file EnvironmentFile=/etc/pgagent/pgagent.conf OOMScoreAdjust=-1000 ExecStart=/usr/local/bin/pgagent -s ${LOGFILE} hostaddr=${DBHOST} dbname=${DBNAME} user=${DBUSER} port=${DBPORT} KillMode=mixed KillSignal=SIGINT Restart=on-failure # Give a reasonable amount of time for the server to start up/shut down TimeoutSec=300 [Install] WantedBy=multi-user.target |
Ao final, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida execute:
vim /etc/pgagent/pgagent.conf
Pressione a tecla INSERT, para entrar em modo de edição e deixe o arquivo com o seguinte conteúdo:
DBNAME=postgres
DBUSER=postgres
DBHOST=127.0.0.1
DBPORT=5432
LOGFILE=/var/log/pgagent/pgagent.log
Ao final, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida execute:
vim /etc/logrotate.d/pgagent
Pressione a tecla INSERT, para entrar em modo de edição e deixe o arquivo com o seguinte conteúdo:
/var/log/pgagent/pgagent.log {
missingok
compress
notifempty
sharedscripts
create 0640 pgagent pgagent
nodateext
weekly
rotate 5
}
Ao final, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida execute:
vim /var/lib/pgsql/data/pg_hba.conf
Pressione a tecla INSERT, para entrar em modo de edição e insira no começo do arquivo o seguinte conteúdo:
host all postgres 127.0.0.1/32 trust |
Ao final, pressione a tecla ESC para sair do modo de edição e digite :wq! para salvar e sair, em seguida reinicie o PostgreSQL:
systemctl stop postgresql
systemctl start postgresql
Verifique se o serviço está funcionando corretamente. Em seguida habilite e inicie o PgAgent:
systemctl enable pgagent
systemctl start pgagent
Verifique se o PgAgent está funcionando corretamente. Em seguida, execute:
cd /tmp
rm -rf pgagent*
Consulte o arquivo /var/log/pgagent/pgagent.log para ver se está dando algum erro de conexão.
Executando um backup e um restore do banco
Antes de fazer o backup ou o restore, altere para o usuário posgres, com o comando:
mkdir -p /var/lib/pgsql/backup
chmod 777 mkdir -p /var/lib/pgsql/backup
- Use o comando (altere as partes em cinza conforme sua realidade, será necessário informar o nome do banco duas vezes):
Para fazer o backup dos usuários e roles, execute os comandos: pg_dumpall -U postgres -v –roles-only -f /var/lib/pgsql/backup/roles.sql pg_dumpall -U postgres -v –globals-only -f /var/lib/pgsql/backup/globals.sql Para fazer backup de uma base, execute o comando: pg_dump -F c -b -v -f /var/lib/pgsql/backup/NOME_DO_BANCO.sql NOME_DO_BANCO -U postgres Informe a senha do usuário postgres. |
- Use os comandos (altere as partes em cinza conforme sua realidade):
Para restaurar os usuários e roles de um backup (ATENÇÃO: isso poderá redefinir as senhas e criptografia das senhas dos usuários do banco), execute os comandos: psql -d postgres -U postgres -f /var/lib/pgsql/backup/roles.sql psql -d postgres -U postgres -f /var/lib/pgsql/backup/globals.sql Para restaurar uma base, execute: psql -U postgres Informe a senha do usuário postgres, após acessar o banco execute: CREATE DATABASE NOME_DO_BANCO; \q Agora, para restaurar os dados, execute o comando: pg_restore –dbname=NOME_DO_BANCO /var/lib/pgsql/backup/NOME_DO_BANCO.sql -U postgres Informe a senha e aguarde o processo de cópia dos dados. Ao final, acesse novamente o banco e execute os seguintes comandos: psql -U postgres \c NOME_DO_BANCO \dt SELECT * FROM app_users; Se tiver listado corretamente, saia com o comando: \q |
Fontes/Referências
NVLAN – Adicionar disco no Linux
NVLAN – Expandir um disco ext4 no CentOS
https://askubuntu.com/questions/354686/postgres-doesnt-have-hstore-extension
https://blog.csdn.net/wm6752062/article/details/88710983
https://community.pivotal.io/s/article/5000e00001oJXEh1608545876878?language=en_US
http://dark-hamster.com/database/how-to-solve-configure-error-readline-library-not-found-when-installing-postgresql/
https://dbi-services.com/blog/syncing-active-directory-users-and-groups-to-postgresql/
https://github.com/CGAL/cgal/releases/tag/v5.5.2
https://github.com/json-c/json-c
https://github.com/libgeos/geoshttps://github.com/OSGeo/gdal/releases
https://github.com/OSGeo/PROJ/releases
https://github.com/protobuf-c/protobuf-c/releases
https://gitlab.com/Oslandia/SFCGAL/-/releases
https://oslandia.gitlab.io/SFCGAL/installation.html
https://pgadmin.org
https://pgadmin.org/download/pgadmin-4-rpm
https://pgadmin.org/download/pgagent-source-code/
https://postgis.net
https://postgresql.org
https://trac.osgeo.org/postgis/wiki/UsersWikiPostgreSQLPostGIS
https://www.sqlshack.com/learn-postgresql-install-postgresql-on-centos-linux/
https://www.vultr.com/docs/install-pgadmin-4-for-postgresql-on-freebsd-12-2
https://www.vultr.com/docs/how-to-backup-and-restore-postgresql-databases-with-pg-dump
https://stackoverflow.com/questions/72044942/how-do-i-use-md5-authentication-in-postgresql
https://www.postgresonline.com/article_pfriendly/81.html
https://docs.pgrouting.org/3.1
https://www.postgresql.org/docs/current/contrib.html
https://xmodulo.com/configure-error-pcre-h-not-found.html
Mais Informações
Esperamos ter te ajudado e estaremos sempre a disposição para mais informações.
Se você tem interesse em algum assunto específico, tem alguma dúvida, precisa de ajuda, ou quer sugerir um post, entre em contato conosco pelo e-mail equipe@nvlan.com.br.