Impressionante perceber que quanto mais estudamos, mais vemos que nada sabemos, e os tantos gaps de conhecimento que deixamos pelo caminho. Este foi meu caso ao me deparar com a pergunta do título, na obra do Darl Kuhn (Linux and Solaris Recipes for Oracle DBAs). Diante disso, decidi reproduzir o assunto em laboratório próprio, para fortalecer o conceito, mas os créditos devem ficar com o Darl que criou o procedimento de teste.
Primeiro, vamos validar se nosso datafile possui o conteúdo “SWIV”:
[oracle@oel8 ~]$
[oracle@oel8 ~]$ strings /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf | grep -i SWIV
[oracle@oel8 ~]$
Vemos que não há este conteúdo. Então vamos criar uma tabela de testes na tablespace USERS:
[oracle@oel8 ~]$ sqlplus / as sysdba
SQL*Plus: Release 18.0.0.0.0 - Production on Tue Jan 10 18:12:52 2023
Version 18.13.0.0.0
Copyright (c) 1982, 2018, Oracle. All rights reserved.
Connected to:
Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 - Production
Version 18.13.0.0.0
SQL> CREATE TABLE TABELA (CONTEUDO VARCHAR2(20)) TABLESPACE USERS;
Table created.
SQL>
Colocando a tablespace em modo backup:
SQL> ALTER TABLESPACE USERS BEGIN BACKUP;
Tablespace altered.
SQL>
Inserindo o conteúdo “SWIV” em nossa tabela de teste:
SQL> INSERT INTO TABELA (CONTEUDO) VALUES ('SWIV');
1 row created.
SQL> COMMIT;
Commit complete.
SQL>
Garantindo que os blocos em memória sejam persistidos em disco:
SQL> ALTER SYSTEM CHECKPOINT;
System altered.
SQL>
Validando o datafile, temos a nossa resposta: Sim, ainda há escrita no datafile mesmo a tablespace permanecendo em Begin Backup:
[oracle@oel8 ~]$ strings /oracle/dados/RMANDB/datafile/o1_mf_users_h8nyrkn7_.dbf | grep -i SWIV
SWIV
[oracle@oel8 ~]$
[oracle@oel8 ~]$
Mudando status da tablespace após o teste:
SQL> ALTER TABLESPACE USERS END BACKUP;
Tablespace altered.