- Este tópico contém 10 respostas, 3 vozes e foi atualizado pela última vez 16 anos, 2 meses atrás por
David Siqueira.
-
AutorPosts
-
30 de setembro de 2009 às 10:43 pm #90026
mpvargas
ParticipanteCaros 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.30 de setembro de 2009 às 11:03 pm #90028David Siqueira
ParticipanteVargas 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!!!!
30 de setembro de 2009 às 11:29 pm #90033mpvargas
ParticipanteFala 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.30 de setembro de 2009 às 11:33 pm #90034vieri
ParticipanteVocê 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;30 de setembro de 2009 às 11:38 pm #90035vieri
Participanteops 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…
30 de setembro de 2009 às 11:40 pm #90036vieri
Participante30 de setembro de 2009 às 11:44 pm #90037David Siqueira
ParticipanteVargas 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
30 de setembro de 2009 às 11:53 pm #90038mpvargas
ParticipanteCompanheiros, 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…1 de outubro de 2009 às 12:59 am #90039mpvargas
ParticipanteFiz 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.
1 de outubro de 2009 às 6:45 pm #90046vieri
ParticipanteMandou bem vargas !!
😉2 de outubro de 2009 às 4:31 am #90069David Siqueira
ParticipanteVargas,
Meus parabéns pela implementação e desfecho do problema.Abraço!!!
-
AutorPosts
- Você deve fazer login para responder a este tópico.