暂无图片
暂无图片
4
暂无图片
暂无图片
暂无图片

哪些参数仅CDB能修改?哪些参数PDB能修改?

原创 潇湘秦 2024-11-22
734

昨天有位网友,问哪些参数是只能在CDB可以修改的,哪些参数是可以在PDB基本修改的?这个问题之前也有想过做一个系统整理,今天花了时间做了个简单的梳理;

其实很简单可以在v$parameter视图查询ispdb_modifiable 来确认这个参数是否可以在PDB级别修改。

SELECT name, ispdb_modifiableFROM v$parameterWHERE ispdb_modifiable = 'FALSE';

我统计了三个版本的参数基础版本19.3,最新补丁版本19.25,和23.4

具体cdb和pdb可修改参数数量统计如下

版本ispdb_modifiable  ='FALSE'ispdb_modifiable  ='TRUE'
19.3254191
19.25257204
23.4272270


一 .PDB不可以修改的参数

1. 内存管理参数

  • 描述:控制数据库的内存分配或使用的参数,需要在 CDB 层面统一管理,确保全局一致性。

  • 参数

    • sga_max_sizelarge_pool_sizejava_pool_sizestreams_pool_sizeshared_pool_reserved_size

    • memory_targetmemory_max_target

    • log_buffer

  • 原因:内存管理涉及整个容器数据库(CDB)的资源分配的参数,PDB 不能独立管理内存相关资源。 


  可以在PDB修改的内存相关参数

  • DB_CACHE_SIZE: 定义数据库缓冲区缓存大小。

  • SGA_TARGET: 设置系统全局区(SGA)的目标大小。

  • SHARED_POOL_SIZE: 控制共享池的大小。

  • PGA_AGGREGATE_LIMIT: 为进程全局区(PGA)设置内存使用的硬性上限。

  • PGA_AGGREGATE_TARGET: 为 PGA 设置建议的目标值。

  • SGA_TARGET为例在PDB级别修改

  • SQL> show pdbs;    CON_ID CON_NAME                       OPEN MODE  RESTRICTED---------- ------------------------------ ---------- ----------         2 PDB$SEED                       READ ONLY  NO         3 MESTEST                        READ WRITE NOSQL> SQL> SQL> SQL> show parameter sgaNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------allow_group_access_to_sga            boolean     FALSElock_sga                             boolean     FALSEpre_page_sga                         boolean     TRUEsga_max_size                         big integer 9632Msga_min_size                         big integer 0sga_target                           big integer 9632Munified_audit_sga_queue_size         integer     1048576SQL> alter session set container=mestest;Session altered.SQL> SQL> show parameter sgaNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------allow_group_access_to_sga            boolean     FALSElock_sga                             boolean     FALSEpre_page_sga                         boolean     TRUEsga_max_size                         big integer 9632Msga_min_size                         big integer 0sga_target                           big integer 0unified_audit_sga_queue_size         integer     1048576SQL>  alter system set sga_target=8000m container=current;System altered.SQL> SQL> show parameter sgaNAME                                 TYPE        VALUE------------------------------------ ----------- ------------------------------allow_group_access_to_sga            boolean     FALSElock_sga                             boolean     FALSEpre_page_sga                         boolean     TRUEsga_max_size                         big integer 9632Msga_min_size                         big integer 0sga_target                           big integer 8000Munified_audit_sga_queue_size         integer     1048576SQL> 

2. 存储与文件管理参数

  • 描述:与数据文件、日志文件、控制文件相关的参数,定义存储路径和管理方式。

  • 参数

    • control_filesdb_file_name_convertlog_file_name_convert

    • db_recovery_file_destdb_recovery_file_dest_size

    • db_block_sizedb_flash_cache_size

  • 原因:文件管理和路径设置是全局性的,CDB 需统一管理以避免冲突。但是像db_files限制最大文件数这种可以在PDB级别修改。


3. 集群和多实例参数

  • 描述:在 RAC 或多实例配置中,需在 CDB 层统一管理相关参数。

  • 参数

    • cluster_databasecluster_database_instances

    • active_instance_count

    • instance_number

  • 原因:集群配置需要全局协调,PDB 无法独立控制这些设置。


4. 日志和归档参数

  • 描述:与重做日志、归档日志相关的参数,这些配置需全局一致。

  • 参数

    • log_archive_dest_1 到 log_archive_dest_31

    • log_archive_startlog_archive_format

    • archive_lag_target

  • 原因:日志和归档配置影响整个容器数据库,PDB 的独立配置可能导致恢复问题。


5. 安全与认证参数

  • 描述:影响安全性和用户认证的参数,需要全局统一性。

  • 参数

    • remote_login_passwordfilesec_case_sensitive_logon

    • os_rolesremote_os_authent

  • 原因:CDB 层级统一认证策略,确保安全一致性。


6. 数据库特性相关参数

  • 描述:与数据库的功能特性相关的参数,一般只能在 CDB 层级修改。

  • 参数

    • compatibledb_namedb_unique_name

    • enable_pluggable_database

  • 原因:涉及数据库架构或功能的核心特性,需在 CDB 层统一定义。


7. 性能调优参数

  • 描述:用于优化性能的参数,由于可能影响整个 CDB,因此只能在 CDB 修改。

  • 参数

    • parallel_threads_per_cpuparallel_min_servers

    • fast_start_mttr_targetdb_writer_processes

  • 原因:全局性能调优参数需要统一配置,避免 PDB 之间竞争资源。


8. 数据保护和容灾相关参数

  • 描述:与 Data Guard 和备份相关的参数,需在 CDB 层统一配置。

  • 参数

    • data_guard_sync_latencydata_guard_max_io_time

    • log_archive_config

    • standby_file_management

  • 原因:这些参数与容灾策略密切相关,PDB 无法独立管理。


9. 诊断与审计参数

  • 描述:控制审计日志、转储路径、诊断信息的参数。

  • 参数

    • audit_trail、audit_file_destbackground_dump_dest

    • core_dump_desttracefile_identifier

  • 原因:日志与诊断信息需要集中存储,避免分散。


10. 其他关键参数

  • 描述:一些涉及实例行为和特定功能的参数。

  • 参数

    • spfile(用于启动实例的配置文件)

    • db_block_checksumdb_lost_write_protect

    • instance_type

  • 原因:这些参数定义了实例的关键行为,必须由 CDB 统一配置。


这些参数受限于 PDB 修改的核心原因在于:

  1. 资源共享与冲突避免:例如内存和文件资源,需要在 CDB 层统一分配。

  2. 全局一致性:例如日志归档、安全认证等,确保跨 PDB 的统一性。

  3. 架构设计限制:例如文件路径、日志管理等,为了保持多租户架构的规范性。


二 .PDB可以修改的参数

1. 内存和缓存管理

用于优化内存资源分配和缓存性能:

  • DB_CACHE_SIZE: 定义数据库缓冲区缓存大小。

  • SGA_TARGET: 设置系统全局区(SGA)的目标大小。

  • SHARED_POOL_SIZE: 控制共享池的大小。

  • PGA_AGGREGATE_LIMIT: 为进程全局区(PGA)设置内存使用的硬性上限。

  • PGA_AGGREGATE_TARGET: 为 PGA 设置建议的目标值。


2. 性能优化与查询行为

用于调整查询行为和优化性能:

  • OPTIMIZER_MODE: 定义 SQL 优化器的工作模式(如 ALL_ROWS 或 FIRST_ROWS)。

  • PARALLEL_MAX_SERVERS: 最大并行服务器进程数。

  • SORT_AREA_SIZE: 每次排序可用的内存大小。

  • CURSOR_SHARING: 控制游标共享行为。

  • QUERY_REWRITE_ENABLED: 启用查询重写。


3. NLS(国家语言支持)相关参数

用于定义 PDB 的语言、格式和区域设置:

  • NLS_LANGUAGE: 设置默认语言。

  • NLS_TERRITORY: 指定区域。

  • NLS_DATE_FORMAT: 设置默认日期格式。

  • NLS_TIMESTAMP_FORMAT: 设置时间戳格式。

  • NLS_CURRENCY: 设置货币符号。


4. 日志与恢复管理

与日志记录和恢复机制相关的参数:

  • UNDO_MANAGEMENT: 设置撤销管理模式(如 AUTO 或 MANUAL)。

  • UNDO_TABLESPACE: 指定使用的撤销表空间。

  • LOG_ARCHIVE_MIN_SUCCEED_DEST: 设置最少需要成功的日志归档目标数量。

  • DB_CREATE_FILE_DEST: 默认的数据文件创建位置。


5. 资源限制与计划

控制会话和资源的使用限制:

  • SESSIONS: 最大会话数。

  • RESOURCE_MANAGER_PLAN: 指定资源管理计划。

  • CPU_COUNT: 设置 CPU 核心数。

  • MAX_IDLE_TIME: 设置会话的最大空闲时间。


6. 并行与分布式特性

优化并行查询和分布式数据库行为:

  • PARALLEL_DEGREE_POLICY: 定义并行度策略(如 AUTO 或 MANUAL)。

  • REMOTE_LISTENER: 配置远程监听器。

  • LOCAL_LISTENER: 配置本地监听器。

  • PARALLEL_SERVERS_TARGET: 并行服务器目标数量。


7. 安全与合规性

增强数据库安全性和合规性:

  • TDE_CONFIGURATION: 设置透明数据加密(TDE)的配置。

  • COMMIT_WRITE: 定义提交操作的写入模式。

  • SQL92_SECURITY: 启用或禁用 SQL-92 风格的安全性。

  • ENABLE_DDL_LOGGING: 启用或禁用 DDL 日志记录。


8. 临时表和存储参数

控制临时表和其他存储选项:

  • PRIVATE_TEMP_TABLE_PREFIX: 定义私有临时表的前缀。

  • DB_FILES: 最大数据文件数。

  • TEMP_UNDO_ENABLED: 启用临时撤销表空间。


9. 其他

一些通用的或环境配置相关的参数:

  • GLOBAL_NAMES: 控制全局数据库名是否必须唯一。

  • SESSION_CACHED_CURSORS: 每个会话缓存的游标数。

  • OPEN_CURSORS: 每个会话允许打开的游标数。

  • JOB_QUEUE_PROCESSES: 调度任务允许的最大进程数。

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论