Histórico da Página
Criação de usuário e base de dados para o ERP Protheus
Após realizar a alteração no arquivo postgresql.conf ou com 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.
Nota | ||
---|---|---|
| ||
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 usuário criado automaticamente na instalação do PostgreSQL:
Bloco de código |
---|
su - postgres |
Certifique-se que este usuário tem acesso a pasta para criação dos datafiles do banco de dados.
Nota | ||
---|---|---|
| ||
Confira os grants mínimos para o funcionamento do DBAccess. |
Diretamente no Sistema Operacional com a ferramenta psql:
Bloco de código |
---|
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 com a ferramenta pgAdmin:
Bloco de código |
---|
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:
Bloco de código |
---|
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
Bloco de código |
---|
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:
Bloco de código |
---|
su - postgres |
Ambiente Produção
Bloco de código |
---|
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
Bloco de código |
---|
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
Bloco de código |
---|
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:
Bloco de código |
---|
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'; |
Informações | ||
---|---|---|
| ||
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:
Bloco de código |
---|
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:
Bloco de código |
---|
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:
Bloco de código |
---|
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:
Bloco de código | ||
---|---|---|
| ||
SELECT datname FROM pg_database; |
Nota | ||
---|---|---|
| ||
Configure o ambiente Produção, Homologação e Desenvolvimento em servidores diferentes para evitar a concorrência de serviços computacionais. |