Instalação e Atualização
/portabilidade/instalacao
INFORMAÇÕES DE DISPONIBILIDADE E REQUISITOS |
---|
Para requisitar uma nova instalação da base de portabilidade é necessário entrar em contato com o N.O.C. da Directcall, solicitando um backup completo da base BDO atualizada. Este arquivo de backup será disponibilizado na área de atualização:
Para realizar o download atualizado, é necessário disponibilizar o IP de origem que irá realizar o download, apenas o IP fornecido terá acesso ao conteúdo.
O Download estará condicionado a uma velocidade máxima de 256Kbps o que em média deve demorar em torno de 15 a 20 minutos.
O aquivo será disponibilizado de forma compactada utilizando gzip e contendo aproximadamente 200MBs. Descompactado, o aquivo SQL deve ocupar 1.3GBs e contém uma cópia atualizada das seguintes tabelas:
|
INSTALAÇÃO MANUAL DA BASE DE DADOS BDO |
---|
Após realizar o download e descompactá-lo, será necessário inserir as tabelas e seus conteúdos em um banco de dados criados no mysql.
O conteúdo SQL do aquivo de backup contempla a instrução “DROP TABLE IF EXISTS” o que significa que a tabela será removida previamente caso exista, para que depois seja feita a inserção dos dados.
Diversas técnicas de inserção deste aquivo SQL podem ser utilizadas para concluir o processo de inflar a base de dados. Aqui vamos abordar a inserção direta via console conforme os passos:
# mysql -u root -h localhost -p Enter password: mysql> create database bdo; Query OK, 1 row affected (0.00 sec) mysql> quit Bye
# mysql -u root -h localhost -proot BDO < bdo_install.sql Este processo de inserção dos dados deve demorar aproximadamente 5 minutos. |
ATUALIZAÇÃO MANUAL DA BASE BDO |
---|
O processo de atualização da base BDO deve ser feita diariamente. Porém, para poder realizar o processo de atualização é necessário solicitar ao N.O.C. da Directcall a liberação do IP de origem para acesso ao repositório de atualização.
O repositório de atualização só está disponível fora do horário comercial em um período restrito da 21h às 05h. Você deve programar seu sistema para realizar a atualização durante este período de disponibilidade.
O controle de atualização é realizado na tabela updateControl, mantendo a informação dos arquivos de atualização baixados e inseridos na tabela bilhetePortabilidade.
mysql> select * from updateControl order by LAST_UPDATE desc; +---------------------+-------------+-------------------------+-----------+ | LAST_UPDATE | UPDATE_TYPE | FILE_NAME | FILE_SIZE | +---------------------+-------------+-------------------------+-----------+ | 2014-11-21 10:01:56 | 1 | INCR-20141121100000.csv | 322964 | | 2014-11-21 00:01:44 | 1 | INCR-20141121000001.csv | 365449 | +---------------------+-------------+-------------------------+-----------+
Os arquivos de atualização estão disponíveis em:
Sujeito a disponibilidade e acessibilidade descritas anteriormente. Deve-se fazer download de todos os aquivos que ainda não foram instalados e que estão disponíveis no endereço citado. Os nomes dos arquivos de update tem a data e hora em sua composição para facilitar o controle:
O arquivo de update tem o seguinte formado:
# head -3 INCR-20141121100000.csv 802631|3133528924|55125|0125|102|20141121081319|0|1|1|31856| 1018775|6181163640|55314|0314|561|20141121082012|0|1|1|| 1148253|3134572011|55121|0121|232|20141121081322|0|1|1|31000|
Onde os campos são sequencialmente referenciados aos campos:
|
INSTALAÇÃO VIA SCRIPT DA BASE DE DADOS BDO |
---|
Requisitos do Script O script de automação da DirectCall foi desenvolvido para funcionar em plataforma linux e necessita de alguns pacotes para que possa funcionar apropriadamente.
OBS.: As aplicações básicas de PHP e Mysql também são pré-requisitos para o funcionamento da solução.
Configurando o Script para Instalação do BDO Primeiramente é necessário editar o script para definir as informações de acesso ao banco de dados. Entre as linhas 90 e 100 do script existem as seguintes definições:
private $MySQLConnection; private static $mysqlhost = "localhost"; private static $mysqluser = "root"; private static $mysqlpwd = "root"; private static $mysqldb = "BDO";
Basta alterar cada uma destas variáveis colocando as informações locais de acesso ao banco.
Executando o Script para Instalação da Base BDO Após instalar os pré-requisitos o script pode ser executado diretamente via modo texto, da seguinte forma:
# php BDO_UPDATE_BilhetesPortabilidade.php installFromBackup 20141121 17:16:42 - DEBUG: BilhetesPortabilidade::__construct: Creating class BilhetesPortabilidade 20141121 17:16:42 - INFO: BilhetesPortabilidade::__construct: Creating MySQL connection 20141121 17:16:42 - DEBUG: BilhetesPortabilidade::connectMySQL: 20141121 17:16:42 - INFO: BilhetesPortabilidade::installFromBackup: Downloading backup file from http://atualizabdo.globallink.net.br/BDO-INSTALL-MGW/bdo_install.sql.gz 20141121 17:16:42 - INFO: BilhetesPortabilidade::installFromBackup: This make take from 15 to 20 minutes to finish 20141121 17:32:31 - INFO: BilhetesPortabilidade::installFromBackup: Download finished sucessful 20141121 17:32:31 - INFO: BilhetesPortabilidade::installFromBackup: Descompressing the file bdo_install.sql.gz it may take a couple of minutes 20141121 17:34:53 - INFO: BilhetesPortabilidade::installFromBackup: File decompressed sucessful 20141121 17:34:53 - INFO: BilhetesPortabilidade::installFromBackup: Inflatig database with backup it may take 5 minutes 20141121 17:39:01 - INFO: BilhetesPortabilidade::installFromBackup: Database inflated successful |
ATUALIZAÇÃO VIA SCRIPT DA BASE BDO |
---|
Após realizar a instalação do BDO é necessário realizar atualizações periódicas para manter a base de dados com os registros de portabilidades recentes.
Executando o Script para Atualização do BDO
Abaixo segue o comando a ser utilizado para realizar a tarefa. Lembrando que é necessário solicitar a liberação do IP pelo N.O.C. da DirectCall e também respeitar os horários disponíveis para realizar o procedimento.
# php BDO_UPDATE_BilhetesPortabilidade.php update
20141123 23:56:24 - DEBUG: BilhetesPortabilidade::__construct: Creating class BilhetesPortabilidade 20141123 23:56:24 - INFO: BilhetesPortabilidade::__construct: Creating MySQL connection 20141123 23:56:24 - DEBUG: BilhetesPortabilidade::connectMySQL: 20141123 23:56:24 - INFO: BilhetesPortabilidade::updateMGW: Updating Media Gateway Status first. 20141123 23:56:24 - INFO: BilhetesPortabilidade::checkMGWStatus: Last update was a JA UPDATE at 2014-11-21 10:01:56 using fileINCR-20141121100000.csv 20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are update: INCR-20141123160000.csv 20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are update: INCR-20141123200000.csv 20141123 23:56:25 - WARN: BilhetesPortabilidade::checkMGWStatus: There are 2 files to update. 20141123 23:57:33 - DEBUG: BilhetesPortabilidade::processWebFile: Processing file INCR-20141123160000.csv 20141123 23:57:34 - INFO: BilhetesPortabilidade::updateDatabase: Updating database control with last file INCR-20141123160000.csv 20141123 23:57:35 - DEBUG: BilhetesPortabilidade::processWebFile: Processing file INCR-20141123200000.csv 20141123 23:57:35 - INFO: BilhetesPortabilidade::updateDatabase: Updating database control with last file INCR-20141123200000.csv 20141123 23:57:36 - INFO: BilhetesPortabilidade::updateMGW: All files updated!
Sugerimos o agendamento desta atividade diariamente via crontab uma vez ao dia, conforme o exemplo abaixo (execução diária as 00:01):
# m h dom mon dow command 01 0 * * * /usr/bin/php -f /root/BDO_UPDATE_BilhetesPortabilidade.php update
|
Validade dos tokens: Os tokens de acesso têm uma validade limitada, por isso convém que o sistema criado tenha em conta estes timings para que possa desenvolver rotinas de requisação de novos tokens.