Eu identifiquei 4 problemas no Oracle Database 12c, que são grandes impeditivos para um projeto de consolidação:
– Há apenas uma UNDO para o CDB e todos os PDBs;
– O FLASHBACK DATABASE só pode ser executado como um todo, impactando o CDB e todos os PDBs (mas é possível fazer um Incomplete Recovery via RMAN no PDB);
– Igualmente, a perda da SYSTEM de apenas um PDB requer a restauração de TODO o ambiente, ou seja, o CDB e todos os PDBs;
– E finalmente, a maior parte dos parâmetros não podem ser alterados para um PDB específico, como é demonstrado na lista abaixo. Por exemplo, você precisa especificar o AUDIT_TRAIL com o mesmo valor para todos os PDBs. O mesmo acontece para um buffer de tamanho específico (16k, 32k, etc.) ou mesmo um event que o fabricante exija pra seu produto.
Se a Oracle não corrigir pelo menos a maior parte destes itens, o Oracle Database 12cR2 continuará um candidato limitado para um projeto de consolidação de bancos de dados.
SQL> SELECT COUNT(NAME) FROM V$PARAMETER; COUNT(NAME) ----------- 368 SQL> SELECT COUNT(NAME) FROM V$PARAMETER WHERE ISPDB_MODIFIABLE = 'TRUE'; COUNT(NAME) ----------- 171 SQL> SELECT COUNT(NAME) FROM V$PARAMETER WHERE ISPDB_MODIFIABLE = 'FALSE'; COUNT(NAME) ----------- 197 SQL> SELECT NAME FROM V$PARAMETER WHERE ISPDB_MODIFIABLE = 'FALSE' ORDER BY 1; NAME -------------------------------------------------------------------------------- _allow_resetlogs_corruption active_instance_count aq_tm_processes archive_lag_target asm_diskgroups asm_power_limit asm_preferred_read_failure_groups audit_file_dest audit_sys_operations audit_syslog_level audit_trail awr_snapshot_time_offset background_core_dump background_dump_dest backup_tape_io_slaves bitmap_merge_area_size blank_trimming buffer_pool_keep buffer_pool_recycle circuits client_result_cache_lag client_result_cache_size clonedb cluster_database cluster_database_instances cluster_interconnects commit_point_strength compatible connection_brokers control_file_record_keep_time control_files control_management_pack_access core_dump_dest cpu_count create_bitmap_area_size cursor_space_for_time db_16k_cache_size db_2k_cache_size db_32k_cache_size db_4k_cache_size db_8k_cache_size db_big_table_cache_percent_target db_block_buffers db_block_checking db_block_checksum db_block_size db_cache_advice db_cache_size db_domain db_file_name_convert db_files db_flash_cache_file db_flash_cache_size db_flashback_retention_target db_keep_cache_size db_lost_write_protect db_name db_recovery_file_dest db_recovery_file_dest_size db_recycle_cache_size db_ultra_safe db_unique_name db_writer_processes dbwr_io_slaves dg_broker_config_file1 dg_broker_config_file2 dg_broker_start diagnostic_dest disk_asynch_io dispatchers distributed_lock_timeout dml_locks dnfs_batch_size enable_pluggable_database event fal_client fal_server fast_start_io_target fast_start_mttr_target fast_start_parallel_rollback file_mapping fileio_network_adapters filesystemio_options gcs_server_processes global_context_pool_size global_txn_processes hash_area_size hi_shared_memory_address hs_autoregister ifile instance_groups instance_name instance_number instance_type java_max_sessionspace_size java_pool_size java_soft_sessionspace_limit job_queue_processes large_pool_size ldap_directory_access ldap_directory_sysauth license_max_sessions license_max_users license_sessions_warning local_listener lock_name_space lock_sga log_archive_config log_archive_dest log_archive_duplex_dest log_archive_format log_archive_local_first log_archive_max_processes log_archive_start log_archive_trace log_buffer log_checkpoint_interval log_checkpoint_timeout log_checkpoints_to_alert log_file_name_convert max_dispatchers max_enabled_roles max_shared_servers memory_max_target memory_target noncdb_compatible open_links open_links_per_instance os_authent_prefix os_roles parallel_adaptive_multi_user parallel_automatic_tuning parallel_execution_message_size parallel_max_servers parallel_min_percent parallel_min_servers parallel_server parallel_server_instances parallel_servers_target parallel_threads_per_cpu permit_92_wrap_format pga_aggregate_limit pga_aggregate_target pre_page_sga processes processor_group_name rdbms_server_dn read_only_open_delayed recovery_parallelism redo_transport_user remote_listener remote_login_passwordfile remote_os_authent remote_os_roles replication_dependency_tracking resource_manager_cpu_allocation result_cache_max_result result_cache_max_size rollback_segments sec_case_sensitive_logon sec_max_failed_login_attempts sec_protocol_error_further_action sec_protocol_error_trace_action sec_return_server_release_banner serial_reuse service_names session_cached_cursors session_max_open_files sga_max_size sga_target shadow_core_dump shared_memory_address shared_pool_reserved_size shared_pool_size shared_server_sessions shared_servers spfile sql92_security standby_archive_dest standby_file_management streams_pool_size tape_asynch_io thread threaded_execution trace_enabled tracefile_identifier transactions transactions_per_rollback_segment undo_management undo_retention undo_tablespace unified_audit_sga_queue_size use_dedicated_broker use_indirect_data_buffers use_large_pages user_dump_dest utl_file_dir 197 rows selected. SQL>
Pelo que entendi, nem sga ou buffer cache não consigo dimensionar por PDB??? =/
Até onde eu sei, não.
Você pode utilizar o Rsource Manager para limitar CPU e Parallel Servers por PDB, mas não encontrei limitadores de DB_CACHE_SIZE.
http://docs.oracle.com/cd/E16655_01/server.121/e17636/cdb_dbrm.htm#ADMIN13782