Documentação do PostgreSQL 7.4.1 | ||||
---|---|---|---|---|
Anterior | Início | Capítulo 25. Registro prévio da escrita (WAL) | Fim | Próxima |
A operação de UNDO não está implementada. Isto significa que as mudanças feitas por transações interrompidas continuam a ocupar espaço em disco, e que o arquivo pg_clog permanente, para guardar o status das transações, ainda é necessário, uma vez que os identificadores das transações não podem ser reutilizados. Uma vez que o UNDO tenha sido implementado, não será mais necessário que o o arquivo pg_clog seja permanente; será possível remover o arquivo pg_clog quando o servidor for parado (Entretanto, a preocupação com este problema diminuiu muito com a adoção do método de armazenamento segmentado para o arquivo pg_clog: não é mais necessário manter as entradas antigas no arquivo pg_clog para sempre).
Com o UNDO também será possível implementar savepoints para permitir desfazer parcialmente as operações inválidas na transação (erros do analisador causados pela digitação errada de comandos, inserção de chaves primárias ou únicas duplicadas, etc.) com a possibilidade de continuar ou efetivar as operações válidas feitas pela transação antes do erro. Atualmente qualquer erro invalida toda a transação, requerendo que esta seja interrompida.
O WAL oferece oportunidade para um novo método de cópia de segurança e restauração de bancos de dados on-line (BAR). Para utilizar este método os arquivos de dados devem ser salvos periodicamente em outro disco, numa fita ou em outro hospedeiro e, também, serem salvos os arquivos de log do WAL. As cópias dos arquivos do banco de dados juntamente com os arquivos de log salvos podem ser utilizadas para restaurar, da mesma maneira como é feita a restauração após uma queda. Cada vez que uma nova cópia dos arquivos do banco de dados for feita, os arquivos antigos de log podem ser removidos. A implementação desta facilidade necessita do registro de criação e remoção dos arquivos de dados e de índices; também requer o desenvolvimento de um método para copiar os arquivos de dados (os comandos de cópia do sistema operacional não são adequados).
A dificuldade existente para transformar estes benefícios em realidade é a necessidade de salvar as entradas no WAL por um considerável período de tempo (por exemplo, tanto tempo quanto a mais longa transação possível se o UNDO de transação for desejado). O formato atual do WAL é extremamente grande, porque inclui muitos instantâneos de páginas de disco. Isto não é uma preocupação séria neste momento, uma vez que as entradas somente precisam ser mantidas por um ou dois intervalos de ponto de controle (checkpoint); mas para obter estes benefícios futuros algum tipo de formato comprimido do WAL será necessário.