127道初级 Oracle DBA 面试概念题

您所在的位置:网站首页 oracledba面试 127道初级 Oracle DBA 面试概念题

127道初级 Oracle DBA 面试概念题

2024-03-25 03:18| 来源: 网络整理| 查看: 265

Oracle 概念和架构数据库结构

1、Oracle数据库的物理数据库结构有哪些组成部分?

Oracle 数据库由三种类型的文件组成。一个或多个数据文件,两个是多个重做日志文件,一个或多个控制文件。

2、Oracle数据库的逻辑数据库结构有哪些组成部分?

有表空间和数据库的模式对象。

3.什么是表空间?

一个数据库被划分为称为表空间的逻辑存储单元。表空间用于将相关的逻辑结构组合在一起。

4.什么是SYSTEM表空间,什么时候创建的?

每个 Oracle 数据库都包含一个名为 SYSTEM 的表空间,该表空间是在创建数据库时自动创建的。SYSTEM 表空间始终包含整个数据库的数据字典表。

5. 解释数据库、表空间和数据文件之间的关系。

每个数据库在逻辑上分为一个或多个表空间,为每个表空间显式创建一个或多个数据文件。

6.什么是模式?

模式是用户的数据库对象的集合。

7. 什么是模式对象?

模式对象是直接引用数据库数据的逻辑结构。模式对象包括表、视图、序列、同义词、索引、集群、数据库触发器、过程、函数包和数据库链接。

8. 相同模式的对象可以驻留在不同的表空间中吗?

是的。

9. 一个表空间可以保存来自不同方案的对象吗?

是的。

10.什么是Oracle表?

表是 Oracle 数据库中数据存储的基本单位。数据库的表包含所有用户可访问的数据。表数据存储在行和列中。

11. 什么是 Oracle 视图?

视图是一个虚拟表。每个视图都有一个附加到它的查询。(查询是一个 SELECT 语句,用于标识视图使用的表的列和行。)

12. 视图是否包含数据?

视图不包含或存储数据。

13. 一个视图可以基于另一个视图吗?

是的。

14.视图有什么好处?

- 通过限制对表的一组预定行和列的访问,提供额外级别的表安全性。

- 隐藏数据复杂性。

- 为用户简化命令。

- 以与基表不同的视角呈现数据。

- 存储复杂的查询。

15.什么是Oracle序列?

序列为数据库表的数字列生成唯一编号的序列列表。

16.什么是同义词?

同义词是表、视图、序列或程序单元的别名。

17. 同义词有哪些类型?

有两种类型的同义词私有和公共。

18.什么是私有同义词?

只有其所有者才能访问私有同义词。

19. 什么是公共同义词?

任何数据库用户都可以访问公共同义词。

20. 什么是同义词?

- 掩盖对象的真实姓名和所有者。

- 提供对对象的公共访问

- 为远程数据库的表、视图或程序单元提供位置透明性。

- 为数据库用户简化 SQL 语句。

21.什么是Oracle索引?

索引是与表关联的可选结构,可以直接访问行,可以创建索引以提高数据检索的性能。可以在表的一个或多个列上创建索引。

22. 索引是如何更新的?

索引由 Oracle 自动维护和使用。对表数据的更改会自动合并到所有相关索引中。

23.什么是集群?

集群是物理存储在一起以共享公共列的一个或多个表的组,并且经常一起使用。

24.什么是簇键?

簇中表的相关列称为簇键。

25.什么是索引簇?

具有集群键索引的集群。

26.什么是哈希簇?

基于将散列函数应用于行的簇键值的结果,将行存储在散列簇中。具有相同哈希键值的所有行一起存储在磁盘上。

27.什么时候可以使用hash cluster?

当经常使用相等查询来查询表时,哈希集群是更好的选择。对于此类查询,指定的集群键值是散列的。生成的哈希键值直接指向磁盘上存储指定行的区域。

28.什么是数据库链接?

数据库链接是一个命名对象,它描述了从一个数据库到另一个数据库的“路径”。

29. 数据库链接有哪些类型?

私有数据库链接、公共数据库链接和网络数据库链接。

30.什么是私有数据库链接?

私人数据库链接是代表特定用户创建的。只有当链接的所有者在 SQL 语句或所有者的视图或过程的定义中指定全局对象名称时,才能使用私有数据库链接。

31.什么是公共数据库链接?

公共数据库链接是为特殊用户组 PUBLIC 创建的。当关联数据库中的任何用户在 SQL 语句或对象定义中指定全局对象名称时,可以使用公共数据库链接。

32.什么是网络数据库链接?

网络数据库链接由网络域服务创建和管理。当网络中任何数据库的任何用户在 SQL 语句或对象定义中指定全局对象名称时,可以使用网络数据库链接。

33.什么是数据块?

Oracle 数据库的数据存储在数据块中。一个数据块对应于磁盘上特定字节数的物理数据库空间。

34、如何定义数据块大小?

创建数据库时,会为每个 Oracle 数据库指定一个数据块大小。Oracle 数据块中的数据库用户和分配的空闲数据库空间。块大小在 init.ora 文件中指定,以后不能更改。

35. 什么是行链接?

在某些情况下,表中一行的所有数据可能无法放入同一个数据块中。发生这种情况时,该行的数据将存储在为该段保留的数据块链(一个或多个)中。

36. 什么是范围?

范围是特定数量的连续数据块,在单个分配中获得并用于存储特定类型的信息。

37. 什么是段?

段是为特定逻辑结构分配的一组范围。

38. 细分市场有哪些不同类型?

数据段、索引段、回滚段和临时段。

39.什么是数据段?

每个非聚集表都有一个数据段。表的所有数据都存储在其数据段的范围中。每个集群都有一个数据段。集群中每个表的数据都存储在集群的数据段中。

40.什么是索引段?

每个索引都有一个存储其所有数据的索引段。

41.什么是回滚段?

数据库包含一个或多个回滚段以临时存储“撤消”信息。

42、回滚段有什么用?

在数据库恢复期间生成读取一致的数据库信息并回滚用户未提交的事务。

43. 什么是临时段?

当 SQL 语句需要一个临时工作区来完成执行时,Oracle 会创建临时段。当语句完成执行时,临时段扩展区被释放到系统以供将来使用。

44. 什么是数据文件?

每个 Oracle 数据库都有一个或多个物理数据文件。数据库的数据文件包含所有数据库数据。表和索引等逻辑数据库结构的数据物理存储在为数据库分配的数据文件中。

45、数据文件有什么特点?

一个数据文件只能与一个数据库关联。一旦创建数据文件就不能改变大小。一个或多个数据文件形成称为表空间的数据库存储逻辑单元。

46. 什么是重做日志?

数据库的一组重做日志文件统称为数据库重做日志。

47、重做日志的作用是什么?

重做日志的主要功能是记录对数据所做的所有更改。

48.重做日志信息有什么用?

重做日志文件中的信息仅用于从系统或介质故障中恢复数据库,以防止将数据库数据写入数据库的数据文件。

49. 控制文件包含什么?

- 数据库名称

- 数据库文件和重做日志文件的名称和位置。

- 数据库创建的时间戳。

50.控制文件有什么用?

当一个 Oracle 数据库实例启动时,它的控制文件用于识别数据库和重做日志文件,这些文件必须打开才能进行数据库操作。它也用于数据库恢复。

数据库管理

51.什么是数据库实例?解释。

数据库实例(服务器)是一组内存结构和访问一组数据库文件的后台进程。进程可以由所有用户共享。

用于存储数据库中查询最多的数据的内存结构。这有助于通过减少对数据文件执行的 I/O 量来提高数据库性能。

52. 什么是并行服务器?

多个实例访问同一个数据库(仅在多 CPU 环境中)

53.什么是模式?

用户帐户拥有的对象集称为模式。

54.什么是索引?它是如何在 Oracle 数据库中实现的?

索引是服务器用来直接访问表中行的数据库结构。在 create table 命令中指定唯一的主键约束子句时自动创建索引

55.什么是集群?

由于共享公共列并经常一起使用而物理存储在一起的一组表称为集群。

56.什么是簇键?

表的相关列称为簇键。集群键使用集群索引进行索引,并且它的值对于集群中的多个表只存储一次。

57. Oracle 数据库基本配置的基本要素是什么?

它包括

一个或多个数据文件。

一个或多个控制文件。

两个或多个重做日志文件。

数据库包含

多个用户/模式

一个或多个回滚段

一个或多个表空间

数据字典表

用户对象(表、索引、视图等)

访问数据库的服务器包括

SGA(数据库缓冲区、字典缓存缓冲区、重做日志缓冲区、共享 SQL 池)

SMON(系统监控)

PMON(过程监控器)

LGWR(LoG 写)

DBWR(数据库写入)

ARCH (ARCHiver)

CKPT(检查点)

RECO

调度员

具有关联 PGS 的用户进程

58.什么是死锁?解释。

两个进程等待更新表的行,它们被其他进程锁定,然后出现死锁。

在数据库环境中,由于没有发出正确的行锁定命令,这通常会发生。前端应用程序设计不佳可能会导致这种情况,服务器的性能将急剧下降。

当执行提交/回滚操作或其中任何一个进程被外部终止时,这些锁将自动释放。

内存管理

59.什么是SGA?

Oracle 数据库中的系统全局区是内存中便于用户之间传递信息的区域。它保存用户之间最近请求的结构信息。它包含最近请求的有关数据库的结构信息。结构是数据库缓冲区、字典缓存、重做日志缓冲区和共享池区。

60.什么是共享池?

数据字典缓存存储在 SGA 中称为共享池的区域中。这将允许在并发用户之间共享已解析的 SQL 语句。

61. 程序全局区 (PGA) 是什么意思?

它是内存中供单个 Oracle 用户进程使用的区域。

62.什么是数据段?

数据段是数据库块内的物理区域,其中存储与表和集群相关的数据。

63. SGA中导致SQL语句重解析的因素有哪些?

由于共享池大小不足。

在执行 SQL 语句时监视重新加载的比率。如果比率大于 1,则增加 SHARED_POOL_SIZE。

数据库逻辑和物理架构

64. 什么是数据库缓冲区?

数据库缓冲区缓存在 SGA 中,用于保存从数据库中的数据段(例如表、索引和集群)读取的数据块。INIT.ORA 中的 DB_BLOCK_BUFFERS 参数决定了大小。

65.什么是字典缓存?

字典缓存是有关存储在数据字典表中的数据库对象的信息。

66. 递归提示是什么意思?

进程重复查询字典表的次数称为递归提示。这是由于数据字典缓存太小。通过增加 SHARED_POOL_SIZE 参数,我们可以优化数据字典缓存的大小。

67.什么是redo log buffer?

对记录所做的更改将写入在线重做日志文件。这样它们就可以在数据库恢复期间用于前滚操作。在将它们写入重做日志文件之前,它们会首先被带到 SGA 中的重做日志缓冲区中,并且 LGWR 会频繁写入文件。LOG_BUFFER 参数将决定大小。

68. 如何将对象交换到现有数据库的不同表空间中?

- 导出用户

- 使用命令 imp system/manager file=export.dmp indexfile=newrite.sql 执行导入。这会将所有定义创建到 newfile.sql 中。

- 放下必要的物品。

- 更改表空间后运行脚本 newfile.sql。

- 从备份中导入必要的对象。

69.列出Oracle数据库的可选灵活架构(OFA)?我们如何组织 Oracle 数据库中的表空间以获得最大性能?

SYSTEM - 数据字典表。

DATA - 标准操作表。

DATA2 - 用于标准操作的静态表

INDEXES - 标准操作表的索引。

INDEXES1 - 用于标准操作的静态表的索引。

工具 - 工具表。

TOOLS1 - 工具表的索引。

RBS - 标准操作回滚段,

RBS1,RBS2 - 附加/特殊回滚段。

TEMP - 临时用途表空间

TEMP_USER - 用户的临时表空间。

USERS - 用户表空间。

70. 你将如何强制数据库使用特定的回滚段?

设置事务使用回滚段 rbs_name。

71.什么是自由范围?

空闲范围是表空间中连续空闲块的集合。当一个段被删除时,它的范围被重新分配并被标记为空闲。

72.Storage子句中哪个参数会减少每块的行数?

PCTFREE 参数

行大小还减少了每个块的行数。

73. 有存储条款有什么意义?

我们可以根据需要多少初始范围、接下来可以扩展多少、应该留出多少 % 来管理行更新等来计划表的存储,

74. 空间分配表如何放置在一个块内?

每个块包含以下条目

固定块头

可变块头

行标题,行日期(可能存在多行)

PCTEREE(未来行更新可用空间的百分比)

75. PCTFREE参数是存储子句的作用是什么?

这用于在块中保留一定数量的空间用于行扩展。

76. 什么是最优参数?

它用于设置回滚段的最佳长度。

77、SYSTEM表空间的功能是什么?

管理数据库级事务,例如记录有关可用空间使用信息的数据字典表的修改。

78. 如何在数据库中创建多个回滚段?

- 创建一个数据库,它在 SYSTEM 表空间中隐式创建一个 SYSTEM 回滚段。

- 在 SYSTEM 表空间中创建第二个回滚段名称 R0。

- 使新的回滚段可用(关闭后,修改 init.ora 文件并启动数据库)

- 为回滚段创建其他表空间 (RBS)。

- 停用回滚段 R0 并激活新创建的回滚段。

79. 回滚段内的空间利用是如何发生的?

它将尝试以循环方式将事务拟合到所有现有范围。一旦发现一个范围正在使用中,它就会强制获取一个新范围(范围的数量基于最佳大小)

80. 为什么查询有时会失败?

回滚段动态扩展以处理更大的事务条目负载。

单个事务可能会清除回滚段表空间中的所有可用空闲空间。这可以防止其他用户使用回滚段。

81. 你将如何监控空间分配?

通过查询 DBA_SEGMENT 表/视图

82. 你将如何监控回滚段的状态?

查询 DBA_ROLLBACK_SEGS 视图

IN USE - 回滚段在线。

AVAILABLE - 回滚段可用但不在线。

OFF-LINE - 离线回滚段

无效 - 回滚段已丢弃。

需要恢复 - 包含数据但需要恢复或损坏。

部分可用 - 包含来自涉及分布式数据库的未解决事务的数据。

83. 当一个大事务超过其最佳值时,一个条目包装并导致回滚段扩展到另一个扩展时,列出事件序列。

交易开始。

在 RES 标头中为新交易条目创建一个条目

交易在 RBS 范围内获取块

该条目尝试换行到第二个扩展区。没有可用的,因此 RBS 必须扩展。

RBS 检查它是否是其最佳大小的一部分。

RBS 选择其最旧的非活动段。

最旧的非活动段被淘汰。

RBS 范围

用于空间管理的数据字典表已更新。

交易完成。

84. 我们如何为非常大的表规划存储?

限制表中的区数

将表与其索引分开。

分配足够的临时存储空间。

85. 您将如何估计非聚集表所需的空间?

计算总标题大小

计算每个数据块的可用数据空间

计算平均行的组合列长度

计算总平均行大小。

计算可以放入块中的平均行数

计算表所需的块数和字节数。

计算完成后,添加 10% 的额外空间来计算工作表的初始范围大小。

86. 可以将原始设备用作数据文件,与文件系统文件相比有什么优势?

是的。

优于文件系统文件的优点是 I/O 将得到改善,因为 Oracle 绕过了写入磁盘的内核。磁盘损坏将非常少。

87. 什么是控制文件?

数据库的整体物理架构维护在一个称为控制文件的文件中。它将用于维护内部一致性和指导恢复操作。控制文件的多个副本是可取的。

88、如何实现现有数据库的多个控制文件?

关闭数据库

将现有控制文件之一复制到新位置

通过添加新的控制文件名来编辑 Config ora 文件

重新启动数据库。

89. 什么是重做日志文件镜像?怎样才能实现?

拥有重做日志文件副本的过程称为镜像。

这可以通过一起创建日志文件组来实现,这样 LGWR 会自动将它们写入当前在线重做日志组的所有成员。如果任何一个组失败,那么数据库会自动切换到下一个组。它会降低性能。

90. 磁盘镜像/镜像有什么好处?

在磁盘发生故障时,磁盘的影子集保存为备份。在大多数操作系统中,如果发生任何磁盘故障,它会自动切换到故障磁盘的位置。

提高了性能,因为大多数操作系统支持卷影,可以指导文件 I/O 请求使用影集文件而不是主文件集。这减少了主要磁盘集上的 I/O 负载。

91. Oracle数据库中回滚段有什么用?

它们允许数据库保持多个事务之间的读取一致性。

92.什么是回滚段入口?

它是一组之前的图像数据块,其中包含由事务修改的行。

每个回滚段条目必须在一个回滚段内完成。

一个回滚段可以有多个回滚段条目。

93.什么是命中率?

它衡量数据缓存缓冲区处理数据请求的能力。

命中率 = (逻辑读取 - 物理读取 - 命中未命中)/逻辑读取。

94. 什么时候发布一个片段?

当段被删除时。

收缩时(仅 RBS)

截断时(TRUNCATE 与删除存储选项一起使用)

95. 拥有原始设备有什么缺点?

我们应该依赖导出/导入实用程序进行备份/恢复(完全可靠)

tar 命令不能用于物理文件备份,我们可以使用 dd 命令,它不太灵活,恢复有限。

96. 列出影响估计准确性的因素?

- 由于延迟清理,已使用的事务条目和已删除记录的空间在完成后不会立即释放。

- 不存储尾随空值和长度字节。

- 对大于单个数据块的行和列的插入、更新和删除可能会导致链式行片段的碎片化。

数据库安全与管理

97. Oracle 数据库中的用户帐户是什么?

用户帐户不是数据库中的物理结构,但它与数据库中的对象具有重要关系,并且将具有某些特权。

98. 你将如何使用存储过程来加强安全性?

不要直接授予用户访问应用程序中表的权限。

而是授予访问访问表的过程的能力。

当程序执行时,它将执行程序所有者的权限。用户只能通过该过程访问表。

99. 用于监控数据库空间的字典表有哪些?

DBA_FREE_SPACE

DBA_SEGMENTS

DBA_DATA_FILES。

SQL*Plus 语句

100、SQL语句的种类有哪些?

数据定义语言:CREATE、ALTER、DROP、TRUNCATE、REVOKE、NO AUDIT & COMMIT。

数据操作语言:插入、更新、删除、锁定表、解释计划和选择。

事务控制:提交和回滚

会话控制:ALERSESSION & SET ROLE

系统控制:ALTER SYSTEM。

101.什么是交易?

事务是两个提交以及提交和回滚之间的逻辑单元。

102. TRUNCATE 和 DELETE 有什么区别?

删除整个表后 TRUNCATE 提交,即不能回滚。

数据库触发器不会在 TRUNCATE 上触发

DELETE 允许过滤删除。删除的记录可以回滚或提交。

数据库触发器在 DELETE 上触发。

103. 什么是联接?解释不同类型的连接?

Join 是一个查询,它从多个表中检索相关的列或行。

自联接 - 将表与自身联接。

Equi Join - 通过将两个公共列相等来连接两个表。

Non-Equi Join - 通过将两个公共列相等来连接两个表。

外连接 - 以这样的方式连接两个表,查询也可以检索在另一个表中没有相应连接值的行。

104.什么是子查询?

子查询是一种查询,其返回值用于主查询的过滤条件。

105.什么是相关子查询?

相关子查询是对主查询有参考的子查询。

106. 解释之前的连接?

以分层顺序检索行,例如。

select empno, ename from emp where。

107. SUBSTR 和 INSTR 的区别?

INSTR (String1, String2 (n, (m)),

INSTR 返回字符串 2 在 string1 中第 m 次出现的位置。搜索从 string1 的第 n 个位置开始。

SUBSTR (String1 n, m)

SUBSTR 返回 string1 中大小为 m 的字符串,从 string1 的第 n 个位置开始。

108. 解释 UNION、MINUS、UNION ALL 和 INTERSECT?

INTERSECT - 返回两个查询选择的所有不同行。

MINUS - 返回第一个查询而不是第二个查询选择的所有不同行。

UNION - 返回任一查询选择的所有不同行

UNION ALL - 返回任一查询选择的所有行,包括所有重复项。

109.什么是ROWID?

ROWID 是附加到表的每一行的伪列。它有 18 个字符长,blockno、rownumber 是 ROWID 的组成部分。

110. 访问表中一行的最快方法是什么?

使用 ROWID。

约束

111.什么是完整性约束?

完整性约束是将值限制为表中列的规则。

112.什么是参照完整性约束?

通过一组规则来维护数据完整性,这些规则根据引用表的主键或唯一键的值来限制表的一个或多个列的值。

113. SAVEPOINTS有什么用?

SAVEPOINTS 用于将事务细分为更小的部分。它支持回滚事务的一部分。最多允许五个保存点。

114.什么是ON DELETE CASCADE?

当指定 ON DELETE CASCADE 时,如果删除了引用的主键或唯一键值,Oracle 通过自动删除相关外键值来维护引用完整性。

115. 表中允许的数据类型有哪些?

CHAR、VARCHAR2、NUMBER、DATE、RAW、LONG 和 LONG RAW。

116.CHAR和VARCHAR2有什么区别?每种类型允许的最大 SIZE 是多少?

CHAR 将空格填充到最大长度。

VARCHAR2 不填充空格。

对于 CHAR,最大长度为 255,对于 VARCHAR2,最大长度为 2000。

117.一个表允许有多少个LONG列?是否可以在 WHERE 子句或 ORDER BY 中使用 LONG 列?

只允许使用一个 LONG 列。不能在 WHERE 或 ORDER BY 子句中使用 LONG 列。

118. 修改列的数据类型和添加具有NOT NULL约束的列的先决条件是什么?

- 要修改列的数据类型,该列必须为空。

- 要添加具有 NOT NULL 约束的列,表必须为空。

119.完整性约束存储在数据字典的什么地方?

完整性约束存储在 USER_CONSTRAINTS 中。

120. 您将如何激活/停用完整性约束?

完整性约束可以通过 ALTER TABLE ENABLE CONSTRAINT / DISABLE CONSTRAINT 启用或禁用。

121. 如果对 DATE 列创建唯一键约束,是否会验证使用 SYSDATE 插入的行?

它不会,因为 SYSDATE 格式包含附加的时间。

122.什么是数据库链接?

数据库链接是可以访问远程数据库的命名路径。

123. 如何从一个序列中访问当前值和下一个值?在访问下一个值之前是否可以访问会话中的当前值?

序列名称 CURRVAL,序列名称 NEXTVAL。这不可能。只有在会话中访问下一个值时,才能访问当前值。

124. 什么是序列中的 CYCLE/NO CYCLE?

CYCLE 指定序列在达到最大值或最小值后继续生成值。泛升序列达到最大值后,生成最小值。在降序序列达到其最小值后,它会生成其最大值。

NO CYCLE 指定序列在达到其最大值或最小值后不能生成更多值。

125、VIEW的优势是什么?

- 保护表的某些列不受其他用户的影响。

- 隐藏查询的复杂性。

- 隐藏计算的复杂性。

126. 视图可以更新/插入/删除吗?如果是 - 在什么条件下?

如果视图基于一个或多个表中的列,那么如果视图只有一个基表,则可以更新/删除/插入视图,然后插入、更新和删除是不可能的。

127. 如果操作单个基表上的视图,更改是否会反映在基表上?

如果对表进行了更改并且这些表是视图的基表,则更改将在视图上引用。

原文标题:Junior DBA Interview Questions

原文链接:http://db.geeksinsight.com/dbahelper/junior-dba-interview-questions/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3