18. 数据库管理员的概念
18.1. 数据库管理员的职责
数据库管理员(DBA)的主要责任是使企业数据对其用户可用。DBA必须与开发人员紧密合作,确保他们的应用程序有效地使用数据库,并与系统管理员合作,确保物理资源充足且使用高效。Oracle DBA负责了解Oracle数据库架构以及数据库的工作原理。DBA可以预期执行以下任务:
■ 安装、升级和打补丁Oracle数据库软件
■ 设计数据库,包括确定需求、创建逻辑设计(概念模型)和物理数据库设计
■ 创建Oracle数据库
■ 开发和测试备份和恢复策略,定期备份Oracle数据库,并在发生故障时恢复
■ 配置网络环境以使客户端能够连接到数据库
■ 启动和关闭数据库
■ 管理数据库的存储
■ 管理用户和安全性
■ 管理数据库对象,如表、索引和视图
■ 监控和调整数据库性能
■ 调查、收集诊断数据,并报告给Oracle支持服务任何关键数据库错误
■ 评估和测试新的数据库功能
上述任务以及许多其他任务在《Oracle Database 2 Day DBA》和《Oracle Database Administrator's Guide》中有描述。
用户类型以及他们的角色和职责取决于数据库环境。一个小数据库可能只有一个DBA。一个非常大的数据库可能会将DBA职责分配给几个专家,例如,安全员、备份操作员和应用管理员。
18.2. 数据库管理员使用的工具
Oracle为管理数据库提供了几种工具。本节描述了一些常用的工具:
■ Oracle Enterprise Manager
■ SQL*Plus
■ 数据库安装和配置工具
■ Oracle Net配置和管理工作的工具
■ 数据移动和分析工具
18.2.1. Oracle 企业管理
Oracle Enterprise Manager(企业经理)是一个系统管理工具,提供对数据库环境的集中管理。结合图形控制台、Oracle管理服务器、Oracle智能代理、通用服务和行政工具,企业经理为Oracle产品提供了一个全面的系统管理平台。基于Web的企业经理数据库控制(Database Control)是管理Oracle数据库的主要工具。它与Oracle数据库一起安装。您可以使用数据库控制来执行诸如以下管理任务:
■ 诊断、修改和调整数据库
■ 将相关目标分组,以便于管理任务,与其他管理员共享任务,并在不同时间间隔安排任务
■ 为Oracle home配置和管理Oracle Net服务(见第16-5页的“Oracle网络架构概述”)
■ 启动集成的Oracle和第三方工具
下图显示了数据库控制的数据库主页。页面顶部的子页面链接使您能够访问性能、可用性和其他数据库管理页面。数据库主页的子部分提供有关数据库环境和状态的信息。
下图显示了企业经理的基本架构。管理存储库存储在数据库内。代理和管理服务都运行在数据库主机上。您可以从任何可以安全连接到管理服务的Web浏览器运行数据库控制台。
18.2.2. SQL*Plus
SQL*Plus是每个Oracle数据库安装中包含的交互式和批处理查询工具。它具有命令行用户界面,在连接到数据库时充当客户端。
SQLPlus有自己的命令和环境。它使您能够输入和执行SQL、PL/SQL、SQLPlus和操作系统命令来执行任务,例如:
■ 格式化查询结果,对查询结果进行计算、存储和打印
■ 检查表和对象定义
■ 开发和运行批处理脚本
■ 管理数据库
您可以使用SQL*Plus以交互方式生成报告,作为批处理进程生成报告,并将结果输出到文本文件、屏幕或HTML文件,以便在互联网上浏览。您可以使用HTML输出功能动态生成报告。
18.2.3. 数据库安装和配置工具
Oracle提供了几种工具来简化安装和配置Oracle数据库软件的任务。这些工具包括:
■ Oracle Universal Installer (OUI)
OUI是一个图形用户界面实用程序,使您能够查看、安装和卸载Oracle数据库软件。在线帮助可指导您完成安装过程。请参阅《Oracle Database Installation Guide》了解如何安装Oracle数据库软件。
■ Database Upgrade Assistant (DBUA)
DBUA交互式地引导您完成数据库升级,并为新版本配置数据库。DBUA通过执行通常手动执行的所有任务来自动化升级过程。DBUA为表空间和在线重做日志等配置选项提供建议。请参阅《Oracle Database 2 Day DBA》了解如何使用DBUA升级数据库。
■ Database Configuration Assistant (DBCA)
DBCA提供了一个图形界面和引导工作流程,用于创建和配置数据库。这个工具使您能够根据Oracle提供的模板创建数据库,或者创建自己的数据库和模板。请参阅《Oracle Database Administrator's Guide》了解如何使用DBCA创建数据库。
18.2.4. Oracle Net配置和管理工作的工具
Oracle Net Services在分布式、异构计算环境中提供全企业的连接解决方案。Oracle Net是Oracle Net Services的一个组件,它支持从客户端应用程序到数据库的网络会话。您可以使用以下工具来配置和管理工作:
■ Oracle Net Manager
此工具使您能够为本地客户端或服务器主机上的Oracle home配置Oracle Net Services。您可以使用Oracle Net Manager配置命名、命名方法、配置文件和监听器。您可以使用Oracle Enterprise Manager控制台启动Oracle Net Manager,或者将其作为独立应用程序启动。
■ Oracle Net Configuration Assistant
此工具在软件安装期间自动运行。该助理使您能够在安装期间配置基本网络组件,包括监听器名称和协议地址、命名方法、tnsnames.ora文件中的网络服务名称以及目录服务器的使用。
■ Listener Control Utility
监听器控制实用程序使您能够配置监听器以接收客户端连接(见第16-6页的“Oracle Net监听器”)。您可以通过企业经理或作为独立命令行应用程序访问该实用程序。
■ Oracle Connection Manager Control Utility
这个命令行实用程序使您能够管理工作站,这是一个路由器,客户端连接请求可以发送到下一个跳转或直接发送到数据库。您可以使用实用程序命令在一台或多台Oracle Connection Managers上执行基本管理功能。此外,您还可以查看和更改参数设置。
18.2.5. 数据移动和分析工具
Oracle数据库包括多个用于数据库移动和分析的实用工具。例如,您可以使用数据库实用工具来:
■ 从操作系统文件加载数据到Oracle数据库表中,如第18-5页的“SQL*Loader”中所解释的
■ 将数据和元数据从一个数据库移动到另一个数据库,如第18-7页的“Oracle Data Pump Export和Import”中所解释的
■ 通过SQL接口查询重做日志文件,如第18-8页的“Oracle LogMiner”中所解释的
■ 管理Oracle数据库诊断数据,如第18-8页的“ADR Command Interpreter (ADRCI)”中所解释的
其他任务包括使用DBVERIFY在离线数据库或数据文件上执行物理数据结构完整性检查,或者使用DBNEWID实用工具更改运营数据库的数据库标识符(DBID)或数据库名称。
18.2.5.1. SQL*Loader
SQLLoader从外部文件(称为数据文件)加载数据到数据库表中。它有一个强大的数据解析引擎,对数据文件中数据的格式几乎没有限制。您可以使用SQLLoader执行以下任务:
■ 将多个数据文件中的数据加载到多个表中
您将待加载的数据存储在SQLLoader数据文件中。SQLLoader控制文件是一个文本文件,包含SQL*Loader用于确定在哪里找到数据、如何解析和解释数据、在哪里插入数据等的DDL指令。
注意:SQL*Loader数据文件和控制文件与Oracle数据库数据文件和控制文件无关。
■ 控制加载操作的各个方面
例如,您可以有选择地加载数据,指定数据字符集(见第19-9页的“字符集”),使用SQL函数操作数据,在指定列生成唯一的顺序键值等。您还可以生成复杂的错误报告。
■ 使用传统或直接路径加载
传统路径加载执行SQL INSERT语句来填充表。相比之下,直接路径加载通过格式化数据块并将它们直接写入数据库文件来消除大部分数据库开销。直接写入操作在高位标记之上的数据块上进行,并直接写入磁盘,绕过数据库缓冲区缓存。直接读取直接从磁盘读取到PGA,再次绕过缓冲区缓存。
一个典型的SQLLoader会话接收一个SQLLoader控制文件和一个或多个数据文件作为输入。输出包括一个Oracle数据库、一个日志文件、一个坏文件,以及可能的丢弃文件。图18-1说明了典型的SQL*Loader会话的流程。
18.2.5.2. Oracle Data Pump 导出和导入
Oracle Data Pump允许高速将数据和元数据从一个数据库移动到另一个数据库。这项技术是以下Oracle数据库数据移动实用工具的基础:
■ Data Pump导出(Export)
导出是一个实用工具,用于将数据和元数据卸载到一组称为转储文件集的操作系统文件中。转储文件集由一个或多个包含表数据、数据库对象元数据和控制信息的二进制文件组成。
■ Data Pump导入(Import)
导入是一个实用工具,用于将导出的转储文件集加载到数据库中。您还可以使用导入工具直接从源数据库加载目标数据库,无需中间文件,这允许导出和导入操作同时运行,从而最小化总耗时。
Oracle Data Pump由以下不同部分组成:
■ 命令行客户端expdp和impdp
这些客户端调用DBMS_DATAPUMP包来执行Oracle Data Pump操作(见第8-6页的“PL/SQL包”)。
■ DBMS_DATAPUMP PL/SQL包,也称为Data Pump API
这个API提供高速导入和导出功能。
■ DBMS_METADATA PL/SQL包,也称为元数据API
这个API以XML格式存储对象定义,被所有加载和卸载元数据的过程使用。
图18-2显示了Oracle Data Pump如何与SQLLoader和外部表集成。如图所示,SQLLoader与外部表API和Data Pump API集成,以将数据加载到外部表中(见第2-16页的“外部表”)。数据库控制台和可传输表空间等客户端可以使用Oracle Data Pump基础设施。
18.2.5.3. Oracle LogMiner
Oracle LogMiner允许您通过SQL界面查询重做日志文件。重做日志文件中包含的数据的潜在用途包括:
■ 确定数据库逻辑损坏(例如应用程序层面的错误)可能开始的时间点
■ 检测用户错误
■ 确定执行事务级别细粒度恢复所需采取的操作
■ 通过趋势分析确定哪些表收到最多的更新和插入操作
■ 通过LogMiner全面的关系到重做日志文件的界面,分析系统行为和审计数据库使用情况
LogMiner可以通过命令行界面或Oracle LogMiner Viewer GUI访问,后者是企业经理的一部分。
18.2.5.4. ADR命令解释器(ADRCI)
ADRCI是一个命令行实用程序,使您能够调查问题、查看健康检查报告,并将首次故障诊断数据打包并上传到Oracle支持。您还可以使用该实用程序查看自动诊断库(ADR)中的跟踪文件名称以及查看告警日志。ADRCI具有丰富的命令集,可以交互式使用或在脚本中使用。