sábado, 19 de janeiro de 2008

Carregar o Oracle com um Datafile Corrompido

Para carregar o Oracle se um Datafile estiver corrompido.

STARTUP MOUNT;
ALTER DATABASE DATAFILE '/u01/oradata/ORCL/EXEMPLO.dbf' OFFLINE FOR DROP;
ALTER DATABASE OPEN;

Depois será necessário remover a tablespace (EXEMPLO) e recriar.

Trocar o Character Set do Oracle de US7ASCII para WEISO8859P1

Para trocar a tabela de caracteres utilizada pelo Oracle execute as seguintes instruções após uma boa cópia de segurança:

SHUTDOWN IMMEDIATE;
STARTUP MOUNT;
ALTER SYSTEM ENABLE RESTRICTED SESSION;
ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
ALTER DATABASE OPEN;
ALTER DATABASE CHARACTER SET WE8ISO8859P1;
SHUTDOWN IMMEDIATE;
STARTUP;


Neste exemplo a tabela de caracteres ficará comWEISO8859P1.

Conexão com o Firebird em Terminal Server

Quando conectamos o Firebird no próprio servidor do banco de dados não precisamos especificar o nome do servidor.
Entretanto quando é conectado a partir de um servidor Windows utilizando o terminal services somente irá funcionar especificando servidor:caminho\arquivo.FDB

domingo, 23 de setembro de 2007

Exclusão de registros filhos

Estes dias me solicitaram para criar uma trigger para excluir os registros filhos de uma tabela, como os itens da nota, sempre que o registro principal fosse excluído.
Expliquei o procedimento para a pessoa, mas aproveitei para comentar que ela poderia ter o mesmo resultado usando o recurso DELETE CASCADE, presente nas versões mais atuais dos bancos de dados.
Abaixo coloquei um exemplo da declaração de duas tabelas: pedido e os itens do pedido.
Sempre que o pedido for excluído, todos os itens do pedido serão excluídos automaticamente.

Create Table Pedido
(CodPedido Int not null primary key,
DataPedido DateTime,
Cliente Varchar(40));

Create Table ItemPedido
(CodPedido int not null,
CodItem int not null,
Qtdade decimal(9,2),
Valor decimal(9,2)
Constraint pk_ItemPedido Primary key (CodPedido, CodItem)
Constraint fk_ItemPedido_01 Foreign key (CodPedido)
References Pedido(CodPedido)
ON DELETE CASCADE)

terça-feira, 28 de agosto de 2007

Bases Corrompidas no Firebird

Quando uma base Firebird corromper, o melhor a se fazer é restaurar o backup mais recente.


Nas situações onde não exista um backup, pode-se tentar recuperar o banco de dados com a ferramenta GFIX.

Entretanto podem ser perdidas informações do banco de dados, que não serão identificadas no processo.

gfix -v -f -user sysdba -password masterkey arquivodobanco.fdb

gfix -m -i -user sysdba -password masterkey arquivodobanco.fdb

Em seguida faça um backup e um restore.

sábado, 25 de agosto de 2007

Exportação de dados no Oracle

Quando é necessário exportar os dados de uma base Oracle, para carregar em outro servidor, ou mesmo como backup; a forma mais simples de realizar este procedimento é exportando os dados com a ferramenta exp.

Com a seguinte sintaxe já serão exportadas todas as tabelas, índices, dados, triggers, procedures,.... enfim todos os objetos do usuário (oracle) especificado.

EXP usuario/senha@instância FILE=Caminho\NomeArq.DMP LOG=Caminho\NomeArq.LOG

Será gravado o arquivo NomeArq.DMP. A pasta "Caminho" deve ser previamente criada.

Este arquivo é um backup dos dados, portanto o interessante é que fosse realizado sem nenhum usuário acessando os dados.

Para maiores informações sobre este procedimento, acesse o site:
http://www.devmedia.com.br/articles/viewcomp.asp?comp=6283

Backup automático do SQL Server 2005 Express

Como o SQL Server 2005 Express não possui o Agent que automatiza procedimentos do banco de dados, é necessário criar manualmente a rotina de Backup.

1) Crie um script SQL que executa o backup do banco de dados com o nome BACKUP.SQL
Backup Database NomeBanco to disk="Caminho\NomeBanco.bak"

2) Crie um arquivo BAT com o nome BACKUP.BAT:
osql -U sa -P senhadoSA -i "Caminho\Backup.SQL"

3) No agendador de tarefas do Windows crie uma nova tarefa para executar o arquivo BACKUP.BAT, em um horário que normalmente os usuários não estão usando o banco de dados.

4) Crie algum procedimento para salvar o arquivo NomeBanco.bak para outra mídia (CD, DVD, HD, Fita,...)

Para maiores detalhes sobre os parâmetros usados veja o site: http://www.devmedia.com.br/articles/viewcomp.asp?comp=3648