Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #94098
    mpvargas
    Participante

      Caros Amigos,

      Tenho uma tablespace de 50GB (ficou grande assim por causa de uma migração de sistema)… como ela é a tablespace DEFAULT para o usuário principal do sistema, tem muita movimentação.
      Fiz um estudo de redistribuição de tabelas e indices, e cheguei a conclusão que posso reduzir para uns 20 à 25GB.
      A minha dúvida é a seguinte:
      Como faço para diminuir o tamanho da tablespace já que não poderei usar o RESIZE pois existem dados nela?
      Pensei em criar uma nova tablespace com um tamanho menor e transferir os dados…
      Existe alguma forma de transferir todo o conteudo de uma tablespace para a outra?

      Obrigado pela ajuda.

      #94103
      VitorLeandro
      Participante

        Fala Vargas,

        O que sempre faço para transferências de objetos é o move das tabelas e partições, e depois o rebuild dos indexes, para a tablespace desejada. Pode ser feito pontualmente, objeto por objeto se for este o caso.

        Pode ser feito também o export, drop dos objetos e depois o import fazendo o remap tablespace, mas precisará de indisponibilizar completamente o sistema alem de ser bastante arriscado

        Se quizer, posto o script de geração dos move…

        #94105
        mpvargas
        Participante

          Fala Vitor,

          Gostaria do script sim, agradeço se puder postar…
          Com relação a move, rebuilds, etc. estou fazendo isso, mas estou fazendo somente com as maiores tabelas…
          O grande problema é que o ERP cria as tabelas no banco conforme acessa determinado módulo e como foram implantadas diversas filiais, ele separou as tabelas por filiais, sendo assim eu tinha em média umas 3.000 tabelas e depois da mudança tenho mais de 25.000 nessa tablespace…
          90% das tabelas estão zeradas, mas não posso apagá-las…
          Esse é o grande problema, são muitas tabelas para mover…
          Por isso pensei em usar um comando que movesse todos os objetos de uma tablespace para outra.

          #94106
          VitorLeandro
          Participante

            MOVE AS TABELAS NAO PARTICIONADAS
            SELECT ‘ALTER TABLE || ‘ ‘ || OWNER || ‘ .’ || TABLE_NAME || ‘ MOVE TABLESPACE ;’
            FROM DBA_TABLES
            WHERE PARTITIONED = ‘NO’
            WHERE TABLESPACE_NAME =
            — PODE-SE FILTRAR OBEDECENDO CRITÉRIOS COMO TAMANHO, NUMERO DE LINHAS…

            MOVE AS PARTIÇÕES DE TABEÇAS PARTICIONADAS
            SELECT ‘ALTER TABLE ‘ || TABLE_OWNER || ‘.’ || table_name ||’ MOVE PARTITION ‘ ||partition_name ||’ TABLESPACE ;’
            FROM all_tab_partitions
            WHERE TABLESPACE_NAME =

            RECRIA OS INDEXES NA TABLESPACE DESEJADA
            SELECT ‘ALTER INDEX ‘ || OWNER || INDEX_NAME || ‘ REBUILD TABLESPACE ;’
            FROM DBA_INDEXES
            WHERE TABLESPACE_NAME =

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