提高ORACLE数据库系统import性能
2007-06-04 14:27
393 查看
本文主要从系统级别的改变、init.ora参数的改变、import选项的改变三个方面来介绍如何实现提高ORACLE关系数据库系统的import实用工具的性能,对广大ORACLE系统管理员在进行数据库故障恢复时提高效率有较大意义。
Import和Export是ORACLE数据库系统的两个配套的实用程序,Export把数据库中的数据卸出到操作系统文件中,而Import实用程序则把Export卸出的数据恢复到数据库中。import过程有时要花费几个小时甚至几天时间才能成功地完成。不幸的是,在许多情况下,import需要对数据库进行故障的恢复,这时对时间的要求比较高,因而这种性能是不能胜任的。笔者在从事ORACLE 7系统管理工作两年期间,总结出有几个基本的参数改变可以减少import所需的时间。
一、 系统级别的改变
1在重建数据库时尽可能增大DB_BLOCK_SIZ参数。块的大小越大,所需I/O循环的次数就越少。这种改变是永久性的,因此在修改它的时候应考虑到各种可能的影响。
2建立并使用一个大的rollback段,同时将其他rollback段关闭(offline)。一个rollback段大约需要最大的表(table)的50%的大小就足够了。
3在import完成之前将数据库置于NOARCHIVELOG模式。这将减少创建和管理archive日志的时间。
4与rollback段一样,创建几个大的重做日志文件(redo log files),越大越好。关闭一些小的重做日志文件。重做日志文件越大,所需的日志切换的次数就越少。检查警告日志信息如“Thread 1 cannot allocate new log,sequence 17,Checkpoint not complete”,这就意味着日志文件需要扩大或数量需增加。
5如果可能,尽量将rollback段、表数据和重做日志文件分布在不同的硬盘上。这样可以减少I/O冲突的可能性。
二、 intr.ora参数的改变
1将LOG_CHECKPOINT_INTERVAL的值置为大于重做日志文件的大小。这个值通常以操作系统的块大小来定义(UNIX系统大多是512字节)。这样可以将检查点checkpoint)减小到最少(仅在日志切换时执行)。
2增大SORT_AREA_SIZE的值。这种增加取决于机器中其他活动进程的状况以及还有多少可用的空闲内存。我们可以试5-10次来寻找一个最佳值。若机器开始交换(swapping)及页面(paging)切换,说明值设置得太大。
三、 import选项改变
1置COMMIT=N。这将导致import在每个对象(如table)结束之后提交(commit),而非缓冲区满提交。这就是我们为什么需要一个大的rollback段。
2采用一个大的BUFFER值。这个值要视系统活动状况、数据库大小等情况而定。通常几兆字节就够了,但是若有足够的内存这个值还可更大些。同样,我们可以查看页面和交换的情况来确定这个值是否太大。这将减少import进程到文件中读取数据的次数(每次它将读取一个buffer大小的数据)。
3置INDEXES=N。这将加快导入无索引表的速度。采用INDEXFILE选项,在数据导入完成后建立索引。建立索引时SORT_AREA
_SIZE值要足够大。
Import和Export是ORACLE数据库系统的两个配套的实用程序,Export把数据库中的数据卸出到操作系统文件中,而Import实用程序则把Export卸出的数据恢复到数据库中。import过程有时要花费几个小时甚至几天时间才能成功地完成。不幸的是,在许多情况下,import需要对数据库进行故障的恢复,这时对时间的要求比较高,因而这种性能是不能胜任的。笔者在从事ORACLE 7系统管理工作两年期间,总结出有几个基本的参数改变可以减少import所需的时间。
一、 系统级别的改变
1在重建数据库时尽可能增大DB_BLOCK_SIZ参数。块的大小越大,所需I/O循环的次数就越少。这种改变是永久性的,因此在修改它的时候应考虑到各种可能的影响。
2建立并使用一个大的rollback段,同时将其他rollback段关闭(offline)。一个rollback段大约需要最大的表(table)的50%的大小就足够了。
3在import完成之前将数据库置于NOARCHIVELOG模式。这将减少创建和管理archive日志的时间。
4与rollback段一样,创建几个大的重做日志文件(redo log files),越大越好。关闭一些小的重做日志文件。重做日志文件越大,所需的日志切换的次数就越少。检查警告日志信息如“Thread 1 cannot allocate new log,sequence 17,Checkpoint not complete”,这就意味着日志文件需要扩大或数量需增加。
5如果可能,尽量将rollback段、表数据和重做日志文件分布在不同的硬盘上。这样可以减少I/O冲突的可能性。
二、 intr.ora参数的改变
1将LOG_CHECKPOINT_INTERVAL的值置为大于重做日志文件的大小。这个值通常以操作系统的块大小来定义(UNIX系统大多是512字节)。这样可以将检查点checkpoint)减小到最少(仅在日志切换时执行)。
2增大SORT_AREA_SIZE的值。这种增加取决于机器中其他活动进程的状况以及还有多少可用的空闲内存。我们可以试5-10次来寻找一个最佳值。若机器开始交换(swapping)及页面(paging)切换,说明值设置得太大。
三、 import选项改变
1置COMMIT=N。这将导致import在每个对象(如table)结束之后提交(commit),而非缓冲区满提交。这就是我们为什么需要一个大的rollback段。
2采用一个大的BUFFER值。这个值要视系统活动状况、数据库大小等情况而定。通常几兆字节就够了,但是若有足够的内存这个值还可更大些。同样,我们可以查看页面和交换的情况来确定这个值是否太大。这将减少import进程到文件中读取数据的次数(每次它将读取一个buffer大小的数据)。
3置INDEXES=N。这将加快导入无索引表的速度。采用INDEXFILE选项,在数据导入完成后建立索引。建立索引时SORT_AREA
_SIZE值要足够大。
相关文章推荐
- 提高ORACLE数据库系统import性能
- 将数据放至数据库外或文件系统来提高报表系统性能
- Oracle通过设置statistics选项来提高import导入dmp性能
- 优化数据库大幅度提高Oracle的性能
- 优化数据库大幅度提高Oracle的性能
- 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14
- 几个简单的步骤大幅提高Oracle性能--我优化数据库的三板斧
- 优化数据库大幅度提高Oracle的性能
- ArcSDE性能优化-Oracle将数据库对象Pin到共享池中来提高数据库性能
- [转载]Oracle8 PL/SQL编程风格与系统性能的提高
- Oracle收购TimesTen 提高数据库软件性能
- Oracle数据库系统性能优化策略
- 提高系统性能数据库设计的横向分割和纵向分割技术
- 优化数据库大幅度提高Oracle的性能
- 优化数据库大幅度提高Oracle的性能
- 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨论 14
- 优化数据库大幅度提高Oracle的性能
- 优化数据库大幅度提高Oracle的性能
- 优化数据库大幅度提高Oracle的性能
- 如何获得Oracle系统性能统计? Oracle大型数据库系统在AIXUNIX上的实战详解 集中讨