此实验申请地址在这里。
实验帮助在这里。
此实验预估完成时间100分钟。
该研讨会介绍了 Oracle 数据库实例的基本知识,并指导您管理 Oracle 数据库的初始化参数和内存结构。
管理初始化参数以在 Oracle 数据库上执行关键任务,例如管理数据库实例和调整内存组件的大小,以提高数据库的性能。
这个实验设计得一般。
目标
从 SQL 命令行和 Oracle Enterprise Manager Cloud Control (Oracle EMCC) 执行以下操作 -
此实验的作者为Manisha Mati,其他贡献者为Suresh Rajan, Manish Garodia, Kurt Engeleiter, Suresh Mohan, Jayaprakash Subramanian, Ashwini R。
Oracle 数据库系统由一个 Oracle 数据库和一个实例(也称为数据库实例)组成。 该实例包含一组后台进程,这些进程对存储的数据和进程使用的共享分配内存进行操作。 您可以以具有 SYSDBA 权限的 SYS 用户身份启动或关闭 Oracle 实例。
每个实例都有一个实例 ID,也称为系统 ID (SID)。 主机上有多个 Oracle 数据库,每个数据库都有自己的数据文件集。 您必须确定要连接的实例。 对于本地连接,您可以通过设置操作系统环境变量 ORACLE_SID 和 ORACLE_HOME 来识别实例。
启动数据库实例
启动实例的过程如下。
数据库默认启动方式为OPEN,依次完成以上三个阶段。 您可以通过以下方式启动实例。
关闭数据库实例
关闭实例的过程与启动实例相反。 它包括以下几个阶段。
初始化参数
管理数据库实例包括配置影响 Oracle 实例基本操作的参数。 这些参数称为初始化参数。 数据库实例在启动时从 INIT.ORA 文件中读取初始化参数。
在安装期间,当您选择 Oracle 数据库配置助手 (DBCA) 中可用的预配置数据库工作负载时,初始化参数将针对您指定的环境中的典型使用进行优化。 随着数据库用户数量的增加和工作量的增加,您可能需要更改一些初始化参数。
初始化参数是 Oracle 数据库中非常重要的一部分。 您必须为数据库设置基本参数才能正常有效地运行。 如果没有有效的初始化参数文件,数据库将不会启动。 该文件仅在启动时读取,包含设置 SGA 所需的信息。
以下是两种类型的参数文件:
Oracle 数据库启动时,Oracle 从 SPFile 或 PFile 读取初始化参数值。 这些参数告知 Oracle 数据库要分配多少内存、将与数据库相关的文件放在哪里以及现有数据文件的位置。
关于实例内存管理
实例内存结构的大小会影响 Oracle 数据库服务器的性能,并由初始化参数控制。 当您使用 DBCA 创建数据库时,内存参数会根据数据库工作负载(例如数据仓库、通用用途或事务处理)自动设置为最佳值。 但是,随着数据库使用量的增加,您可以更改内存参数的设置。
与 Oracle 数据库相关的基本内存结构包括:
自动内存管理
Oracle 数据库可以管理 SGA 内存和实例 PGA 内存。 您只需指定实例使用的总内存大小,数据库会根据需要在 SGA 和实例 PGA 之间动态交换内存以满足处理需求。 此功能称为自动内存管理。 在这种内存管理模式下,数据库还会动态调整各个 SGA 组件的大小和各个 PGA 的大小。
安装后,您可以让 Oracle 数据库自动管理内存,或选择手动配置实例内存结构。 无论是手动和自动内存管理,Oracle 数据库都会发送警报,以识别需要您注意的内存大小问题。
管理实例内存的最简单方法是允许数据库实例为您自动管理和调整它。您设置目标内存大小初始化参数 (MEMORY_TARGET) 和可选的最大内存大小初始化参数 (MEMORY_MAX_TARGET)。实例使用的总内存保持相对恒定,基于 MEMORY_TARGET 的值,并且实例自动在系统全局区域 (SGA) 和实例程序全局区域 (instance PGA) 之间分配内存。随着内存需求的变化,实例会在 SGA 和实例 PGA 之间动态重新分配内存。
如果您没有为 Oracle 数据库启用自动内存管理,那么您必须手动设置 SGA 和 PGA 的内存。在安装 Oracle 数据库时,安装程序会为您提供启用自动内存管理的选项。如果您在数据库安装期间未启用自动内存管理,则可以按照本研讨会中的说明启用它。
参考文档
本实验将引导您完成使用 SQL 命令和 Oracle Enterprise Manager Cloud Control (Oracle EMCC) 关闭和启动数据库实例的过程。
预计时间:15分钟
目标
实际环境是一个2 OCPU,32GB的机器。同时安装了Oracle数据库和EMCC。
总共有3个数据库实例:
List of Database Instances
# ORACLE_SID
-- ----------
1) emrep
2) db19c
3) orcl
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> select status from v$instance;
select status from v$instance
*
ERROR at line 1:
ORA-01034: ORACLE not available
Process ID: 0
Session ID: 0 Serial number: 0
SQL> startup
ORACLE instance started.
Total System Global Area 6291454960 bytes
Fixed Size 9149424 bytes
Variable Size 1895825408 bytes
Database Buffers 4378853376 bytes
Redo Buffers 7626752 bytes
Database mounted.
Database opened.
SQL> show pdbs
CON_ID CON_NAME OPEN MODE RESTRICTED
---------- ------------------------------ ---------- ----------
2 PDB$SEED READ ONLY NO
3 OLTP_CL2 READ WRITE NO
4 PSAL_CL1 READ WRITE NO
SQL> alter pluggable database all open;
Pluggable database altered.
SQL> select status from v$instance;
STATUS
------------
OPEN
略。
略。
初始化参数窗口有两个选项卡:
注意:如果参数的值字段不可编辑,则表示该参数不是动态的。 您无法更改当前实例的该参数。
注意:服务器参数文件是一个可以被Oracle数据库读写的二进制文件,是初始化参数文件的推荐格式。
初始化参数有Basic和Dynamic两类。
在 PDB 中,Initialization Parameters 页面包括 PDB Modifiable 列。 每个可以在 PDB 级别修改的初始化参数在 PDB Modifiable 列中都有一个复选标记。
注意: PDB 中任何在 PDB Modifiable 列中没有复选标记的初始化参数只能在根中设置和修改。 在根目录中设置的值适用于多租户 CDB 中的各个 PDB。
初始化参数存在于 CDB 级别和 PDB 级别。 默认情况下,PDB 级别的初始化参数继承 CDB 级别的初始化参数的值。
第一个没成功:
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 80
pga_aggregate_target big integer 575M
sga_target big integer 5904M
target_pdbs integer 11
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter system set memory_max_target=6G scope=spfile;
System altered.
SQL> alter system set memory_target=5G scope=spfile;
System altered.
SQL> alter system set pga_aggregate_target=0 scope=spfile;
System altered.
SQL> alter system set sga_target=0 scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00844: Parameter not taking MEMORY_TARGET into account
ORA-00851: SGA_MAX_SIZE 6291456000 cannot be set to more than MEMORY_TARGET 5368709120.
ORA-01078: failure in processing system parameters
第二个也没成功。
SQL> show parameter target
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
archive_lag_target integer 0
db_big_table_cache_percent_target string 0
db_flashback_retention_target integer 1440
fast_start_io_target integer 0
fast_start_mttr_target integer 0
memory_max_target big integer 0
memory_target big integer 0
parallel_servers_target integer 80
pga_aggregate_target big integer 3164M
sga_target big integer 9504M
target_pdbs integer 18
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter system set memory_max_target=6G scope=spfile;
System altered.
SQL> alter system set memory_target=5G scope=spfile;
System altered.
SQL> alter system set pga_aggregate_target=0 scope=spfile;
System altered.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORA-00838: Specified value of MEMORY_TARGET is too small, needs to be at least 9520M
ORA-01078: failure in processing system parameters
原因是因为我忘记将SGA参数设置为0了:
alter system set sga_target=0 scope=spfile;
仅有通过EMCC的操作,此略。
注意:Memory Advisors 选项仅在 Database Instance 主页上可用,在 PDB 主页上不可用。 您可以在禁用自动内存管理功能时使用内存顾问。 内存顾问会自动调整各种 SGA 和 PGA 之间的内存分配以获得最佳性能。 这些调整是在您的总 SGA 和 PGA 目标值的范围内进行的。 如果 Memory Advisor 发现当前可用内存量不足并对性能产生不利影响,它建议您增加 SGA 或 PGA 目标值。 您可以使用 Memory Advisor 为 SGA 和 PGA 设置新值。