sexta-feira, maio 27, 2005

Oracle - Exemplos de Scripts

No link do título deste artigo, você poderá ter acesso a quase todos os scripts necessários a um DBA Oracle, desenvovidos pela própria Oracle, além de programas desenvolvidos em várias linguagens para facilitar a vida do DBA Oracle.
Caso você não encontre o script desejado, existem ainda links para outros sites com mais opções de scripts.
Vale a pena navegar.

Oracle – Replicação Avançada

Apesar de causar temores a algumas pessoas, inclusive a mim em um primeiro momento, a replicação avançada do Oracle é fácil de ser configurada e funciona perfeitamente.
Primeiro vamos analisar quais são as vantagens dessa replicação:
1) Permite alteração nos dois sites;
2) Se o link ou um dos servidores estiver fora do ar, o trabalho continua, e os servidores serão sincronizados no momento que a conexão for restabelecida.
3) Permite configurar a resolução de conflito, ou seja, se um mesmo dado for alterado nos dois sites ao mesmo tempo, você pode definir uma regra para tratar este caso. Por exemplo, vale o registro que foi alterando por último.
4) A replicação é rápida e leve (não causa grande trafego na rede), pois são replicadas apenas as alterações na base de dados e não a tabela inteira, como outras soluções.
5) O processo não é on-line, evitando travamentos devido a lock. Os dados são alterados em um site e só depois da operação concluída, são replicados para o outro site.
6) O tempo de replicação pode ser configurado com o intervalo desejado, ou seja, a replicação pode ocorrer a cada 1 segundo ou de 4 em 4 horas.
7) Você pode definir quais objetos serão replicados e o intervalo de replicação para cada um.

No link que se encontra no título deste artigo, você pode obter todos os scripts necessários para você trabalhar com a replicação avançada.

Para você que vai trabalhar com a replicação avançada pela primeira vez, sugiro que siga os seguintes passos para os primeiros testes:
1) Instale dois servidores Oracle do zero, lembrando de marcar a opção de Replicação Avançada no momento da criação do banco de dados;
2) A configuração GLOBAL_NAMES deve estar marcada ( Arquivo init.ora ou configuração da instancia do Oracle).
3) Os DBLinks devem ter o mesmo nome da configuração da instancia do Oracle (DBlink tem de ser igual ao Global Names da instancia de destino - execute select global_name from global_name no banco de dados de destino do DBLink )
4) Siga o script corretamente (Já montei duas replicações utilizando o Oracle 8.1.7 e funcionam perfeitamente).

Caso você já possua um servidor e deseje habilitar a replicação avançada, você deve seguir os passos do seguinte link http://www-rohan.sdsu.edu/doc/oracle/server803/A53722_01/ch6.htm#1021276 .

Boa Sorte.

Oracle – Problemas com o DBLink

Criar um DBLink é um processo simples e muito utilizado hoje em dia. No link que se encontra no título deste artigo, você pode obter todas as informações necessárias sobre DBLink.
O meu problema foi que o meu DBLink nunca funcionava. Eu possuía a seguinte configuração
Servidor Origem : DB01
Servidor Destino : DB02
Nome do DBLink : TESTE
O Oracle possui uma configuração GLOBAL_NAMES (Arquivo de INIT.ORA ou gerenciamento da instancia) e se essa configuração estiver como TRUE, que era o meu caso, o nome do DBLink deve ser igual ao nome da instancia do Oracle, ou seja, se estou tentando conectar a instancia DB02, o nome do meu DBLink deve ser DB02.
A configuração GLOBAL_NAMES = TRUE é necessária em casos que você precisa utilizar alguns recursos avançados do Oracle, entre eles a Replicação, que é o meu caso.
Caso você não utilize estes recursos, pode configurar o GLOBAL_NAMES = FALSE e utilizar o nome que quiser para o DBLink.

quarta-feira, maio 25, 2005

PowerBuilder - Conectando ao Oracle 10

Conversando com a equipe da Sybase, fui informado que o PowerBuilder ( a Sybase fornece suporte a versão 8,9 e 10) não possui um mecanismo para conexão ao Oracle 10. A previsão de liberar em breve o suporte ao Oracle 10 (PBO10xx.DLL ). Enquanto isso, é recomendado que se utilize a API para Oracle 9 (O90 driver) ou utilizar a conexão OLE DB.
Veja o Link no Título deste Post para mais informações.

terça-feira, maio 24, 2005

SQL Server - Performance 2005 X 2000

No link acima, vocês podem verificar um teste básico que demonstra a melhora de performance do SQL Server 2005 com relação ao SQL Server 2000. Neste teste, o SQL Server 2005 obteve um ganho de performance de 18,5 % com relação ao SQL Server 2000.

Oracle 8 – Perder a Senha do usuário internal ou sys

Se ocorrer a perda do usuári0o internal ( utilizado para criar, apagar ou editar uma instancia do Oracle), você pode utilizar os seguintes passos para resetar o senha

1 – Vá ao command, na pasta $ORACLE_HOME/bin
2 – Digite o comando orapwd80 file= senha=
Neste ponto será gerado um arquivo que você utilizará para substituir o arquivo do Oracle que armazena este senha criptografado,
3 – vá ao diretório $ORACLE_HOME/database e mud o nome do arquivo PWD.ORA para PWD.OLD ( este arquivo pode estar oculto e o windows configurado para não exibi-lo)
4 – Mude o nome do arquivo que você gerou no passo 2 para PWD.ORA
5 – Utilize o novo senha

Boa Sorte.

sexta-feira, maio 20, 2005

Microsoft Visual Source Safe - Melhorando a Performance

Está melhoria de perfomance se aplica principalmente para quem trabalhou com as versões anteriores do VSS.
Ao instalar o VSS 6, não é feito upgrade da base de dados, o que pode gerar uma perda de performance na utilização do VSS. Para obter uma melhor performance, siga os passos abaixo:
1) Verifique se a sua base já está atualizada. Para isso, verifique se existe a pasta ...\VSS\data\labels . Caso exista, não é necessário seguir este procedimento, pois a sua base já se encontra atualizada
2) Certifique-se que nenhum usuário está utilizando o VSS
3) Faça um backup do VSS
4) Execute o comando “DDUPD \\server\share\vss\data
Boa sorte.

quinta-feira, maio 19, 2005

Oracle - Respostas para as dúvidas sobre Replicação

Neste Link, você poderá obter todas as respostas sobre as questões relativas a replicação de dados do Oracle.

PowerBuilder – Implementando Single-Threaded Apartments

É possível implementar uma aplicação Single-threaded Apartments utilizando o PowerBuilder, o mesmo recurso utilizado para MultiThread no VisualBasic 6.
Primeiro deixa-me explicar o que é isso? Single-threaded Apartments é o processo de simular MultiThread, ou seja, N processos executarem ao mesmo tempo dentro da mesma aplicação, por exemplo, hoje quando você executa um comando SQL ou uma Procedure a aplicação fica travada até o momento em que a aplicação retorna o resultado do comando SQL. Com MultiThread, a aplicação não fica travada, permitindo você executar N consultas\procedures ao mesmo tempo, trabalhando em paralelo.
A diferença o MultiThread verdadeiro para o Single-threaded apartments é que o primeiro permite utilizar N processadores (Varias threads), pois utiliza área de memória diferente e o segundo utiliza apenas um processador (Uma thread), pois compartilha área de memória.
O processo de implementação do Single-threaded apartments é simples é funciona bem. Na verdade você tem que ter um objeto que é Thread, um para gerenciar o processo e outro para fazer a comunicação entre os dois.Para os interessados no código para essa implementação, me envie um comentário com o e-mail que eu repasso um pequeno exemplo dessa implementação.

SQL Server - Problemas na replicação com troca de nome do servidor.

Quando você está tentando configurar a replicação no SQL Server 2000 e recebe a mensagem:
SQL Server Enterprise Manager could not configure '\' as the Distributor for '\' . Error 18483: Could not connect to server '\' because 'distributor_admin' is not defined as a remote login at the server.
Geralmente, este erro ocorre porque o servidor SQL Server foi Renomeado ou foi montado a partir da imagem de outro servidor.Para resolver o problema, clique no Link deste artigo que irá direcioná-lo para a página da Microsoft com a solução para o mesmo.

quarta-feira, maio 18, 2005

terça-feira, maio 10, 2005

PowerBuilder – Trace de Banco de Dados

O PowerBuilder possui um Trace que pode nos ajudar muito. Este trace grava em um arquivo todos os comandos que foram executados pelo aplicativo, incluindo o tempo gasto e as mensagens de erros que ocorreram.

Com o resultado do trace gerado, você pode descobrir um erro que está ocorrendo na base de dados ou melhorar a performance de uma rotina, através dos tempos retornados pelo Trace.

Para habilitar o Trace, você deve incluir a palavra TRACE antes do DBMS na conexão com o banco de dados, por exemplo:

// Profile DBTeste
SQLCA.DBMS = "TRACE O84 Oracle8/8i (8.x.4+)"
SQLCA.LogPass = <*********>
SQLCA.ServerName = "DB_DES"
SQLCA.LogId = "teste"
SQLCA.AutoCommit = False
SQLCA.DBParm = "CommitOnDisconnect='No',DelimitIdentifier='No',PBCatalogOwner='teste'"

Uma dica é adaptar a aplicação de forma que o trace possa ser habilitado através de uma chave do registry, assim você pode habilitar o Trace em qualquer momento, diretamente no executável.
Para analise de performance, desenvolvi um aplicativo que lê o trace e retorna os comandos que gastaram mais tempo. Quem tiver interesse neste aplicativo, envie um e-mail para tpereira@rtconsult.com.br, para que eu possa enviar o aplicativo.