Oracle LiveLabs实验:Manage Database Instance and Memory for Oracle Database 21c

news2025/7/11 16:09:17

概述

此实验申请地址在这里。

实验帮助在这里。

此实验预估完成时间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 数据库系统由一个 Oracle 数据库和一个实例(也称为数据库实例)组成。 该实例包含一组后台进程,这些进程对存储的数据和进程使用的共享分配内存进行操作。 您可以以具有 SYSDBA 权限的 SYS 用户身份启动或关闭 Oracle 实例。

每个实例都有一个实例 ID,也称为系统 ID (SID)。 主机上有多个 Oracle 数据库,每个数据库都有自己的数据文件集。 您必须确定要连接的实例。 对于本地连接,您可以通过设置操作系统环境变量 ORACLE_SIDORACLE_HOME 来识别实例。

启动数据库实例

启动实例的过程如下。

  1. 使用 Oracle EMCC 或 SQL*Plus 命令启动实例。 Oracle 读取初始化参数文件,分配系统全局区域 (SGA) 内存,并为实例启动后台进程。
  2. 然后数据库处于挂载状态。 此状态使管理员能够执行在其他用户访问数据库时无法执行的某些功能。
  3. 挂载数据库后,实例打开数据库的重做日志文件和数据文件。 该数据库现已打开,可供所有用户访问。

数据库默认启动方式为OPEN,依次完成以上三个阶段。 您可以通过以下方式启动实例。

  • NOMOUNT — 启动实例而不挂载数据库。
  • MOUNT — 启动实例并挂载数据库,但保持关闭状态。 此状态允许某些 DBA 活动,但不允许对数据库进行一般访问。
  • OPEN — 启动实例、挂载并打开数据库。 您可以在不受限制的模式下执行此操作,允许所有用户访问,或者在受限模式下,仅允许数据库管理员访问。
  • FORCE - 强制实例在启动问题后启动。

关闭数据库实例
关闭实例的过程与启动实例相反。 它包括以下几个阶段。

  • 使用 Oracle EMCC 或 SQL*Plus 命令关闭数据库。 数据文件和日志文件已关闭。 数据库关闭后,用户将无法再访问数据库。(相当于MOUNT状态
  • Oracle 实例卸载数据库并更新控制文件中的相关条目以记录干净的关闭。 控制文件已关闭。 数据库现已关闭,仅保留实例。(相当于NOMOUNT状态
  • Oracle 实例停止实例的后台进程并释放 SGA 使用的共享内存。

初始化参数
管理数据库实例包括配置影响 Oracle 实例基本操作的参数。 这些参数称为初始化参数。 数据库实例在启动时从 INIT.ORA 文件中读取初始化参数。

在安装期间,当您选择 Oracle 数据库配置助手 (DBCA) 中可用的预配置数据库工作负载时,初始化参数将针对您指定的环境中的典型使用进行优化。 随着数据库用户数量的增加和工作量的增加,您可能需要更改一些初始化参数。

初始化参数是 Oracle 数据库中非常重要的一部分。 您必须为数据库设置基本参数才能正常有效地运行。 如果没有有效的初始化参数文件,数据库将不会启动。 该文件仅在启动时读取,包含设置 SGA 所需的信息。

以下是两种类型的参数文件:

  • 服务器参数文件 (SPFile) - 这是初始化参数文件的首选形式。 它是一个可以被数据库写入和读取的二进制文件。 它存储在运行 Oracle 数据库的主机上
    注意:更改 SPFile 中的初始化参数时,您还可以指定更改内存中的值,以便您的更改立即反映在当前实例中。 如果您不更改内存中的值,那么更改将在您关闭并重新启动数据库之前生效。
  • 文本初始化参数文件(PFile)——这种类型的初始化参数文件可以被数据库服务器读取,但不能被服务器写入。 在此文件中,您可以使用文本编辑器设置初始化参数,以便它们在关机和启动时保持不变。

Oracle 数据库启动时,Oracle 从 SPFile 或 PFile 读取初始化参数值。 这些参数告知 Oracle 数据库要分配多少内存、将与数据库相关的文件放在哪里以及现有数据文件的位置。

关于实例内存管理
实例内存结构的大小会影响 Oracle 数据库服务器的性能,并由初始化参数控制。 当您使用 DBCA 创建数据库时,内存参数会根据数据库工作负载(例如数据仓库、通用用途或事务处理)自动设置为最佳值。 但是,随着数据库使用量的增加,您可以更改内存参数的设置。

与 Oracle 数据库相关的基本内存结构包括:

  • 系统全局区域 (SGA)
    SGA 是一组共享内存结构,称为 SGA 组件,其中包含一个 Oracle 数据库实例的数据和控制信息。 SGA 由所有服务和后台进程共享。 存储在 SGA 中的数据示例包括缓存数据块和共享 SQL 区域。
  • 程序全局区 (PGA)
    PGA 是一个内存区域,其中包含服务器进程的数据和控制信息。 它是 Oracle 数据库在服务器进程启动时创建的非共享内存。 对 PGA 的访问是服务器进程独有的。 每个服务器进程都有一个 PGA。 后台进程也分配它们自己的 PGA。

自动内存管理
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 数据库时,安装程​​序会为您提供启用自动内存管理的选项。如果您在数据库安装期间未启用自动内存管理,则可以按照本研讨会中的说明启用它。

参考文档

  • Basic Initialization Parameters
  • Oracle Database 21c - Database Concepts

实验 3:关闭和启动数据库实例

介绍

本实验将引导您完成使用 SQL 命令和 Oracle Enterprise Manager Cloud Control (Oracle EMCC) 关闭和启动数据库实例的过程。

预计时间:15分钟

目标

  • 设置环境变量。
  • 从 SQL 命令行关闭并启动数据库实例。
  • 从 Oracle EMCC 关闭并启动数据库实例。

任务 1:设置环境

实际环境是一个2 OCPU,32GB的机器。同时安装了Oracle数据库和EMCC。

总共有3个数据库实例:

List of Database Instances

#  ORACLE_SID
-- ----------
1) emrep
2) db19c
3) orcl

任务 2:从 SQL 命令行关闭数据库实例

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

任务 3:从 SQL 命令行启动数据库实例

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

任务 4:从 Oracle EMCC 关闭数据库实例

略。

任务 5:从 Oracle EMCC 启动数据库实例

略。

实验 4:管理初始化参数

在这里插入图片描述

初始化参数窗口有两个选项卡:

  • Current - 此默认选项卡显示数据库实例当前处于活动状态和内存中的所有初始化参数值。
  • SPFile — 此选项卡显示服务器参数文件 (SPFILE) 中的初始化参数设置。 如果数据库实例以 SPFile 启动,该窗口将显示 SPFile 选项卡。 但如果数据库实例以 PFile 开头,则窗口不会显示此选项卡。

注意:如果参数的值字段不可编辑,则表示该参数不是动态的。 您无法更改当前实例的该参数。

注意:服务器参数文件是一个可以被Oracle数据库读写的二进制文件,是初始化参数文件的推荐格式。

初始化参数有Basic和Dynamic两类。

在 PDB 中,Initialization Parameters 页面包括 PDB Modifiable 列。 每个可以在 PDB 级别修改的初始化参数在 PDB Modifiable 列中都有一个复选标记。

注意: PDB 中任何在 PDB Modifiable 列中没有复选标记的初始化参数只能在根中设置和修改。 在根目录中设置的值适用于多租户 CDB 中的各个 PDB。

初始化参数存在于 CDB 级别和 PDB 级别。 默认情况下,PDB 级别的初始化参数继承 CDB 级别的初始化参数的值。

实验 5:自动内存管理

启用自动内存管理

第一个没成功:

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 设置新值。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/8815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【教学类-08-01】20221010《门牌号(6层*3间 黑色版)》(大班主题《我们的城市》)

效果展示 背景需求: 我的小课题《运用Python设计大班层次性纸类学具的案例研究》获得2022年MHQ小课题立项,在前期的《学号名字描字帖》《身份证》《数字分合》《破译电话号码》的基础上,需要设计更多与大班主题活动书上的主题相关的学习材料。…

利用css 动画实现节流

节流指的避免过于频繁的执行一个函数,例如:一个保存按钮,为了避免重复提交或者服务器考虑,往往需要对点击行为做一定的限制,不然会频繁的请求接口,之前基本上是通过js去控制节流问题,其实css也能…

k-form-design 改成自己组件步骤

1)修改package.json {"name": "kk-form-design","version": "1.0.2","private": false,"description": "基于vue、ant-design-vue的表单设计器,可视化开发表单","license": &quo…

Linux下的截图工具 —— Flameshot

一、简介 Flameshot是一款功能强大但易于使用的屏幕截图软件,中文名称火焰截图。Flameshot 简单易用并有一个CLI版本,所以你也可以从命令行来进行截图。Flameshot 是一个Linux发行版中完全免费且开源的截图工具。 特性: 外观可定制化。易于…

数据结构-红黑树

红黑树 二分查找 二叉树 二叉平衡树 平衡因子不超1 查找和二叉查找一样的 删除和插入比较复杂 四种失去平衡的方法 LR 两步 RL 两步 不断旋转比较耗时 进一步改进: 红黑树RBT 调整的次数少 平衡性不如二叉平衡树 , 插入删除频繁的使用红黑树&…

redis的主从复制,哨兵和cluster集群

一、redis性能管理 (1) redis-cli 127.0.0.1:6379> info memory ​ (2) redis-cli info memory used_memory_rss:是Redis向操作系统申请的内存。used_memory:是Redis中的数据占用的内存。used_memo…

新手零基础自学Python,安装并配置环境+教程

第一步:搭建python运行环境 在 Windows 上安装 Python 和安装普通软件一样简单,下载安装包以后猛击“下一步”即可。 Python 安装包下载地址:https://www.python.org/downloads/ 打开该链接,可以看到有两个版本的 Python&#…

java框架 —— Spring

Spring[TOC](Spring)1、概述1.1、优点1.2、组成2. IOC概述2.1 什么是IOC2.1.1 推导过程2.1.2 IOC本质2.2 HelloSpring2.2.1 导入Jar包2.2.2 编写代码2.2.2 思考2.3 IOC过程2.4 IOC 接口3. Bean 管理3.1 基于xml方式——set方法注入3.2 FactoryBean3.3 bean 作用域3.4 bean 生命…

Java——面向对象进阶(封装、继承、多态)

Java面向对象三大特性——封装、继承、多态一、封装1.封装基本概念2.访问修饰符3.Java中封装的理解4.封装的优点二、继承1.为什么需要继承2.继承层次结构3.super和this关键字4.继承语法与设计一个继承体系三、多态1.多态的概念2.多态的实现条件3.多态的优缺点一、封装 1.封装基…

【微服务架构组件】Nacos

初识nacos 最近在整合nacos做配置的热下发,总结下。 Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service的首字母简称,一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。 阿里开源产品:什么是 Nacos 如 Na…

[Leetcode]138. 复制带随机指针的链表

目录 1.题目链接 2.1解法①(暴力) 2.1.1解法思路: 2.1.2代码实现: 2.2解法②(进阶) 2.1.1解法思路: 2.2.2代码实现: 1.题目链接 138. 复制带随机指针的链表 - 力扣(LeetCode) 2.1解法①(暴力) 2.1.…

软考 - 操作系统

操作系统概述 bit和byte区别 bit 位 说白了就是0或者1;计算机内存中的存储都是01这两个东西。 byte(B) 字节 1byte8bit(一字节 8比特) 1byte就是1B 1byte 存1个英文字母,2个byte存一个汉字。 了解 操作系统的作用&#xff1…

SpringBoot使用EasyExcel类一键导出数据库数据生成Excel,导入Excle生成List<>数据(作者直接给demo项目)

文章目录一、简单一键导出Excel直接给出生成效果Empty&#xff0c;这个很关键controller层EasyExcel类的多种使用方式二、导入Excel生成List<>数据controller层&#xff0c;简单写法监听器写法&#xff08;观察者模式&#xff09;&#xff0c;稍微麻烦其他如果要使类中的…

动态拼接 merge 语句

【问题】 Hello everyone, I have one query, would be great if anyone can help me out on this. In SQL, I have two tables with same column names. Want to query if there is any difference in the column values and if yes will update the values(in the first ta…

LEADTOOLS 入门教程: 使用 AWS Lambda 转换文档 - C# .NET Core

LEADTOOLS 是一个综合工具包的集合&#xff0c;用于将识别、文档、医疗、成像和多媒体技术整合到桌面、服务器、平板电脑、网络和移动解决方案中&#xff0c;是一项企业级文档自动化解决方案&#xff0c;有捕捉&#xff0c;OCR&#xff0c;OMR&#xff0c;表单识别和处理&#…

SSM框架真没那么难,这份阿里大佬的进阶实战笔记真给讲透了!

SSM框架&#xff1a; SSM框架是spring MVC &#xff0c;spring和mybatis框架的整合&#xff0c;是标准的MVC模式&#xff0c;将整个系统划分为表现层&#xff0c;controller层&#xff0c;service层&#xff0c;DAO层四层 使用spring MVC负责请求的转发和视图管理 spring实现…

Docker学习笔记

1.docker比vm快的原因: docker有着比虚拟机更少的抽象层,不需要实现硬件资源的虚拟化运行,运行在docker上的程序使用的都是物理机的资源. dicker利用的是宿主机的内核,不需要加载操作系统的os内核. 2.docker帮助文档docker help 具体到某一个命令是使用 docker run --help即可…

【JMeter】Jmeter分布式压测教程

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录一、原理二、环境搭建2.1 环境准备2.2 slave机器配置2.3 master机器配置三、脚本及执行3.1 参数化问题3.2 GUI启动测试3.3 命令行启动测试总结一、原理 Jmeter分布式…

【深入理解Kotlin协程】CoroutineScope.launch源码追踪扒皮

lifecycleScope、viewModelScope、GlobalScope、MainScope的上下文 协程最重要的就是协程上下文对象&#xff0c;因为通过上下文可以获取到协程相关的任何东西(Job、Dispatcher、Interceptor、Name、ExceptionHandler)&#xff0c;所以有必要了解清楚常用的协程作用域对象中cor…

asp.net+sqlserver汽车4s店销售网站系统c#项目

数据项 管理员信息表&#xff5b;用户编号&#xff0c;用户名称&#xff0c;用户密码&#xff5d; 新闻信息表&#xff5b;编号&#xff0c;标题&#xff0c;内容&#xff0c;添加时间&#xff5d; 汽车信息表&#xff5b;编号&#xff0c;汽车名称&#xff0c;汽车价格&#x…