Does Database Writer write to datafiles in Backup Mode?

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.

Leave a Comment

Your email address will not be published.