Oracle大数据量转储

法一:使用ddl(create/alter/drop/truncate等)语言,尽量避免或减少redo、undo操作, 开并行,不打印日志
create table tmp1 parallel 8 nologging as 
select /*+parallel(8)/ id, rownum as newid, create_time from user;
法二:开启dml(insert/delete/update/select等)并行,关闭日志,先删除索引和触发器,禁用约束
insert /*+append parallel(8) enable_parallel_dml */ into tmp1
nologging
select /*+parallel(8)/ id, rownum as newid, create_time from user;
--验证sql
select vs.name, ms.value
from v$mystat ms, v$sysstat vs
where ms.statistic# = vs.statistic#
    and name = 'undo change vector size';

1、DDL作为数据库定义语言是不能进行rollback(回滚),提交方式也是隐性提交,且只生成少量undo记录以应对ddl操作中途失败的情况;

2、DML是可以进行rollback的,并且对于事务(transaction)的提交是显式的(默认),需要commit才能真正被执行,可以设置为隐式提交。

oracle的临时表,不会生成redo, 但是会生成undo.  所以它也是不能恢复的。

Undo信息生成的DML排名(少—>多)

Insert语句生成很少的Undo,因为只为rowid生成Undo;

update语句的Undo集中在被修改的字段上面, 而如果是带索引的字段修改,那么Undo是2.5倍;

delete生成的Undo最多,整行的生成,所以开销是最大。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle历史数据转储是指将数据库中的历史数据按照一定的规则和条件进行归档和压缩,以释放存储空间和提高系统性能。Oracle历史数据转储的设计需要考虑以下几个方面: 1. 数据归档规则设计 在Oracle历史数据转储中,需要设计合理的数据归档规则,将历史数据按照不同的时间段、业务类型、数据更新频率等因素进行分类和归档。可以根据不同的业务需求,设计相应的归档策略和规则,保证系统的高效性和稳定性。 2. 数据压缩和存储管理 在Oracle历史数据转储中,需要进行数据压缩和存储管理,以减少存储空间和提高系统性能。可以使用Oracle提供的数据压缩工具,如Advanced Compression等进行数据压缩,同时需要进行存储空间管理,包括数据文件的管理、表空间的管理等。 3. 数据备份和恢复 在Oracle历史数据转储中,需要进行数据备份和恢复操作,以保证数据的安全性和可靠性。可以使用Oracle数据库提供的备份和恢复工具,如RMAN等进行备份和恢复操作。同时还需要定期进行数据备份和恢复测试,确保备份和恢复方案的有效性和可靠性。 4. 数据访问和查询 在Oracle历史数据转储中,需要考虑历史数据的访问和查询问题。可以使用Oracle提供的数据访问和查询工具,如Partitioning等进行查询和访问历史数据。同时还需要进行性能调优和优化,以提高数据访问和查询的效率和性能表现。 总之,Oracle历史数据转储的设计需要综合考虑系统的可靠性、性能、安全性和可扩展性等多方面因素,需要有经验丰富的数据库管理员和技术专家来进行规划和管理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值