Árvore de páginas

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

Por questões de segurança, não adote esta prática em seu ambiente de produçã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.

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

Para ambientes que utilizam serviços da AWS (RDS) não há a necessidade de criar tablespace.

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

ENCONDIG, LC_COLLATE e LC_CTYPE Homologado.

ENCODING = 'WIN1252'

LC_COLLATE = 'C'

LC_CTYPE = 'C'


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.

  • Sem rótulos