Instalando e configurando o Oracle 10GR2 no Ubuntu 10.04LTS Server
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 -Recho “
##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.confln -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_BASEecho “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/libexport ORACLE_BASE ORACLE_HOME ORACLE_HTTPSERVER_HOME APEX_HOME ORACLE_SID ORATAB LD_LIBRARY_PATH
PATH=${PATH}:$ORACLE_HOME/bin
” >> /home/oracle/.bashrcecho “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!
Compartilhando sua banda larga móvel no Ubuntu 8.10
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 »
Multiterminal com Ubuntu 6.10 Edgy
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.