segunda-feira, 12 de outubro de 2009

Solaris 10: Gerenciamento de Serviços

Tenho usado o Solaris em uma vmware, e como preciso apenas de aplicações servidoras, e poupar o uso computacional de minha maquina, então desabilito o que não preciso, como sendmail, ftp e o login gráfico.

No caso do login gŕafico, para desabilitar, basta invocar o comando svcadm, como abaixo:

svcadm disable svc:/application/graphical-login/cde-login:default


Em vários sabores Linux, o gerenciamento de serviços de inicialização é efetuado através do /etc/init.d e /etc/rcX.d.

No Solaris 10 existem alguns scripts nestes diretórios, mas o padrão de gerenciamento de serviços é administrado através de ferramentas svc, vamos lá:

Mostrar todos os serviços que podem ser gerenciados

svcs -a 

Mostrar o estado de algum serviço específico

svcs -a | grep sendmail 

Desabilitar o serviço sendmail, permantente

svcadm disable svc:/network/smtp:sendmail 

Ao desabilitar o serviço, ele não será iniciado na próxima inicialização do Solaris 10

Desabilitar o serviço, até o próximo reboot

svcadm disable -t svc:/network/smtp:sendmail 

Habilitar o serviço sendmail

svcadm enable  svc:/network/smtp:sendmail 

Em algumas situações o serviço pode existir no /etc/init.d, mas o recomendável é usar o serviço svcadm e svcs



domingo, 6 de setembro de 2009

Sistema de Arquivos: Instalar o Oracle no Solaris

Conclua os seguintes procedimentos antes de instalar o Oracle em um sistema Solaris:
1.Efetue login no sistema Solaris como raiz.

2.Assegure-se de que a definição dos parâmetros de kernel para o sistema atenda ou exceda os valores necessários para a instalação. Consulte o Oracle 8i Installation Guide para obter informações adicionais.

3.Crie pontos de montagem para utilizar com os bancos de dados do Oracle:
$ mkdir /u01
$ mkdir /u024.Inicie o utilitário admintool a partir de um console, utilizando o seguinte comando:
# admintool5.Na janela Admintool, clique em Procurar -> Grupos. A janela Admintool:Grupos é aberta.

6.Na janela Admintool:Grupos, clique em Editar -> Incluir. A janela Admintool:Incluir Grupo é aberta.

7.Crie dois grupos; um grupo de usuários chamado dba e um grupo de usuários chamado oinstall.

8.Na janela Admintool:Grupos, clique em Procurar -> Usuários. A janela Admintool:Usuários é aberta.

9.Utilize o admintool para criar um novo usuário chamado Oracle. Conclua as etapas a seguir para a nova conta de usuário.
a.Defina o Grupo Principal da conta como o grupo oinstall que você criou.
b.Defina o Grupo Secundário da conta como o grupo dba que você criou.
c.Assegure-se de que o botão de opções ao lado do campo Criar Diretório Inicial esteja selecionado. No campo Caminho, insira /export/home/oracle como o diretório inicial do usuário Oracle.
d.Defina o Shell de Login para /bin/sh.
O instalador do Oracle deve ser executado nesta conta. Essa conta será utilizada apenas para instalação e manutenção do Oracle.

10.Conecte-se ao sistema como o usuário Oracle:
# su - oracleExiba as definições da máscara do usuário para a conta Oracle.
$ umaskA máscara do usuário deve ser definida como 022. Se a máscara do usuário da conta não estiver definida como 022, defina-a com o seguinte comando:
$ umask 022Modifique também .profile para refletir a alteração.

11.Adicione o seguinte em /export/home/oracle/.profile para a conta Oracle:
◦Oracle 8i:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/8.1.7; export ORACLE_HOME
ORACLE_SID=or1; export ORACLE_SID
ORACLE_DOC=$ORACLE_HOME/doc; export ORACLE_DOC
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
PATH=$ORACLE_HOME/bin:/usr/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/usr/openwin/bin:.
◦Oracle 9i:
ORACLE_BASE=/u01/app/oracle; export ORACLE_BASE
ORACLE_HOME=$ORACLE_BASE/product/9.2.0.0.0; export ORACLE_HOME
ORACLE_SID=or1; export ORACLE_SID
ORACLE_DOC=$ORACLE_HOME/doc; export ORACLE_DOC
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
PATH=$ORACLE_HOME/bin:/usr/bin:/usr/local/bin:/usr/ccs/bin:/usr/ucb:/usr/openwin/bin:.
Se você necessita de /usr/ucb em seu caminho de pesquisa, certifique-se de que ele seja listado após /usr/ccs/bin na definição PATH.

12.Crie o perfil utilizando o seguinte comando:
$ . ./.profileAgora você está pronto para começar a instalação do Oracle. Consulte a documentação apropriada do Oracle e instale o software. Após uma instalação bem-sucedida, retorne às instruções de configuração contidas nesta seção.

segunda-feira, 27 de julho de 2009

Recuperando Bad Superblock

Quando um file system encontra-se danificado é possível restaura-lo, exceto se o file system for o root (/).

Quando isto acontece é necessário realizar um dos passos abaixo:

* Reinstalar o Sistema Operacional

* Boot da Rede ou CD-Rom

* Recriar o file system root (/) com newfs e restaurá-lo de um backup.

Determinando um bad superblock no file system / ou /usr.
De um CD local realizamos os passos abaixo.

ok boot -s cdrom

Através da rede de um install server

ok boot -s net

Após, desmonte o file system danificado se o mesmo não for o / ou /usr.

# umount /opt
# newfs -N /dev/rdsk/c0t3d0s7
/dev/rdsk/c0t3d0s7: 163944 sectors in 506 cylinders of 9 tracks, 36 sectors
83.9MB in 32 cyl groups (16 c/g, 2.65MB/g, 1216 i/g)
super-block backups (for fsck -b #) at:
32, 5264, 10496, 15728, 20960, 26192, 31424, 36656, 41888,
47120, 52352, 57584, 62816, 68048, 73280, 78512, 82976, 88208,
93440, 98672, 103904, 109136, 114368, 119600, 124832, 130064, 135296,
140528, 145760, 150992, 156224, 161456,
# fsck -F ufs -o b=5264 /dev/rdsk/c0t3d0s7
Alternate superblock location: 5264.
** /dev/rdsk/c0t3d0s7
** Last Mounted on
** Phase 1 - Check Blocks and Sizes
** Phase 2 - Check Pathnames
** Phase 3 - Check Connectivity
** Phase 4 - Check Reference Counts
** Phase 5 - Check Cyl groups
36 files, 867 used, 75712 free (16 frags, 9462 blocks, 0.0% fragmentation)
/dev/rdsk/c0t3d0s7 FILE SYSTEM STATE SET TO OKAY

***** FILE SYSTEM WAS MODIFIED *****
#

OBS.: Outras opções para o fsck:

fsck -m

verifica se um file system pode ser montado

fsck -y

assume como “yes” para todos os reparos

fsck -n

assume como “no” para todos os reparos

fsck -o p

preens file system, repara todas inconsistências esperadas, mas retorna ao prompt se um sério problema for encontrado.

quarta-feira, 15 de julho de 2009

Gerênciando swap

Para criar-mos uma nova partição raw swap, após criado o device (type swap), adicione a seguinte entrada em /etc/vsftap

/dev/dsk/c0t1d0s0 - - swap - no -

Depois habilitando a nova partição

# swap -a /dev/desk/c0t1d0s0

Pode adicionar uma novo área de swap através de um arquivo de swap.

# mkfile 250m /opt/myswapfile
# swap -a /opt/myswapfile
# echo “/dev/dsk/c0t1d0s0 - - swap - no -” >> /etc/vsftab

Desativando um

swap space

# swap -d /opt/myswapfile

Exibindo informações mais detalhadas da área de swap.

# swap -s
total: 402456k bytes allocated + 97104k reserved = 499560k used, 1643728k available

Neste momento verificamos que o uso real da swap é de 499560k, onde 97104k estão reservados para uso futuro e 402456k é a utilização real no momento.
O espaço livre é de 1643728k.

Para obter detalhes individuais de cada device.

# swap -l
swapfile dev swaplo blocks free
/dev/md/dsk/d20 85,20 16 4202672 3489392

Onde swapfile indica device ou arquivo de swap, a coluna deve informa o maior e menor número para o device e 0 quando for arquivo.
Em blocks temos o tamanho total da swap (blocos de 512 bytes). Finalizando em free é a quantidade de espaço livre na área de swap também em blocos de 512 bytes.

sábado, 11 de julho de 2009

Troubleshooting snmpdx

Há pouco tempo encontrei o seguinte log no /var/adm/messages em alguns servidores Solaris 8, fazendo com que o file system /var chega-se em 100% várias vezes.

May 5 21:01:05 sserver8 /usr/lib/snmp/snmpdx: [ID 702911 daemon.error] session_open() failed for a pdu received from localhost.55659
May 5 21:01:05 sserver8 /usr/lib/snmp/snmpdx: [ID 702911 daemon.error] community_check();bad community from localhost

Realizei os seguintes procedimentos.

* Verifiquei o /etc/hosts, em busca de entradas duplicadas.

127.0.0.1 localhost

10.0.0.11 sserver8

* Alterei as seguintes linhas abaixo no arquivo /etc/snmp/conf/snmpd.conf.

system-group-read-community S89priv

trap-community S89priv

managers localhost snmpman

* Depois realizei a seguinte configuração em /etc/snmp/conf/snmpdx.acl

acl = {

{

communities = public

access = read-only

managers = *

}

}

Nota: S89priv é o nome da comunidade

* Após isto é necessário realizar um restart do serviço

/etc/rc3.d/S76snmpdx stop

/etc/rc3.d/S76snmpdx start

E por fim você irá constatar que as mensagens de erro não mais ocorrem.

tail -f /var/adm/messages.

Espero que a dica tenha sido útil.

segunda-feira, 6 de julho de 2009

Usando UFS Snapshots

Backup é realizado enquanto o file system está montado, onde criamos um read-only file system (imagem de um file system temporário) destinado para operações de backup.

Criando um USF Snapshot, com limite de 500M para o arquivo backing-store

# fssnap -F ufs -o maxsize=500m,bs=/scratch/usr.back.file /export/home
/dev/fssnap/1

Listanto snapshot currente

# /usr/lib/fs/ufs/fssnap -i
Snapshot number : 0
Block Device : /dev/fssnap/0
Raw Device : /dev/rfssnap/0
Mount point : /export/home
Device state : idle
Backing store path : /var/tmp/bs.file
Backing store size : 0 KB
Maximum backing store size : Unlimited
Snapshot create time : Wed Aug 29 15:22:06 2001
Copy-on-write granularity : 32 KB

Para exibir a informação de um determinado file system, basta

# /usr/lib/fs/ufs/fssnap -i /usr

Excluindo um UFS snapshot

# fssnap -i
0 / 1 /usr
# fssnap -d /usr
Deleted snapshot 1.
# rm /scratch/usr.back.file

Realizando backup de um USF snapshot

Para backup full:

# ufsdump 0ucf /dev/rmt/0 /dev/rfssnap/1

Verificando o backup

# ufsrestore tf /dev/rmt/0

Para backup incremental:

# ufsdump 1ufN /dev/rmt/0 /dev/rdsk/c0t1d0s0 `fssnap -F ufs -o raw,bs=/export/scratch,unlink /dev/rdsk/c0t1d0s0`

Verificando o backup

# ufsrestore ta /dev/rmt/0

Realizando backup com tar

# mount -F ufs -o ro /dev/fssnap/1 /backups
# tar cvf /dev/rmt/0 /backups