Manutenção Base de Dados
Objectivos e Âmbito
A manutenção da Base de Dados, é muito importante no âmbito do Wpms. Pois uma boa reorganização da base de dados irá melhorar o desempenho do WPMS significativamente, através de optimizações de tabelas que estejam sujeitas a muito “stress”.
Assim como a criação de cópias de segurança de toda a base de dados, ou só uma parte desta, é importante para a boa manutenção da base de dados. Estas cópias de segurança, fornecem a possibilidade de restaurar as tabelas do sistema caso algo de grave acontecer a máquina.
Como consultar as Tabelas da nossa Base de Dados ( ponto de vista do utilizador)
Instalação -> Administração -> Base de Dados [IA014]
Quando o utilizador acede a este ecrã, irá ser mostrado este ecrã de selecção onde poderá listar um conjunto de tabelas.
Neste ecrã podemos limitar a nossa selecção com os campos Tabela, onde podemos inserir a tabela a observar ou um conjunto de tabela, Quantidade de registos onde podemos definir a quantidade mínima de registos que as tabelas tenham para aparecer no ecrã, Tamanho onde podemos definir o tamanho mínimo da tabela para aparecer no nosso ecrã.

Vamos supor que escolhemos visualizar todas as tabelas, logo não preenchemos nenhum dos campos acima referidos e escolhemos a opção listar do menu representada pelo botão
A listagem vai aparecer como a figura em em baixo, onde será possível ver os nomes das tabelas, a quantidade de registos que a tabela têm, o tamanho da tabela em megabytes, e a data da ultima actualização efectuada na tabela.

No menu deste ecrã irão encontrar os seguintes botões.
Ao escolher o primeiro botão irá voltar ao ecrã de selecção anterior. Para optimizar uma tabela ou várias deve ser escolhida ou escolhidas as tabelas desejadas e depois clicar no botão
, assim irá lançar um trabalho de optimização das tabelas.

Como se pode ver na figura a data de actualização da tabela escolhida foi alterada, pois o trabalho lançado actualizou a tabela. O mesmo iria suceder se fosse escolhida a opção analisar mas ao contrário de a opção optimizar, esta apenas actualiza as estatísticas não cria novamente a tabela, logo para uma intervenção rápida o analisar será a opção correcta, mas se o objectivo é uma intervenção completa deveremos optar pela opção optimizar, tendo em conta que esta usa mais recursos da máquina sendo mais lenta que a anterior.
Na mesma forma para fazer backup de algumas tabelas teremos que seleccionar as mesmas e por fim clicar no botão este irá lançar um trabalho que irá criar um ficheiro zip com o backup da sua base de dados, na pasta do seu sistema de ficheiros, definida no ficheiro de configuração, como a pasta de backups.
Como Agendar Operações de Administração de Base de Dados ( ponto de vista do utilizador)
Os agendamentos de operações de base de dados são importantes, na medida em que estas operações podem ser demoradas, e ainda tornar as respostas da base de dados bem mais lentas, logo é recomendado que se criem agendamentos para as acções que explicamos no ponto anterior
Instalação -> Administração -> Agendar Operações de Administração de Base de Dados [IA004]
Neste ecrã é nos dada a opção de agendar, operações a base de dados, este ecrã apresenta-se da seguinte maneira

Como é possível ver temos apenas um campo de entrada que será o campo Tabela, mas se o objectivo é fazer backup ou optimização a mais do que uma tabela devemos usar o operador “”, da seguinte maneira. Se for par seleccionar as tabelas todas devemos só colocar “”, se for um conjunto de tabelas devemos colocar algum carácter seguido ou precedido por uma ou mais letras que definam o conjunto de tabelas, por exemplo “D” ou “T” nestes casos vai fazer a operação pretendida sobre todas as tabelas começadas por D ou por T.
Para agendar deverá então preencher o campo Tabela, conforme desejado e de seguida escolher no menu Sistema, a opção Agendar Execução, como é mostrado em baixo

De seguida irá ser apresentado o seguinte ecrã onde poderá escolher o agendamento desejado.

É neste ecrã onde iremos então criar o nosso agendamento, para isso primeiro teremos que adicionar um titulo ao nosso agendamento para que possa ser conhecido. Depois devemos escolher que acção vamos escolher para que este agendamento faça.

Depois escolher a que hora e dia este agendamento será inicializado e terminado. De seguida iremos escolher se queremos efectuar algum tipo de repetição do agendamento

Neste caso podemos ver que podemos vários tipos de repetições, e escolher o desejado, nos outros opções de selecção estarão ainda outros tipos de repetição que poderão ser escolhidos. Por fim vamos escolher o serviço onde queremos que este agendamento corra e depois será só clicar no botão e temos o nosso agendamento pronto a correr no dia e hora seleccionado.
Como Funciona a Manutenção Base de Dados ( aspectos técnicos)
Para criar um programa para manter a Base de Dados, tivemos de acrescentar algumas funções novas a classe de base de dados, que passarei agora a enunciar:
- analize_schema actualiza as estatísticas do nosso schema de base de dados. Retorna 1 se bem sucedido, 0 mal sucedido
- optimize_schema, optimiza e actualiza o nosso schema de base de dados. Retorna 1 se bem sucedido, 0 mal sucedido
- get_schema_stats, apanha e retorna todas as estatísticas da nossa base de dados.
- analize_tables, actualiza as estatísticas de uma ou mais tabelas recebidas como parâmetro. Retorna 1 se bem sucedido, 0 mal sucedido.
- optimize_tables, optimiza e actualiza uma ou mais tabelas recebidas como parâmetro. Retorna 1 se bem sucedido, 0 mal sucedido.
- get_tbl_stats apanha e retorna todas as estatísticas de uma ou mais tabelas recebidas como parâmetro.
- partial_backup cria um ficheiro .dmp para determinado numero de tabelas indicadas no parâmetro recebido. Retorna o nome do ficheiro criado.
- schema_backup cria um ficheiro .dmp para a nossa base de dados. Retorna o nome do ficheiro criado.
De seguida criei 3 programas, FINADM01_backupDatabase.inc , FINADM01_optimizeDatabase.inc, e o FINADM01_analizeDatabase.inc como o próprio nome indicam o primeiro serve para fazer o backup da base de dados, conforme o pedido ou selecção feita pelo utilizador é chamado uma das funções de backup da base de dados e depois a validação da existência do ficheiro e por fim “zipamos” o ficheiro.
O FINADM01_optimizeDatabase.inc, segue o mesmo processo mas utilizando as ferramentas de optimização. Assim como o FINADM01_analizeDatabase.inc