Precisei movimentar um tablespace de um diskgroup com redundância no ASM EXTERNAL para um outro com redundância NORMAL. Abaixo vou descrever os passos que realizei no meu ambiente de homologação para testar.
Bom, no meu caso o tablespace era bigfile e como tinha um tamanho de 34Tb, então deixar o arquivo offline e então realizar o backup não era uma opção por conta do tempo de parada. Então fui na estratégia do backup as COPY com o RMAN e todos os dias ia fazendo o recover do arquivo de cópia.
A vantagem de usar esse método é que posso criar um cópia do datafile (backup full) e ir adicionando as mudanças que foram feitas no arquivo original na minha cópia com o banco de dados online.
Utilizei o bloco de comando no RMAN abaixo para a criação do arquivo de cópia, recover e backup incremental.
Executei esse bloco de comando todos os dias para deixar meu arquivo de cópia o mais próximo possível do arquivo original e no dia em que fosse realizar o procedimento em produção, o tempo de indisponibilidade seria menor.
RUN{ ALLOCATE CHANNEL disk1 DEVICE TYPE DISK FORMAT '+OCRVOTE/copia.dbf'; RECOVER COPY OF DATAFILE 5 WITH TAG 'MOVE_DISKGROUP'; BACKUP INCREMENTAL LEVEL 1 FOR RECOVER OF COPY WITH TAG 'MOVE_DISKGROUP' DATAFILE 5; } allocated channel: disk1 channel disk1: SID=74 device type=DISK Starting recover at 09-SEP-20 no copy of datafile 5 found to recover Finished recover at 09-SEP-20 Starting backup at 09-SEP-20 no parent backup or copy of datafile 5 found channel disk1: starting datafile copy input datafile file number=00005 name=+OCRVOTE/uow/datafile/tbs_novo.309.1050678701 output file name=+OCRVOTE/copia.dbf tag=MOVE_DISKGROUP RECID=62 STAMP=1050678919 channel disk1: datafile copy complete, elapsed time: 00:00:01 Finished backup at 09-SEP-20 released channel: disk1 |
Explicação do bloco de comandos:
1 - Aloca um canal do tipo disco e indica para qual diskgroup no ASM vou jogar minha cópia. Aqui como estamos usando backup as copy, não conseguimos fazer em paralelo.
2- Faço o recover da minha imagem. Caso eu tenha algum backup incremental feito, o RMAN vai aplicar as alterações na cópia.
3 - Realizar o backup incremental do datafile 5. Caso não exista um backup full, o RMAN vai irá iniciar um.
Abaixo podemos ver que temos umas cópia do datafile 5 no caminho +OCRVOTE/copia.dbf.
RMAN> list copy of datafile 5; List of Datafile Copies ======================= Key File S Completion Time Ckp SCN Ckp Time ------- ---- - --------------- ---------- --------------- 62 5 A 09-SEP-20 784340 09-SEP-20 Name: +OCRVOTE/copia.dbf Tag: MOVE_DISKGROUP |
Bom, com a cópia já feita e atualizada, agora precisamos deixar o datafile indisponível antes de executar o comando switch. Esse comando vai realizar a troca do arquivo de cópia com o arquivo original.
RUN datafile 5 switched to datafile copy input datafile copy RECID=62 STAMP=1050678919 file name=+OCRVOTE/copia.dbf Starting recover at 09-SEP-20 allocated channel: ORA_DISK_1 channel ORA_DISK_1: SID=74 device type=DISK allocated channel: ORA_DISK_2 channel ORA_DISK_2: SID=97 device type=DISK starting media recovery media recovery complete, elapsed time: 00:00:00 Finished recover at 09-SEP-20 sql statement: ALTER TABLESPACE TBS_NOVO ONLINE |
Explicação do bloco de comandos:
1 - Deixa o tablespace offline. No meu caso, se tratava de um tablespace bigfile, então só havia uma datafile nesse tablespace.
2 - Realizar o troca entre os arquivos origem e cópia. Aqui você indica os arquivos origem e cópia.
3 - Pega as últimas alterações feitas na origem e aplica no arquivo de cópia
4 - Coloca o tablespace online.
Pronto, seu datafile está no novo diskgroup.
RMAN> report schema; Report of database schema for database with db_unique_name UOW List of Permanent Datafiles =========================== File Size(MB) Tablespace RB segs Datafile Name ---- -------- -------------------- ------- ------------------------ 1 700 SYSTEM *** +OCRVOTE/uow/datafile/system.272.1050582827 2 600 SYSAUX *** +OCRVOTE/uow/datafile/sysaux.273.1050582827 3 760 UNDOTBS1 *** +OCRVOTE/uow/datafile/undotbs1.274.1050582829 4 5 USERS *** +OCRVOTE/uow/datafile/users.276.1050582833 5 50 TBS_NOVO *** +OCRVOTE/copia.dbf List of Temporary Files ======================= File Size(MB) Tablespace Maxsize(MB) Tempfile Name ---- -------- -------------------- ----------- -------------------- 1 59 TEMP 32767 +OCRVOTE/uow/tempfile/temp.275.1050582829 |
Comentários