Olá pessoal,
Esses dias na empresa executamos um reorg em um banco do TSM 5.5. Sim é quase backlevel. Sim, já podíamos ter migrado para 6, mas não deu. O mesmo atingiu impressionantes 543GB e 100% de uso.
Para quem custa acreditar que o TSM 5.5 chegasse a esse tamanho.:
Após deleção de nodes antigos e exports de outros, o banco ficou altamente fragmentado e a execução do reorg foi inevitável pois nem mesmo alguns selects estavam rodando, pois estavam apresentando mensagens de "SQL temporary table storage has been exhausted".
Abaixo está o passo-a-passo do procedimento executado.
1- Após finalização da janela de backup, foi desabilitado todas as sessões para que nada novo entrasse.:
2- Migration de todos os diskpools para fita.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhFukW3wSzbN93gMrZoGbR03OdLaOTlybS00nAxjxLmjB9lqadcBQh5YD5eiLhDN_hJjcEizH4hxv_tt1_R13urQjH2asegBglAoDW0XBhIlTuAxQNm0kc4zxbAHWlC5jbJ28j_WRg1gi4/s400/2013-05-21_184730.png)
3- Validação se todos os diskpools estavam zerados.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ75ChbS0-X-Y8ojHO7V1oBvaj63EhMhDemJ80znJS8pvHqJEjsuSwSuBgGfAZV7EuAwRVw2T_mcip7byhKZHaRfvxLkQr5H0WLIjEkCf8_8t9ycJwmMoT5BToHHtxqHcAC3IA-4hYff0/s400/2013-05-21_184742.png)
4- Execução de um backup full do DB do TSM.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjVJs6DHuTloXpvSWPTdR8QUWDKhdnI8qTzEtxS7X7NkPw4SdcsBvJVy41orzaViXozJuKLD7_NfaRcOh28KW1GInWgkOe291XVdR4BFfhahyphenhypheni6esOmEwM5ez7Jsgk4mS3TQXO-4qsPLew/s400/2013-05-21_184800.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhQBIdrbT4Vxhi-vcvyzrmIe78u_Hj7eB0YACoHX0kDUUKv2_yXcQuXsMf-n0iJkpa8bUme72HVjyh8LmMB9MF30KlvePbvL1WHspQQb0o-A18PIYNHpFt7itslrslCGJs1nmqgltuklBY/s400/2013-05-21_184809.png)
5- Validação da execução do backup do DB.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjWrdtrYEnI1822h1w6CPNaVN0qlRDnkYrL9ZsuzZR5g_a6tjrlo8utO5ToQrOxDhbZOD-hjiG_mPDitDUmroo98MPqv9AWaH8FF3lYjL7mBXA_1S5T3xKf6Ign4ShRmRj3kNCjLbSedMk/s400/2013-05-21_184823.png)
6- Criação de uma deviceclass do tipo FILE com o Directory apontando para o path onde será gerado o dump.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhX2EciYvh47VhczxXCwjTbcS46jjRhzDhTkHR_OaZdQUbqkryd1Ss1DnRjxQrfoCCuph2zIsqLlV87SHnZXOwgM-zU1knnd0-VCrkExBourLxLNVNNOYomn5oVOLxzxxu5yDDQIR_wtUk/s400/2013-05-21_184839.png)
7- Excesso de zelo. Backup do devconfig e volhist.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhZoevd03JJ1GUK3_uEO3iA7cUbaTLdJz0-Yrd1-N9I4Sf9jPrqB3mozsSV__RV5O5h3RvnFdr1oxQU5lx1U2ox3VhTrN883Lh-4fEihjpLyyyFucm4vOGyvaVKcR1h7EqYEcEXMZ_LoLU/s400/2013-05-21_184856.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj5T4D99FGK-JIW-pBMCYC01gDezshQCm2-M1oErkE-RMsUM0lIH5cYP-1PN-wqTYr3JJ3BePv8IOpQX_RctjuOYD8q0_taOkGyTqYQTDYX6tvnbRBBmpOidAQ4r5GA7IoqF9yG1Gjbh9w/s400/2013-05-21_184905.png)
8- Excesso de zelo. Listar volumes dos DB e LOG atuais.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjJedG-zlXgUAGmf9PM2m7wi0DTPrAqUbaihVtUDPbun8Cd7yzoq5udiTinsQP6bBOnSX_-R6u_2c9r1bczfdsV5CgVhOTvDA5ylWNUrHXcLmlxIMnSo7PNjnO-qHunxXU-7sMc3f50Lek/s400/2013-05-21_184933.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiKwmMp2MZSJePMOha7JArVjHFw4qni7XStMzhoaf8FpPdzjljcnpkAiD0amFqCEFgn1SsMN9lWMEb7qxT_ODFUGB3Bxs5vdfXgo4zipubhmRggAXwR2pmnB62LoDB6EtZ5ou0ontcYnf8/s400/2013-05-21_184948.png)
9- Agora sim. Efetue halt e prossiga com o unloaddb.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg-M9v2NCDUemWwZOODvRspA-rtK1LGFOUcqW-24K3JEAMwcBJIMOoIiFdPUW3lbeyGLNQ6CMkzvJaMZR2maSM7XaAQHnEeb6DwVHFcDJAKG9KSHQaIp9mIfGHtjxjB6wXJf6Kxwr6DiVw/s400/2013-05-21_185027.png)
Obs.: Aqui uma observação. O erro estava ocorrendo durante a leitura o dsmserv.dsk. Após algum tempo analisando percebemos que como temos mais de uma instância ativa no mesmo servidor, por algum motivo, mesmo tempo exportado todas as variáveis da instância correta, ele tava buscando um dsmserv.dsk de outro caminho.
10- Optamos por utilizar o parâmetro -k e passando o nome do Server da instância, no caso Server4. Com isso ele carregou todas as variáveis corretas e passou.
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMr5Dj2Y7v-_LHFKgF9eBy7d0R5T9gz0aVm6dCtsiLlLUc_ox7RnwKxrlUJokgh-v66OmQ60pXfDuLlv9wpVjkypLSY2q_kWkJmj9p6OT1DIcXvkmoCFbxXHC9nAv1avH5iGiLFAAtxVs/s400/2013-05-21_185054.png)
Obs.: Reparem que nesse momento o TSM emite um Warning de que está rodando em modo Standalone e logo abaixo o dump sendo gerado no caminho que você passou quando criou a deviceclass.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjAc-Fh5Fg4MJid2WJyYHwmB1BXWYYyrqc6dChmopSSw3PthK7XKdLGR29sebR1XuaAVKG2ioGkbh_hUz7fs-FF_zjE2rfz3jOnJDMD6sBuEz2gHfKWrADStlKFUg6ofzne6-HWuH27aZE/s400/2013-05-21_185106.png)
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiguvpvfI0yOetMyvP6ILmYvXHr41EuBzvkzBG6_Mv94A0BOFxpTRlRbz1U7a_wPnUvAmHPIgGSiES4U-m_z5wuazXKInL8kFzfAfZhrabhmkCOhtV8WZoSPYf5lC7wULGi-FeVTPuheFY/s400/2013-05-21_185112.png)
11- Validação do término do processo de unloaddb.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgciNc6XzaVeKIzwUe34AbYfZDvwObZbluk4JQG3WYeBPvN5u9nQJhzvHtXR6Pl5olPstCVJnFih2tEBKf3jloH_fSwYjurQwx5c5B-tB_ULd0aeCuonEsg6YJUI4jVzg4_CdVjNQMB9ug/s400/2013-05-21_185124.png)
12- Após o processo de unloaddb, é necessário rodar o comando de loadformat para formatação dos novos volumes de DB e LOG.
Obs.: O comando precisa passar parâmetro sobre a quantidade e o nome dos logvolumes e dos dbvolumes. Uma dica aqui é que não encontrei na documentação oficial desse comando que logo após o nome do logv/dbv é necessário passar o tamanho em MB que será criado esses volumes. Foi feita uma tentativa sem passar o tamanho e tava dando erro, mas nada como uma pesquisa boa na net para encontrar a resposta.
13- Reparem que logo após a formatação dos logvolumes, o processo começa a formatação dos dbvolumes.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhiRv-lR_SxoLMQuAOfIpmqCQrLN_mFYWoX2moO2UjMmqvhlKUM_Fuox6WvipGqNH2YOGCDoDka1fN6ho-RQzTjqMk3HpxEf4NLNfelrp3dQ9sr9jJC75mCUk6FRMcz5taXUB5IN5RC3Ew/s400/2013-05-21_185148.png)
14- Valide se finalizou com sucesso. Reparem que no final a log informa que o DB está pronto para ser dado load.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgyXxtP48NH9DS_9dXFYJ631sJp36hSe1X5LkbV6geG4QKkVdAnHnvwr6Q89IBXNoYYpdgRReSFf-iRC3z4JJaO-hn-yV_J9jbQ3YXr5276zGsmFFETOpnzZ39ZjiJMIHxlmE_dFeqOIwc/s400/2013-05-21_185200.png)
15- Agora é o momento de efetuar loaddb. Reparem no comando que é necessário informar o caminho e o nome do dump que foi gerado no processo de unloaddb.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiJ9WQP_6MTfJw2M_gP_XzK6dYDgK3m4qGDHTiHWJ2w3mmuiuZ9q2jauPw2B8taF3KXkZz1pAvoim0jCXwklAGA71k8R9f5_zW0wsHQNSemxaRWXeumI0MxK1TCxbHS8pwq_NiLA2xHsVQ/s400/2013-05-21_185225.png)
Obs.: Vejam que logo no começo do processo a log informa que o dump está consistente e que ao final não será necessário efetuar auditdb.:
16- Validem se finalizou com sucesso e vejam que ao final vem a mesma mensagem onde informa que não é necessário efetuar o auditdb.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgFG3-bxBdccJnlrgDBctZXQMgPc4e5dCF67-lXZsoa4BU5lZKUMrkgbnG_rCJazdxJgMJDZH04vwKWyAZXyHjNFQcxav7Cejokn0dFflVdykq68ysOpMEOqFcDUDAFTr4LZLNZ5rrqaic/s400/2013-05-21_185245.png)
17- Aqui, apenas uma validação do DB subindo-o em modo foreground.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEi9xDcHi5BAeFPLcXCFeoilxddYIAkrbadVM6yP69Ot-gJuHOAnO_CdtJJIKDt-Pazjazsx8Uqm7Aaqd-kArxOxpqFs-QL3hUoTW276tX0i8vYj_-xIg3UkFmBAqwDIVPfHYUbEsiy71JM/s400/2013-05-21_185257.png)
18- Com a validação Ok, basta dar halt e subir o banco em modo background normalmente. Aqui a validação do DB como ficou após o processo.:
![](https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgg6XF0m9nUaiWhgTpsH62NTlfyhurROQX591Lsi6HPcI8ix2sEYFZ9ra0kaGTAWJJGQ_qMVL2llqoPpTjVEFQcgB6S5D62OGnRZD8HqwsUWc_hlJe-tLiqmGqR9vJ3y1b-5BKRSLisDMs/s400/2013-05-21_185306.png)
Obs.: Uma dica aqui é não esquecer de dar um update server entre a librarymanager e a libraryclient com o forcesync, senão fica dando erro de autenticação entre as duas.
Resumindo.:
Tínhamos um banco de 543GB e 100%
Ao final do processo ficamos com um banco de 80GB e 78% de uso, ou seja, efetivamente um banco de 62,4GB.
Espero que tenham curtido. Qualquer dúvida, sugestão ou correção sobre o que foi escrito aqui ou em outros posts, escreva para tsmnapratica@gmail.com ou publiquem na área de comentários.
Caso queiram compartilhar a solução de algum problema que tiveram, escreva também que faço a publicação.
Abraços.