Pular para o conteúdo
  • This topic has 4 replies, 2 voices, and was last updated 5 years, 8 months ago by Avatar photoJosé Laurindo Chiappa.
Viewing 5 posts - 1 through 5 (of 5 total)
  • Author
    Posts
  • #132709
    Avatar de Leandro PintoLeandro Pinto
    Participant

      Estou executando o seguinte comando para criação de tablespace:

      CREATE TABLESPACE PIMS_DATA
      DATAFILE
      ‘+DATA/orcl/PIMSDATA1’ SIZE 1m AUTOEXTEND ON NEXT 128m MAXSIZE UNLIMITED;

      ALTER TABLESPACE PIMS_DATA ADD DATAFILE ‘+DATA/orcl/PIMSDATA2’ SIZE 1048576 AUTOEXTEND
      ON NEXT 128m MAXSIZE UNLIMITED;

      ALTER TABLESPACE PIMS_DATA ADD DATAFILE ‘+DATA/orcl/PIMSDATA3’ SIZE 1048576 AUTOEXTEND
      ON NEXT 128m MAXSIZE UNLIMITED;

      Só que quando começo a dar o comando impdp cada datafile ocupa apenas 3 megas e ja vai para o próximo datafile, o certo era ele ocupar se não me engano no minimo 32 giga de cada datadile.
      Será que o meu comando esta errado na criação da tablespace?

      #132957
      Avatar photoJosé Laurindo Chiappa
      Moderator

        Blz ? Não, colega, vc está completamente enganado : JUSTAMENTE para ‘espalhar’ o I/O em múltiplas fontes, quando vc cria múltiplos datafiles pra uma tablespace o Oracle ** VAI ** normalmente usar uma algoritmo de round-robin, ie, vai gravar um pedacinho em cada datafile – entre outras coisas, se os dados estiverem espalhados por múltiplos datafiles (evidentemente, em múltiplos discos, controlados por múltiplas controladoras), vc pode ter PARALELISMO, ie, n processos cada um lendo AO MESMO TEMPO um disco diferente…. Veja https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:7116328455352 para uma discussão maior a respeito…

        []s

        Chiappa

        OBS : não tem NADA A VER com a sua pergunta, mas Observo que vc está DIRETAMENTE forçando um valor de extent size com esse NEXT 128m – veja, a não ser que vc tenha uma PROVA CABAL de que esse tamanho é o Ideal pro seu caso, eu RECOMENDO FORTEMENTE que vc Não Faça Isso…. O problema é que com isso quando houver a necessidade de alocar um novo extent vc está FORÇANDO o banco a alocar 128 megabytes, AINDA que a alocação seja pra uma qtdade mínima de dados….
        EU RECOMENDO sempre, quando não se sabe Exatamente o padrão de alocação, que vc deixe isso em MODO AUTOMÁTICO, aí é o próprio RDBMS que vai decidir os tamanhos de extents a alocar….

        #132963
        Avatar photoJosé Laurindo Chiappa
        Moderator

          E outro ponto : a extensão automática IMPLICA que tudo dentro do RDBMS ** tem ** que ser CONGELADO, pra que o RDBMS solicite ao SO que AUMENTE o datafile, apenas quando esse aumento foi feito é que tudo ‘descongela’ e o RDBMS volta a trabalhar… Então, para melhor performance (SE isso for o objetivo final), normalmente já se cria o datafile com VÁRIAS e VÁRIAS CENTENAS DE MEGABYTES, justamente pra Prorrogar a necessidade do RDBMS ficar pedindo pro SO aumentar o datafile, ok ?? Não sabemos se vc TEVE ou NÃO um MOTIVO pra criar datafile com apenas 1 MB (talvez o seu Objetivo seja ter o datafile com o menor tamanho possível, digamos, embora Outros meios existam pra isso) , mas Só fique ciente….

          []s

          Chiappa

          #133171
          Avatar de Leandro PintoLeandro Pinto
          Participant

            Obrigado pela explicação, vou estudar mais essa parte.

            O banco que estou tentando importar tem uns 60 giga + ou –
            E como você disse eu não sei exatamente o padrão de alocação, e queria deixar isso em MODO AUTOMÁTICO, vc possui algum exemplo de comando para a criação dessa tablespace.

            #133411
            Avatar photoJosé Laurindo Chiappa
            Moderator

              É superfácil (basta vc não confiar nos defaults e indicar exatamente o que vc quer), mas antes de qquer coisa faço algumas observações :

              a) normalmente NÃO se deixa um datafile ilimitado, ou mesmo de tamanho giganticamente grande : a questão é que, se por corrupção, falha de hardware ou seja o que for, vc tiver que VOLTAR O BACKUP desse datafile, é muito MUITO mais rápido vc voltar um backup de, digamos, alguns poucos GBs do que um de 32 GB… E justamente, quando vc deixa UNLIMITED é algo por volta de 32 GB que vc tem como máximo…. Então, eu vou usar aqui inicialmente 4 GB por datafile E deixarei cada datafile crescer até 8 GB : esses números , que é alguma coisa nem muito grande nem muito pequena, não devem causar demora se eventualmente vc tiver que fazer qquer tarefa administrativa com um deles, mas cabe a VOCÊ validar isso no seu ambiente, isto é SÓ UM EXEMPLO : de repente, no SEU ambiente, o SEU hardware é tão bom que mesmo um restore de dezenas de GBs não é demorado, aí vc deixa limitado no tamanho que quiser (E que a sua versão de Oracle E seu SO permitam, claro)….

              b) não implica em NADA pra performance ou pra segurança ou coisas assim, mas ADMINISTRATIVAMENTE é sempre MUITO INTERESSANTE vc não enfiar tudo em uma só tablespace : por exemplo, se vc tiver os índices em uma tablespace e os dados em outra, por exemplo vc pode DEIXAR DE BACKUPEAR a tablespace de índices e só exportar os CREATE INDEX, digamos : aí em caso de crash vc volta o backup da tablespace de DADOS e os índices vc Reconstrói na mão com executando os CREATE INDEX do export que vc fez antes….
              Igualmente, se vc puder ter os dados organizados por data em diferentes tablespaces (digamos, Notas Fiscais de janeiro em uma tablespace, Notas Fiscas de fevereiro em outra, etc), vc PASSA a ter possibilidade de TRANSPORTAR as tablespaces dos meses anteriores prum outro banco e deixar no banco Prod principal só os dados do mês corrente, ou só os dados dos últimos N meses, digamos…. Ou talvez vc possa COMPACTAR os dados antigos, de forma que eles ocupem menos espaço….
              Lógico que muito Provavelmente isso exige também o PARTICIONAMENTO, mas separação por tablespaces via de regra é a necessidade Primária pra se usar essas coisas, sim ???

              ==> OU SEJA : a TABLESPACE é uma FERRAMENTA ADMINISTRATIVA, use-a como tal, okdoc ??

              Isso posto, tirei do Manual Oracle correspondente (o SQL REFERENCE) o exemplo abaixo :

              CREATE TABLESPACE PIMS_DATA
              DATAFILE ‘+DATA/orcl/PIMSDATA01.dbf’ SIZE 4G AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA02.dbf’ SIZE 4G AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA03.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA04.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA05.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA06.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA07.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA08.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA09.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA10.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA11.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA12.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA13.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA14.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA15.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              ‘+DATA/orcl/PIMSDATA16.dbf’ SIZE 4g AUTOEXTEND ON MAXSIZE 8G,
              EXTENT MANAGEMENT LOCAL AUTOALLOCATE SEGMENT SPACE MANAGEMENT AUTO;

              Abraços,

              Chiappa

            Viewing 5 posts - 1 through 5 (of 5 total)
            • You must be logged in to reply to this topic.
            plugins premium WordPress