Oracle数据迁移优化
来源:互联网 发布:paxos算法为代码 编辑:程序博客网 时间:2024/05/16 17:24
1、关闭归档日志
2、禁用索引(经同事实验,如果drop掉索引,而非禁用索引,则可以明显提升impdp导入速度,40分钟的导入可以缩短为10分钟)
3、禁用主、外键
4、禁用触发器
5、使用expdp/impdp完成导出和导入,配合parallel参数(这个参数配置网上很多讲解,我就不细说了)
6、impdp执行的时候,往往IO是瓶颈,可以考虑对IO参数进行如下设置:
filesystemio_option=setall
disk_asych_io=TRUE
适当调大db_writer_process参数
7、如果迁移的是分区表,且只迁移数据,不迁移结构,则impdp会忽略parallel参数,串行一个一个分区导入,所以此时需要进行优化:
摘自Oracle官方文档:http://docs.oracle.com/cd/E11882_01/server.112/e22490/dp_import.htm#SUTIL923
可以考虑采用如下的方式对分区表的导入进行优化:
1)先通过user_tab_partitions查出“表名.分区名”形式
2)然后使用expdp为每个分区表按parallel线程数平均分配每个导出的dump文件中所含的分区数
3)最后使用impdp根据之前生成的parfile完成数据的导入
此处具体做法可以参考《Oracle DBA工作笔记》中的分区表的水平拆分和垂直拆分部分。
大功告成,此时parallel参数就可以起作用了,并行同时导入多个分区了!~
附:
《Oracle DBA工作笔记》中的shell代码摘录整理如下:
#!/bin/bashparallel_no=16old_schema=old_userusername=new_usertable_name=$1for i in {1..${parallel_no}}dosqlplus $username/xxx <<EOFspool ${table_name}_partition_parallel_$i_parfileselect 'tables=' from dual;spool offspool ${table_name}_partition_parallel_$i_parfile appendselect '${old_schema}' || '.' || table_name || ':' || partition_name || ',' from ( select rownum, mod(rownum, ${parallel_no})+1 parallel_no, table_name, partition_name, num_rows from user_tab_partitions where table_name = upper('$table_name')order by num_rows desc nulls last)where parallel_no = $i;spool offEOF#上面spool输出的是一行,所以去掉该行中的最后一个逗号sed -i '$s/.$//' ${table_name}_partition_parallel_$i_parfileecho "expdp $username/xxxdumpfile=${i}_${table_name}.dmpparfile=${table_name}_partition_parallel_$i_parfile &" >> ${table_name}_partition_parallel_expdp.sh &echo"nohup impdp $username/xxx dumpfile=${i}_${table_name}.dmpparallel=2include=table_dataparfile=${table_name}_partition_parallel_$i_parfile &" >> ${table_name}_partition_parallel_impdp.sh &done
代码解读:
1、mod(rownum, ${parallel_no})+1 parallel_no,将每个表的分区平分到每个线程中,起几个线程,每个表就会生成几个dump文件
2、循环每个i来生成文件的时候,可以使用&后台执行提高效率
3、由于生成的文件中,impdp/expdp都是&后台执行的,所以可以同时执行所有的expdp.sh文件,然后再同时执行所有的impdp.sh文件,每个i都是独立的,所以不会互相影响
阅读全文
0 0
- Oracle数据迁移优化
- oracle迁移数据一则
- ORACLE数据迁移
- [Oracle] 迁移数据
- oracle 数据迁移
- ORACLE数据迁移参考
- Oracle数据迁移
- oracle数据库数据迁移
- Oracle基础知识-数据迁移
- Oracle数据迁移参考
- Oracle命令--数据迁移
- Oracle 数据进行迁移
- Oracle数据迁移方案
- 读书笔记-ORACLE数据迁移
- ORACLE 还原(迁移)数据
- Oracle数据迁移
- ORACLE数据迁移
- Oracle数据迁移
- 实现前后端分离的心得
- gbk、utf-8、utf-16be编码问题
- C++中explicit关键字的作用
- 快讯:中央第十二轮巡视进入“回头看”反馈巡视意见阶段,值得期待!
- css3弹性布局骰子
- Oracle数据迁移优化
- Test!
- 程序打包
- 双表头测试
- 在前端开发使用Bootstrap框架
- PAT-A-1045. Favorite Color Stripe (30)
- 一个查了6个小时的问题的解决过程
- 416. Partition Equal Subset Sum(第十六周)
- 突破微信服务号群发限制