首页 > 系统 > Linux > 正文

教你使用Linux系统的Shell脚本维护Oracle方法

2024-08-27 23:55:43
字体:
来源:转载
供稿:网友
  系统管理员与 DBA 之间在职责方面存在差别。但实际上,这种差别通常并不明显。许多 IT 部门雇佣一些可解决数据库级以及操作系统级问题的员工。当然,Oracle 数据库本身使用操作系统资源,并能与其环境紧密交互。
 
  此外,许多系统管理员和DBA 发现将其工作相关的任务自动化很有必要或比较方便。软件安装、系统资源监视以及系统管理涉及一些重复和容易出错的任务,而自动过程可以比手动过程更好地完成这些任务。

  在本文中,我将介绍 “bash”shell 脚本可以实现的、与在 Linux 平台上安装、运行和维护 Oracle 数据库相关的功能。注意,本文适用于 Linux 脚本初学者或对 Linux 相对陌生的 DBA ;对大多数经验丰富的 Linux 系统管理员则不适用。
 
  ◆Shell 脚本是什么?
 
  shell 脚本是一个包含命令序列的文本文件。当运行文件(或脚本)时,将执行该文件中包含的命令。术语 shell 仅指与 Linux 内核通信所使用的特定命令行用户界面。目前有多个不同的 shell ,其中包括 C shell (csh) 、 Korn shell (ksh) 、 Bourne shell (sh) 和 Bourne-Again shell (bash) 。 shell 本身就是一个从文件或终端读取命令、解释这些命令并通常执行其他命令的命令。 Bourne-Again shell 合并了上述其他 shell 的特性,本文就使用该脚本进行演示。
 
  脚本文件中的第一行可用于指定使用哪个 shell 来运行该脚本。以下是所有脚本示例中包含的第一行的含义:
 
  #!/bin/bash

  ◆什么情况下不使用 Shell 脚本?
 
  Oracle 数据库包含了超出 RDBMS 传统定义的功能。与软件的任何其他部分一样,它使用操作系统提供的资源,但它所“ 看到” 并“ 更改” 其环境的程度远远超过了其他软件。SQL 和 Oracle 的固定视图从数据库内部提供了系统视图,而shell 脚本从数据库外部提供了系统视图。Shell 脚本并不是适用于所有问题的解决方案。
 
  必须意识到,操作系统的许多方面可以从数据库内部进行监视和修改。可以使用Oracle 的固定视图(带 v$ 前缀的视图)确定计算机的主机名 (v$instance) 或数据库正在其中运行的平台的名称 (v$database) 。还可以通过这种方式确定与数据库相关的文件的位置和其他属性。可以直接从数据库中查询数据文件(v$datafile 、 dba_data_files )、临时文件(v$tempfile 、 dba_temp_files )、重做日志 (v$logfile) 、存档日志 (v$archived_log) 和控制文件 (v$controlfile) 的位置和其他属性。可以通过该视图以及通过查看某些 init.ora 参数(db_recovery_file_dest 、 db_recovery_file_dest_size )确定有关闪回恢复区 ($recovery_file_dest) 的信息。还可以查询进程 (v$process) 和内存(v$sga 、 v$sgastat 等)的状态。有各种内置的 PL/SQL 程序包,并能够创建允许对底层 OS 进行其他访问的Java 和C 数据库对象。
 
  如果您正在考虑为一个需要大量数据库访问的任务编写脚本,则脚本可能并不是最佳选择。本文的稍后部分将介绍如何使用SQL*Plus 访问数据库,但在很多情况下,使用其他语言可以更好地解决此问题。
 
 

(编辑:武林网)

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表