alter database begin backup测试

1. 目的

测试验证一下,alter database begin backup命令执行以后在数据库进行的dml操作,数据是否写回到了数据文件当中。

2. 创建一个新的表空间

--创建tbs_xb表空间

SQL> create tablespace tbs_xb datafile '/data/oracle/oradata/zlzcs/xb01.dbf' size 50m autoextend  on;

 

Tablespace created.

--查看数据文件

SQL> select name from v$datafile;

 

NAME

--------------------------------------------------------------------------------

/data/oracle/oradata/zlzcs/system01.dbf

/data/oracle/oradata/zlzcs/undotbs01.dbf

/data/oracle/oradata/zlzcs/sysaux01.dbf

/data/oracle/oradata/zlzcs/users01.dbf

/data/oracle/oradata/zlzcs/xb01.dbf

--通过操作系统命令查看数据文件大小

[root@localhost zlzcs]# ll -h

total 6.1G

-rw-r----- 1 oracle oinstall 469M May 3012:48 backup

-rw-r----- 1 oracle oinstall  10M May 30 15:27 control01.ctl

-rw-r----- 1 oracle oinstall  10M May 30 15:27 control02.ctl

-rw-r----- 1 oracle oinstall  10M May 30 15:27 control03.ctl

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo01.log

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo02.log

-rw-r----- 1 oracle oinstall  51M May 30 15:27 redo03.log

-rw-r----- 1 oracle oinstall  51M May 30 15:19 redo04.log

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo05.log

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo06.log

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo07.log

-rw-r----- 1 oracle oinstall  51M May 30 15:20 redo08.log

-rw-r----- 1 oracle oinstall 241M May 3015:27 sysaux01.dbf

-rw-r----- 1 oracle oinstall 481M May 3015:26 system01.dbf

-rw-r----- 1 oracle oinstall  48M May 30 12:21 temp01.dbf

-rw-r----- 1 oracle oinstall 4.5G May 3015:27 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5.1M May 3015:26 users01.dbf

-rw-r----- 1 oracle oinstall  51MMay 30 15:26 xb01.dbf—文件大小初始为51M

--查询user_segments表

SQL> select segment_name,blocks,bytes/1024/1024 from user_segments where segment_name='TB_TEST';

 

SEGMENT_NAME                 BLOCKS BYTES/1024/1024

------------------------------------------------------------ ---------------

TB_TEST                         8          .0625

3. 在新的表空间上创建测试表,并插入数据

--创建测试表tb_test

SQL> create table tb_test (idinteger,name varchar2(50)) tablespace tbs_xb;

 

Table created.

--修改数据库为备份状态

SQL> alter database begin backup;

 

Database altered.

--插入数据

SQL> begin

 2  for i in 1..10000000 loop

 3  insert into tb_test values(i,'striverzhaolizheng'||i);

 4  end loop;

 5  end;

6  /

4. 查看scn的变化

--查看数据库的scn

SQL>select checkpoint_change# from v$database;

 

CHECKPOINT_CHANGE#

------------------

            784154

--查看数据文件的scn

SQL>select checkpoint_change# from v$datafile;

 

CHECKPOINT_CHANGE#

------------------

            783972

            783972

            783972

            783972

            783972

--查看数据文件头的scn

    SQL> select checkpoint_change# from v$datafile_header;

 

CHECKPOINT_CHANGE#

------------------

            783972

            783972

            783972

            783972

            783972

控制文件中记录的数据文件scn和数据文件头部记录的scn是一致的。但是数据库的scn号是变化的.

5. 查看数据文件的大小是否发生变化

1.

SQL> select segment_name,blocks,bytes/1024/1024 fromuser_segments where segment_name='TB_TEST';

SEGMENT_NAME             BLOCKS BYTES/1024/1024

------------------------------ ---------------

TB_TEST                   4992              39

--通过操作系统命令查看文件变化

[root@localhost zlzcs]# ll -h

total6.1G

-rw-r-----1 oracle oinstall 469M May 30 12:48 backup

-rw-r-----1 oracle oinstall  10M May 30 15:44control01.ctl

-rw-r-----1 oracle oinstall  10M May 30 15:44control02.ctl

-rw-r-----1 oracle oinstall  10M May 30 15:44control03.ctl

-rw-r-----1 oracle oinstall  51M May 30 15:44redo01.log

-rw-r-----1 oracle oinstall  51M May 30 15:44redo02.log

-rw-r-----1 oracle oinstall  51M May 30 15:44redo03.log

-rw-r-----1 oracle oinstall  51M May 30 15:41redo04.log

-rw-r-----1 oracle oinstall  51M May 30 15:41redo05.log

-rw-r-----1 oracle oinstall  51M May 30 15:42redo06.log

-rw-r-----1 oracle oinstall  51M May 30 15:42redo07.log

-rw-r-----1 oracle oinstall  51M May 30 15:42redo08.log

-rw-r-----1 oracle oinstall 241M May 30 15:44 sysaux01.dbf

-rw-r-----1 oracle oinstall 481M May 30 15:44 system01.dbf

-rw-r-----1 oracle oinstall  48M May 30 12:21temp01.dbf

-rw-r-----1 oracle oinstall 4.5G May 30 15:44 undotbs01.dbf

-rw-r-----1 oracle oinstall 5.1M May 30 15:44 users01.dbf

-rw-r----- 1 oracleoinstall  57M May 30 15:44 xb01.dbf—增大为57m

 

--反复查看几次

--插入完成以后再查看

SQL> /

 

SEGMENT_NAME            BLOCKS BYTES/1024/1024

-------------------- ---------- ---------------

TB_TEST                  56320             440

--使用操作系统命令查看

 

[root@localhost zlzcs]# ll -h

total 6.5G

-rw-r----- 1 oracle oinstall 469M May 3012:48 backup

-rw-r----- 1 oracle oinstall  10M May 30 15:53 control01.ctl

-rw-r----- 1 oracle oinstall  10M May 30 15:53 control02.ctl

-rw-r----- 1 oracle oinstall  10M May 30 15:53 control03.ctl

-rw-r----- 1 oracle oinstall  51M May 30 15:53 redo01.log

-rw-r----- 1 oracle oinstall  51M May 30 15:51 redo02.log

-rw-r----- 1 oracle oinstall  51M May 30 15:50 redo03.log

-rw-r----- 1 oracle oinstall  51M May 30 15:50 redo04.log

-rw-r----- 1 oracle oinstall  51M May 30 15:50 redo05.log

-rw-r----- 1 oracle oinstall  51M May 30 15:51 redo06.log

-rw-r----- 1 oracle oinstall  51M May 30 15:51 redo07.log

-rw-r----- 1 oracle oinstall  51M May 30 15:51 redo08.log

-rw-r----- 1 oracle oinstall 241M May 3015:51 sysaux01.dbf

-rw-r----- 1 oracle oinstall 481M May 3015:51 system01.dbf

-rw-r----- 1 oracle oinstall  48M May 30 12:21 temp01.dbf

-rw-r----- 1 oracle oinstall 4.5G May 3015:51 undotbs01.dbf

-rw-r----- 1 oracle oinstall 5.1M May 3015:51 users01.dbf

-rw-r----- 1 oracle oinstall 442M May 30 15:52 xb01.dbf --文件大小变为442m

--关闭数据库的备份模式

SQL> alter database end backup;    

 

Database altered.

--再次查看scn号

SQL> select checkpoint_change# from v$database;

 

CHECKPOINT_CHANGE#

------------------

           787555

 

SQL> select checkpoint_change# from v$datafile;

 

CHECKPOINT_CHANGE#

------------------

           787555

           787555

           787555

           787555

           787555

 

SQL> select checkpoint_change# from v$datafile_header;

 

CHECKPOINT_CHANGE#

------------------

           787555

           787555

           787555

           787555

           787555

Scn号一致

6. 结论

从上面的实验可以得出,alter database begin backup只是锁住了数据文件头块的scn号,

但是数据还是会继续写入数据文件,当执行alter database end backup的时候,数据库就会用控制文件中最新的scn去更新每个数据文件头部块的scn。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值