OceanBase通用系统配置参数---租户级参数

OceanBase 2023-01-02
109

租户级参数

  • freeze_trigger_percentage:用于设置触发全局冻结的租户使用内存阈值。

    • 默认值:20

    • 取值范围:(0, 100)

    • 示例:

      obclient> ALTER SYSTEM freeze_trigger_percentage=20;
      
      登录后复制
  • major_compact_trigger:用于设置多少次小合并触发一次全局合并。

    • 默认值:0

    • 取值范围:[0, 65535]

    • 示例:

      obclient> ALTER SYSTEM major_compact_trigger=5;
      
      登录后复制
  • cpu_quota_concurrency:用于设置租户的每个 CPU 配额所允许的最大并发数。

    • 默认值:4

    • 取值范围:[1, 10]

    • 示例:

      obclient> ALTER SYSTEM cpu_quota_concurrency=4;
      
      登录后复制
  • writing_throttling_trigger_percentage:用于设置写入速度的阈值。当值为 100 时,表示关闭写入限速机制。

    • 默认值:100

    • 取值范围:[0, 100]

    • 示例:

      obclient> ALTER SYSTEM SET writing_throttling_trigger_percentage=100;
      
      登录后复制
  • audit_trail:用于设置是否启用数据库审核。

    • 默认值:NONE

    • 取值范围:

      • NONE

      • OS

      • DB

      • DB,EXTENDED

      • DB_EXTENDED

    • 示例:

      obclient> ALTER SYSTEM SET audit_trail=NONE;
      
      登录后复制
  • undo_retention:表示系统应保留的多版本数据范围,单位为秒,在转储时控制多版本数据的回收。

    • 默认值:1800

    • 取值范围:[0, 4294967295]

    • 示例:

      obclient> ALTER SYSTEM SET undo_retention=1800;
      
      登录后复制

系统变量

  • recyclebin:用于设置是否开启回收站功能。

    • 默认值:OFF

    • 取值范围:

      • 1 或 ON

      • 0 或 OFF

    • 示例:

      obclient> SET GLOBAL recyclebin=OFF;
      
      登录后复制

      或者

      obclient> SET GLOBAL recyclebin=0;
      
      登录后复制
  • ob_query_timeout:用于设置查询超时时间,单位是微秒。

    • 默认值:10000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_query_timeout=10000000;
      
      登录后复制
  • ob_trx_idle_timeout:用于设置事务空闲超时时间,即事务中两条语句之间的执行间隔超过该值时超时,单位为微秒。

    • 默认值:86400000000

    • 取值范围:[100000000,+∞)

    • 示例:

      obclient> SET GLOBAL ob_trx_idle_timeout=120000000;
      
      登录后复制
  • ob_trx_timeout:用于设置事务超时时间,单位为微秒。

    • 默认值:86400000000

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL ob_trx_timeout=100000000;
      
      登录后复制
  • ob_read_consistency:用于设置读一致性级别。

    • 默认值:STRONG

    • 取值范围:

      • 0:空字符串

      • 1:FROZEN

      • 2:WEAK

      • 3:STRONG

    • 示例:

      obclient> SET GLOBAL ob_read_consistency=STRONG;
      
      登录后复制

      或者

      obclient> SET GLOBAL ob_read_consistency=3;
      
      登录后复制
  • ob_sql_work_area_percentage:用于 SQL 执行的租户内存百分比限制。

    • 默认值:5

    • 取值范围:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_work_area_percentage=5;
      
      登录后复制
  • parallel_servers_target:用于设置每个 Server 上的大查询排队条件。当并行执行(Parallel eXecution,PX)消耗的线程数超过大查询排队条件后,后继并行执行需要排队等待。

    • 默认值:0

    • 取值范围:[0, 9223372036854775807]

    • 示例:

      obclient> SET GLOBAL parallel_servers_target=0;
      
      登录后复制
  • max_allowed_packet:用于设置最大网络包大小,单位是 Byte。

    • 默认值:4194304

    • 取值范围:[1024,1073741824]

    • 示例:

      obclient> SET GLOBAL max_allowed_packet=4194304;
      
      登录后复制
  • nls_date_format:用于控制 Date 类型转 Str 的格式,以及 Str 隐式转 Date 的格式。

    说明

    该参数仅适用于 Oracle 模式。

    • 默认值:DD-MON-RR

    • 取值范围:N/A

    • 示例:

      obclient> SET GLOBAL nls_date_format='DD-MON-RR';
      
      登录后复制
  • autocommit:用于设置是否自动提交事务。

    • 默认值:ON

    • 取值范围:

      • 1 或 ON

      • 0 或 OFF

    • 示例:

      obclient> SET GLOBAL autocommit=ON;
      
      登录后复制

      或者

      obclient> SET GLOBAL autocommit=1;
      
      登录后复制
  • ob_enable_plan_cache:用于设置是否打开 Plan Cache。

    • 默认值:ON

    • 取值范围:

      • 1 或 ON

      • 0 或 OFF

    • 示例:示例:

      obclient> SET GLOBAL ob_enable_plan_cache=ON;
      
      登录后复制

      或者

      obclient> SET GLOBAL ob_enable_plan_cache=1;
      
      登录后复制
  • ob_plan_cache_percentage:用于设置计划缓存可以使用的租户内存资源的百分比。

    • 默认值:5

    • 取值范围:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_plan_cache_percentage=5;
      
      登录后复制
  • ob_sql_audit_percentage:用于设置 SQL Audit 内存上限占当前租户内存的百分比。

    • 默认值:3

    • 取值范围:[0, 100]

    • 示例:

      obclient> SET GLOBAL ob_sql_audit_percentage=3;
      
      登录后复制
  • ob_enable_sql_audit:用于控制当前租户是否开启 SQL Audit 功能。当取值为 False 时,全部租户均不会开启 SQL Audit 功能。

    • 默认值:True

    • 取值范围:True,False

    • 示例:

      obclient> SET GLOBAL ob_enable_sql_audit=True;
      
      登录后复制
  • transaction_isolation:用于设置事务的隔离级别。

    • 默认值:READ-COMMITTED

    • 取值范围:READ-UNCOMMITTED ,READ-COMMITTED ,REPEATABLE-READ,SERIALIZABLE

    • 示例:

      obclient> SET GLOBAL transaction_isolation='READ-COMMITTED';
      
      登录后复制
  • validate_password_check_user_name:用于设置用户密码是否可以和用户名相同。取值为 ON 时,表示用户密码不可以和用户名相同;取值为 OFF 时,表示用户密码可以和用户名相同。

    • 默认值:OFF

    • 取值范围:ON,OFF

    • 示例:

      obclient> SET GLOBAL validate_password_check_user_name=ON;
      
      登录后复制
  • validate_password_length:用于设置用户密码最小长度。

    • 默认值:0

    • 取值范围:[0,2147483647]

    • 示例:

      obclient> SET GLOBAL validate_password_length=0;
      
      登录后复制
  • validate_password_mixed_case_count:用于设置用户密码至少包含的大写字母个数以及至少包含的小写字母个数。

    • 默认值:0

    • 取值范围:[0,2147483647]

    • 示例:

      obclient> SET GLOBAL validate_password_mixed_case_count=0;
      
      登录后复制
  • validate_password_number_count:用于设置用户密码至少包含的数字个数。

    • 默认值:0

    • 取值范围:[0,2147483647]

    • 示例:

      obclient> SET GLOBAL validate_password_number_count=0;
      
      登录后复制
  • validate_password_policy:用于设置密码检查策略。取值为 LOW 时,表示仅包含密码常见的检测;取值为 MEDIUM 时,表示包括密码长度检测、大写字母个数检测、小写字母个数检测、数字个数检测、特殊字符个数检测、用户名密码相同检测。

    • 默认值:LOW

    • 取值范围:LOW,MEDIUM

    • 示例:

      obclient> SET GLOBAL validate_password_policy=LOW;
      
      登录后复制
  • validate_password_special_char_count:用于设置用户密码至少包含的特殊字符个数。

    • 默认值:0

    • 取值范围:[0,2147483647]

    • 示例:

      obclient> SET GLOBAL validate_password_special_char_count=0;
      
      登录后复制
  • resource_manager_plan:用于激活资源管理计划。指定不同计划,会使用不同 CPU 的额度来限定资源组下的用户活动。

    租户内的普通线程和并行执行线程会相互抢占 CPU 资源,通过为租户指定资源隔离计划,可以控制资源抢占策略,限制资源的使用量。

    • 默认值:""

    • 取值范围:N/A

    • 示例:

      每个租户可以创建多套资源管理计划(Resource Plan),例如:DAYTIME、NIGHT 等,您可以在不同时间段或不同的应用场景下激活相应的计划,以最大化系统性能。

      delimiter //
      
      # 定义 DAYTIME 资源管理计划
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN(
        PLAN => 'DAYTIME');
      end; //
      
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
        PLAN => 'DAYTIME',
        GROUP_OR_SUBPLAN => 'interactive_group' ,
        COMMENT => 'TP 优先',
        MGMT_P1 => 30);
      end; //
      
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
        PLAN => 'DAYTIME',
        GROUP_OR_SUBPLAN => 'batch_group' ,
        COMMENT => '即使TP空负载,AP最多占用 40% CPU 资源',
        MGMT_P1 => 20,
        UTILIZATION_LIMIT => 40);
      end; //
      
      
      # 定义 NIGHT 资源管理计划
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN(
        PLAN => 'NIGHT');
      end; //
      
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
        PLAN => 'NIGHT',
        GROUP_OR_SUBPLAN => 'interactive_group' ,
        COMMENT => 'TP 资源最小化',
        MGMT_P1 => 10); 
      end; //
      
      begin DBMS_RESOURCE_MANAGER.CREATE_PLAN_DIRECTIVE(
        PLAN => 'NIGHT',
        GROUP_OR_SUBPLAN => 'batch_group' ,
        COMMENT => 'TP空负载,AP最多占用 90% CPU 资源',
        MGMT_P1 => 90,
        UTILIZATION_LIMIT => 90);
      end; //
      
      # 用户名部分,test001 会被自动转成大写。如果希望保持小写,则需要写成 '"test001"'
      BEGIN
        DBMS_RESOURCE_MANAGER.SET_CONSUMER_GROUP_MAPPING  
           (DBMS_RESOURCE_MANAGER.ORACLE_USER, 'test001', 'batch_group');
      END;//
      
      select * from DBA_RSRC_GROUP_MAPPINGS;// 
      
      
      # 白天时,执行该语句,激活 DAYTIME 计划,TP 优先
      SET GLOBAL resource_manager_plan='DAYTIME';  /MySQL 模式
      ALTER SYSTEM SET resource_manager_plan = 'DAYTIME';  /Oracle 模式
      
      # 夜晚时,执行该语句,激活 NIGHT 计划,批处理/AP 优先
      SET GLOBAL resource_manager_plan='NIGHT';  /MySQL 模式
      ALTER SYSTEM SET resource_manager_plan = 'NIGHT'; /Oracle 模式
      
      # 禁用所有资源计划,不作任何限制
      SET GLOBAL resource_manager_plan=''; //MySQL 模式
      ALTER SYSTEM SET resource_manager_plan = '';   /Oracle 模式