Instalando e configurando o Oracle 10GR2 no Ubuntu 10.04LTS Server

Friday, 25 \25UTC November \25UTC 2011 at 3:06 pm (Uncategorized)

Olá a tods, neste post explico de manera resumida como fazer a instalação do Oralce 10GR2 No Ubuntu 10.04LTS server.

Porquê a versão server? Tentaremos manter o sistema o mais enxuto possível, só por isso. Mas de qualquer forma funciona também na versão desktop.

O sinal “$” significa que os comando são rodados como usuário normal e “#” indica que são rodados como root.

O primeiro passo é baixar o Oracle 10G. Você pode baixar do site oficial o arquivo 10201_database_linux32.zip(precisa se registrar, etc, etc…)

Antes de instalar é necessário preparar o ambiente(assumo que você já instalou o sistema base):

$sudo su

#apt-get update&&apt-get dist-upgrade&&apt-get install lxdm lxde

O comando acima atualiza o sistema e instala o LXDE(Desktop leve) pois o instalador requer interface gráfica(a instalação silenciosa não será abordada aqui).

#mkdir /opt/oracle_install

#mv pasta_do_download/10201_database_linux32.zip /opt/oracle_install

#cd /opt/oracle_install

#nano -w prepara_oracle.sh

cole esse conteúdo no arquivo:

#!/bin/bash

#VARIAVEIS##################################
GRUPO=’oinstall’
SENHA_USUARIO_ORACLE=’senha001′
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/db/10g
ORACLE_SID=ORCL ##SUBSTITUA PELO SID DESEJADO
CRYPT_PASS=$(perl -e “print crypt($SENHA_USUARIO_ORACLE,\”password\”)” $password)
############################################
#Checando se é o root rodando….
if [ `whoami` != ‘root’ ]; then
    echo “Esse script precisa ser rodado como root”
    exit 0;
fi;

apt-get install gcc libaio1 make rpm libc6 libstdc++6  binutils lesstif2 lesstif2-dev build-essential libdb1-compat unzip rlwrap -y

addgroup oinstall
addgroup dba
addgroup nobody
useradd -g oinstall -G dba -p $SENHA_USUARIO_ORACLE -d /home/oracle -s /bin/bash oracle
usermod -g nobody nobody
cp /etc/skel /home/oracle -R
chown oracle:dba /home/oracle -R

echo “
##CONFIGURAÇÂO PARA O ORACLE####################
  kernel.shmall = 2097152
  kernel.shmmax = 2147483648
  kernel.shmmni = 4096
  kernel.sem = 250 32000 100 128
  fs.file-max = 65536
  net.ipv4.ip_local_port_range = 1024 65000
################################################
” >> /etc/sysctl.conf

/sbin/sysctl -p

echo “
##CONFIGURAÇÂO DO ORACLE###
  * soft nproc 2047
  * hard nproc 16384
  * soft nofile 1024
  * hard nofile 65536
###########################
” >> /etc/security/limits.conf

ln -s /usr/bin/awk /bin/awk
ln -s /usr/bin/rpm /bin/rpm
ln -s /lib/libgcc_s.so.1 /lib/libgcc_s.so
ln -s /usr/lib/libstdc++.so.6 /usr/lib/libstdc++.so.5
ln -s /usr/bin/basename /bin/basename
mkdir -p $ORACLE_HOME
chown -R oracle:oinstall $ORACLE_BASE
chmod -R 775 $ORACLE_BASE

echo “Red Hat Enterprise Linux AS release 3 (Taroon)” > /etc/redhat-release

echo “
    ORACLE_BASE=$ORACLE_BASE
    ORACLE_HOME=$ORACLE_HOME
    ORACLE_HTTPSERVER_HOME=$ORACLE_HTTPSERVER_HOME
    APEX_HOME=$APEX_HOME
    ORACLE_SID=$ORACLE_SID
    ORATAB=/etc/oratab
    LD_LIBRARY_PATH=$ORACLE_HOME/lib

    export ORACLE_BASE ORACLE_HOME ORACLE_HTTPSERVER_HOME APEX_HOME ORACLE_SID ORATAB LD_LIBRARY_PATH

    PATH=${PATH}:$ORACLE_HOME/bin
” >> /home/oracle/.bashrc

echo “Se tudo deu certo basta logar como usuário do oracle e iniciar a instalcao”;

Subistitua o ORACLE_SID pelo nome desejado.
Agora é descompactar em iniciar a instalação:

#unzip  10201_database_linux32.zip

#chown oracle:oinstall /opt/oracle_install -R

#chmod 777 /opt/oracle_install -R

#su – oracle

$cd /opt/oracle_install/database

$./runInstaller

Você pode aceitar o padrão sem medo de ser feliz. Ele fará uma instalação padrão da versão Enterprise. Demora um pouco e você terá o oracle instalado e já com listener e base criados.

Há um bug no script dbstart que precisa ser corrigido para que possamos utilizar essa ferramenta para iniciar a instância. Ainda do o usuário do oracle:

$nano -w $ORACLE_HOME/bin/dbstart

Substitua a linha

ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle

por

ORACLE_HOME_LISTNER=$ORACLE_HOME

Salve e feche.

Agora o script de inicialização:

#!/bin/bash
#
# /etc/init.d/oracle
#
# Run-level Startup script for the Oracle Listener, Instances, EM DB Console, and HTTP Server# It relies on the information on /etc/oratab
ORACLE_BASE=/oracle
ORACLE_HOME=$ORACLE_BASE/db/10g
ORACLE_OWNR=oracle
ORACLE_SID=ORCL
ORATAB=/etc/oratabLD_LIBRARY_PATH=$ORACLE_HOME/lib

export ORACLE_BASE ORACLE_HOME ORACLE_HTTPSERVER_HOME APEX_HOME ORACLE_OWNR ORACLE_SID ORATAB LD_LIBRARY_PATH
PATH=${PATH}:$ORACLE_HOME/bin
if [ ! -f $ORACLE_HOME/bin/dbstart -o ! -d $ORACLE_HOME ]
then
echo " * Oracle startup error: cannot start"
exit 1
fi
case "$1" in
start)
# Startup
echo -n " * Starting the Oracle listener... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl start"
echo " [ OK ]"
echo -n " * Starting the Oracle database server... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo " [ OK ]"
echo -n " * Starting the Enterprise Manager DB Console... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo " [ OK ]"
echo -n " * Starting iSQL*Plus... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/isqlplusctl start"
echo " [ OK ]"
touch /var/lock/oracle
;;
stop)
# Shutdown
echo " [ OK ]"
echo -n " * Shutting down iSQL*Plus... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/isqlplusctl stop"
echo " [ OK ]"
echo -n " * Shutting down the Enterprise Manager DB Console... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo " [ OK ]"
echo -n " * Shutting down the Oracle database server... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
echo " [ OK ]"
echo -n " * Shutting down the Oracle listener... "
su $ORACLE_OWNR -c "$ORACLE_HOME/bin/lsnrctl stop"
echo " [ OK ]"
;;
restart)
$0 stop
$0 start
;;
*)
echo "Usage: `basename $0` start|stop|restart"
exit 1
esac
exit 0

Pronto, reinicie e teste.

Assim que eu tiver algum tempo eu posto como instalar o APEX e o OC4J junto com os patchs.

Abraço a todos!

Permalink Leave a Comment

Compartilhando sua banda larga móvel no Ubuntu 8.10

Tuesday, 14 \14UTC April \14UTC 2009 at 4:57 am (linux, Ubuntu, vivozap) (, , )

Gostaria de compartilhar meu sucesso em compartilhar a internet do meu notebook pela a wifi com meu outro notebook e meu celular, ou seja, de mim para mim mesmo, comigo mesmo =P. O procedimento foi executado com sucesso em 3 notebooks bem distintos: um com wifi broadcom(meeedo =P) BCM4311, um com wifi intel PRO/Wireless 4965 AG or AGN e outro com com intel 3945abg(mais comum). Todos rodando ubuntu 8.10 ou Linux Mint 6(igual só que diferente). Read the rest of this entry »

Permalink Leave a Comment

Multiterminal com Ubuntu 6.10 Edgy

Friday, 8 \08UTC December \08UTC 2006 at 2:33 pm (Uncategorized)

Olá a todos hoje inicio uma série de posto ensinado como montar um sistema de multiterminal com o Ubuntu 6.10. Esse documento é baseado em um how-to escrito pela UFPR, que foi melhorado pelo Professor Ronald Costa e pelo que foi descrito no blog Netpatia ensinando como fazer a monstagem.

Bem, vamos comecar com o básico: o que eu utilizei

  • Uma CPU, no meu caso e utilizei um Semprom 2200+ com 512mb de Ram que tem som, video, rede onboard;
  • Duas (ou mais) placas de vídeo. Bem a placa mãe que utilizei tem uma pequena particularidade: quando uma placa de vídeo AGP é instalada, ela desativa automaticamente a onboard(chip via), acreditem, não tem qualquer configuração da placa onboard no setup(nem mesmo o tamanho da memória reservada);
  • Dois conjuntos teclado e mouse sendo um USB;
  • Dois monitores.

A experiencia foi feita de N formas. Uma utilizando somente uma placa de vídeo(com saídas VGA e DVI) e conjunto teclado e mouse USB e PS2, uma utilizando duas placas de vídeo offboard(uma AGP e uma PCI) com o mesmo conjunto de teclados e mouses, outra com duas placas de vídeo (uma a onboard e uma PCI) com o mesmo conjuto de teclados e mouses e todas as formas a cima utilizando um adaptador USB para teclado e mouse PS2. Com todas as formas obtive sucesso.

Primeiramente vou descrever como fazer com duas placas de vídeo, um conjunto teclado e mose PS2 e outro conjunto USB. Por enquanto ligue somente o segundo monitor.

Começe ativando a segunda placa de vídeo no /etx/X11/xorg.conf:

pege o endereço físico das placas de vídeo :

#lspci |grep VGA

01:00.0 VGA compatible controller: nVidia Corporation NV34 [GeForce FX 5200] (rev a1)
01:0a.0 VGA compatible controller: nVidia Corporation TnT1
.
.

aqui temos um problema: o X não entede valores hexademais então converta-os para decimais: o “a” equivale a 10 então 01:0a.0 equivale a 01:010.0. Os zeros na frente não fazem diferença entaõ fica:1:10.0.

Faça um backup do arquivo de configuração existente em caso de problemas:

#cp /etc/X11/xorg.conf /etc/X11/xorg.conf.orig

Abra o arquivo:

#nano -w /etc/X11/xorg.conf

Na sessão “Devices” duplique a entrada que você tem pra sua placa de vídeo configurada:

Section "Device"

  Identifier  "Card0" # Geforce Fx5200

  Driver      "nv"

  BusID       "PCI:1:0:0"

  Screen      0

EndSection
Section "Device"

  Identifier  "Card1" # Tnt1

  Driver      "nv"

  BusID       "PCI:1:10:0"

  Screen      0

EndSection

Agora duplicamos os monitores:

Section "Monitor"

  Identifier   "Monitor0"

  Option       "DPMS"

  HorizSync    30-70

  VertRefresh  50-160

  DisplaySize  320 240 # CRT 17" (81 DPI @ 1024x768)

EndSection
Section "Monitor"

  Identifier   "Monitor1"

  Option       "DPMS"

  HorizSync    30-70

  VertRefresh  50-160

  DisplaySize  320 240 # CRT 17" (81 DPI @ 1024x768)

EndSection

Lembre-se de trocar o identificador(Identifier) e de configurar de acordo com o seu monitor.

Agora duplicaremos as telas(Screen):

Section "Screen"

  Identifier  "Screen0"

  Device      "Card0" #identificador da placa de vídeo Geforce

  Monitor     "Monitor0" #Identificador do monitor 0

  SubSection  "Display"

    Depth  24

    Modes  "1024x768" "800x600" "640x480"

  EndSubSection

EndSection
Section "Screen"

  Identifier  "Screen1"

  Device      "Card1" #identificador da placa de vídeo Tnt1

  Monitor     "Monitor1" #Identificador do monitor 1

SubSection  "Display"

    Depth  24

    Modes  "1024x768" "800x600" "640x480"

  EndSubSection

EndSection

Agora mexemos no layout do servidor X(apage o existente, ou comente):

Section "ServerLayout"

  Identifier   "Multihead"

  Screen 0     "Screen0" 0 0

  Screen 1     "Screen1" LeftOf "Screen0"

  InputDevice  "Keyboard-base" "CoreKeyboard"

  InputDevice  "Mouse-base" "CorePointer"

EndSection

temos o nosso arquivo assim a partir do Input Devices:

# ------------------------------------------------------------------------

# Input devices

# ------------------------------------------------------------------------
Section "InputDevice"

  Identifier  "Keyboard-base"

  Driver      "kbd"

EndSection

Section "InputDevice"

  Identifier  "Mouse-base"

  Driver      "mouse"

  Option      "Device" "/dev/input/mice"

EndSection

# ------------------------------------------------------------------------

# Dual head system.

# ------------------------------------------------------------------------

Section "Device"

  Identifier  "Card0" # Geforce Fx5200

  Driver      "nv"

  BusID       "PCI:1:0:0"

  Screen      0

EndSectionSection "Device"

  Identifier  "Card1" # Tnt1

  Driver      "nv"

  BusID       "PCI:1:10:0"

  Screen      0

EndSection

# ------------------------------------------------------------------------

# Monitor

# ------------------------------------------------------------------------

Section "Monitor"

  Identifier   "Monitor0"

  Option       "DPMS"

  HorizSync    30-70

  VertRefresh  50-160

  DisplaySize  320 240 # CRT 17" (81 DPI @ 1024x768)

EndSectionSection "Monitor"

  Identifier   "Monitor1"

  Option       "DPMS"

  HorizSync    30-70

  VertRefresh  50-160

  DisplaySize  320 240 # CRT 17" (81 DPI @ 1024x768)

EndSection

# ------------------------------------------------------------------------

# Screen section: criando as outras telas

# ------------------------------------------------------------------------

Section "Screen"

  Identifier  "Screen0"

  Device      "Card0"

  Monitor     "Monitor0"

  SubSection  "Display"

    Depth  24

    Modes  "1024x768" "800x600" "640x480"

  EndSubSection

EndSection

Section "Screen"

  Identifier  "Screen1"

  Device      "Card1"

  Monitor     "Monitor1"

  SubSection  "Display"

    Depth  24

    Modes  "800x600" "640x480"

  EndSubSection

EndSection

# ------------------------------------------------------------------------

# Layout section

# ------------------------------------------------------------------------

Section "ServerLayout"

  Identifier   "Multihead"

  Screen 0     "Screen0" 0 0

  Screen 1     "Screen1" LeftOf "Screen0"

  InputDevice  "Keyboard-base" "CoreKeyboard"

  InputDevice  "Mouse-base" "CorePointer"

EndSection

# ------------------------------------------------------------------------

# Aqui temos outras opções

# ------------------------------------------------------------------------

# Xephyr NÃO usa DRI então não é habilitado

# Section "DRI"

#   Mode 0666

# EndSection

Section "ServerFlags"

# se o mouse falhar o X starta

  Option "AllowMouseOpenFail" "yes"

# troca de terminais virtuais desabilitada

  Option "DontVTSwitch" "yes"

# X restart (Ctrl+Alt+Backspace) desabilitado

  Option "DontZap" "yes"

EndSection

Repare na outras opções que eu coloquei, são úteis para impedir que um usuário “mate” o outro ;-P .

Reinicie o X (ainda funciona o Ctrl+Alt+Backspace =D )

Se tudo estiver ok você terá uma grande área de trabalho que se se estende ao 2º monitor.

Vamos agora ao que intereça o Multiterminal:

comece baixando e instalando a versão modificada do Xerphir.

# wget http://www.c3sl.ufpr.br/multiterminal/howtos/xephyr-precompiled.tar.bz2

# tar -xjf xephyr-precompiled.tar.bz2 --directory /usr/local/

Agora plugue o outro conjuto de teclado e mouse USB.

Um novo problema chega: os números do eventos do teclado e mouse pode muda(acredite muda), para corrigir isso foicriado um script Wrapper para manter a associação de teclado e mouse ao seu respectivo terminal:

# nano -w /usr/sbin/Xephyr.sh
cole isso(shift+insert)
#!/bin/bash# 20060905 - josean - added get_event() function to obtain eventNN from a physical address

# Original version:

# http://en.wikibooks.org/wiki/Multiterminal_with_Xephyr

# http://www.c3sl.ufpr.br/multiterminal/howtos/Xephyr.sh

trap "" usr1

XEPHYR=/usr/local/bin/Xephyr

get_event()

{

  evento=`grep -A2 $1 /proc/bus/input/devices | grep 'H: Handlers=' | grep --only-matching -e 'event[0-9]*'`

}

args=()

while [ ! -z "$1" ]; do

 if [[ "$1" == "-xauthority" ]]; then

   shift

   if [ ! -z "$1" ]; then

     export XAUTHORITY="$1"

   fi

 elif [[ "$1" == "-display" ]]; then

   shift

   if [ ! -z "$1" ]; then

     export DISPLAY="$1"

   fi

 elif [[ "$1" == "-kbdphys" ]]; then

   shift

   if [ ! -z "$1" ]; then

     get_event $1

     args=("${args[@]}" "-keyboard")

     args=("${args[@]}" "/dev/input/$evento")

   fi

 elif [[ "$1" == "-mousephys" ]]; then

   shift

   if [ ! -z "$1" ]; then

     get_event $1

     args=("${args[@]}" "-mouse")

     args=("${args[@]}" "/dev/input/$evento,5")

   fi

 else

   if ! expr match $1 'vt[0-9][0-9]*' >/dev/null; then

     args=("${args[@]}" "$1")

   fi

 fi

shift

done

# echo $XEPHYR "${args[@]}" >> /tmp/logXephyr

exec $XEPHYR "${args[@]}"

Ssalve(alt+x depois “s” ou “y” dependendo da lingua do seu nano) .

Dê permissão de execução para ele:

# chmod +x /usr/sbin/Xephyr.sh

Agora vamos pegar os endereços físicos do teclado e mouse editar o gdm.conf:

# cat /proc/bus/input/devices

I: Bus=0011 Vendor=0001 Product=0001 Version=ab41

N: Name="AT Translated Set 2 keyboard"

P: Phys=isa0060/serio0/input0

S: Sysfs=/class/input/input0

H: Handlers=kbd event0

B: EV=120013

B: KEY=4 2000000 3802078 f840d001 f2ffffdf ffefffff ffffffff fffffffe

B: MSC=10

B: LED=7I: Bus=0011 Vendor=0002 Product=0005 Version=0000

N: Name="ImPS/2 Generic Wheel Mouse"

P: Phys=isa0060/serio1/input0

S: Sysfs=/class/input/input1

H: Handlers=mouse0 event1 ts0

B: EV=7

B: KEY=70000 0 0 0 0 0 0 0 0

B: REL=103

I: Bus=0010 Vendor=001f Product=0001 Version=0100

N: Name="PC Speaker"

P: Phys=isa0061/input0

S: Sysfs=/class/input/input2

H: Handlers=kbd event2

B: EV=40001

B: SND=6

I: Bus=0003 Vendor=0d62 Product=001c Version=0202

N: Name="Darfon USB Combo Keyboard"

P: Phys=usb-0000:00:1d.1-1/input0

S: Sysfs=/class/input/input5

H: Handlers=kbd event4

B: EV=120003

B: KEY=10000 7 ff87207a c14057ff febeffdf ffefffff ffffffff fffffffe

B: LED=7

I: Bus=0003 Vendor=0d62 Product=001c Version=0202

N: Name="Darfon USB Combo Keyboard"

P: Phys=usb-0000:00:1d.1-1/input1

S: Sysfs=/class/input/input6

H: Handlers=kbd event5

B: EV=3

B: KEY=3078 d801d101 1e0000 0 0 0

I: Bus=0003 Vendor=046d Product=c03f Version=2000

N: Name="Logitech USB-PS/2 Optical Mouse"

P: Phys=usb-0000:00:1d.1-2/input0

S: Sysfs=/class/input/input8

H: Handlers=mouse1 event3 ts1

B: EV=7

B: KEY=f0000 0 0 0 0 0 0 0 0

B: REL=103

Repare que hé uma duplicata do tecldo USB, isso ocorre com os teclados que tem funções especiais, ignore-os use o que tem final 0(zero).

agora vamos ao /etc/gdm/gdm.conf. Apague(ou comente) tudo abaixo de [servers] e coloque o que tem abaixo:

[servers]0=Xephyr0

1=Xephyr1

2=Xephyr2

[server-Xephyr0]

name=Xephyr0

command=/usr/bin/X -ac -br

handled=false

flexible=false

[server-Xephyr1]

name=Xephyr1

command=/usr/sbin/Xephyr.sh -display :0.0 -xauthority /var/lib/gdm/:0.Xauth -fullscreen -kbdphys isa0060/serio0/input0 -mousephys isa0060/serio1/input0 -use-evdev

handled=true

flexible=false

[server-Xephyr2]

name=Xephyr2

command=/usr/sbin/Xephyr.sh -display :0.1 -xauthority /var/lib/gdm/:0.Xauth -fullscreen -kbdphys usb-0000:00:1d.1-1/input0 -mousephys usb-0000:00:1d.1-2/input0 -use-evdev

handled=true

flexible=false

Pronto, salve.

Um outro problema conhecido é o layout dos teclados, eles ficam faltando teclas ou com um posicionamento incorreto dos botões pra faça o download desse arquivo:xkb-evdev.tar.gz e descompacte em /etc/X11:

#tar -xf xkb-evdev.tar.gz --directory /etc/X11/

Agora crie o arquivo /usr/X11R6/lib/X11/xkb/X1-config.keyboard com o conteúdo:

rules = "evdev"
model = "abnt2"
layout = "br"

copie ele para a outra estação trocando o 1 pelo 2:

#cp /usr/X11R6/lib/X11/xkb/X1-config.keyboard /usr/X11R6/lib/X11/xkb/X2-config.keyboard

Isso você faz para N estações.

Agora reinicie o gdm:

#/etc/init.d/gdm restart

Se tudo estiver certo vai aparecer uma tela de login em cada monitor verifique se os teclados e mouses estão ok

Pronto você terá dois terminais independentes com bom desempenho.

Bug conhecido: insert. Ele abre o Tocador de Musica. Até agora não conseguir resolver isso, porém, eleminando atalho(Sistema>Preferências>Atlhos do teclado) o insert funciona corretamente.

Em breve postarei fotos do multiterminal funcionnado.

Obrigado a todos que leram, em caso de erros comentem.

Permalink Leave a Comment