Pular para o conteúdo
  • Este tópico contém 10 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por David Siqueira.
Visualizando 11 posts - 1 até 11 (de 11 do total)
  • Autor
    Posts
  • #90026
    mpvargas
    Participante

      Caros Amigos,
      Tenho uma tabela particionada, no método range partition.
      Utilizei um campo DATA que tem na tabela para separar por ano, sendo os anos de 2006, 2007, 2008 e 2009…
      Agora preciso criar uma partição para 2010…
      Mas eu gostaria de recriar as partições, porque vou separar a partir de 2007…
      Já tentei de várias formas mas não estou tendo sucesso, alguém poderia me ajudar… Obrigado.

      #90028
      David Siqueira
      Participante

        Vargas como vai?
        Deixa ver se eu entendi, tu quer apenas realisar uma manutenção na sua tabela particionada, adicionando uma partição do ano seguinte, ou você quer eliminar todas as partições ateriores a 2007 antes de adicionar a do ano seguinte (2010).

        Abraço!!!!

        #90033
        mpvargas
        Participante

          Fala David, tudo blz?
          Eu gostaria de incluir uma nova partição, no caso, do ano de 2010…
          E como são poucos valores anteriores a 2007, eu pretendo criando uma partição com esses valores, no caso, menor ou igual a 31/12/2007…
          Aproveitando todas as alterações, gostaria de mover uma determinada partição de tablespace…
          Quer dizer, vou praticamente recriar tudo…
          Mas não sei porque não está dando certo…
          Fiz um dump da tabela, recriei sem as partições… até aí blz… a tabela foi recriada sem as partições… mas quando tento particionar novamente não está dando certo.

          #90034
          vieri
          Participante

            Você deverá truncar as partições de 2007 e depois remove-lá.

            alter table

            <

            table> truncate partition ;
            alter table

            <

            table> drop partition ;

            Após isso vc deverá criar as novas partições de 2010.

            alter table

            <

            table> add partition
            VALUES LESS THAN (TO_DATE(’01-JAN-2010′,’DD-MON-YYYY’))
            TABLESPACE tbps_name;

            #90035
            vieri
            Participante

              ops cuidado truncar não… achei que vc não quisesse os dados de 2007!!

              já que utilizou o exp/imp , porque já não cria a tabela de jeito que quer as partições e ai sim importa ela?

              mais prático…

              #90036
              vieri
              Participante
                #90037
                David Siqueira
                Participante

                  Vargas eu faria o seguinte :

                  • Exportar a Tabela
                  • Recriar a Tabela já com o RANGE PArtition

                  • Importar a tabela novamente

                  Ao importar a tabela novamente o comando de import obedecera as regras de particinamento de sua tabela ja criada e particionada, ou seja os dados iram ser importados nas suas devidas partições de acordo com as suas definições de LESS …THAN

                  Ok?
                  Post os erros que esta recebendo ao executar o processo, quem sabe é alguma coisa simples que passou despercebida por ti.

                  Vieri :

                  Boa colocação, é exatemente esse o esquema mesmo.

                  Ats

                  #90038
                  mpvargas
                  Participante

                    Companheiros, valeu pela ajuda…
                    O link que o Vieri passou é realmente muito bom…
                    David, essa opção que vc passou foi exatamente o que eu fiz, mas quando fui importar a tabela, para a nova tabela que já está com o Range definido, ele não obedeceu e criou como era antes…
                    Mas de qualquer forma, vou tentar fazer isso novamente… como vc disse posso ter cometido algum erro sem perceber…

                    #90039
                    mpvargas
                    Participante

                      Fiz outro teste…
                      Exportei a tabela (expdp)
                      Criei uma nova tabela com os ranges que eu quero
                      Importei os dados para a nova tabela (impdp e content=data_only)

                      Deu certo… acho que da outra vez já tinha dado certo, mas eu estava confundindo o log do impdp e do expdp…

                      Agora verifiquei nas tablespaces e o particionamento foi criado de forma correta…

                      Obrigado pela ajuda de todos.

                      #90046
                      vieri
                      Participante

                        Mandou bem vargas !!
                        😉

                        #90069
                        David Siqueira
                        Participante

                          Vargas,
                          Meus parabéns pela implementação e desfecho do problema.

                          Abraço!!!

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