- Este tópico contém 5 respostas, 2 vozes e foi atualizado pela última vez 7 anos, 7 meses atrás por José Laurindo Chiappa.
-
AutorPosts
-
21 de março de 2017 às 11:51 pm #108658JoerbethParticipante
boa tarde
Pessoal, pesquisei mais não encontrei algo que me desse uma certeza, e para não fazer besteira, resolvi postar a minha duvida aqui
Seguinte, tenho uma base oracle em um cleinte, e esse está em um servidor Linux RADHAT, bom até ai tudo bem, sei a senha do usuario oracle e do usuario root desse servidor, sei onde está tambem o banco, mais como acessar ele não sei?, tem uma ferramenta que o antigo DBA usava, chamada: TROAD queria saber como eu faço para acessar, abir esse banco para eu fazer um backup?, como faleu acima, sei onde está fisicamente o banco mais depois de pesquisar, li algo que alguem colocou, que Oracle não se copia simplesmente esse arquivo?
espero que possa me ajudar
Grato
Joerbeth
22 de março de 2017 às 8:30 pm #108661José Laurindo ChiappaModeradorHmmm, me parece que vc tá meio por fora dos conceitos e nomenclaturas corretos, bem como não parece ter quase nada de experiência de uso : vou então dar a resposta que vc pediu e dar uma geral rápida nos conceitos e denominações, mas antes de mais nada EU AVISO – se esse banco é de Produção, e contém dados críticos pro negócio, eu RECOMENDO que vc contrate (temporariamente que seja, até mesmo pra atuar Remotamente se for o caso) um DBA Oracle experiente, pra te ajudar enquanto vc estuda e aprende o necessário, okdoc ?? Produção ** não é Lugar ** pra alguém inexperiente fazer seus labs….
Muito bem : no meu exemplo vou SUPOR que o banco já está de pé, como vc diz, e que vc só quer acessá-lo, ** E ** que vc já tem ao menos um conhecimento MÍNIMO de Sistema Operacional LINUX….
OK, começando pelo Sistema Operacional, pelo que vc diz deve ser o RED HAT ENTERPRISE LINUX, já que essa é a edição/compilação mais comum de se achar nas Empresas… A primeira coisa é vc logar no servidor como o mesmo usuário que instalou e executa o RDBMS Oracle, usuário esse que vc disse que já sabe o nome e a senha – esse usuário tipicamente se chama ORACLE mesmo mas isso não é garantido, é só uma prática comum de se ver….
Logado no servidor, vc vai abrir um prompt de comando/terminal : normalmente vc já encontra na área de trabalho um atalho para acionar o Terminal, se casualmente vc não tiver tena o atalho-padrão que é teclar CTRL+T ou CTRL+SHIFT+T, se não for assim a sua config veja nos menus de sistema onde está a opção de terminal…
Uma vez no prompt de comandos, a primeira coisa é checar se há binários Oracle ativos, o comando é :ps -ef | grep -i pmon
e o resultado vai ser algo do tipo :
[oracle@localhost ~]$ ps -ef | grep -i pmon
oracle 2318 1 0 12:41 ? 00:00:00 ora_pmon_orcl
oracle 3198 3169 0 12:50 pts/2 00:00:00 grep -i pmon
[oracle@localhost ~]$==> O resultado acima mostra que eu tenho uma instância Oracle chamada orcl neste servidor – vamos confirmar que existe uma variável de sistema ORACLE_SID apontando para ela :
[oracle@localhost ~]$ echo $ORACLE_SID
orcl
[oracle@localhost ~]$==> No meu caso eu tinha, se não tivesse deveria criar uma com o comando apropriado, via de regra export :
export ORACLE_SID=orcl
==> A próxima coisa que precisamos saber é o DIRETÓRIO onde está instalado o RDBMS Oracle, ie, o chamado ORACLE_HOME : muitas vezes a pessoa que instala já cria uma variável de sistema chamada ORACLE_HOME apontando pro local correto, tipo :
[oracle@localhost ~]$ echo $ORACLE_HOME
/home/oracle/app/oracle/product/11.2.0/dbhome_2
[oracle@localhost ~]$Se a pessoa que fez a instalação fez um servicinho algo meio porquinho/preguiçoso e não criou a veriável, vc vai ter que PROCURAR aonde está instalado esse software : uma das maneiras de se fazer isso é procurar com o comando FIND em todos os filesystems procurando pelo binário chamado oracle, ele vai estar no sub-diretório bin do diretório onde foi feita a instalação, aí cria a variável com export ou seja lá o comando apropriado pro seu shell de comandos….
Uma vez encontrado o ORACLE_HOME, vc vai confirmar que existe a variável de sistema PATH, ** E ** que o sub-diretório BIN abaixo do ORACLE_HOME tá contido nela :
[oracle@localhost ~]$ echo $PATH
/usr/java/latest/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/app/oracle/product/11.2.0/dbhome_2/bin:/u01:/u02
[oracle@localhost ~]$==> Com essas verificações, salvo algum erro e/ou config fora de padrão no procedimento de instalação vc VAI ser capaz de conectar como usuário SYSDBA/superadministrador do banco , assim :
[oracle@localhost ~]$ sqlplus / as sysdba
==> a resposta deve ser algo parecido com isto:
SQL*Plus: Release 11.2.0.2.0 Production on Wed Mar 22 13:07:50 2017
Copyright (c) 1982, 2010, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing optionsSYS:AS SYSDBA@orcl:SQL>
=> saia do sqlplus com o comando exit :
SYS:AS SYSDBA@orcl:SQL>exit
Disconnected from Oracle Database 11g Enterprise Edition Release 11.2.0.2.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
[oracle@localhost ~]$==> ok, vc provou que o banco está de pé… Para que outras pessoas possam se conectar nesse banco remotamente, a partir de Outras Máquinas, usando um software de comunicação qualquer com o banco, é necessário que nesse servidor esteja no ar um programinha genericamente chamado de ORACLE LISTENER, que recebe os pedidos de conexão – vamos procurá-lo :
[oracle@localhost ~]$ ps -ef | grep -i tnslsnr
oracle 2166 1 0 12:41 ? 00:00:00 /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/tnslsnr LISTENER -inherit
oracle 3295 3169 0 13:11 pts/2 00:00:00 grep -i tnslsnr
[oracle@localhost ~]$==> OK, meu programinha de listener está de pé, ativo, e se chama LISTENER mesmo, em maiúsculas : isso é padrão mas Pode Ser mudado…. Vamos ver quais serviços de rede para conexão esse meu programa tá controlando/permissionando :
[oracle@localhost ~]$ lsnrctl status LISTENER
LSNRCTL for Linux: Version 11.2.0.2.0 – Production on 22-MAR-2017 13:13:41
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.0)(PORT=1521)))
STATUS of the LISTENER
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.2.0 – Production
Start Date 22-MAR-2017 12:41:37
Uptime 0 days 0 hr. 32 min. 3 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/admin/listener.ora
Listener Log File /home/oracle/app/oracle/product/11.2.0/dbhome_2/network/log/listener.log
Listening Endpoints Summary…
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.0)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.0)(PORT=80))(PROTOCOL_STACK=(PRESENTATION=HTTP)(SESSION=RAW)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.0.0)(PORT=21))(PROTOCOL_STACK=(PRESENTATION=FTP)(SESSION=RAW)))
Services Summary…
Service “ORCL” has 1 instance(s).
Instance “ORCL”, status READY, has 2 handler(s) for this service…
Service “orclXDB” has 1 instance(s).
Instance “ORCL”, status READY, has 1 handler(s) for this service…
The command completed successfully
[oracle@localhost ~]$ lsnrctl service LISTENERLSNRCTL for Linux: Version 11.2.0.2.0 – Production on 22-MAR-2017 13:13:56
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.0.0)(PORT=1521)))
Services Summary…
Service “ORCL” has 1 instance(s).
Instance “ORCL”, status READY, has 2 handler(s) for this service…
Handler(s):
“DEDICATED” established:0 refused:0 state:ready
LOCAL SERVER
“N000” established:0 refused:0 current:0 max:20000 state:ready
CMON
(ADDRESS=(PROTOCOL=tcp)(HOST=linuxorcl.localdomain)(PORT=31471))
Service “orclXDB” has 1 instance(s).
Instance “ORCL”, status READY, has 1 handler(s) for this service…
Handler(s):
“D000” established:0 refused:0 current:0 max:1022 state:ready
DISPATCHER
(ADDRESS=(PROTOCOL=tcp)(HOST=linuxorcl.localdomain)(PORT=33130))
The command completed successfully
[oracle@localhost ~]$==> OK, no meu caso eu posso me conectar Remotamente nesse banco informando pro programa de comunicação que eu terei na minha máquina que o IP é 192.168.0.0 (ou que o nome do servidor é linuxorcl.localdomain, SE a minha Rede conhece esse nome de servidor), a porta de rede é 1521 e o serviço de rede se chama ORCL….
Agora chegamos no setup da sua máquina desktop que vai se conectar no banco acionando o listener lá do servidor Oracle : para isso, a primeira coisa vc tem que ter um ** PROGRAMA CLIENTE **, ie, um programa de comunicação que saiba enviar pacotes de rede até o servidor Oracle e receber os dados que o Oracle vai enviar – existem TROCENTOS deles, pagos ou gratuitos, vc pode usar o que bem entender…
O programa cliente chamado TOAD (iirc é ELE que vc quis denominar quando falou em TROAD, nome esse que desconheço COMPLETAMENTE!!) é um desses tantos, e é um programa PAGO : confira antes de usar que vc REALMENTE pagou por ele, que a Empresa possui Licença para o usar, senão cedo ou tarde vc recebe uma visitinha dos advogados da ABES por um pequeno processinho de Pirataria, né ????
O segundo ponto é que muitos dos programas de comunicação precisam, AINDA POR CIMA, de um software a mais para os ajudar a se comunicar com o Listener lá no servidor Oracle, esse software é o ORACLE CLIENT : alguns softwares de comunicação (como por exemplo o Oracle SQL Developer, um software gratuito da própria Oracle) não precisam MAS esse TOAD se me lembro bem ** com certeza ** precisa, então cheque se vc tem instalado na sua máquina desktop o software ORACLE CLIENT….==> UMA VEZ que vc tem o TOAD (corretamente pago e licenciado) instalado na sua máquina E o software Oracle Client , E essa sua máquina pinga/acessa pela rede o servidor Oracle OK, é só fazer as configs locais : veja http://www.toadworld.com/platforms/oracle/w/wiki/10948.connecting-to-oracle-12c-database-system , http://www.informit.com/articles/article.aspx?p=1395929&seqNum=2 , http://dba.stackexchange.com/questions/28910/connecting-to-database-using-toad-in-windows e http://www.toadworld.com/products/toad-for-oracle/f/10/t/27202 para refs….
[]s
Chiappa
25 de março de 2017 às 3:21 am #108665JoerbethParticipanteBoa noite
Primeiro, obrigado pela resposta e “paciência” em explicar com riquezas de detalhes, o que ainda não tenho total controle do SGDB…
Segundo, desculpe os erros de digitação…
Terceiro, estive lendo algumas coisas, e com bom avanço, tenho uma maquina de onde era conectado antes o banco, te como default o user SYSTEM, e uma senha, quando coloco para conectar, ele aparentemente, conecta, pois não dá erro, mais quando dou um SELECT em algum banco não mostra nada?!
tentei colocar o user ORACLE e senha que falei que tenho , mais não rolou, estou vendo ainda algumas coisas, tentando seguir..
O TOAD que outrora escrevi erradamente TROAD, baixe ele como free, portanto creio que não havera surpresas posteriores..
No demais, não tem, só mesmo a questão do User ORACLE e senha…
Obrigado a todos
Joerbeth
26 de março de 2017 às 1:28 am #108666José Laurindo ChiappaModeradorTudo jóia ? Então, primeira coisa, já que vc disse que tinha acesso tanto ao usuário root quanto ao usuário oracle lá no servidor do Oracle, por isso sugeri tentar acessar diretamente no servidor …. Continuando por essa possibilidade, se vc não conseguiu logar no servidor Linux onde roda o Oracle com o usuário oracle (talvez te dera, a senha errada dele, ou a senha mudou, digamos) eu diria para vc tentar logar nesse servidor com o usuário root, que é o superadministrador : se conseguir, é só abrir um prompt de comando e pedir pro usuário root se “transformar” no usuário oracle, digitando :
su – oracle
e segue normal o resto do que falei…. O legal de vc conectar diretamente no servidor é que aí consegue fazer *** TODAS *** aquelas validações que eu mostrei, ie, ver se os processos do RDBMS Oracle estão no ar, ver se o ** LISTENER ** está no ar, Confirmar o nome do banco e do serviço de conexão, etc , que nem eu mostrei – sem essas coisas a conexão a partir de uma máquina desktop VAI falhar e vc fica sem saber o porque…
==> É ** justamente ** o cenário que vc descreve, ao dizer que no programa cliente/de comunicação que vc vai usar (o TOAD) não aparece nada : será que ele está conectando no lugar certo, com o serviço certo ? Será que o listener tá de pé ? Será que a sua máquina está conseguindo conectar pela rede até o servidor Oracle ??? SEM acesso ao servidor, sabe-se lá o que está acontecendo na sua tentativa de conexão…
Meu conselho então é : CONECTE no servidor e se Assegure que está tudo bem lá, e só depois teste a comunicação de rede entre a sua máquina de mesa e o servidor, pra só depois tentar configurar o programa de comunicação/cliente – se vc começar pelo cliente fica Bem Difícil pra dizer o mínimo…
[]s
Chiappa
OBS : quando vc diz que “baixou o TOAD freeware”, imagino que vc baixou a versão em https://www.toadworld.com/m/freeware/43 , que (meio na base da enganação) eles chamam de free , né ? Para informação, saiba que FREEWARE de verdade é um software que é de uso livre seja em que condições forem e por quanto tempo for (como o próprio Linux, por exemplo), e nessa mesma página lá no rodapé bem escondidinho eles mesmo confessam que isso que vc baixa lá :
=> tem uma BOMBA DE TEMPO, ie, para de funcionar em coisa de um ano após vc baixar
E
=> NÂO PODE ser usado por mais de 5 pessoas na sua Empresa
então sorry, mas pra mim isso é freeware FALSO, não se entende programa free que não é nem livre nem completo….
29 de março de 2017 às 4:20 am #108668JoerbethParticipanteboa noite
Obrigado mais uma vez…
Seguinte, parei nessa parte:
[oracle@localhost ~]$ echo $ORACLE_HOME
/home/oracle/app/oracle/product/11.2.0/dbhome_2
[oracle@localhost ~]$Se a pessoa que fez a instalação fez um servicinho algo meio porquinho/preguiçoso e não criou a veriável, vc vai ter que PROCURAR aonde está instalado esse software : uma das maneiras de se fazer isso é procurar com o comando FIND em todos os filesystems procurando pelo binário chamado oracle, ele vai estar no sub-diretório bin do diretório onde foi feita a instalação, aí cria a variável com export ou seja lá o comando apropriado pro seu shell de comandos…
Pois não retornou nada, agora tenho que exportar correto?
Outra coisa, nada do que esta sendo feito, vai fazer de certa forma parar de funcionar o banco que hoje roda correto?
grato
29 de março de 2017 às 7:22 pm #108670José Laurindo ChiappaModeradorCorreto, nada do que estou mostrando aqui por si só vai interferir de maneira alguma com o database : eu só recomendei (e continuo Recomendando) que se for um ambiente de produção, importante, e se vc não estiver acostumado a fazer essas coisas que chame um Profissional apenas para evitar o Risco de sem querer vc digitar um comando inapropriado, Além do fator tempo – tudo o que eu falo aqui é arroz com feijão, coisa básica mesmo pra um profissional de administração ….
Muito bem , respondendo : sim, se vc abriu um prompt conectado como o usuário ‘oracle’/dono do software Oracle e as variáveis ORACLE_SID e ORACLE_HOME não estão setadas e/ou o caminho indicado no ORACLE_HOME não está logo no começo da variável PATH , vc TEM que setar as variáveis ORACLE e adicionar o conteúdo do ORACLE_HOME na variável PATH que por default sempre já está setada….
Para encontrar o valor do SID eu já mostrei antes, é via ps, e para encontrar o ORACLE_HOME de um instalação de RDBMS Oracle no linux entre outras opções vc pode procurar o executável ‘oracle’ via comando find, assim :
[oracle@localhost ~]$ find / -perm /u=x -type f -name oracle -ls
find: /var/cache/davfs2/localhost+mnt-dav+root: Permission denied
find: /var/cache/davfs2/localhost+home-oracle-dav+root: Permission denied
find: /home/lost+found: Permission denied
find: /home/davfs2: Permission denied
2720246 184720 -rwsr-s–x 1 oracle oracle 188960467 Oct 2 2010 /home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/oracle
132043 4 -rwxr-xr-x 1 oracle oracle 873 Oct 4 2010 /home/oracle/oracle
find: /lost+found: Permission denied
find: /usr/lib/audit: Permission denied
find: /usr/local/etc/davfs2/certs/private: Permission denied
find: /media/sf_jlchi_000/AppData/Local/ElevatedDiagnostics: Operation not permitted
find: /etc/cron.d: Permission denied
find: /etc/audisp: Permission denied
1079106 4 -rwxr-xr-x 1 root root 1102 Feb 7 2011 /etc/rc.d/init.d/oracle
find: /proc/3070/fd: Permission denied
[oracle@localhost ~]$(como eu estou conectado como oracle e não como root, alguns sub-diretórios eu não tenho acesso, por isso os ‘Permission denied’ acima….)
No meu exemplo, encontrei o executável oracle em home/oracle/app/oracle/product/11.2.0/dbhome_2/bin/, então home/oracle/app/oracle/product/11.2.0/dbhome_2 é meu ORACLE_HOME…..
Uma outra maneira de se localizar o ORACLE_HOME é o arquivo /etc/oratab : ele não é Obrigatório mas se foi feita a instalação-padrão ele vai ser criado, e no conteúdo dele vai estar o SID e o ORACLE_HOME :==> possuo o oratab :
[oracle@localhost ~]$ ls -l /etc/oratab
-rw-rw-r– 1 oracle oracle 730 Oct 2 2010 /etc/oratab=> vamos ver o conteúdo :
[oracle@localhost ~]$ cat /etc/oratab
#This file is used by ORACLE utilities. It is created by root.sh
and updated by the Database Configuration Assistant when creating
a database.
A colon, ‘:’, is used as the field terminator. A new line terminates
the entry. Lines beginning with a pound sign, ‘#’, are comments.
#
Entries are of the form:
$ORACLE_SID:$ORACLE_HOME::
#
The first and second fields are the system identifier and home
directory of the database respectively. The third filed indicates
to the dbstart utility that the database should , “Y”, or should not,
“N”, be brought up at system boot time.
#
Multiple entries with the same $ORACLE_SID are not allowed.
#
#
orcl:/home/oracle/app/oracle/product/11.2.0/dbhome_2:Y
[oracle@localhost ~]$ok, é só setar ORACLE_SID para orcl, ORACLE_HOME para /home/oracle/app/oracle/product/11.2.0/dbhome_ e PATH para iniciando com o HOME…. No meu caso que é Linux com a instalação default, o shell padrão é o BASH, para vc setar variáveis nele usa o comando export :
[oracle@localhost ~]$ echo $SHELL
/bin/bash
[oracle@localhost ~]$ export ORACLE_SID=orcl
[oracle@localhost ~]$ export ORACLE_HOME=/home/oracle/app/oracle/product/11.2.0/dbhome_2
[oracle@localhost ~]$ export PATH=$ORACLE_HOME/bin:$PATH==< veja que as vars tão setadas :
[oracle@localhost ~]$ echo $ORACLE_SID
orcl
[oracle@localhost ~]$ echo $ORACLE_HOME
/home/oracle/app/oracle/product/11.2.0/dbhome_2
[oracle@localhost ~]$ echo $PATH
/home/oracle/app/oracle/product/11.2.0/dbhome_2/bin:/usr/java/latest/bin:/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/home/oracle/app/oracle/product/11.2.0/dbhome_2/bin:/home/oracle/bin
[oracle@localhost ~]$[]s
Chiappa
-
AutorPosts
- Você deve fazer login para responder a este tópico.