sábado, 16 de outubro de 2010

Administrando uma instância Oracle

Olá pessoal, andei um pouco sumido do Blog nestes últimos meses, devido a algumas mudanças e a dedicação em novos projetos na Empresa na qual trabalho o tempo foi muito curto e não consegui me dedicar a tantas tarefas. Mas agora decidi me dedicar mais a este blog, afim de passar informações, dicas e atualizações sobre tecnologia e principalmente assuntos relacionados a Oracle e Linux.

Vamos então ao meu segundo post, neste irei passar algumas informações básicas da administração de uma instância Oracle. Basicamente na linguagem do Oracle podemos definir que uma instância Oracle é a combinação da memória e dos processos que são parte de uma instalação em funcionamento.

Existem algumas considerações que devemos ter conhecimentos, como:

- Não há necessidade de que uma instância exista sem um banco de dados, claro, isso é possível sim, podemos criar uma instância e ela não ter acesso a nenhum arquivo do banco de dados. Contudo essa não é uma prática usual. O procedimento para criação de uma banco de dados é isso, primeiramente criamos uma instância do Oracle e logo depois é criado o banco de dados dentro desta mesma instância.

- Existe uma opção do Oracle chamada ASM (Automatic Storage Management), esta utiliza uma instância, mas não esta associada a um banco de dados.

- Pode-se dizer que um banco de dados pode existir sem uma instância, mais isso seria totalmente inútil.

- Uma instância acessa somente um banco de dados por vez, podemos dizer que é possível configurar múltiplas instâncias para acessar o mesmo grupo de arquivos ou um banco de dados. Quando uma instância é criada, o próximo procedimento é fazer a montagem desta instância em um banco de dados. Uma instância pode montar apenas um banco de dados por vez.

Agora irei detalhar um pouco alguns dos principais comandos para administrar uma instância do Oracle. Lembrando que os comandos a seguir foram executados em ambiente Linux, mais nada impede de executar em ambiente Windows também.

Bom, mãos na massa.

#1. Parar o Servidor Oracle

#1.1. Parar Enterprise Manager
emctl stop dbconsole

#1.2. Parar o Banco
sqlplus / as sysdba
SQL> shutdown immediate
SQL> exit

#1.3. Parar Listener
lsnrctl stop


#2. Iniciar o Servidor Oracle

#2.1 Iniciar Listener
lsnrctl start

#2.2 Iniciar o Banco
sqlplus / as sysdba
SQL> startup
SQL> exit

#2.3 Iniciar Enterprise Manager
emctl start dbconsole


#3. Acessar Enterprise Manager no Servidor
firefox http://localhost:1158/em


#4. Acessar SQLPlus

#4.1. Acessar SQLPlus com Autenticação Normal
sqlplus system/oracle

#4.2. Acessar SQLPlus com Autenticação pelo Arquivo de Senhas
sqlplus sys/oracle as sysdba
sqlplus sys/oracle as sysoper

#4.3. Acessar SQLPlus com Autenticação pelo Sistema Operacional
sqlplus / as sysdba
sqlplus / as sysoper


#5. Acessar iSQLPlus

#5.1. Iniciar iSQLPlus
isqlplusctl start

#5.2. Parar iSQLPlus
isqlplusctl stop

#5.3. Acessar iSQLPlus no Servidor
firefox http://localhost:5560/isqlplus


#6. Manipular Arquivos de Inicialização (conectado no SQLPlus)

#6.1. Visualizar todos os parâmetros da Instância
show parameters

#6.2. Visualizar parâmetro da Instância
show parameters sga_target
show parameter pga_aggregate_target

#6.3. Alterar parâmetros no SPFile
alter system set sga_target=256M scope=memory;
show parameter sga_target;
alter system set pga_aggregate_target=70M scope=spfile;
show parameter pga_aggregate_target;
shutdown immediate
startup
show parameter sga_target;
show parameter pga_aggregate_target;
alter system set sga_target=50M scope=both;
alter system set sga_target=50M scope=spfile;
shutdown immediate
startup

#6.4. Criar PFile com base no SPFile para edição manual
create pfile='$ORACLE_HOME/dbs/initorcl.ora' from spfile='$ORACLE_HOME/dbs/spfileorcl.ora';

#6.5. Editar arquivo de parâmetros no Sistema Operacional (Terminal do Linux)
vim $ORACLE_HOME/dbs/initorcl.ora

#6.6. Criar SPFile com base no PFile editado manualmente
create spfile='$ORACLE_HOME/dbs/spfileorcl.ora' from pfile='$ORACLE_HOME/dbs/initorcl.ora';
startup
show parameter sga_target;
show parameter pga_aggregate_target;


#7. Processos de Inicialização do Servidor Oracle (conectado no SQLPlus)

#7.1. Iniciar em modo NOMOUNT
shutdown immediate
startup nomount

#7.2. Alterar para modo MOUNT
alter database mount;

#7.3. Iniciar em modo MOUNT
shutdown immediate
startup mount

#7.4. Alterar para modo OPEN para somente leitura
alter database open read only;

#7.5. Alterar para modo OPEN
shutdown immediate
startup mount
alter database open;

#7.7. Habilitar modo OPEN restrito
alter system enable restricted session;

#7.8. Desabilitar modo OPEN restrito
alter system disable restricted session;

#7.9. Iniciar em modo OPEN restrito e desabilitar modo restrito;
shutdown immediate
startup restrict
alter system disable restricted session;
commit;

#7.10. Iniciar em modo OPEN utilizando um pfile específico
shutdown immediate
startup pfile='$ORACLE_HOME/dbs/initorcl.ora'
shutdown immediate
startup


#8. Shutdown Limpo (conectado no SQLPlus)

#8.1. Opção Normal
shutdown
startup

#8.2. Opção Transactional
shutdown transactional
startup

#8.3. Opção Immediate
shutdown immediate
startup

#9. Shutdown Sujo (conectado no SQLPlus)

#9.1. Opção Abort
shutdown abort
startup

#9.2. Reinicialização forçada
startup force


#10. Acessar Log de Alerta

#10.1. Localizar diretório do log de alerta (conectado no SQLPLus)
show parameter background_dump_dest;

#10.2. Visualizar log de alerta (no terminal do linux)
vim /alert_orcl.log


#11. Acessar views dinâmicas de desempenho (conectado no SQLPLus)

#11.1. Ajustar SQLPlus
set linesize 200;
set pagesize 100;

#11.2. Consultar views dinâmicas
select * from v$fixed_table;

#11.3. Consultar sessões correntes
col machine format a10;
col program format a30;
col username format a10;
col osuser format a10;
select machine, program, username, osuser from v$session where username is not null;

#11.4. Consultar instruções SQL que demoram mais de um segundo
col sql_text format a50;
col executions format 99999;
select sql_text, executions from v$sql where cpu_time > 1000000;

#11.5. Consultar informações da sga
select * from v$sgainfo;

#11.6. Consultar informações dos processos servidores
col username format a10;
col program format a30;
select pid, username, program, pga_used_mem, pga_alloc_mem, pga_freeable_mem, pga_max_mem from v$process;

Bom pessoal, é basicamente isso que podemos fazer quando estamos administrando uma instância Oracle, espero que tenham gostado do post e até o próximo.

PS.: agradeçimentos ao meu professor e DBA Oracle Adriano Sousa Santos por ter ministrado esta aula para mim e ao meu grande amigo também DBA Oracle David Ricardo por ter indicado o livro "Oracle 11g for Dummies" para mim e por estar sempre me ajudando e apoiando no dia a dia.

domingo, 7 de fevereiro de 2010

Instalando o CentOS 5.4

Neste primeiro post, irei mostrar um passo a passo de como é feita a instalação da distro CentOS. É possível instalar o sistema operacional com um dual boot com outro SO, exemplo Windows XP. Neste caso estou fazendo a instalação em uma máquina virtual. Para quaisquer tipo de instalação, seja em uma VM ou direto no disco, o padrão é sempre o mesmo.

Então mãos à obra:

Nesta primeira tela, dá-se o início à instalação. Após iniciar pelo boot será apresentada a tela abaixo, clique em Next (Próximo) para avançar.


Na tela abaixo, selecione o idioma do sistema operacional. Nesta situação selecionei Português (Brasil). Após selecionar clique em Próximo.


Na tela abaixo, selecione o tipo de configuração padrão do seu teclado. O padrão é o que já fica selecionado (ABNT2). Logo depois clique em Próximo.

Na próxima tela, é necessário fazer o particionamento do disco, nesta tutorial a instalação foi feita em uma máquina virtual, então eu deixei para que o próprio esquema de particionamento selecione as opções padrões, caso prefira montar sua partição selecione a opção "Criar layout personalizado" conforme a próxima tela.

Nesta tela se selecionado a opção "Criar layout padrão" será necessário criar as partições dependendo de cada necessidade, normalmente o ideal é criar 3 partições, uma diretório "/" outra no diretório de preferência e uma terceira partição lógica denominada SWAP. Lembrando que é sempre importante se atentar na criação da SWAP.

Na tela abaixo, é exibida as opções para criar as partições. Caso a instalação estiver sendo feita direto no disco e se no mesmo estiver o Windows ou outro SO, tenha muita atenção para não criar uma partição encima do atual Sistema, isso pode fazer com que se perca todos os dados do outro SO.

Na tela abaixo, segue a sequência da minha instalação que esta sendo feita utilizando a máquina virtual. Neste momento como foi seleciona a opção de particionamento padrão, o próprio instalador já definiu as partições à serem criadas e formatadas.

Na tela abaixo, temos a opção de instalar ou não instalar o gerenciador de boot, o ideal é deixar marcada a primeira opção para que o gerenciador GRUB seja instalado logo na MBR, fazendo assim com que seja possível selecionar antes de tudo, todos os sistemas operacionais disponíveis no disco. Clique em Próximo.


Na tela abaixo, o instalador irá detectar os seus dispositivos de rede. Pode-se optar por fazer as configurações de rede neste momento ou depois que o sistema já estiver instalado. Clique em Próximo.


Na tela abaixo, selecione a região, por padrão já é selecionado a opção "América/São Paulo". Clique em próximo.


Na tela abaixo, é necessário criar a senha do ROOT, procure sempre colocar uma senha de nível forte, porém, é sempre bom nunca esquecê-la. :)


Na tela abaixo, é o momento de selecionar as opções de aplicativos, serviços e pacotes que o sistema fornece durante a instalação. Pode-se optar por dois tipos de instalações, a padrão ou a personalizada. No caso do tutorial selecionei a opção Personalizar agora. Clique em próximo.


Na tela abaixo, é necessário personalizar a instalação dos aplicativos, pacotes e serviços de acordo com a sua necessidade.



Na tela abaixo, clique em Próximo para que a instalação se inicie.



Após seguir todos os procedimentos acima o CentOS irá iniciar a instalação.


O CentOS é uma distribuição derivada do Red Hat, a diferença é que pode-se fazer uso dela sem nenhum custo. O profissional que quiser instalá-la é só entrar no link abaixo e fazer o download da versão de preferência.


Espero que este Post seja útil, qualquer dúvidas, críticas ou sugestões deixem seus comentários.