Oracle是世界上最广泛使用的数据库管理系统之一,对于面试者来说,熟悉其核心技术是至关重要的。以下是对提供的Oracle面试题的详细解答:
1. **冷备份与热备份**:冷备份是在数据库关闭后进行的,适用于所有模式,操作简单,备份速度较快,但数据库在此期间不可用。热备份则在数据库运行时进行,适用于归档模式,允许数据库恢复到任何时间点,但需要更复杂的管理。
2. **无控制文件恢复**:如果丢失控制文件,需要重建,使用`ALTER DATABASE CREATE CONTROLFILE`命令,然后通过`RESTORE`和`RECOVER`命令恢复数据库。
3. **init.ora到spfile转换**:使用`CREATE SPFILE FROM PFILE`命令,可以从初始化参数文件(pfile)创建一个服务器参数文件(spfile)。
4. **数据块、扩展和段的区别**:数据块是最小的逻辑存储单位;扩展是一系列连续的数据块,用于满足对象的存储需求;段是由一个或多个扩展组成的,代表了一个数据库对象的整体存储区域。
5. **检查表结构的方法**:`DESCRIBE`命令可以快速查看表结构,`DBMS_METADATA.GET_DDL`包可以获取表的DDL语句,包括完整的创建信息。
6. **查看数据库错误日志**:`ALERT LOG`是记录数据库异常和事件的日志文件,可以用于追踪错误。
7. **TRUNCATE与DELETE的比较**:TRUNCATE是DDL操作,不记录回滚信息,速度快,但无法撤销;DELETE是DML操作,需要回滚段,可回滚,但速度相对较慢。
8. **使用索引的理由**:索引可以加速数据检索,尤其是当需要快速访问大量数据时,通过索引跳过全表扫描,显著提升查询效率。
9. **STAR SCHEMA中的表类型**:事实表(Fact Table)存储核心业务数据,维度表(Dimension Table)包含描述性信息,如日期、地点等,用于对事实表提供上下文。
10. **FACT Table上的索引**:位图索引(Bitmap Index)适合于事实表,尤其在低基数列上,能有效减少存储空间并提高查询性能。
11. **相关约束**:主键确保表中每一行的唯一性,外键用于维护表间的一致性和引用完整性。
12. **重建母表**:先禁用子表的外键约束,重建母表后再启用,以保持数据完整性和关系。
13. **归档与非归档模式**:归档模式支持事务日志备份,可恢复到任意时间点,但可能需要更多存储;非归档模式不保留事务日志,无法进行精细恢复,但数据库性能略高。
14. **备份控制文件**:使用`ALTER DATABASE BACKUP CONTROLFILE TO TRACE`命令生成一个跟踪文件,从中可以得到创建新控制文件的SQL脚本。
15. **数据库启动状态**:STARTUP NOMOUNT仅启动实例,不加载数据库;STARTUP MOUNT加载数据库,但不打开;STARTUP OPEN完全启动并打开数据库。
16. **V$与GV$视图的区别**:INST_ID列标识了在集群环境中的特定实例,区分V$(本地实例视图)和GV$(全局视图)。
17. **生成解释计划**:运行`utlxplan.sql`创建计划表,然后使用`EXPLAIN PLAN SET STATEMENT_ID = 'tst1' INTO PLAN_TABLE`指定SQL,最后通过`utlxplp.sql`或`utlxpls.sql`查看解释计划。
18. **提高Buffer Cache命中率**:使用`V$DB_CACHE_ADVICE`视图获取建议,根据需要调整`DB_CACHE_SIZE`参数。
19. **处理ORA-01555错误**:此错误表示回滚段不足,可以通过增加回滚段大小解决,同时检查导致错误的SQL语句,优化查询。
20. **$ORACLE_HOME与$ORACLE_BASE的区别**:$ORACLE_BASE是Oracle软件安装的基础目录,包含所有组件;$ORACLE_HOME是Oracle实例的实际安装目录,通常位于$ORACLE_BASE下。
这些知识点涵盖了Oracle数据库管理、备份恢复、性能优化、数据存储、故障排查等多个方面,是Oracle面试中常见的问题,理解并掌握这些内容对于面试和实际工作都至关重要。