Pular para o conteúdo
  • Este tópico contém 14 respostas, 8 vozes e foi atualizado pela última vez 16 anos, 8 meses atrás por Rodrigo Almeida.
Visualizando 15 posts - 1 até 15 (de 15 do total)
  • Autor
    Posts
  • #87811
    Anakim
    Participante

      Estou iniciando os meus estudos no oracle e este é o meu primeiro post no fórum.
      E já surgiram algumas dúvidas em relação ao Oracle.
      Eu trabalho muito com PostgreSQL e muitas vezes fico fazendo comparações entre os dois.
      Uma das coisas que me chamou a atenção foi o modo de trabalho diferente entre o Postgre e o Oracle, por exemplo, no Postgre eu crio vários banco de dados em uma única instância do banco de dados. E no Oracle eu crio uma instância para um banco de dados, se quiser ter um outro banco de dados eu tenho que criar uma nova instância. É isso mesmo? Eu entendi certo?
      E se for isso eu gostaria de saber qual é a forma mais usada no mercado? Por exemplo é comum ter um oracle em uma máquina e ter dois banco de dados rodando nesta máquina? Ou usar os schemas do Oracle como banco de dados?

      #87814
      srlazarin
      Participante

        Olá Anakim,

        Somos dois, estou iniciando meus estudos no Oracle e ontem foi o meu primeiro post =D…

        Vamos lá, eu venho do SQL Server, é pelo jeito é a mesma idéia do Postgre, uma instância e vários databases.

        Antes de mais nada, no Oracle, “banco de dados” significa a coisa toda, ou seja, a instância, os arquivos de dados etc., o que não acontece com outros gerenciadores. São conceitos, mas com isso que já dá pra separar as coisas e facilitar o entendimento.

        Sendo mais objetivo, se você quiser criar um outro “banco de dados” na mesma instância, no Oracle você deve criar um Tablespace.

        Um tablespace consiste em um ou mais arquivos de dados.

        Ex.: Tablespace “Financeiro”, você define quantos arquivos farão parte deste tablespace, qual é a cota do tablespace.

        Quanto a utilização no mercado, não posso dar muito palpite, sou novo na área também, mas acredito que seja assim também, em tablespaces (ou bancos de dados no Postgre).

        Se eu não me engano, é na configuração do usuário que se define em qual tablespace ele deve trabalhar (gravar dados etc.), me corrijam se eu estiver errado.

        Espero ter ajudado!

        #87815
        msantino
        Participante

          Fala Anakin, somos 3 então!

          Eu entendi a mesma coisa, mas um pouco diferente do que o srlazarin falou.
          O conceito que entendi foi o mesmo que você, utilizando (além de tablespaces), SCHEMAS como separação entre uma “base de dados” e outra.

          Até porque, um TABLESPACE pode conter mais de um schema.

          Só falta a galera mais experiente confirmar esse conceito pra gente.

          Abçs,

          #87817
          srlazarin
          Participante

            Concordo contigo msantino,

            Como um schema não necessariamente precisa estar ligado a um único tablespace, torna-se uma maneira a mais de organizar o acesso aos dados entre os usuários.

            []’s

            #87818
            LuizLaiho
            Participante

              estou com o msantino

              Vc não cria uma nova tablespace para um banco novo dentro do mesmo oracle. Normalmente criamos schemas…

              Porém mesmo assim não é o ideal, já que se forem sistemas diferentes compartilhando mesmas tablespaces, variaveis de banco, etc, não é interessante.

              O interessante é criar uma nova instância realmente.

              Por exemplo onde trabalho, tenho um servidor de testes e projetos, além do oficial e de standby. No de testes/projetos temos 2 instâncias distintas, uma somente para base teste e outra somente específica para projetos, encima de uma mesma instalação de Oracle, porém com ORACLE_SID diferentes, assim sendo com arquivos de dados, redo, controlfile, usuários sys, system, etc, tudo distintos um do outro.

              Mesmo não sendo expert no assunto, vejo que é uma melhor forma de se trabalhar.

              #87819
              LuizLaiho
              Participante

                complementando….

                o que ajuda desta forma é que você faz backups distintos tbm dos ctl file, redo e data file, podendo parar, voltar, etc cada instância de forma separada. Usando schemas vc teria q voltar alguma coisa de bkp com o exp e imp por exemplo…

                Obs.: Olhem abaixo do meu nick, newbie… hehehe . . . vamos ver se algum user mais experiente confirma, complementa ou discorda de algo

                #87821
                Ishii
                Participante

                  Olá a todos,

                  Sejam benvindos ao GPO!

                  1) Datafiles: Arquivos de Dados
                  2) Tablespaces: Seria semelhante a uma Área de Trabalho só que de tabelas. Uma Tablespace aponta para um DataFile, e um DataFile pode ser “apontado” por várias tablespaces. Com ela fica mais fácil a configuração dos SCHEMAS ou OWNERs pois há uma série de Defaults de armazenamento que ficam configurados na Tablespace.
                  3) OWNER ou SCHEMA: São usuários do Oracle que deveriam ter uma Tablespace Default, e por consequência estarem direcionados para um Datafile quando do seu armazenamento, toda a criação de Objetos estará associada ao seu proprietário (owner) e seus dados armazenados no seu Datafile informado pela Tablespace.

                  Uma instância significa que temos um DB Oracle e dentro dela podemos ter várias Tablespaces, vários Owners e Schemas. Outra instância seria como outro DB que para se comunicar com o primeiro somente com um DBLink. As instâncias podem estar fisicamente na mesma Máquina porém seriam Banco distintos tanto que até as portas devem ser diferentes apesar do Endereço ser o mesmo.

                  Quanto ao fato de ter várias instâncias… cada caso é um caso… se for para ambientes de desenvolvimento e produção…. isso é o mais indicado. Se for apenas para separar os desenvolvedores… pode ser dentro da mesma Instância mesmo…

                  A administração do Banco é isso mesmo… definir a melhor forma de separar e armazenar os dados.

                  []s Ishii

                  #87822
                  Rodrigo Almeida
                  Participante

                    Muito bem galera, sejam bem vindos a comunidade.

                    O conceito de vocês está correto, o Ishi passou um resumão para isso. Ficou bacana.

                    Depois, que aprimorar o conhecimento de TABLESPACE, DATAFILE, SCHEMAS e INSTÂNCIA, mais para frente, será questões de projeto de banco de dados que irá conseguir enxergar bem essas diferenças e como estruturar seu banco.

                    Um exemplo, é:

                    1) Se tenho um ambiente de teste, e tenho várias aplicações pequenas para esse ambiente, é recomendado que cada aplicação tenha seu owner (SCHEMA) e depois sua tablespace.

                    2) Uma tablespace pode ter muitos datafiles, porém, cada tablespace pode armazenar segmentos (Tabelas, ÍNdices ou LObs) que necessitam que atenção especial, seja para a parte de performance, principalmente I/O, ou até mesmo, particionamento de grandes tabelas, índices, trabalhar com LOBs ou segmentos que não necessitam de DMLs, que trabalhem apenas com READ-ONLY e necessita ficar em um lugar especial no banco.

                    3) Sobre owners, tu pode ter um owner (SCHEMA) para aplicação realizar tarefas full (adminsitração total) e outros schemas da mesma aplicação para apenas consulta ou tarefas especiais na aplicação, que pode ser separado por questões de segurança, por isso, que uma aplicação pode ter N schemas, fora os usuários da aplicação, que podem tb ter schemas, como synonyms e tabelas temporárias debaixo de seus usuários.

                    Isso são apenas exemplos para enfatizar o conceito de vocês, de como mais para frente isso será importante para vocês projetarem seus bancos de dados.

                    Abraços,

                    Rodrigo Almeida

                    #87823
                    DaSilva1809
                    Participante

                      Aproveitando a deixa galera, tambem estou iniciando no Oracle e gostaria de saber se consigo na net agum material do Oracle, pois pretendo estudar para tirar certificação.
                      O que vocês achamcompanheiros?
                      Desde já agradeço a colaboração.

                      #87833
                      Rodrigo Almeida
                      Participante

                        Bom, alguns links interessantes são em inglês, que podem lhe ajudar.

                        -> http://www.dbapool.com
                        -> http://www.oracle-base.com
                        -> http://www.orafaq.com
                        -> http://www.dbazine.com
                        -> http://www.searchoracle.com
                        -> otn.oracle.com
                        -> asktom.oracle.com
                        -> http://www.dba-oracle.com
                        -> http://www.lazydba.com

                        Em português tem muitos poucos…

                        Abraços,

                        Rodrigo Almeida

                        #87858
                        David Siqueira
                        Participante
                          #87941
                          msantino
                          Participante

                            Fala galera.

                            Valeu ae pela experiência de vocês. Pelo que vi, estamos conseguindo entender bem o conceito.

                            A dúvida surgiu porque nós (Eu e o Anakin) temos uma boa experiência em PostgreSQL, e nele o conceito é bastante diferente, apesar de ter como trabalhar próximo da forma como o Oracle faz, sendo que não é o padrão dele.

                            Em uma única instância do PG podemos ter infinitos DATABASES, que podem ter vários tablespaces, e um USER não tem automaticamente um SCHEMA relacionado a ele. Schemas são independentes.

                            Isso gerou uma certa confusão, mas já vi que entendemos! hehehehe

                            Valeu ae pelo material, já estou dando uma olhada aqui…

                            Abraços,

                            Celão

                            #87947
                            David Siqueira
                            Participante

                              Boa galera, continuem postando ai que o pessoal vai fazendo os acertos e ajudando como pudermos.

                              Só pra constar INSTANCIA é toda a sua estrutura que se encontra em memória SGA ( INSTANCIADA), por isso o significado da palavra e Banco de Dados seria o conjunto formado por seus arquios fisicos ( Redo’s log, Datafile’s e Control’s).

                              Abraço á todos.

                              #88001
                              Anakim
                              Participante

                                Valeu galera pela ajuda.
                                Acho que agora a dúvida foi respondida!!!
                                Agora é só esperar que outras surgirem.

                                Abs

                                #88009
                                Rodrigo Almeida
                                Participante

                                  POSTgreeSQL é um banco bem legal também heimmmmm….

                                  Um primo do Oracle eu diria! =D

                                  Abraços,

                                  Rodrigo Almeida

                                Visualizando 15 posts - 1 até 15 (de 15 do total)
                                • Você deve fazer login para responder a este tópico.