达梦数据库dimp分区表实验
创建test用户的callinfo分区表:
并且插入数据:
导出test用户下的分区表p2区:
发现导出的数据为0行,重新切换到test用户、sysdba用户,查询test.callfinfo,发现都没有数据:
经过分析发现:做了insert之后,没有commit-提交,所以在刚插入数据的时候,能够在插入的用户下面查到数据,切换用户之后,就查不到相应的数据,导出的时候,导出的数据为0行;
切换到sysdba用户,给test.callinfo表插入数据并commit-提交,切换到test用户也能查询到数据
查询callinfo的p2区的数据,有一条数据:并重新导出数据:test.callinfo的p2分区,可以看到导出了一条数据,符合情况
查询test.callinfo,表的分区、以及内容,
导出test.callinfo整个分区表:
切换到test用户,删除test.callinfo的p2分区:
可以看出p2分区以及p2分区里面的数据已经被删除;
接着使用dimp导入p2分区:ignore:忽略创建错误,参数值为:Y和N,默认值为N,导入数据:先创建表,后导入数据,第一条语句,ignore默认为N,不忽略创建错误,所以一旦查到要导入的表在数据库中存在就报错,不能进行下一步;第二句加上ignore=y,即使查到了表已经存在,不用重新创建,也能继续插入数据,走下一个校验,所以会走到P2导入失败的校验
由7月22号的实验,删除分区p3然后再插入p3划定的时间节点,提示:按照range划分的分区表的时间节点是递增的,所以新增加的分区的时间点必须大于分区表最大的时间点,由此可以分析出,导入p2区其实也是在给原来的test.callinfo表增加新的分区,但是p2区的时间小于p4区的时间,所以增加新的分区失败,会提示:检查表定义的错误;不能导入按照range(范围)的子分区数据
删除整个test.callinfo分区表:然后导入:这个分区表的数据:
导入4行数据,导入成功,验证一下:
可以导入整个分区表的内容