12 Design and Deployment Techniques RAC设计和部署技术

来源:互联网 发布:java excel预览插件 编辑:程序博客网 时间:2024/05/29 06:57

12 Design and Deployment Techniques

This chapter briefly describes database design and deployment techniques for Oracle Real Application Clusters (Oracle RAC) environments. It also describes considerations for high availability and provides general guidelines for various Oracle RAC deployments.

本节简要描述了Oracle RAC环境的数据库部署和设计技术。它也描述了为高可用性的一些思想,对很多的RAC部署有指导意义。

This chapter includes the following topics:

  • Deploying Oracle RAC for High Availability

  • General Design Considerations for Oracle RAC

  • General Database Deployment Topics for Oracle RAC

Deploying Oracle RAC for High Availability

Many customers implement Oracle RAC to provide high availability for their Oracle Database applications. For true high availability, you must make the entire infrastructure of the application highly available. This requires detailed planning to ensure there are no single points of failure throughout the infrastructure. Even though Oracle RAC makes your database highly available, if a critical application becomes unavailable, then your business can be negatively affected. For example, if you choose to use the Lightweight Directory Access Protocol (LDAP) for authentication, then you must make the LDAP server highly available. If the database is up but the users cannot connect to the database because the LDAP server is not accessible, then the entire system appears to be down to your users.

许多客户通过实施RAC来为数据库应用实现高可用性。对那些真正高可用性,你必须使得应用的整个架构都是高可用的。这需要很细致的设计,保证通过这套架构没有单点故障发生的可能。即使通过RAC保证了你的高可用,如果应用发生了严重故障变得不可用了,那么你的业务就会受到消极的影响。比如,如果你选择了LDAP验证。那么你必须使得LDAP服务器也是高可用的。如果数据库正在运行,但是用户不能连接到数据库,是因为LDAP不可访问的话,那么整套系统对于你的用户而言,都宕机了。

This section includes the following topics:

  • About Designing a High Availability System

  • Best Practices for Deploying Oracle RAC in a High Availability Environment

  • Consolidating Multiple Applications in a Database or Multiple Databases in a Cluster

  • Scalability of Oracle RAC

About Designing a High Availability System

For mission critical systems, you must be able to perform failover and recovery, and your environment must be resilient to all types of failures. To reach these goals, start by defining service level requirements for your business. The requirements should include definitions of maximum transaction response time and recovery expectations for failures within the datacenter (such as for node failure) or for disaster recovery (if the entire data center fails). Typically, the service level objective is a target response time for work, regardless of failures. Determine the recovery time for each redundant component. Even though you may have hardware components that are running in an active/active mode, do not assume that if one component fails the other hardware components can remain operational while the faulty components are being repaired. Also, when components are running in active/passive mode, perform regular tests to validate the failover time. For example, recovery times for storage channels can take minutes. Ensure that the outage times are within your business' service level agreements, and where they are not, work with the hardware vendor to tune the configuration and settings.

对于任务关心的系统,你必须可以实现故障转移和可恢复,并且你的环境必须能应对多种故障。为了达到这个目标,为了你的业务,定义多个服务级别的需求。这个需求应该包括最大的事务响应时间和故障后的恢复预期时间(比如节点故障)或是灾难恢复(如果整个数据中心都故障了)。典型的,服务级别的对象对作业来说指的是一个目标响应时间,忽略故障。决定每个冗余组件的恢复实际。甚至你可以有硬件组件,运行在active/active模式,不要假设,如果一个组件失败了,其他硬件组件可以操作,当失败的组件此时可以进行修复。同样,当组件运行在active/passive模式,执行正常的测试来验证故障转移时间。比如,对存储通道的恢复时间会消耗部分时间。确保停用时间在你的业务服务级别允许范围内,如果不在这个范围的话的,和硬件商,商量调优和设置。

When deploying mission critical systems, the testing should include functional testing, destructive testing, and performance testing. Destructive testing includes the injection of various faults in the system to test the recovery and to make sure it satisfies the service level requirements. Destructive testing also allows the creation of operational procedures for the production system.

当部署任务相关的系统,特殊应该包括功能性测试,摧毁性测试,和性能测试。摧毁性测试包括系统中的大量故障注入,这用来测试恢复时间和确保它满足服务级别的需要。摧毁性测试应该允许在生产环境创建可操作系统的过程。

To help you design and implement a mission critical or highly available system, Oracle provides a range of solutions for every organization regardless of size. Small workgroups and global enterprises alike are able to extend the reach of their critical business applications. With Oracle and the Internet, applications and their data are now reliably accessible everywhere, at any time. The Oracle Maximum Availability Architecture (MAA) is the Oracle best practices blueprint that is based on proven Oracle high availability technologies and recommendations. The goal of the MAA is to remove the complexity in designing an optimal high availability architecture.

为了帮助设计和部署任务相关或者高可用系统,Oracle为每个组织,无论组织的大小,都提供了一系列的解决方案。小工作组和大型全球企业可以扩展业务应用的临界值。通过Oracle和网络,应用和他们的数据可以在每个地方,每个时间可靠的访问。Oracle Maximum Availability Architecture (MAA)是Oracle最佳实践蓝图,是基于Oracle提供的高可用技术和建议。MAA的目标是删除在设计最优高可用性架构中的复杂度。

See Also:

  • Oracle Database High Availability Overview

  • Oracle Maximum Availability Architecture (MAA) Web site at

    http://www.oracle.com/technology/deploy/availability/htdocs/maa.htm

Best Practices for Deploying Oracle RAC in a High Availability Environment

Applications can take advantage of many Oracle Database, Oracle Clusterware, and Oracle RAC features and capabilities to minimize or mask any failure in the Oracle RAC environment. For example, you can:

应用可以利用许多Oracle数据库,集群,和RAC特性和功能来将RAC环境中的许多故障最小化或者掩饰。比如,你可以:

  • Remove TCP/IP timeout waits by using the VIP address to connect to the database.

    使用VIP地址来连接数据库,避免TCP/IP响应等待。

  • Create detailed operational procedures and ensure you have the appropriate support contracts in place to match defined service levels for all components in the infrastructure.

    创建详细的操作过程,确保你有合适的支持合同来满足以定义好的服务级别。

  • Take advantage of the Oracle RAC Automatic Workload Management features such as connect time failover, Fast Connection Failover, Fast Application Notification, and the Load Balancing Advisory. See Chapter 5, "Introduction to Automatic Workload Management" for more details.

    利用RAC的自动负载管理特性,比如connect time failover,Fast Connection Failover,Fast Application Notication和Load Balancing Advisory。

  • Place voting disks on separate volume groups to mitigate outages due to slow I/O throughput. To survive the failure of x voting devices, configure 2x + 1 mirrors.

    将表决磁盘放在独立的卷组上,可以减轻由于IO吞吐量的使用。为了免于多块表决磁盘的故障带来的影响,需要配置奇数块表决磁盘。

  • Use Oracle Database Quality of Service Management (Oracle Database QoS Management) to monitor your system and detect performance bottlenecks

    使用Oracle Database Quality of Service Management (Oracle Database QoS Management)来监控你的系统,侦测性能瓶颈。

  • Place OCR with I/O service times in the order of 2 milliseconds (ms) or less.

    放在OCR的地方,IO服务大约要小于2毫秒。

  • Tune database recovery using the FAST_START_MTTR_TARGET initialization parameter.

    使用 FAST_START_MTTR_TARGET 参数进行数据库恢复调优。

  • Use Oracle Automatic Storage Management (Oracle ASM) to manage database storage.

    使用ASM来管理数据库存储。

  • Ensure that strong change control procedures are in place.

    确保强烈的修改控制过程可用。

  • Check the surrounding infrastructure for high availability and resiliency, such as LDAP, NIS, and DNS. These entities affect the availability of your Oracle RAC database. If possible, perform a local backup procedure routinely.

    检查周围的高可用和弹性设施,比如LDAP,NIS,DNS等待。这些东西都会影响你RAC数据库的可用性。如果可能,轮询地执行一个本地备份。

  • Use Oracle Enterprise Manager to administer your entire Oracle RAC environment, not just the Oracle RAC database. Use Oracle Enterprise Manager to create and modify services, and to start and stop the cluster database instances and the cluster database. See the Oracle Database 2 Day + Real Application Clusters Guide for more information using Oracle Enterprise Manager in an Oracle RAC environment.

    使用OEM来管理你的整套RAC环境,不仅仅是RAC数据库,使用OEM来创建和修改service,启动/停止集群数据库实例和集群数据库。

  • Use Recovery Manager (RMAN) to back up, restore, and recover data files, control files, server parameter files (SPFILEs) and archived redo log files. You can use RMAN with a media manager to back up files to external storage. You can also configure parallelism when backing up or recovering Oracle RAC databases. In Oracle RAC, RMAN channels can be dynamically allocated across all of the Oracle RAC instances. Channel failover enables failed operations on one node to continue on another node. You can start RMAN from Oracle Enterprise Manager Backup Manager or from the command line. See Chapter 6, "Configuring Recovery Manager and Archiving" for more information about using RMAN.

    使用RMAN来备份,恢复数据文件,控制文件,spfiles和归档重做日志。你可以使用RMAN作为一个媒体管理器来备份文件到外部存储。你可以在备份或者恢复RAC数据库时配置并行。在RAC中,RMAN通道可以是动态分配的。通道失败会让这个节点上的失败操作继续在其他节点上运行。你可以从OEM的Backup Manager来启动RMAN,或者是命令行。

  • If you use sequence numbers, then always use CACHE with the NOORDER option for optimal performance in sequence number generation. With the CACHEoption, however, you may have gaps in the sequence numbers. If your environment cannot tolerate sequence number gaps, then use the NOCACHE option or consider pre-generating the sequence numbers. If your application requires sequence number ordering but can tolerate gaps, then use CACHE andORDER to cache and order sequence numbers in Oracle RAC. If your application requires ordered sequence numbers without gaps, then use NOCACHE andORDER. The NOCACHE and ORDER combination has the most negative effect on performance compared to other caching and ordering combinations.

    如果你使用sequence,那么尽量使用cache 和 nooorder选项,在sequence生成中保持最优性能。当使用cache选项。然而,你可能有多个sequence间隙。如果你的环境不能容忍sequence间隙,那么使用nocache选项,或者考虑使用预生成的sequence。如果你的应用需要sequence不能有间隙,那么使用nocache 和 order 选项。nocahce和order的组合对其他组合都是对性能有最大的影响。

    Note:

    If your environment cannot tolerate sequence number gaps, then consider pre-generating the sequence numbers or use the ORDER and CACHE options.
    如果你的环境不能容忍sequence间隙,考虑使用预生成的sequence或者使用order 和 cache 选项。
  • If you use indexes, then consider alternatives, such as reverse key indexes to optimize index performance. Reverse key indexes are especially helpful if you have frequent inserts to one side of an index, such as indexes that are based on insert date.

    如果你使用索引,那么考虑另外的方案,比如反向索引,优化索引性能。如果你有经常的insert语句到一个索引的一端,那么反向索引会很有帮助,比如索引是基于insert的时间。

Consolidating Multiple Applications in a Database or Multiple Databases in a Cluster

Many people want to consolidate multiple applications in a single database or consolidate multiple databases in a single cluster. Oracle Clusterware and Oracle RAC support both types of consolidation.

许多人想要在单数据库中合并多个应用,或者在一个集群中合并多个数据库。Oracle Clusterware和Oracle RAc 支持这两种合并。

Creating a cluster with a single pool of storage managed by Oracle ASM provides the infrastructure to manage multiple databases whether they are single instance databases or Oracle RAC databases.

创建集群在一个由ASM管理的pool存储中,这样提供可以管理多个数据库的基础设施,无论他们是但实例数据库还是RAC数据库。

With Oracle RAC databases, you can adjust the number of instances and which nodes run instances for a given database, based on workload requirements. Features such as cluster-managed services allow you to manage multiple workloads on a single database or across multiple databases.

在RAC数据库中,你可以调节实例数量,哪些节点运行实例,这都基于负载的需要。这些特性比如集群管理服务,允许你管理单数据库或者多数据库上的多负载。

It is important to properly manage the capacity in the cluster when adding work. The processes that manage the cluster—including processes both from Oracle Clusterware and the database—must be able to obtain CPU resources in a timely fashion and must be given higher priority in the system. Oracle Database Quality of Service Management (Oracle Database QoS Management) can assist consolidating multiple applications in a cluster or database by dynamically allocating CPU resources to meet performance objectives.

当添加作业时管理集群中的容纳能力是很重要的。管理的集群的进程,包括处理Clusterware和Database的进程。必须可以及时获取CPU资源信息和必须在系统中拥有较高的优先级。Oracle数据库 Quality of Service Management (Oracle Database QoS Management) 可以协助合并集群中的多应用,动态的分配CPU资源来满足性能指标。

See Also:

Oracle Database Quality of Service Management User's Guide for more information

Oracle recommends that the number of real time Global Cache Service Processes (LMSn) on a server is less than or equal to the number of processors. (Note that this is the number of recognized CPUs that includes cores. For example, a dual-core CPU is considered to be two CPUs.) It is important that you load test your system when adding instances on a node to ensure that you have enough capacity to support the workload.

Oracle建议服务器上的实时Global Cache Service Processes (LMSn)进程数量小于或者等于处理器的数量(注意,可辨识的CPU数量包括核数,比如一个双核CPU,那就是两个CPU)。

If you are consolidating many small databases into a cluster, you may want to reduce the number of LMSn created by the Oracle RAC instance. By default, Oracle Database calculates the number of processes based on the number of CPUs it finds on the server. This calculation may result in more LMSn processes than is needed for the Oracle RAC instance. One LMS process may be sufficient for up to 4 CPUs.To reduce the number of LMSn processes, set theGC_SERVER_PROCESSES initialization parameter minimally to a value of 1. Add a process for every four CPUs needed by the application. In general, it is better to have few busy LMSn processes. Oracle Database calculates the number of processes when the instance is started, and you must restart the instance if you want to change the value.

如果你合并了多个小数据库到集群中,你想要减少由RAC数据库创建的LMSn的数量。默认的,Oracle Database 基于在服务器上找到的CPU的数量计算这个进程的数量。这个计算会导致很多超过需要的LMSn进程存在RAC实例中。一个LMS进程最多支持4个CPU。为了减少LMSn进程数量,设置GC_SERVER_PROCESSES 参数的最小值为1。普通的,最好是有一些少的忙的LMSn进程。Oracle当实例启动时,计算进程数量,如果你向修改这个参数,那么必须重启实例。

Scalability of Oracle RAC

Oracle RAC provides concurrent, transactionally consistent access to a single copy of the data from multiple systems. It provides scalability beyond the capacity of a single server. If your application scales transparently on symmetric multiprocessing (SMP) servers, then it is realistic to expect the application to scale well on Oracle RAC, without the need to make changes to the application code.

RAC在多系统中提供并行的,事务的一致访问数据的单一copy。它提供的扩展性超过单服务器的容量。如果你的应用透明的扩展在symmetric multiprocessing (SMP) 服务器上,那么现实的是,希望应用在RAC上能良好的扩展,而不需要修改节点的应用。

Traditionally, when a database server runs out of capacity, it is replaced with a new larger server. As servers grow in capacity, they become more expensive. However, for Oracle RAC databases, you have alternatives for increasing the capacity:

传统上,当数据库服务器运行超过了容纳能力,需要被更大的新的服务器替换。随着容量的增加,他们变得非常昂贵。然而,对于RAC数据库,你可以另外的方法增加容量:

  • You can migrate applications that traditionally run on large SMP servers to run on clusters of small servers.

    你可以减轻哪些运行在SMP服务器上的传统应用,通过运行在小的服务器集群上。

  • You can maintain the investment in the current hardware and add a new server to the cluster (or create or add a new cluster) to increase the capacity.

    你可以维护当前硬件的投入,添加新的服务器到集群中,提高容量。

Adding servers to a cluster with Oracle Clusterware and Oracle RAC does not require an outage. As soon as the new instance is started, the application can take advantage of the extra capacity.

通过Clusterware添加服务器到集群,RAC不需要停机。只要新的实例已启动,应用就可以利用额外的容量。

All servers in the cluster must run the same operating system and same version of Oracle Database but the servers do not have to be exactly the same capacity. With Oracle RAC, you can build a cluster that fits your needs, whether the cluster is made up of servers where each server is a two-CPU commodity server or clusters where the servers have 32 or 64 CPUs in each server. The Oracle parallel execution feature allows a single SQL statement to be divided up into multiple processes, where each process completes a subset of work. In an Oracle RAC environment, you can define the parallel processes to run only on the instance where the user is connected or to run across multiple instances in the cluster.

所有集群中的服务器必须是同一操作系统,同一数据库版本,但服务器不必是同一容量。RAC中,你可以创建一个集群满足你的需要,集群是由多个数据库组成,每个数据库是2CPU配置,或者集群的服务器是32或者64位版本。Oracle的并行执行特性允许单个SQL语句被分割到多个处理器,每个处理器完成一部分子工作。在RAC环境中,你可以在实例上定义并行处理,实例上的用户可以运行在但实例或者跨多个实例。

See Also:

  • Chapter 8, "Cloning Oracle RAC to Nodes in a New Cluster"

  • Chapter 9, "Using Cloning to Extend Oracle RAC to Nodes in the Same Cluster"

  • Chapter 10, "Adding and Deleting Oracle RAC from Nodes on Linux and UNIX Systems"

  • Chapter 11, "Adding and Deleting Oracle RAC from Nodes on Windows Systems"

General Design Considerations for Oracle RAC

This section briefly describes database design and deployment techniques for Oracle RAC environments. It also describes considerations for high availability and provides general guidelines for various Oracle RAC deployments.

本节简要描述了RAC数据库部署和设计技术。

Consider performing the following steps during the design and development of applications that you are deploying on an Oracle RAC database:

在设计和部署RAC时需要考虑的点:

  1. Tune the design and the application

    调优设计和应用

  2. Tune the memory and I/O

    调优内存和IO

  3. Tune contention

    调优连接

  4. Tune the operating system

    调优操作系统

Note:

If an application does not scale on an SMP system, then moving the application to an Oracle RAC database cannot improve performance.
如果应用不能在SMP系统上扩展,那么将应用迁移到RAC数据库上不能提升性能

Consider using hash partitioning for insert-intensive online transaction processing (OLTP) applications. Hash partitioning:

考虑对这些经常做insert的OLTP应用使用哈希分区。哈希分区好处有:

  • Reduces contention on concurrent inserts into a single database structure

    并行插入单数据库可以减少连接

  • Affects sequence-based indexes when indexes are locally partitioned with a table and tables are partitioned on sequence-based keys

    当索引是本地分区,表的分区是基于sequence的,那么会影响基于sequence的索引

  • Is transparent to the application

    对应用是透明的

If you use hash partitioning for tables and indexes for OLTP environments, then you can greatly improve performance in your Oracle RAC database. Note that you cannot use index range scans on an index with hash partitioning.

如果你在OLTP环境中,有表上的哈希分区和索引,那么你会在RAC环境中得到很大的性能提升。

General Database Deployment Topics for Oracle RAC

This section describes considerations when deploying Oracle RAC databases. Oracle RAC database performance is not compromised if you do not employ these techniques. If you have an effective noncluster design, then your application will run well on an Oracle RAC database.

本节描述了当部署RAC数据库的考虑事项。如果你不实现这些技术,相信RAC数据库的性能不会“妥协”。如果你有一个一个有效的非集群设计方案,那么你应用也会在RAC环境上运行的不错。

This section includes the following topics:

  • Tablespace Use in Oracle RAC

  • Object Creation and Performance in Oracle RAC

  • Node Addition and Deletion and the SYSAUX Tablespace in Oracle RAC

  • Distributed Transactions and Oracle RAC

  • Deploying OLTP Applications in Oracle RAC

  • Flexible Implementation with Cache Fusion

  • Deploying Data Warehouse Applications with Oracle RAC

  • Data Security Considerations in Oracle RAC

Tablespace Use in Oracle RAC

In addition to using locally managed tablespaces, you can further simplify space administration by using automatic segment space management (ASSM) and automatic undo management.

除了使用本地管理的表空间,你还可以简化空间管理,通过使用ASSM和自动unod管理

ASSM distributes instance workloads among each instance's subset of blocks for inserts. This improves Oracle RAC performance because it minimizes block transfers. To deploy automatic undo management in an Oracle RAC environment, each instance must have its own undo tablespace.

对于insert操作,ASSM会将实例的子组块分散在实例的负载中。这提升了RAC的性能,因为它最小化了块迁移。为了在RAC环境中部署自动undo管理,每个实例会有自己的undo表空间。

Object Creation and Performance in Oracle RAC

As a general rule, only use DDL statements for maintenance tasks and avoid executing DDL statements during peak system operation periods. In most systems, the amount of new object creation and other DDL statements should be limited. Just as in noncluster Oracle databases, excessive object creation and deletion can increase performance overhead.

作为一个普通的规则,只使用DDL语句做维护任务,避免高峰时间执行DDL语句。在大多数系统中,大量新对象的创建和其他DDL语句应该被限制。就好像在非集群数据库中,过度对象创建和删除会增加性能开销。

Node Addition and Deletion and the SYSAUX Tablespace in Oracle RAC

If you add nodes to your Oracle RAC database environment, then you may need to increase the size of the SYSAUX tablespace. Conversely, if you remove nodes from your cluster database, then you may be able to reduce the size of your SYSAUX tablespace.

如果你在RAC环境添加节点,那么你需要提高sysaux表空间的大小。相反的,如果你删除了节点,那么可以减小sysaux的大小。

See Also:

Your platform-specific Oracle RAC installation guide for guidelines about sizing the SYSAUX tablespace for multiple instances

Distributed Transactions and Oracle RAC

If you are running XA Transactions in an Oracle RAC environment and the performance is poor, direct all branches of a tightly coupled distributed transaction to the same instance.

如果你在RAC环境运行XA事务,并且性能又很糟糕,那么引导所有的紧耦合事务分支到同一节点。

To ensure this, create multiple Oracle Distributed Transaction Processing (DTP) services, with one or more on each Oracle RAC instance. Each DTP service is a singleton service that is available on one and only one Oracle RAC instance. All access to the database server for distributed transaction processing must be done by way of the DTP services. Ensure that all of the branches of a single global distributed transaction use the same DTP service. In other words, a network connection descriptor, such as a TNS name, a JDBC URL, and so on, must use a DTP service to support distributed transaction processing.

为了确保这点,在每个节点上创建多个  Oracle Distributed Transaction Processing (DTP) 服务,每个DTP服务是一个单实例服务,并且仅对唯一一个实例可用。所有访问数据库的分布式事务必须通过DTP服务处理。确保所有的分布式事务的分支使用同一个DTP服务。换言之,一个网络连接描述符,比如TNS  name,JDBC URL等待,必须使用DTP服务来支持分布式事务。

See Also:

  • "Services and Distributed Transaction Processing in Oracle RAC" for more details about enabling services and distributed transactions

  • Oracle Database Advanced Application Developer's Guide for more information about distributed transactions in Oracle RAC

Deploying OLTP Applications in Oracle RAC

Cache Fusion makes Oracle RAC databases the optimal deployment servers for online transaction processing (OLTP) applications. This is because these types of applications require:

缓存融合使得RAC数据库有最优的OLTP部署方案。这是因为以下几类应用需求:

  • High availability in the event of failures

    事件失败的高可用性

  • Scalability to accommodate increased system demands

    满足不断增加的系统要求的扩展性

  • Load balancing according to demand fluctuations

    依照需求波动的负载均衡

The high availability features of Oracle Database and Oracle RAC can re-distribute and load balance workloads to surviving instances without interrupting processing. Oracle RAC also provides excellent scalability so that if you add or replace a node, then Oracle Database re-masters resources and re-distributes processing loads.

数据库的高可用性特性和RAC可以重新分布和对负载进行均衡,使得实例免于中断。Oracle RAC也提供了智能扩展性,那么如果你添加或者替换节点,数据库都会重新分配资源和重新分布负载。

Flexible Implementation with Cache Fusion

To accommodate the frequently changing workloads of online transaction processing systems, Oracle RAC remains flexible and dynamic despite changes in system load and system availability. Oracle RAC addresses a wide range of service levels that, for example, fluctuate due to:

  • Varying user demands

  • Peak scalability issues like trading storms (bursts of high volumes of transactions)

  • Varying availability of system resources

Deploying Data Warehouse Applications with Oracle RAC

This section discusses how to deploy data warehouse systems in Oracle RAC environments by briefly describing the data warehouse features available in shared disk architectures.

This section includes the following topics:

  • Speed-Up for Data Warehouse Applications on Oracle RAC

  • Parallel Execution in Data Warehouse Systems and Oracle RAC

Speed-Up for Data Warehouse Applications on Oracle RAC

Oracle RAC is ideal for data warehouse applications because it augments the noncluster benefits of Oracle Database. Oracle RAC does this by maximizing the processing available on all of the nodes that belong to an Oracle RAC database to provide speed-up for data warehouse systems.

RAC对于数据仓库应用是非常理想,合适的,因为它增强了非集群的优势。RAC通过最大化处理可用的节点资源提供对数据仓库系统的加速。

The query optimizer considers parallel execution when determining the optimal execution plans. The default cost model for the query optimizer is CPU+I/Oand the cost unit is time. In Oracle RAC, the query optimizer dynamically computes intelligent defaults for parallelism based on the number of processors in the nodes of the cluster. An evaluation of the costs of alternative access paths, table scans versus indexed access, for example, takes into account the degree of parallelism (DOP) available for the operation. This results in Oracle Database selecting the execution plans that are optimized for your Oracle RAC configuration.

当决定最优的执行计划时,查询优化器会考虑并行执行。默认的cost模型是CPU+I/O,cost unit是time。在RAC中,查询优化器动态的基于节点的处理器的数量急死俺默认并行度。另外一种访问路径的开销估算,表扫描域索引访问,比如考虑可用的并行度DOP。这些选择执行计划的结果会因为你的RAC配置而优化。

Parallel Execution in Data Warehouse Systems and Oracle RAC

Oracle Database's parallel execution feature uses multiple processes to run SQL statements on one or more CPUs. Parallel execution is available on both noncluster Oracle databases and Oracle RAC databases.

Oracle数据库的并行执行特性使用多处理来执行SQL语句。并行执行在集群和非集群中都可以用。

Oracle RAC takes full advantage of parallel execution by distributing parallel processing across all available instances. The number of processes that can participate in parallel operations depends on the DOP assigned to each table or index.

RAC会通过所有可用实例的并行计算。可以使用的处理进程的数量取决于每个表,或者索引上的DOP

See Also:

  • Oracle Database Performance Tuning Guide for more information about the query optimizer

  • Oracle Database Performance Tuning Guide for more information about parallel execution

Data Security Considerations in Oracle RAC

This section describes the following two Oracle RAC security considerations:

  • Transparent Data Encryption and Wallets

  • Windows Firewall Considerations

Transparent Data Encryption and Wallets

Oracle Database 11g release 2 (11.2) enables Oracle RAC nodes to share the wallet. This eliminates the need to manually copy and synchronize the wallet across all nodes. Oracle recommends that you create the wallet on a shared file system. This allows all instances to access the same shared wallet.

Oracle RAC uses wallets in the following ways:

  1. Any wallet operation, like opening or closing the wallet, performed on any one Oracle RAC instance is applicable for all other Oracle RAC instances. This means that when you open and close the wallet for one instance, then it opens and closes the wallet for all Oracle RAC instances.

  2. When using a shared file system, ensure that the ENCRYPTION_WALLET_LOCATION parameter for all Oracle RAC instances points to the same shared wallet location. The security administrator must also ensure security of the shared wallet by assigning appropriate directory permissions.

    Note:

    If Oracle Automatic Storage Management Cluster File System (Oracle ACFS) is available for your operating system, then Oracle recommends that you store the wallet in Oracle ACFS. If you do not have Oracle ACFS in Oracle ASM, then use the Oracle ASM Configuration Assistant (ASMCA) to create it. You must add the mount point to the sqlnet.ora file in each instance, as follows:
    ENCRYPTION_WALLET_LOCATION=  (SOURCE = (METHOD = FILE)    (METHOD_DATA =      (DIRECTORY = /opt/oracle/acfsmounts/data_wallet)))

    This file system is mounted automatically when the instances start. Opening and closing the wallet, as well as commands to set or rekey and rotate the TDE master encryption key, are synchronized between all nodes.

  3. A master key rekey performed on one instance is applicable for all instances. When a new Oracle RAC node comes up, it is aware of the current wallet open or close status.

  4. Do not issue any wallet open or close commands while setting up or changing the master key.

Deployments where shared storage does not exist for the wallet require that each Oracle RAC node maintain a local wallet. After you create and provision a wallet on a single node, you must copy the wallet and make it available to all of the other nodes, as follows:

  • For systems using Transparent Data Encryption with encrypted wallets, you can use any standard file transport protocol, though Oracle recommends using a secured file transport.

  • For systems using Transparent Data Encryption with obfuscated wallets, file transport through a secured channel is recommended.

To specify the directory in which the wallet must reside, set the or ENCRYPTION_WALLET_LOCATION parameter in the sqlnet.ora file. The local copies of the wallet need not be synchronized for the duration of Transparent Data Encryption usage until the server key is re-keyed though the ALTER SYSTEM SET KEY SQL statement. Each time you issue the ALTER SYSTEM SET KEY statement on a database instance, you must again copy the wallet residing on that node and make it available to all of the other nodes. Then, you must close and reopen the wallet on each of the nodes. To avoid unnecessary administrative overhead, reserve re-keying for exceptional cases where you believe that the server master key may have been compromised and that not re-keying it could cause a serious security problem.

See Also:

Oracle Database Advanced Security Administrator's Guide for more information about creating and provisioning a wallet

Windows Firewall Considerations

By default, all installations of Windows Server 2003 Service Pack 1 and higher enable the Windows Firewall to block virtually all TCP network ports to incoming connections. As a result, any Oracle products that listen for incoming connections on a TCP port will not receive any of those connection requests, and the clients making those connections will report errors.

Depending upon which Oracle products you install and how they are used, you may need to perform additional Windows post-installation configuration tasks so that the Firewall products are functional on Windows Server 2003.

See Also:

Oracle Real Application Clusters Installation Guide for Microsoft Windows for more information about Oracle RAC executables requiring Windows Firewall exceptions

Need an example? Tell us more.

0 0
原创粉丝点击