【Oracle DBA 笔试题详解】 一、Database 1. 创建用户时,需要赋予`CONNECT`权限,使得新用户能够连接到数据库。 2. 重构索引通常涉及重建索引,可以通过`ALTER INDEX REBUILD`命令实现,或者在索引碎片过多时,考虑使用`ALTER INDEX REORGANIZE`来优化。 3. 表连接方式有:`INNER JOIN`(内连接)、`LEFT JOIN`(左连接)、`RIGHT JOIN`(右连接)。 4. 常见的分区类型包括:范围分区(Range)、列表分区(List)、哈希分区(Hash)、复合分区(Composite)、间隔分区(Interval)。 5. 数据库正常启动经历的状态:`NOMOUNT`、`MOUNT`、`OPEN`。 6. `/tablespace/segment/extent/block`之间的关系:表空间(Tablespace)是逻辑存储结构,由一个或多个数据文件组成;段(Segment)是特定类型的数据库对象(如表、索引)占用的逻辑空间;区(Extent)是连续的物理存储块集合;块(Block)是Oracle数据库的最小逻辑存储单位。 7. 归档模式和非归档模式的主要区别在于事务日志的处理。归档模式在每次日志切换时都会保存旧的日志文件,以便进行完整恢复,安全性高但需要更多存储空间。非归档模式则在日志切换后立即重写旧日志,节省空间但恢复复杂。 8. 诊断数据库性能问题的流程包括:检查操作系统资源利用率(如`top`命令)、监控数据库性能视图(如`V$SESSION`、`V$WAITS`、`V$SQL`)、分析SQL语句执行计划(`EXPLAIN PLAN`)、检查数据库参数设置等。 9. 在短时间内升级数据库,可以采用在线升级(Upgrade with Rolling Patching)或数据泵导出导入(Data Pump Export/Import),并提前做好充分的测试和规划。 10. 制定备份计划,应考虑全备、增量备和差异备份的组合,使用RMAN进行定时备份,并结合归档日志,确保恢复速度快。 二、Sql and tuning 1. SQL优化主要关注执行计划、选择合适的索引、减少全表扫描和优化连接操作。 2. 绑定变量是用于动态SQL中的占位符,优点是可以减少硬解析,提高效率;缺点是可能导致执行计划不一致。 3. CBO(Cost-Based Optimizer)基于成本的优化器,RBO(Rule-Based Optimizer)基于规则的优化器。CBO根据统计信息选择最优执行计划,而RBO遵循固定规则。 4. 检查表结构的方法:`DESCRIBE table_name` 或 `DBMS_METADATA.GET_DDL('TABLE', 'table_name')`。 5. 使用`EXPLAIN PLAN FOR SQL`后,通过`SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY)`查看执行计划。 6. SQL语句:`SELECT * FROM T WHERE ROWNUM BETWEEN 21 AND 30 ORDER BY c`。 7. 存储过程示例: ```sql CREATE OR REPLACE PROCEDURE count_objects_by_type AS BEGIN FOR rec IN (SELECT COUNT(*) cnt, OBJECT_TYPE FROM USER_OBJECTS GROUP BY OBJECT_TYPE) LOOP DBMS_OUTPUT.PUT_LINE(rec.OBJECT_TYPE || ': ' || rec.cnt); END LOOP; END; ``` 8. 创建索引时应考虑:数据分布、查询模式、表大小、索引维护成本,可以使用在线重建或在低峰期创建。 9. 使用索引并不一定总能提高查询性能,对于全表扫描和数据量较小的情况,索引可能导致额外开销。 10. `sql_trace`是跟踪SQL执行的工具,10046事件开启SQL跟踪。使用`ALTER SESSION SET SQL_TRACE = TRUE`开启跟踪,然后分析`TRACE`文件。 三、OS (Redhat) 1. 查看当前路径:`pwd`命令。 2. 强制退出vi不保存:`:q!`。 3. 删除目录:`rm -rf directory_name`。 4. 检查rpm包是否安装:`rpm -q package_name`。 5. 查看CPU、内存、IP和磁盘空间:`top`、`free -m`、`ifconfig`、`df -h`。 6. 创建用户和组:`groupadd dba`,`useradd -s /bin/bash -g dba oracle`。 7. 设置启动级别为文本模式:`vi /etc/inittab`,将`id:5:initdefault:`改为`id:3:initdefault:`。 8. 查找包含指定字符串的文件:`grep -r "ORA-" .`或`grep -r "warning" .`。 9. 编写Shell脚本完成数据库登录和SCN获取:略,涉及网络连接和Oracle SQL命令。 10. 安装vim并替换vi:`yum install vim`,然后在`.bashrc`或`.bash_profile`中设置`alias vi=vim`。 四、Others 1. RAID10是RAID0的镜像,提供高性能和数据冗余,RAID5使用分布式奇偶校验,能容忍一块磁盘故障,但写性能较低。 2. ORA-01555错误表明回滚段不足,解决方案包括增大回滚段、调整归档策略、优化SQL语句等。 3. Oracle11g的新特性包括Automatic Memory Management、Automatic Workload Repository、Real Application Clusters Enhancements等,例如Automatic Memory Management简化了内存管理,减少了DBA的工作。 4. 开发和管理中常用的工具包括Toad、PL/SQL Developer、SQL Developer、Oracle Enterprise Manager等。 5. 获取Oracle信息的途径有官方文档、技术论坛(如Oracle Technet、ITPUB)、博客、邮件列表等。 6. 解决一笔四条线穿过九个点的问题,可以通过一笔画出一个正方形,然后连接相邻顶点,形成四个交叉点。
- 粉丝: 2
- 资源: 17
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助