Após realizar a alteração no arquivo postgresql.conf ou por linha de comando para melhor performance, podemos prosseguir com a criação do banco de dados.
Neste exemplo, foram criados os usuários ‘tpprd’, ‘tphml’ e ‘tpdev’ com a senha igual ao nome de usuário no Cluster PostgreSQL.
Atenção
Você pode escolher outro nome e senha para a criação, o padrão utilizado neste documento segue esta definição e indicações de nomenclatura:
T (TOTVS) P (Protheus) PRD (Produção) | TPPRD |
T (TOTVS) P (Protheus) HML (Homologação) | TPHML |
T (TOTVS) P (Protheus) DEV (Desenvolvimento) | TPDEV |
Acesse o Linux e entre com o usuário criado automaticamente na instalação do PostgreSQL:
su - postgres
Certifique-se que este usuário tem acesso a pasta para criação dos datafiles do banco de dados.
Atenção
Diretamente no Sistema Operacional com a ferramenta psql:
psql -c "CREATE USER tpprd WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tpprd'" psql -c "CREATE USER tphml WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tphml'" psql -c "CREATE USER tpdev WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tpdev'"
Ou diretamente pelo banco de dados, conectado ao psql ou ao pgAdmin:
CREATE USER tpprd WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tpprd' CREATE USER tphml WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tphml' CREATE USER tpdev WITH LOGIN NOSUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION CONNECTION LIMIT -1 PASSWORD 'tpdev'
Pode-se verificar a criação do usuário no PgAdmin no “Login/Group Roles”
Ou com a seguinte query:
SELECT usename FROM pg_user;
Após a criação do usuário, crie os tablespaces e dê permissão ao usuário criado.
Informações
O Path utilizado (/pgdata) foi criado no sistema operacional e é exclusivo para os datafiles Protheus. Você pode especificar um path diferente, caso haja.
- Permissão para usuário Postgres no diretório dos datafiles
chown -R postgres:postgres /pgdata/
- Criação de Path para Datafiles
su - postgres cd /pgdata mkdir tpprd/data mkdir tpprd/index mkdir tphml/data mkdir tphml/index mkdir tpdev/data mkdir tpdev/index
- Criando as Tablespaces para Dados
Diretamente no Sistema Operacional com a ferramenta psql:
su - postgres
Ambiente Produção
psql -c "CREATE TABLESPACE tpprd_data OWNER tpprd LOCATION '/pgdata/tpprd/data'"; psql -c "CREATE TABLESPACE tpprd_index OWNER tpprd LOCATION '/pgdata/tpprd/index'";
Ambiente Homologação
psql -c "CREATE TABLESPACE tphml_data OWNER tphml LOCATION '/pgdata/tphml/data'"; psql -c "CREATE TABLESPACE tphml_index OWNER tphml LOCATION '/pgdata/tphml/index'";
Ambiente Desenvolvimento
psql -c "CREATE TABLESPACE tpdev_data OWNER tpdev LOCATION '/pgdata/tpdev/data'"; psql -c "CREATE TABLESPACE tpdev_index OWNER tpdev LOCATION '/pgdata/tpdev/index'";
Ou com a ferramenta pgAdmin:
CREATE TABLESPACE tpprd_data OWNER tpprd LOCATION '/pgdata/tpprd/data'; CREATE TABLESPACE tpprd_index OWNER tpprd LOCATION '/pgdata/tpprd/index'; CREATE TABLESPACE tphml_data OWNER tphml LOCATION '/pgdata/tphml/data'; CREATE TABLESPACE tphml_index OWNER tphml LOCATION '/pgdata/tphml/index'; CREATE TABLESPACE tpdev_data OWNER tpdev LOCATION '/pgdata/tpdev/data'; CREATE TABLESPACE tpdev_index OWNER tpdev LOCATION '/pgdata/tpdev/index';
Observação
No pgAdmin podemos visualizar os tablespaces criados:
Ou com a query:
SELECT spcname FROM pg_tablespace;
Criação dos bancos de dados vinculados aos schemas “tpprd”, “tphml” e “tpdev” criados anteriormente
- Create Database
Diretamente no Sistema Operacional com a ferramenta psql:
su - postgres psql -c "CREATE DATABASE tpprd with OWNER = tpprd TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tpprd_data CONNECTION LIMIT = -1;"; psql -c "CREATE DATABASE tphml with OWNER = tphml TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tphml_data CONNECTION LIMIT = -1;"; psql -c "CREATE DATABASE tpdev with OWNER = tpdev TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tpdev_data CONNECTION LIMIT = -1;";
Ou com a ferramenta pgAdmin:
CREATE DATABASE tpprd with OWNER = tpprd TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tpprd_data CONNECTION LIMIT = -1; CREATE DATABASE tphml with OWNER = tphml TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tphml_data CONNECTION LIMIT = -1; CREATE DATABASE tpdev with OWNER = tpdev TEMPLATE = template0 ENCODING = 'WIN1252' LC_COLLATE = 'C' LC_CTYPE = 'C' TABLESPACE = tpdev_data CONNECTION LIMIT = -1;
No pgAdmin, visualize no item Databases, os bancos de dados que foram criados:
Nota
Ou com a seguinte query:
SELECT datname FROM pg_database;
Atenção
Configure o ambiente Produção, Homologação e Desenvolvimento em servidores diferentes para evitar a concorrência de serviços computacionais.