DBA面试题

在这里插入图片描述在这里插入图片描述

Oracle体系结构
(1)、Oracle实例内存中包含哪些部分?
答: sga与pga
sga:是一组共享的内存区域,包含数据字典缓存、库缓存、重做日志缓冲区
Pga:为每个服务器进程分配的非共享内存,存储会话状态和私有SOL工作区


在Oracle数据库中,实例内存主要包含以下几个关键部分:

1. **SGA(System Global Area) - 系统全局区域:**

   - **Buffer Cache(缓冲区高速缓存):** 用于存储数据块的内存区域,提高对数据库块的访问速度。
   - **Shared Pool(共享池):** 包含共享SQL和PL/SQL的解析结果、游标、共享的PL/SQL过程等。
   - **Redo Log Buffer(重做日志缓冲区):** 用于暂存事务的重做信息,以便在发生故障时进行恢复。
   - **Java Pool:** 用于存储Java对象和代码的内存区域。

2. **PGA(Program Global Area) - 程序全局区域:**

   - **Sort Area:** 用于执行排序操作的内存区域。
   - **Session Memory:** 包含每个会话的私有内存,如私有SQL区域、运行时连接信息等。

   

这些区域共同构成了Oracle数据库实例的内存结构,其中SGA是由所有用户共享的,
而PGA是针对每个用户会话的私有内存。这种架构有助于提高数据库的性能和并发处理能力。

(2) Oracle redolog 是做什么的?
答:用于保证事务持久性和数据库一致性的重要机制。当用户对数据库进行修改时,重做日志会记录下这些修改操作的详细信息。如果在事务提交之前发生系统崩溃或电源故障,重做日志可以用来恢复未完成的事务,确保数据的一致性。

Oracle的Redo Log是一种关键的组件,
它记录数据库中发生的所有修改。Redo Log的主要目的是确保数据库的持久性和恢复性。以下是Redo Log的主要功能:

1. **恢复:** Redo Log记录了数据库发生的所有变更,包括插入、更新和删除操作。在数据库发生故障时,可以使用Redo Log来还原数据库到故障发生前的状态,确保不会丢失已提交的事务数据。

2. **事务持久性:** 在事务提交时,相应的Redo Log记录被生成。这确保了即使在事务提交后,如果系统崩溃,数据库也可以通过Redo Log进行恢复,保持数据的一致性。

3. **并发控制:** Redo Log也用于支持数据库的并发控制。通过记录数据的修改,可以在需要的时候重演这些修改,以确保在多用户环境中事务的隔离性和一致性。

4. **物理数据库备份:** Redo Log还用于支持物理数据库备份。备份工具可以使用Redo Log文件来获取数据库的变更,从而创建数据库的一致备份。

Redo Log包括两部分:在线Redo Log和归档Redo Log。

- **在线Redo Log:** 这是处于活动状态的Redo Log,它记录当前正在进行的事务的变更。在线Redo Log文件是一组物理文件,它们轮流用于记录Redo信息。这些文件的大小和数量可以进行配置。

- **归档Redo Log:** 当在线Redo Log文件被写满时,或者在归档模式下,系统可以将Redo Log文件归档到归档Redo Log中。这些归档文件允许进行数据库恢复以及创建物理备份。

总的来说,Oracle Redo Log是数据库的关键组件之一,确保了数据的持久性、一致性和可恢复性。

(3) Oracle启动的几种模式,各个阶段用到哪些文件?
答:nomount 用到参数文件
mount 用到控制文件
OPEN数据文件。

在Oracle数据库的启动过程中,通常会经历以下几个阶段,并涉及到一些特定的文件:

1. **Nomount 阶段:**
   - **参数文件(init.ora 或 spfile.ora):** 包含了数据库的配置信息,如SGA大小、PGA大小、监听器信息等。
   - **控制文件(Control Files):** 包含数据库的结构信息,如数据文件和日志文件的位置,表空间和数据文件的关系等。

2. **Mount 阶段:**
   - **控制文件:** 在这个阶段,Oracle数据库会读取控制文件,但不会打开数据库。这个阶段的目的是将数据库标记为已挂载状态,使得数据库文件能够被识别。

3. **Open 阶段:**
   - **数据文件(Data Files):** 包含了实际存储数据的文件。在数据库打开时,这些文件会被访问。
   - **Redo Log Files:** 包含了数据库中所有事务的重做信息。这些文件在数据库打开时被读取,以确保事务的持久性和一致性。
   - **Undo Tablespaces 和 Undo Logs:** 用于存储回滚段信息,以支持事务的回滚操作。

4. **恢复阶段:**
   - **Archived Redo Log Files:** 如果数据库配置为启用归档模式,数据库启动时可能需要应用归档的重做日志,以确保数据库处于最新的状态。

在实际的启动过程中,可以使用不同的方式来启动Oracle数据库,比如使用SQL*Plus命令行工具、Enterprise Manager图形界面、或者使用操作系统的服务管理工具。无论采用何种方式,上述的文件都是在启动过程中被读取和使用的。

2.rac相关问题
(1) oracle rac有哪些IP?
答: Public ip
Private ip
Virtual ip (VIP)
Scan ip

Oracle Real Application Clusters(RAC)是一种Oracle数据库的配置,它允许在多个服务器上运行数据库实例,实现高可用性和负载均衡。在Oracle RAC中,可以涉及多个IP地址,其中一些主要的IP地址包括:

1. **Public IP:** 这是集群中的公共IP地址,用于提供数据库服务给客户端应用程序。客户端通过此IP地址连接到Oracle数据库。每个节点通常都有一个公共IP地址。

2. **Private IP:** 这是集群中的专用IP地址,用于节点之间的内部通信。私有IP地址用于实现高速、低延迟的节点之间通信,以确保集群的协同工作。每个节点通常都有一个私有IP地址。

3. **Virtual IP(VIP):** RAC集群中的每个节点都有一个虚拟IP地址,这个地址是在节点发生故障时自动切换到另一个节点的。VIP地址用于确保客户端总是能够连接到运行的数据库实例,即使其中一个节点发生故障。VIP通常用于提供透明的故障切换。

4. **SCAN IP:** SCAN(Single Client Access Name)是Oracle RAC引入的一项功能,它提供了一个虚拟的单一名称,客户端可以通过该名称连接到整个RAC集群,而不需要关心具体的节点信息。SCAN IP地址是由SCAN名称解析到的IP地址。

这些IP地址的具体配置和使用方式可能会根据具体的Oracle版本和集群配置而有所不同。在配置Oracle RAC时,建议参考相关的Oracle文档和最新的官方指南以获取准确的信息。

(2)挑其中一个问一下是干嘛的?
1、PublicIP称为公网IP,它是网卡上的真实IP。每个节点在安装Oracle软件之前都需要事先配置Public IP。Oracl通过PublicIP对外提供网络服务。如果RAC中Public IP所在的网卡设备故障,那么该节点将无法继续对外提供服务
2、Private ip对于Oracle集群来说,私网通信是非常重要的,因为节点和节点之间的通信绝大部分都是要通过私网来实现的。与PublicIP一样,Private IP称为私网IP可心跳IP,它也是网卡上的真实IP,每个节点在安装Oracle集群软件之前都需要事先配置PrivateIP
3、VIP是在PublicIP所在的网卡上由Oracle集群软件虚拟出来的一个IP,需要和Public IP设置在同一个子网网段中。Oracle集群软件安装之前只需定义好 (/etc/hosts文件)即可,而无需事先配置。在正常情况下,VIP和PublicIP的功能是一模一样的。后台进程PMON对每个节点的VIP所在的监听器注册实例信息,本地监听器中一个是VIP。当会看到两个地址host,一个是Public IP,节点故障时,Oracle集群软件会把VIP自动飘逸到其它节点上,但是本地监听器却没有飘逸到其它节点上。客户端nsnames.ora文件中host选项不再需要配置PublicIP而选择配置VIP,这样做的好处是在双节点RAC架构中当第一个节点故障时,第二个节点会有两个VIP,客户端连接第一个VIP失败后会立即连接第二个VIP对应的实例,整个切换过程是非常短暂的,用户完全感受不到RAC架构中有节点故障
4 、Scan ip相当于在客户端和数据库之间增加一层虚拟的网络服务层,即是SCANIP和SCAPIPLISTENER。在客户端的tnsnames.ora配置文件中,只需要配置SCANIP然后用户即可访问数据库,并且实现了负载均衡的功能。客户端通过SCANIP、SCANIPLISTENER来负载均衡地连接到RAC数据库

当配置 Oracle Real Application Clusters(RAC)时,不同的 IP 地址承担不同的角色,以支持集群的高可用性、负载均衡和透明的故障切换。下面是对上述四种 IP 地址的详细解释:

1. **Public IP(公共 IP):**
   - **作用:** 用于提供数据库服务给客户端应用程序。客户端通过这个 IP 地址连接到 Oracle 数据库。
   - **特点:** 每个节点通常都有一个公共 IP 地址,它是客户端连接的目标地址。

2. **Private IP(私有 IP):**
   - **作用:** 用于节点之间的内部通信,实现高速、低延迟的节点间通信,确保集群协同工作。
   - **特点:** 私有 IP 地址是为了集群内部通信而设计的,它不对外提供服务。节点之间使用私有 IP 地址进行数据同步、协调和其他内部通信。

3. **Virtual IP(VIP,虚拟 IP):**
   - **作用:** 提供透明的故障切换,确保客户端总是能够连接到运行的数据库实例,即使某个节点发生故障。
   - **特点:** 每个节点都有一个 VIP 地址,该地址是由 Oracle Clusterware 在节点间进行故障切换时动态分配的。客户端连接到 VIP 地址,而不是直接连接到特定节点,从而实现透明的故障切换。

4. **SCAN IP(单一客户端访问名称):**
   - **作用:** 提供了一个虚拟的单一名称,客户端可以通过该名称连接到整个 RAC 集群,而不需要关心具体的节点信息。
   - **特点:** SCAN IP 地址是由 SCAN 名称解析到的 IP 地址,通过 SCAN,客户端可以轻松连接到整个 RAC 集群,而不必担心具体节点的变化。SCAN 简化了客户端连接配置,尤其在集群配置发生变化时更为便捷。

这些 IP 地址协同工作,共同确保 Oracle RAC 在分布式环境中提供高可用性、负载均衡和透明的故障切换。

(3)如何登录asm实例?
答: asmcmd

ASM(Autonomous Database Shared)
是Oracle Cloud Infrastructure (OCI) 上的一种托管数据库服务。
要登录到 ASM 实例,
您可以使用 SQL*Plus 工具或 SQLcl 工具。以下是使用 SQL*Plus 登录 ASM 实例的一般步骤:

1. **打开终端或命令提示符:** 在本地计算机上打开终端或命令提示符。

2. **使用 SQL*Plus 登录到 ASM:** 使用以下命令连接到 ASM 实例:

  
    sqlplus / as sysasm
  

    如果需要用户名和密码,您可以提供有效的 ASM 管理员认证。如果未提供用户名和密码,`/ as sysasm` 将使用 ASM 实例的操作系统身份验证。

   
    sqlplus sys/<your_sys_password>@<connect_identifier> as sysasm
   

    其中 `<your_sys_password>` 是 SYS 用户的密码,`<connect_identifier>` 是 ASM 实例的连接标识符。

3. **输入密码:** 如果您没有使用操作系统身份验证登录,系统将提示您输入密码。

4. **成功登录:** 成功提供正确的凭据后,您将看到 SQL*Plus 提示符,表示您已成功登录到 ASM 实例。

请注意,ASM 实例的登录步骤可能会有所不同,具体取决于您的环境和安全设置。确保您有足够的权限来执行所需的操作,并且仅使用安全的连接方式。如果使用 SQLcl 或其他工具,请查阅相应的文档以获取详细信息。

(4) oracle sqlplus 是什么?
答: 客户端


Oracle SQLPlus 是 Oracle 数据库的命令行界面工具,
它允许用户与 Oracle 数据库进行交互并执行 SQL 和 PL/SQL 语句。
SQLPlus 提供了一个文本界面,通过这个界面,用户可以连接到数据库实例、执行 SQL 查询、运行存储过程、查看表结构等。

(5) Oracle 端口号是多少?

答: 1521

(6) Oracle19C怎么查看有几个pdb?
答:方法1: show pdb 方法 2: 查看进程

### 方法 1: 使用 SQL 查询

连接到数据库,然后执行以下 SQL 查询语句:


SELECT pdb_name FROM cdb_pdbs;


或者


SELECT name FROM v$pdbs;


这两个查询将返回当前数据库实例中所有 PDB 的名称。

### 方法 2: 使用 SQL*Plus 或 SQLcl 工具查看进程

您可以使用 SQL*Plus 或 SQLcl 连接到数据库,然后运行以下查询:


SELECT COUNT(*) FROM v$pdbs;


或者在 SQLcl 中执行:

SHOW PDBS


这会显示当前数据库实例中的 PDB 数量。

请注意,具体的查询语句可能会因您的具体情况而有所不同。在连接到数据库后,您可以根据需要选择适当的查询语句。

(7)oracle出现问题查看什么日志?
答: alert 日志

Alert Log:

位置: alert_<SID>.log 文件,通常在 diag 目录下的 trace 子目录中。
用途: 记录数据库实例启动和关闭的信息,以及重要的错误和警告消息。

(8) Oracle 归档日志保存着什么?
答:数据更改错误和警告系统事件

Oracle 归档日志(Archived Logs)包含数据库的归档重做日志文件,
这些文件记录了数据库的所有变更。当数据库启用归档模式时,归档日志对于恢复和数据库备份非常重要。

以下是归档日志保存的主要信息:

1. **重做日志记录:** 归档日志包含了数据库中发生的所有事务的重做日志记录。这些记录包括了对数据库进行的插入、更新、删除等操作的详细信息。重做日志的目的是为了在需要时能够还原或重做这些事务。

2. **事务的逻辑操作:** 归档日志不仅包含了对表中数据的物理更改,还包含了对数据的逻辑更改。这意味着它包含了对数据的修改、事务的开始和提交等信息。

3. **数据库变更的时间戳:** 归档日志中包含有关每个事务的时间戳信息,以及事务何时提交的信息。这对于在某个特定时间点还原数据库状态非常有用。

4. **支持恢复和备份:** 归档日志的主要目的是支持数据库的恢复和备份。通过保留归档日志,您可以在数据库故障或数据损坏时还原数据库到先前的状态。

5. **与逻辑日志挂钩:** 归档日志与 Oracle 的逻辑日志(Redo Log)密切相关。逻辑日志记录了数据库的实时变更,而归档日志则保存了这些变更的归档版本,以便后续还原。

在启用归档模式的情况下,Oracle 数据库会自动将逻辑日志中的信息归档到指定的归档目录中。这些归档日志文件以一种有序的方式生成,并且它们的命名通常基于时间戳和序列号。

(9) Oracle dg同步的几种机制?
答:实时应用,高延迟应用,异步应用,同步应用。

让我更详细地解释一下:

1. **实时应用(Real-Time Apply):**
   - **特点:** 实时应用是一种同步模式,它确保主库提交的事务立即在备库上应用。
   - **适用场景:** 适用于对数据实时性要求非常高的业务场景。主库提交的事务在备库上立即可用。

2. **高延迟应用(Max Availability):**
   - **特点:** 这是一种同步模式,但允许在备库上设置最大延迟以提高可用性。主库提交事务后,可以设置一定的延迟时间,之后再将重做日志应用到备库。
   - **适用场景:** 适用于需要实现高可用性,但对实时性要求稍低的场景。

3. **异步应用(Max Performance):**
   - **特点:** 异步应用是一种非同步模式,主库提交事务后,不等待备库应用,而是异步地传输重做日志。
   - **适用场景:** 适用于需要降低主库的响应时间,而对实时性要求相对较低的场景。

4. **同步应用(Max Protection):**
   - **特点:** 同步应用是一种同步模式,要求主库提交的事务必须在备库上同步应用后才能认为提交成功。
   - **适用场景:** 适用于对数据一致性和实时性要求非常高的关键业务场景,确保主备库之间的数据完全同步。

这些同步机制的选择通常基于业务需求、性能要求和可用性要求。实时应用和高延迟应用提供了一种平衡,可以根据具体情况进行配置,而异步应用和同步应用则更侧重于不同的可用性和数据一致性要求。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

安装python

1.下载python 选择版本 选择可执行文件安装包 2.安装 输入python检查是否安装成功

gRPC基本用法:以人脸识别为例,搭建一个简单的gRPC服务

0. gRPC简介 相关网站&#xff1a; 中文文档&#xff1a;gRPC 官方文档中文版_V1.0 官网&#xff1a;gRPC 介绍&#xff08;以下引自官方文档中文版中的介绍&#xff09;&#xff1a; gRPC是一个高性能、开源和通用的 RPC 框架&#xff0c;面向移动和 HTTP/2 设计。目前提供 C…

4.qml 3D-Light、DirectionalLight、PointLight、SpotLight、AxisHelper类深入学习

今天我们学习灯光类 首先来学习Light类&#xff0c;它是所有灯光的虚基类&#xff0c;该类是无法创建的&#xff0c;主要是为子类提供很多公共属性。 常用属性如下所示&#xff1a; ambientColor : color&#xff0c;该属性定义在被该光照亮之前应用于材质的环境颜色。默认值…

neo4j如何创建多个数据库

1.在neo4j的压缩包解压位置找到neo4j.conf文件 "D:\neo4j\neo4j-community-3.5.5\conf\neo4j.conf"2.修改文件 新增dbms.activate_database**.db 再重新neo4j打开网页就进入到新建的数据库中 如果要切换&#xff0c;就把原来的注释掉就可以

Python移动未标注的图片数据集

Python移动未标注的图片数据集 前言前提条件相关介绍实验环境Python移动未标注的图片数据集情况一&#xff1a;有图&#xff0c;无标注文件代码实现输出结果 情况二&#xff1a;有图&#xff0c;有标注文件&#xff0c;但标注信息为空代码实现输出结果 情况一与情况二同时都考虑…

Leetcode 455 分发饼干

题意理解&#xff1a; 小孩的饭量&#xff1a; [1,2,7,10] 饼的大小&#xff1a; [1,3,5,7] 当饼的大小>小孩饭量时&#xff0c;小孩就能够吃饱。 求如何分配饼让更多的小孩子能够吃饱。 解题思路&#xff1a; 两种思路&#xff1a; 先把胃口小的孩子用较小的饼来喂饱—…

ida脚本环境开发配置idapythonidacpp三端环境(win,mac,linux)

ida脚本也有一段时间了,一直有个痛点是找不到比较好的方法热重载脚本来实时改动生效,导致开发效率老慢了。固总结下比较友好的环境搭配 使用ida热加载插件让你开发脚本更高效 github地址: GitHub - 0xeb/ida-qscripts: An IDA plugin to increase productivity when developi…

MATLAB 系统辨识 + PID 自动调参

MATLAB 系统辨识 PID 自动调参 Matlab R2021b下载安装详细教程Chapter1 MATLAB 系统辨识 PID 自动调参1. 导入数据2. 系统辨识3. PID 自动调参 Chapter2 MATLAB系统辨识Chapter3 【MATLAB】使用系统辨识工具箱(System Identification)建模Chapter4 matlab系统辨识工具箱及其反…

探索 Coinbase 二层链 Base 的潜力与风险

作者&#xff1a;lesleyfootprint.network 在不断变化的加密货币领域&#xff0c;Coinbase 已经确立了自己领先中心化交易所&#xff08;CEX&#xff09;的地位。然而&#xff0c;Coinbase 坚信去中心化是创造一个开放、全球范围内对每个人都可访问的加密经济的关键&#xff0…

Go map转json

今天分享的知识是 Go 接口。如果本文对你有帮助&#xff0c;不妨点个赞&#xff0c;如果你是 Go 语言初学者&#xff0c;不妨点个关注&#xff0c;一起成长一起进步&#xff0c;如果本文有错误的地方&#xff0c;欢迎指出&#xff01; 但当有的场景&#xff0c;要返回哪些字段…

工作记录-------实现实时排行榜的各种方法---12.14

实时积分排行榜 需求 提供一个用户积分排行榜–为 实时总积分榜, 只取前 10 名 。所有用户都能够查看当前排行榜,以及查看自己的 实时总积分排名 设计实现 先看下数据库的结构,总共有 2 个表:用户表 和 用户积分表。 用户表存储了用户信息,以及用户的总积分(实时更新…

电商控制台前台整合优化

前台逻辑 显示商品菜单输入id&#xff0c;进入某个商品检测登录和注册 根据登录和注册的状态&#xff0c;订单或者是购物车都需要登录。 登录&#xff1a;生成订单&#xff08;先生成订单表&#xff0c;再生成订单详情表&#xff09; 开发直接购买&#xff0c;加入购物车, …

计算机毕业设计 基于SpringBoot的日常办公用品直售推荐系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

做性能测试必须掌握的基本概念和套路

经常听到人说&#xff0c;做个性能优化&#xff0c;吞吐量越高越好&#xff1b;或者做个性能测试&#xff0c;目标TPS是50000。可实际拿到这个信息&#xff0c;能够做性能测试吗&#xff1f;这个目标足够清晰吗&#xff1f;事实上&#xff0c;在我看来&#xff0c;未定义清晰 …

Ubuntu18.04.6下安装opencv库及OpenCV安装libjasper-dev依赖包错误

目录 01 解压安装包 02 安装cmake和依赖库 03 配置编译环境 01 解压安装包 创建一个名为Opencv的文件夹 mkdir opencv 将源码的压缩包复制到opencv目录下 将压缩包解压到opencv文件夹&#xff08;指定一个文件夹&#xff09; unzip opencv-3.4.11.zip -d opencv02 安装cm…

Web3.0:抗寻租的互联网平台经济

在数字世界的荒蛮时代&#xff0c;人类的数字大迁徙&#xff0c;纷乱而芜杂&#xff0c;充满着未知与蒙昧。 我们致敬先行者&#xff0c;感恩在黑暗中点亮火把&#xff0c;在泥泞中探索前行的道路。 我们以先行者为师&#xff0c;承续他们的智慧与勇气&#xff0c;在人类数字大…

【强化学习-读书笔记】动态规划(策略评估、价值迭代、策略迭代算法)

参考 Reinforcement Learning, Second Edition An Introduction By Richard S. Sutton and Andrew G. Barto动态规划 (Dynamic Programming, DP) 是一类优化方法&#xff0c;在给定一个用马尔可夫决策过程 (MDP) 描述的完备环境模型的情况下&#xff0c;其可以计算最优的策…

【Jeecg Boot 3 - 保姆级】第1节 docker + redis + nginx + redis一键安装启动

一、前言 ▶ JEECG-BOOT 开源版难以吃透的原因 ▶ 为了针对上面痛点&#xff0c;笔者做了如下安排 ▶ 你能收获什么 二、效果(第一节效果) ▶ 启动后端 &#xff1e; 日志 &#xff1e; 接口文档 ▶ 启动前端 三、准备工作 四、实战 ▶ 1、服务器安装 Stag…

RF模块是如何工作的?

射频&#xff08;RF&#xff09;模块使用无线电频率工作&#xff0c;这个频率范围在30kHz到300kHz之间变化。 在这个射频系统中&#xff0c;数字数据被表示为载波波幅度的变化。这种调制类型是振幅移位键。 这个射频模块是射频发射器和接收器的组合&#xff0c;发射器接收器对的…

读书笔记-《数据结构与算法》-摘要6[快速排序]

快速排序 核心&#xff1a;快排是一种采用分治思想的排序算法&#xff0c;大致分为三个步骤。 定基准——首先随机选择一个元素最为基准划分区——所有比基准小的元素置于基准左侧&#xff0c;比基准大的元素置于右侧递归调用——递归地调用此切分过程 快排的实现与『归并排…