[20190510]rman备份的疑问7.txt
[20190510]rman备份的疑问7.txt
--//上午测试rman备份时备份文件大小回缩的测试.链接:
--//http://blog.itpub.net/267265/viewspace-2643804/ => [20190509]rman备份的疑问5.txt
--//自己又认真会看自己以前写的文章:
--//http://blog.itpub.net/267265/viewspace-2148246/=>[20171204]关于rman备份疑问4.txt
--//突然有所感悟,rman的备份input buffer是否并非完全按照文档的结束那样,每个备份文件对应2m.(当文件数量大于4时)
--//而是总的input buffer=16m,然后根据备份文件集的数量平均分配.
--//我前面测试是一个备份集合5个文件的情况,如果一个备份集合3个文件.
--//一个备份集文件数量小于等于4,每个文件分配4个缓存,每个input buffer memory=1m.
--//每个文件input buffer memory 按照 floor(16/n)*1024
--//一个备份集文件数量大于4与小于等于8,每个文件分配4个缓存,每个input buffer memory=512k.
--//按照 floor(16/n*1024/512)*512
--//一个备份集文件数量大于8,每个文件分配4个缓存,每个input buffer memory=512k.
--//按照 floor(16/8*1024)= 2m
--//output buffer 4个,每个1m.
--//比较难表达.还是通过测试说明问题.
--//如果n=3, floor(16/3)1024
--//如果n=5, floor(16/n*1024/512)*512 = 3072.
1.环境:
scott@book> @ &r/ver1
port_string version banner
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/linux 2.4.xx 11.2.0.4.0 oracle database 11g enterprise edition release 11.2.0.4.0 - 64bit production
$ cat d3.sql
drop tablespace t01 including contents and datafiles;
drop tablespace t02 including contents and datafiles;
drop tablespace t03 including contents and datafiles;
create tablespace t01 datafile '/mnt/ramdisk/book/t01.dbf' size 11m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t02 datafile '/mnt/ramdisk/book/t02.dbf' size 11m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t03 datafile '/mnt/ramdisk/book/t03.dbf' size 11m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create table t01 tablespace t01 as select rownum id ,to_char(rownum,'fm000000')||lpad('a',26,'a') name from dual connect by level<=2e5;
create table t02 tablespace t02 as select rownum id ,to_char(rownum,'fm000000')||lpad('b',26,'b') name from dual connect by level<=2e5;
create table t03 tablespace t03 as select rownum id ,to_char(rownum,'fm000000')||lpad('c',26,'c') name from dual connect by level<=2e5;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;
--//修改rman配置:
rman> configure channel 1 device type disk rate 512 k;
using target database control file instead of recovery catalog
old rman configuration parameters:
configure channel 1 device type disk rate 256 k;
new rman configuration parameters:
configure channel 1 device type disk rate 512 k;
new rman configuration parameters are successfully stored
--//主要目的减慢备份速度。这样2秒读取1m.
rman> configure device type disk parallelism 1 backup type to backupset;
new rman configuration parameters:
configure device type disk parallelism 1 backup type to backupset;
new rman configuration parameters are successfully stored
rman> configure controlfile autobackup off;
old rman configuration parameters:
configure controlfile autobackup off;
new rman configuration parameters:
configure controlfile autobackup off;
new rman configuration parameters are successfully stored
rman> report schema;
report of database schema for database with db_unique_name book
list of permanent datafiles
===========================
file size(mb) tablespace rb segs datafile name
---- -------- -------------------- ------- ------------------------
1 760 system *** /mnt/ramdisk/book/system01.dbf
2 1160 sysaux *** /mnt/ramdisk/book/sysaux01.dbf
3 865 undotbs1 *** /mnt/ramdisk/book/undotbs01.dbf
4 128 users *** /mnt/ramdisk/book/users01.dbf
5 346 example *** /mnt/ramdisk/book/example01.dbf
6 6 tea *** /mnt/ramdisk/book/tea01.dbf
7 16 undotbs1 *** /mnt/ramdisk/book/undotbs02.dbf
8 16 undotbs1 *** /mnt/ramdisk/book/undotbs03.dbf
9 11 t01 *** /mnt/ramdisk/book/t01.dbf
10 11 t02 *** /mnt/ramdisk/book/t02.dbf
11 11 t03 *** /mnt/ramdisk/book/t03.dbf
list of temporary files
=======================
file size(mb) tablespace maxsize(mb) tempfile name
---- -------- -------------------- ----------- --------------------
1 414 temp 4096 /mnt/ramdisk/book/temp01.dbf
2.测试脚本:
--//测试备份3个数据文件的作为一个备份集合的情况:
$ cat t3.sh
#! /bin/bash
rman target / <<eof >> /tmp/t6.txt &
backup datafile 9,10,11 format '/home/oracle/backup/t123_%t_%u' ;
quit
eof
echo "sleep $1 "
sleep $1
sqlplus -s scott/book <<eof
set numw 12
update t01 set name=lower(name) where mod(id,100)=0;
update t02 set name=lower(name) where mod(id,100)=0;
update t03 set name=lower(name) where mod(id,100)=0;
commit;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;
@ &r/scn
eof
--//备份时手工执行如下命令:
--//$ echo -e 'aaaaa\n' 'bbbbb\n' 'ccccc\n' | xargs -i{} -p 3 bash -c "strings -t d /home/oracle/backup/t123_* | grep {} | head -1" | sort -n
--//如果在一个备份集3个数据文件,每个数据文件前面1m是os,文件头,位图区.需要2秒完成(前面我设置disk rate 512).这样至少6秒才读取到表数据.
--//我分别测试延迟1,2,3,4,5的情况,实际上你可以不用等备份结束(当然备份文件集也不存在了,我按ctrl+c中断).
--//只要出现小写aaaaa,bbbbb,ccccc就ok了.
--//注意每次测试完成,执行d3.txt脚本,删除重新建立表空间等,重新测试.
3.测试:
$ . t3.sh 1
--//$ echo -e 'aaaaa\n' 'bbbbb\n' 'ccccc\n' | xargs -i{} -p 3 bash -c "strings -t d /home/oracle/backup/t123_* | grep {} | head -1" | sort -n
3150022 000100aaaaaaaaaaaaaaaaaaaaaaaaaa,
4198598 000100bbbbbbbbbbbbbbbbbbbbbbbbbb,
5247174 000100cccccccccccccccccccccccccc,
$ . t3.sh 2
5247174 000100cccccccccccccccccccccccccc,
16771561 & 083700bbbbbbbbbbbbbbbbbbbbbbbbbb,
18871501 1 104800aaaaaaaaaaaaaaaaaaaaaaaaaa,
$ . t3.sh 3
5247174 000100cccccccccccccccccccccccccc,
16771561 & 083700bbbbbbbbbbbbbbbbbbbbbbbbbb,
18871501 1 104800aaaaaaaaaaaaaaaaaaaaaaaaaa,
$ . t3.sh 4
17820137 & 083700cccccccccccccccccccccccccc,
18871501 1 104800aaaaaaaaaaaaaaaaaaaaaaaaaa,
19920077 1 104800bbbbbbbbbbbbbbbbbbbbbbbbbb,
$ . t3.sh 5
$ echo -e 'aaaaa\n' 'bbbbb\n' 'ccccc\n' | xargs -i{} -p 3 bash -c "strings -t d /home/oracle/backup/t123_* | grep {} | head -1" | sort -n
17820137 & 083700cccccccccccccccccccccccccc,
18871501 1 104800aaaaaaaaaaaaaaaaaaaaaaaaaa,
19920077 1 104800bbbbbbbbbbbbbbbbbbbbbbbbbb,
--//实际上查询如下也可以确定:
select set_count
,device_type
,type
,filename
,buffer_size
,buffer_count
,open_time
,close_time
from v$backup_async_io
where set_count = 78
order by set_count
,type
,open_time
,close_time;
set_count device_type type filename buffer_size buffer_count open_time close_time
--------- ----------- --------- -------------------------------------------------- ----------- ------------ ------------------- -------------------
78 disk aggregate 0 0 2019-05-10 09:50:08 2019-05-10 09:51:14
78 disk input /mnt/ramdisk/book/t01.dbf 1048576 5 2019-05-10 09:50:08 2019-05-10 09:51:14
78 disk input /mnt/ramdisk/book/t02.dbf 1048576 5 2019-05-10 09:50:08 2019-05-10 09:51:14
78 disk input /mnt/ramdisk/book/t03.dbf 1048576 5 2019-05-10 09:50:10 2019-05-10 09:51:14
78 disk output /home/oracle/backup/t123_1007891408_2eu16cug_1_1 1048576 4 2019-05-10 09:50:08 2019-05-10 09:51:14
--//注意open_time(filename=/mnt/ramdisk/book/t03.dbf).自己真笨!!根本不需要这么复杂的分析.每个输入缓存的总数量就是5.
--//输出缓存的总数量就是4.每个1m.
--//顺便附上rman的记录:
rman>
starting backup at 2019-05-10 09:50:07
using target database control file instead of recovery catalog
allocated channel: ora_disk_1
channel ora_disk_1: sid=212 device type=disk
channel ora_disk_1: starting full datafile backup set
channel ora_disk_1: specifying datafile(s) in backup set
input datafile file number=00009 name=/mnt/ramdisk/book/t01.dbf
input datafile file number=00010 name=/mnt/ramdisk/book/t02.dbf
input datafile file number=00011 name=/mnt/ramdisk/book/t03.dbf
channel ora_disk_1: starting piece 1 at 2019-05-10 09:50:08
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
channel ora_disk_1: finished piece 1 at 2019-05-10 09:51:23
piece handle=/home/oracle/backup/t123_1007891408_2eu16cug_1_1 tag=tag20190510t095007 comment=none
channel ora_disk_1: backup set complete, elapsed time: 00:01:15
channel ora_disk_1: throttle time: 0:01:06
finished backup at 2019-05-10 09:51:23
--//备份启动2019-05-10 09:50:08,而 /mnt/ramdisk/book/t03.dbf的打开是延迟了2秒(open_time=2019-05-10 09:50:10)
4.分析:
--//字母a b c 前数字对应id,行号.注意看的数字:100,83700,104800仅仅出现3种.表的建立方式一样的,出现在块中位置也应该一样.
cott@book> select dbms_rowid.rowid_block_number(rowid) block ,t01.* from t01 where id in (100,83700,104800);
block id name
---------- ---------- ----------------------------------------
131 100 000100aaaaaaaaaaaaaaaaaaaaaaaaaa
642 83700 083700aaaaaaaaaaaaaaaaaaaaaaaaaa
770 104800 104800aaaaaaaaaaaaaaaaaaaaaaaaaa
--//131*8192/1024/1024=1.0234375 0.0234375*1024*1024/8192 = 3
--//为什么是3,因为128,129,130 都是assm的位图区.130是段头(三级位图).也就是131前面3块没有aaaa字符串.
scott@book> select segment_name,header_file,header_block from dba_segments where segment_name='t01';
segment_name header_file header_block
-------------------- ----------- ------------
t01 9 130
--//642*8192/1024/1024 = 5.01562500000000000000, 0.015625*1024*1024/8192 = 2
--//770*8192/1024/1024 = 6.01562500000000000000 0.015625*1024*1024/8192 = 2
--//画一个表格(出现小写首次位置在数据文件中):
延迟时间 t01 t02 t03
------------------------------
1 1 1 1
2 6 5 1
3 6 5 1
4 6 6 5
5 6 6 5
------------------------------
--//总之不是一上来各个缓存全部装满,而是慢慢平衡到每个文件5m的input buffer.
--//我自己测试6个数据文件的情况:
select set_count
,device_type
,type
,filename
,buffer_size
,buffer_count
,open_time
,close_time
from v$backup_async_io
where set_count=79
order by set_count
,type
,open_time
,close_time;
set_count device_type type filename buffer_size buffer_count open_time close_time
---------- ----------- --------- --------------------------------------------------- ----------- ------------ ------------------- -------------------
79 disk aggregate 0 0 2019-05-10 10:08:58 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t01.dbf 524288 5 2019-05-10 10:08:58 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t02.dbf 524288 5 2019-05-10 10:08:58 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t03.dbf 524288 5 2019-05-10 10:08:59 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t04.dbf 524288 5 2019-05-10 10:09:00 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t05.dbf 524288 5 2019-05-10 10:09:01 2019-05-10 10:10:10
79 disk input /mnt/ramdisk/book/t06.dbf 524288 5 2019-05-10 10:09:02 2019-05-10 10:10:10
79 disk output /home/oracle/backup/t123456_1007892538_2fu16e1q_1_1 1048576 4 2019-05-10 10:08:58 2019-05-10 10:10:10
8 rows selected.
--//512k*5=2.5m.
--//5个数据文件的情况:
set_count device_type type filename buffer_size buffer_count open_time close_time
--------- ----------- --------- ---------------------------------------------------- ----------- ------------ ------------------- -------------------
80 disk aggregate 0 0 2019-05-10 10:12:34 2019-05-10 10:13:34
80 disk input /mnt/ramdisk/book/t01.dbf 524288 6 2019-05-10 10:12:34 2019-05-10 10:13:34
80 disk input /mnt/ramdisk/book/t02.dbf 524288 6 2019-05-10 10:12:34 2019-05-10 10:13:34
80 disk input /mnt/ramdisk/book/t03.dbf 524288 6 2019-05-10 10:12:35 2019-05-10 10:13:34
80 disk input /mnt/ramdisk/book/t04.dbf 524288 6 2019-05-10 10:12:36 2019-05-10 10:13:34
80 disk input /mnt/ramdisk/book/t05.dbf 524288 6 2019-05-10 10:12:37 2019-05-10 10:13:34
80 disk output /home/oracle/backup/t123456_1007892754_2gu16e8i_1_1 1048576 4 2019-05-10 10:12:34 2019-05-10 10:13:34
7 rows selected.
--//注意看open_time时间. 512k*6=3m.
--//10个数据文件的情况:
new rman configuration parameters:
configure channel 1 device type disk rate 512 k;
new rman configuration parameters are successfully stored
released channel: ora_disk_1
set_count device_type type filename buffer_size buffer_count open_time close_time
--------- ----------- --------- ---------------------------------------------------- ----------- ------------ ------------------- -------------------
82 disk aggregate 0 0 2019-05-10 10:28:00 2019-05-10 10:30:00
82 disk input /mnt/ramdisk/book/t01.dbf 524288 4 2019-05-10 10:28:00 2019-05-10 10:29:36
82 disk input /mnt/ramdisk/book/t02.dbf 524288 4 2019-05-10 10:28:00 2019-05-10 10:29:37
82 disk input /mnt/ramdisk/book/t03.dbf 524288 4 2019-05-10 10:28:01 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t04.dbf 524288 4 2019-05-10 10:28:02 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t05.dbf 524288 4 2019-05-10 10:28:03 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t06.dbf 524288 4 2019-05-10 10:28:04 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t07.dbf 524288 4 2019-05-10 10:28:05 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t08.dbf 524288 4 2019-05-10 10:28:06 2019-05-10 10:29:38
82 disk input /mnt/ramdisk/book/t09.dbf 524288 4 2019-05-10 10:29:36 2019-05-10 10:30:00
82 disk input /mnt/ramdisk/book/t10.dbf 524288 4 2019-05-10 10:29:37 2019-05-10 10:30:00
82 disk output /home/oracle/backup/ta_1007893680_2iu16f5g_1_1 1048576 4 2019-05-10 10:28:00 2019-05-10 10:30:00
12 rows selected.
--//512k*4=2m.
--//你可以t09,t10的备份分别是2019-05-10 10:29:36,2019-05-10 10:29:37开始的.你可以看出大于8个文件备份的情况.
--//先备份8个完成后在备份剩余2个,并且不会因为最后剩下2个改变buffer_size的大小.
--//顺便说一下书中讲的大于8个数据文件的备份不对.
--//链接中提到的http://blog.itpub.net/267265/viewspace-2147878/文档:
■ if the number of files being multiplexed is greater than eight, then rman allocates four
buffers of size 128kb. this ensures that each file being backed up will account for 512kb
of buffer memory.
--//这个不对.没有128k的input buffer memory.
$ strings /home/oracle/backup/ta_1007893680_2iu16f5g_1_1 | tr 'abcdefghij' 'abcdefghijk' | egrep 'aaaaa|bbbbb|ccccc|ddddd|eeee|ffff|ffff|gggg|hhhh|iiii|jjjj'| cut -c20-30 | uniq -c
9978 aaaaaaaaaaa
9978 bbbbbbbbbbb
9978 ccccccccccc
9978 ddddddddddd
9978 eeeeeeeeeee
9978 fffffffffff
9978 ggggggggggg
9978 hhhhhhhhhhh
10080 aaaaaaaaaaa
10080 bbbbbbbbbbb
10080 ccccccccccc
10080 ddddddddddd
10080 eeeeeeeeeee
10080 fffffffffff
10080 ggggggggggg
10080 hhhhhhhhhhh
10416 aaaaaaaaaaa
10416 bbbbbbbbbbb
10416 ccccccccccc
10416 ddddddddddd
10416 eeeeeeeeeee
10416 fffffffffff
10416 ggggggggggg
10416 hhhhhhhhhhh
10752 aaaaaaaaaaa
10752 bbbbbbbbbbb
10752 ccccccccccc
10752 ddddddddddd
10752 eeeeeeeeeee
10752 fffffffffff
10752 ggggggggggg
10752 hhhhhhhhhhh
10416 aaaaaaaaaaa
10416 bbbbbbbbbbb
10416 ccccccccccc
10416 ddddddddddd
10416 eeeeeeeeeee
10416 fffffffffff
10416 ggggggggggg
10416 hhhhhhhhhhh
10752 aaaaaaaaaaa
10752 bbbbbbbbbbb
10752 ccccccccccc
10752 ddddddddddd
10752 eeeeeeeeeee
10752 fffffffffff
10752 ggggggggggg
10752 hhhhhhhhhhh
10416 aaaaaaaaaaa
10416 bbbbbbbbbbb
10416 ccccccccccc
10416 ddddddddddd
10416 eeeeeeeeeee
10416 fffffffffff
10416 ggggggggggg
10416 hhhhhhhhhhh
10752 aaaaaaaaaaa
10752 bbbbbbbbbbb
10752 ccccccccccc
10752 ddddddddddd
10752 eeeeeeeeeee
10752 fffffffffff
10752 ggggggggggg
10752 hhhhhhhhhhh
10416 aaaaaaaaaaa
10416 bbbbbbbbbbb
10416 ccccccccccc
10416 ddddddddddd
10416 eeeeeeeeeee
10416 fffffffffff
10416 ggggggggggg
10416 hhhhhhhhhhh
6022 aaaaaaaaaaa
6022 bbbbbbbbbbb
6022 ccccccccccc
6022 ddddddddddd
6022 eeeeeeeeeee
6022 fffffffffff
6022 ggggggggggg
6022 hhhhhhhhhhh
9978 iiiiiiiiiii
9978 jjjjjjjjjjj
10080 iiiiiiiiiii
10080 jjjjjjjjjjj
10416 iiiiiiiiiii
10416 jjjjjjjjjjj
10752 iiiiiiiiiii
10752 jjjjjjjjjjj
10416 iiiiiiiiiii
10416 jjjjjjjjjjj
10752 iiiiiiiiiii
10752 jjjjjjjjjjj
10416 iiiiiiiiiii
10416 jjjjjjjjjjj
10752 iiiiiiiiiii
10752 jjjjjjjjjjj
10416 iiiiiiiiiii
10416 jjjjjjjjjjj
6022 iiiiiiiiiii
6022 jjjjjjjjjjj
--//可以发现t09,t10是最后备份的,这也是我强调设置的filesperset最大=8,小数据可以选择4.
--//不然如果单独恢复t09,t10会做大量的无用功.读取前面大量的无关信息.
5.测试脚本如下:
rman> configure channel 1 device type disk clear;
old rman configuration parameters:
configure channel 1 device type disk rate 512 k;
old rman configuration parameters are successfully deleted
released channel: ora_disk_1
--//d10.sql
$ cat d10.sql
drop tablespace t01 including contents and datafiles;
drop tablespace t02 including contents and datafiles;
drop tablespace t03 including contents and datafiles;
drop tablespace t04 including contents and datafiles;
drop tablespace t05 including contents and datafiles;
drop tablespace t06 including contents and datafiles;
create tablespace t01 datafile '/mnt/ramdisk/book/t01.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t02 datafile '/mnt/ramdisk/book/t02.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t03 datafile '/mnt/ramdisk/book/t03.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t04 datafile '/mnt/ramdisk/book/t04.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t05 datafile '/mnt/ramdisk/book/t05.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t06 datafile '/mnt/ramdisk/book/t06.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t07 datafile '/mnt/ramdisk/book/t07.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t08 datafile '/mnt/ramdisk/book/t08.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t09 datafile '/mnt/ramdisk/book/t09.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create tablespace t10 datafile '/mnt/ramdisk/book/t10.dbf' size 6m autoextend off logging online extent management local autoallocate blocksize 8k segment space management auto flashback on;
create table t01 tablespace t01 as select rownum id ,to_char(rownum,'fm000000')||lpad('a',26,'a') name from dual connect by level<=1e5;
create table t02 tablespace t02 as select rownum id ,to_char(rownum,'fm000000')||lpad('b',26,'b') name from dual connect by level<=1e5;
create table t03 tablespace t03 as select rownum id ,to_char(rownum,'fm000000')||lpad('c',26,'c') name from dual connect by level<=1e5;
create table t04 tablespace t04 as select rownum id ,to_char(rownum,'fm000000')||lpad('d',26,'d') name from dual connect by level<=1e5;
create table t05 tablespace t05 as select rownum id ,to_char(rownum,'fm000000')||lpad('e',26,'e') name from dual connect by level<=1e5;
create table t06 tablespace t06 as select rownum id ,to_char(rownum,'fm000000')||lpad('f',26,'f') name from dual connect by level<=1e5;
create table t07 tablespace t07 as select rownum id ,to_char(rownum,'fm000000')||lpad('g',26,'g') name from dual connect by level<=1e5;
create table t08 tablespace t08 as select rownum id ,to_char(rownum,'fm000000')||lpad('h',26,'h') name from dual connect by level<=1e5;
create table t09 tablespace t09 as select rownum id ,to_char(rownum,'fm000000')||lpad('i',26,'i') name from dual connect by level<=1e5;
create table t10 tablespace t10 as select rownum id ,to_char(rownum,'fm000000')||lpad('j',26,'j') name from dual connect by level<=1e5;
alter system checkpoint;
alter system checkpoint;
alter system checkpoint;