Banco de Dados
Referenciado por: Dicas Técnicas | Migrar Banco de Dados | Treinamento de novos colaboradores da Qualidade |
Fluxo Interno
Os diretórios são divididos pelos banco Oracle e Postgresql. Caso não tenha acesso aos diretórios mencionados no artigo solicitar a equipe de infra.
Importar banco no Oracle
Copiar o dump do cliente para \\192.168.0.101\bkp
Descompacte o Dump
Conectar no SQLPlus ou SQLDeveloper
IP: 192.168.0.101 Database(SID): ora001 Usuário: system Senha: desenv
- Criar o usuário com os comandos abaixo pelo SQLPlus ou SQLDeveloper (substitua o texto [nome] pelo nome do usuário), cada bloco deve ser executado separadamente:
drop user [nome] cascade; create user [nome] identified by "112233";
grant connect, resource, create public synonym, drop public synonym, create role, create user, drop user to [nome];
grant SELECT_CATALOG_ROLE to [nome] with ADMIN OPTION; grant CONNECT to [nome] with ADMIN OPTION; grant CREATE SESSION to [nome] with ADMIN OPTION; grant CREATE ANY TRIGGER to [nome] with ADMIN OPTION; grant ALTER ANY TRIGGER to [nome] with ADMIN OPTION; grant CREATE ANY PROCEDURE to [nome] with ADMIN OPTION; grant LOCK ANY TABLE to [nome] with ADMIN OPTION; GRANT ALTER USER TO [nome];
grant unlimited tablespace to [nome]; --revoke unlimited tablespace from [nome]; alter user [nome] quota unlimited on totali_data; alter user [nome] quota unlimited on totali_index;
GRANT DEBUG ANY PROCEDURE TO [nome]; GRANT DEBUG CONNECT SESSION TO [nome];
grant exp_full_database to [nome]; grant imp_full_database to [nome];
GRANT EXECUTE ANY INDEXTYPE TO [nome]; GRANT EXECUTE ANY LIBRARY TO [nome]; GRANT EXECUTE ANY OPERATOR TO [nome]; GRANT EXECUTE ANY PROCEDURE TO [nome]; GRANT EXECUTE ANY TYPE TO [nome];
- Conectar no servidor através do Putty
IP: 192.168.0.101 Usuário: root Senha: datainfo

- Realizar a troca do usuário para "oracle"
su - oracle
- Acessar o diretório do arquivo dump
cd /u02/bkp/
- Edite o comando e executar (substitua o texto [nome] pelo nome do usuário)
imp system/desenv@ora001 FILE=[nome].DMP GRANTS=N ROWS=Y COMMIT=Y IGNORE=Y FROMUSER=TOTALI TOUSER=[nome] LOG=[nome].txt BUFFER=536870912
- Execute o analyze no SQLPlus ou SQLDeveloper (usuário da base e senha) (substitua o texto [nome] pelo nome do usuário):
execute dbms_utility.analyze_schema('[nome]','COMPUTE');
- Execute o Script de ajuste no SQLPlus ou SQLDeveloper (usuário da base e senha) (substitua o texto [nome] pelo nome do usuário):
ALTER TABLE TT_USU DISABLE ALL TRIGGERS; UPDATE TT_USU SET APEUSU='[nome]' WHERE APEUSU=QUALDONO(); ALTER TABLE TT_USU ENABLE ALL TRIGGERS; UPDATE TT_IDF SET USUADM='[nome]';
ALTER USER [nome] identified by "112233"; update td_fil set servid=null, datbas=null; update tt_idf set proteq = 'ttproteq';
declare Cursor cr_Jobs is SELECT * FROM ALL_JOBS; LINHA ALL_JOBS%ROWTYPE; BEGIN FOR LINHA IN CR_JOBS LOOP dbms_job.remove(LINHA.JOB); END LOOP; COMMIT; END; /
- Conectar no Oracle com o usuário SYS (sys@eme4 as sysdba) e conceder permissão para funções REGISTRAACESSO e REGISTRAACESSOPADRAO (substitua o texto [nome] pelo nome do usuário):
Grant select on v_$session to [nome]; ALTER PROCEDURE REGISTRAACESSO COMPILE; ALTER PROCEDURE REGISTRAACESSOPADRAO COMPILE;
Importar Banco Postgresql
- 1. Conectar no servidor através do Putty
IP: TTPGDESENV(192.168.0.204) Usuário: postgres Senha: ttq1w2e3@

- 2. Acesse o ImportarDump.txt e copie cada comando, conforme as exemplo da imagens a seguir:

Digite os comandos em sequencia: postgresttq1w2e3@

Cole os comandos clicando com o botão direito do mouse: cd /usr/local/pgsql/bin./psql -U TOTALI suporte

Primeiro altere no TXT o nome do usuário que deseja apagar. Cole o comando clicando com o botão direito do mouse. Esse comando vai dropar (apagar) a base existente com esse nome, portanto, tenha certeza e avise seus colegas de trabalho.
DROP SCHEMA "TESTE" CASCADE;

Primeiro altere no TXT o nome do usuário que deseja apagar. Cole o comando clicando com o botão direito do mouse. Esse comando vai criar o schema, ou seja, o usuário desejado com a senha 112233.
DROP USER "TESTE";CREATE ROLE "TESTE" WITH LOGIN SUPERUSER INHERIT CREATEDB NOCREATEROLE NOREPLICATION PASSWORD '112233';ALTER ROLE "TESTE" SET SEARCH_PATH = "TESTE", public, pg_catalog;\q

Primeiro altere nesse comando o nome do dump que deseja importar o base. Cole o comando clicando com o botão direito do mouse. Esse comando vai importar o novo usuário a partir desse dump. O TESTE.dmp no final pode ser alterado para o seu nome, isso é feito para que você e outros usuários possam importar várias bases com o mesmo dump sem dar conflito.
cp /dados/public/postgre/suporte/TOTALI.dmp /dados/public/postgre/suporte/TESTE.dmp
Nesse comando informe o nome do usuário owner do dump, que no caso é TOTALI, em seguida o usuário que deseja importar. Aguarde a linha para inclusão de novo comando. sh /dados/public/postgre/suporte/replace_totali "TOTALI" "TESTE" /dados/public/postgre/suporte/TESTE.dmp
Aguarde a linha para inclusão de novo comando. /usr/local/pgsql/bin/psql -U TESTE suporte < /dados/public/postgre/suporte/TESTE.dmp -o /dados/public/postgre/suporte/TESTE.log

Você saberá se acabou a importação depois que aparecer a linha para inclusão de novo comando. Para sair basta informar exit.
Para criar o database e configurar o postgre inicialmente em Windows, acessar o artigo: http://intra.totall.com.br:8080/wiki/index.php/Instala%C3%A7%C3%A3o_PostgreSQL_no_Windows
Passos após importação
- É necessário fazer alguns ajustes na base após a importação:
Alterar o Owner da base e o caminho do Proteq:
UPDATE TT_IDF SET USUADM = 'TESTE', PROTEQ = '192.168.0.238';
Modificar o usuário de sistema referente ao Owner e Path do BI:
--select disabletriggers('tt_usu'); -- PostgreSQL --ALTER TABLE TT_USU DISABLE ALL TRIGGERS; -- Oracle UPDATE TT_USU SET APEUSU = 'TESTE', PATNDB= to_path('//192.168.0.204/public/paths/Totali/consultas/') WHERE APEUSU = 'TOTALI'; --select enabletriggers('tt_usu'); -- PostgreSQL --ALTER TABLE TT_USU ENABLE ALL TRIGGERS; -- Oracle
Modificar o acesso ao banco sem BDE:
--select disabletriggers('td_fil'); -- PostgreSQL --ALTER TABLE TD_FIL DISABLE ALL TRIGGERS; -- Oracle UPDATE TD_FIL SET SERVID = NULL, DATBAS = NULL, PORTA_DB = NULL, -- essa coluna foi criada na 6.0G IP_MIDDLE = 'localhost', PORTA_MIDDLE = '8080' -- Dados de Acesso ao Middleware --select enabletriggers('td_fil'); -- PostgreSQL --ALTER TABLE TD_FIL ENABLE ALL TRIGGERS; -- Oracle
Modificar o path do RTM e Imagens do Boletos
--select disabletriggers('tt_cfg'); -- PostgreSQL --ALTER TABLE TT_CFG DISABLE ALL TRIGGERS; -- Oracle UPDATE TT_CFG SET RBPATH = to_path('//192.168.0.204/public/paths/Totali/rtm/'), LOGOBOLETO = to_path('//192.168.0.204/public/paths/Totali/CNAB_CobreBem/imagens'); --select enabletriggers('tt_cfg'); -- PostgreSQL --ALTER TABLE TT_CFG ENABLE ALL TRIGGERS; -- Oracle
- 4. Migre a base para a versão desejada Migrar Banco de Dados.