如果您最近创建了 Oracle Standard Edition 2 数据库,那么您可能根本不符合 Oracle。在 SE2 数据库创建过程中,您可能会陷入几个不为人知的陷阱。这篇文章详细介绍了安装的每个步骤,以及如何避免为从未使用过的功能支付数百万美元的罚款。
在我们开始创建数据库之前,重要的是要知道有一个特定的 SE2 安装。在最近的版本中,EE 和 SE2 只有一个二进制文件(下图)。如果您安装的是旧版本,如果需要下载 SE2 特定的二进制文件,请查阅文档。
也就是说,让我们回到主题:数据库创建。
选择创建数据库:
选择“Advanced Configuration”:
注意:您必须选择“Custom Database template”——如果您选择其他模板,例如数据仓库或通用,则将使用错误的许可证创建数据文件。
SE2 每个 CDB 最多只能使用 3 个可插拔数据库,您不能为 CDB 创建更多的数据库。多租户是一种付费的企业版选项。
此窗口中没有陷阱,请为您的环境选择最佳选项:
这里也是如此——为您的环境选择最佳选项。重要数据库必须指定 FRA 区域并启用归档日志:
监听器配置,不出意外:
这一步的一些技巧。Oracle Label Security 和 Oracle Database Vault 是企业版的选项,因此不要选择这些标志。
作为最佳实践,我只选择了必要的组件。此外,查找此数据库将支持的应用程序类型。当您只安装/创建必要的组件/功能时,它可以避免错误、安全问题,并且升级和修补练习运行得更快。
这里没有陷阱;选择适合您需要的内存配置和字符集:
取消选中复选框并单击Next:
为了更好的安全性,您应该为每个帐户选择不同的密码。在此示例中,我希望为所有帐户只选择一个密码:
最重要的步骤之一。在更改可能违反 SE2 许可证的参数之前不要继续。单击“All initialization Parameters””。
在右上角单击“Show advanced parameters flag”并按名称排序结果:
让我们将“ control_management_pack”更改为 NONE,然后单击 Include in spfile 标志。如果不标记此标志,则在创建数据库后,如果重新启动数据库,该参数将重新设置为默认值:
将“deferred_segment_creation”设置为 FALSE。这是一个企业版功能,所以不要忘记将它包含在 spfile 中:
将“Job_queue_processes”设置为零。这是必需的,因为 RDBMS Oracle 有一些违反 SE2 许可证的内部作业。禁用这些作业后,我们可以再次将“job_queue_processes”设置为默认值:
将“optimizer_adaptive_plans”和“optimizer_adaptive_statistics”设置为 FALSE,并将它们包含在 spfile 中:
注意“optimizer_use_sql_plan_baseline”和“optimizer_use_sql_plan”。
基线通常适用于以前的企业版本。根据 19c 版本的文档,SE2 可以使用此功能,但有一些限制。每个 SQL 语句只允许一个 SQL 计划基线,并且禁用 SQL 计划演变。让我们避免使用它——安全总比后悔好。如果您需要使用它,请谨慎并仔细检查文档:
将“parallel_max_servers”设置为零。SE2 不允许并行。不能在备份中使用并行,也不能增加对象(表和索引)的程度。一个很大的缺陷是即使您将“parallel_max_servers”设置为零并且您的应用程序正在使用 SQL 并行提示,此 SQL 也会违反 SE2 许可。作为最佳实践,尽可能避免使用提示:
资源管理器是企业版功能,因此将“resource_limit”参数更改为 false。
点击关闭:
到目前为止,一切都很好。现在,我们只需要点击“create database”,对吧?错误的。为此设置创建响应文件并取消数据库创建:
检查保存的响应文件:
如果我们遵循数据库创建,即使未选中该标志,数据库也会安装所有组件。为了避免这个问题,我们需要编辑文件“$ORACLE_HOME/assistants/dbca/templates/New_Database.dbt”:
将不必要的组件的值更改为 false:
现在我们已准备好创建 SE2 数据库。使用前面步骤中创建的响应文件:
[oracle@host1 bin]$ ./dbca -silent -createDatabase -responseFile /home/oracle/dbca.rsp
Enter SYS user password:
Enter SYSTEM user password:
Enter PDBADMIN User Password:
Prepare for db operation
4% complete
Creating and starting Oracle instance
5% complete
6% complete
8% complete
Creating database files
9% complete
13% complete
Creating data dictionary views
14% complete
16% complete
19% complete
20% complete
21% complete
23% complete
25% complete
Oracle JVM
31% complete
38% complete
44% complete
46% complete
Oracle Text
48% complete
50% complete
Oracle Multimedia
63% complete
Creating cluster database views
71% complete
Completing Database Creation
73% complete
75% complete
Creating Pluggable Databases
78% complete
88% complete
Executing Post Configuration Actions
100% complete
Database creation complete. For details check the logfiles at:
/u01/app/oracle/cfgtoollogs/dbca/PYTHIAN.
Database Information:
Global Database Name:PYTHIAN
System Identifier(SID):PYTHIAN
Look at the log file "/u01/app/oracle/cfgtoollogs/dbca/PYTHIAN/PYTHIAN0.log" for further details.
[oracle@host1 bin]$ sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on Mon May 23 07:38:37 2022
Version 19.3.0.0.0
检查组件是否正确:
Connected to:
Oracle Database 19c Standard Edition 2 Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> set linesize 100
SQL> col comp_name for a40
SQL> select comp_name, status from dba_registry;
COMP_NAME STATUS
---------------------------------------- -------------
Oracle Database Catalog Views VALID
Oracle Database Packages and Types VALID
Oracle Real Application Clusters OPTION OFF
JServer JAVA Virtual Machine VALID
Oracle XDK VALID
Oracle Database Java Packages VALID
Oracle XML Database VALID
Oracle Workspace Manager VALID
Oracle Text VALID
Oracle Multimedia VALID
现在我们需要禁用内部自动任务作业,如果执行,将违反 SE2 许可证:
SQL> SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;
CLIENT_NAME STATUS
-------------------------------------------- --------
auto space advisor ENABLED
auto optimizer stats collection ENABLED
sql tuning advisor ENABLED
BEGIN
DBMS_AUTO_TASK_ADMIN.DISABLE (
CLIENT_NAME => 'SQL TUNING ADVISOR',
OPERATION => NULL,
WINDOW_NAME => NULL
);
END;
/
PL/SQL procedure successfully completed.
SQL> SELECT CLIENT_NAME, STATUS FROM DBA_AUTOTASK_CLIENT;
CLIENT_NAME STATUS
--------------------------------------------- --------
auto space advisor ENABLED
auto optimizer stats collection ENABLED
sql tuning advisor DISABLED
禁用自动任务作业后,我们可以再次将“job_queue_processes”参数设置为默认值:
SQL> show parameter job_queue_processes
NAME TYPE VALUE
---------------------- ----------- --------------
job_queue_processes integer 0
SQL> alter system set job_queue_processes=4000 scope=both sid='*';
System altered.
SQL> show parameter job_queue_processes
NAME TYPE VALUE
--------------------- ----------- ---------------------
job_queue_processes integer 4000
检查是否违反了任何企业版功能:
SQL> SELECT NAME, CURRENTLY_USED, FIRST_USAGE_DATE, LAST_USAGE_DATE, DETECTED_USAGES
FROM DBA_FEATURE_USAGE_STATISTICS
WHERE DETECTED_USAGES >0;
no rows selected
原文标题:HOW TO CREATE AN ORACLE SE2 DATABASE AND AVOID LICENSING PROBLEMS
原文作者:Rafael Vieira
原文地址:https://blog.pythian.com/how-to-create-an-oracle-se2-database-and-avoid-licensing-problems/