面向dba的linuxshell脚本简介.doc

面向DBA的LinuxShell脚本简介7年前,Oracle发布了Linux上的第一个商业数据库。从那时起,Oracle、RedHat和Novell/SUSE就不断地合作更改Linux内核,从而提高数据库和应用程序的性能。正因为这样,用于Linux的Oracle数据库10g才包含了与操作系统紧密相关的许多增强功能。DBA比以往任何时候更需要了解和使用此平台来在其监视下对系统进行最佳管理。以往,系统管理员与DBA之间在职责方面存在差别。但实际上,这种差别通常并不明显。许多IT部门雇佣一些可解决数据库级以及操作系统级问题的员工。当然,Oracle数据库本身使用操作系统资源,并能与其环境紧密交互。此外,许多系统管理员和DBA发现将其工作相关的任务自动化很有必要或比较方便。软件安装、系统资源监视以及系统管理涉及一些重复和容易出错的任务,而自动过程可以比手动过程更好地完成这些任务。将这些任务自动化的方法之一是shell脚本。Shell脚本自Linux系统安装之初就起着重要作用。启动和关闭系统时就会调用各种脚本。Oracle和其他第三方供应商的实用程序也是通过shell脚本可调用的。由于这些脚本可以快速开发,因此历来就用它们构建应用程序原型。系统管理员已利用通过shell脚本实现的功能提供针对其监视的系统的特定要求和特征定制的解决方案了。在本文中,我将介绍“bash”shell脚本可以实现的、与在Linux平台上安装、运行和维护Oracle数据库相关的功能。注意,本文适用于Linux脚本初学者或对Linux相对陌生的DBA;对大多数经验丰富的Linux系统管理员则不适用。Shell脚本是什么?shell脚本是一个包含命令序列的文本文件。当运行文件(或脚本)时,将执行该文件中包含的命令。术语shell仅指与Linux内核通信所使用的特定命令行用户界面。目前有多个不同的shell,其中包括Cshell(csh)、Kornshell(ksh)、Bourneshell(sh)和Bourne-Againshell(bash)。shell本身就是一个从文件或终端读取命令、解释这些命令并通常执行其他命令的命令。Bourne-Againshell合并了上述其他shell的特性,本文就使用该脚本进行演示。脚本文件中的第一行可用于指定使用哪个shell来运行该脚本。以下是所有脚本示例中包含的第一行的含义:#!/bin/bash为什么使用Shell脚本?由于shell脚本与DBA的工作相关,因此您可能不会马上看到shell脚本的价值,这跟您的工作经历有关。如果您以前从未使用过UNIX或类似UNIX的系统,那么可能会对大量含义晦涩的命令感到一愁莫展。此外,除了作为关系数据库外,Oracle10g还提供了一个用于处理数据库数据的强健平台以及几个用于在数据库外部与操作系统交互的方法。但您会发现几个探究shell脚本领域的原因,其中包括:必须支持已经存在的脚本。需要在安装Oracle软件前自动设置系统。例如,您可以编写一个脚本来检查OS的初始状态并报告安装软件前必须满足的任何前提条件。该脚本还可以创建相关的OS用户和组并为用户设置环境变量。可以使用正在运行的Oracle数据库来执行手动或计划的任务。但在数据库未运行时需要运行某些任务。可以使用脚本停止或启动数据库(以及侦听器或相关的数据库进程)。无法从数据库内部启动此类动作。您需要一种监视数据库状态(例如,是否正在运行并可进行进程查询)的机制。这样的脚本还可以监视非特定于Oracle的其他进程和资源,从而提供系统当前运行情况的更详细信息。需要将备份自动化。OracleRecoveryManager(RMAN)是一个用于开发可以在任何平台上运行的备份脚本的实用程序。可以从shell脚本中调用OracleRecoveryManager并使用它执行各种备份和恢复活动。您可能有一个并非特定于某个数据库的要求。您可能在一台计算机上安装了多个数据库。建议您不要使用单个数据库满足此要求,因为那样会引发潜在的安全性问题。在这些情况下,shell脚本提供了一种既可以满足此要求又不会将进程与单个数据库关联的方法。什么情况下不使用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访问数据库,但在很多情况下,使用其他语言可以更好地解决此问题。下表归纳了可以从数据库中访问的信息:服务器/操作系统信息服务器标识典型查询附注实例运行在的主机的名称selecthost_namefromv$instance;也可以通过从bash运行以下命令来获得该信息:hostname或uname–n操作系统平台selectplat_namefromv$database–-(10g)如果运行uname–s,则将返回类似信息文件信息Oracle文件位置典型查询附注控制文件selectnamefromv$controlfile;数据库控制文件的位置。init.ora的参数control_files也包含该信息。数据文件selectfile_namefromDba_data_files;数据库数据文件的位置临时文件selectfile_namefromDba_temp_files;数据库临时文件的位置日志文件selectmemberfromv$logfile;重做日志的位置归档日志selectnamefromv$archived_log归档重做日志的位置。init.ora的参数log_archive_dest_n也包含该信息。如果数据库不在Archivelog模式下

面向dba的linux shell 脚本简介,面向dba的linuxshell脚本简介.doc相关推荐

  1. 面向dba的linux shell 脚本简介,面向 DBA 的 Linux Shell 脚本简介

    DBA:Linux 面向 DBA 的 Linux Shell 脚本简介 作者:CasimirSaternos 学习一些在 Linux 上安装.运行和维护 Oracle 数据库所需的基本 bash sh ...

  2. linux系统写一个脚本,编写一个简单的linuxshell脚本

    shell脚本和windows平台上的bat批处理是一样的,简化用户处理重复动作的操作,shell脚本由shell命令组成.下面是学习啦小编收集整理的编写一个简单的linuxshell脚本,希望对大家 ...

  3. linux shell 语句出错自动退出 调试 检查 脚本

    许多人用shell脚本完成一些简单任务,而且变成了他们生命的一部分.不幸的是,shell脚本在运行异常时会受到非常大的影响.在写脚本时将这类问题最小化是十分必要的.本文中我将介绍一些让bash脚本变得 ...

  4. linux shell编程从入门到精通pdf_SHELL脚本编程入门

    一. SHELL入门 1.1 变量 1.1.1 变量名规范 变量是由任何字母.数字.下划线组成的字符串,且不能以数字开头. 区分字母大小写 变量.等号.值中间不能出现任何空格 实例 注:$var1+$ ...

  5. 执行远程linux命令,linux shell 远程执行命令

    经常要部署多台服务器上面的应用,如果一个个机器的登录太麻烦. 所有就想到编写一个脚本来部署不同的服务器 前提条件: 配置ssh免登陆 如果不会的请参加我的另外一篇文章 http://blog.csdn ...

  6. 【shell】Linux Shell远程执行命令

    目录 shell远程执行 前提条件: 对于简单的命令: 对于脚本的方式: SSH命令格式 主要参数说明 ssh控制远程主机,远程执行命令步骤 准备工作 基于公私钥认证远程登录可能存在的不足 ssh 执 ...

  7. Linux Shell CentOS 写一个输出命令 支持颜色

    文章目录 Linux Shell CentOS 写一个输出命令 支持颜色 相关阅读 1.代码 2.演示 Linux Shell CentOS 写一个输出命令 支持颜色 相关阅读 Linux Shell ...

  8. Linux Shell脚本入门教程系列之(十五) Shell函数简介

    本文是Linux Shell脚本系列教程的第(十五)篇,更多Linux Shell教程请看:Linux Shell脚本系列教程 上一篇之后,函数可以将一个复杂功能划分成若干模块,从而使程序结构更加清晰 ...

  9. Linux Shell脚本入门教程系列之(一)Shell简介

    本文是Linux Shell脚本系列教程的第(一)篇,更多shell教程请看:Linux Shell脚本系列教程 想要学习linux,shell知识必不可少,今天就给大家来简单介绍下shell的基本知 ...

最新文章

  1. 判断string是否为数字
  2. JAVA 网络编程 Socket 详细说明,实现客户端和服务端相互推送消息
  3. 利用ajax,巧妙的sql语句组合,轻松做出不错的树型菜单
  4. 原生js获取宽高与jquery获取宽高的方法的关系
  5. mysql 中float存入int数据显示失真问题
  6. 联想小新增加固态硬盘后安装不了系统_4千价位也能面面俱到?小新Air14 2020锐龙版体验测试...
  7. AI学习笔记(十四)CNN之图像分割
  8. VC++开发学习三(对话框之间的信息传递的方法总结)
  9. 判断登陆权限的操作,登录后调到之前所操作的地址。
  10. 数据分析(Data Analysis)
  11. office相关文件转pdf的几种方式
  12. 如何办理杭州市民卡|非杭户籍人员个人申领流程
  13. windows xp sp3
  14. 数据挖掘与数据分析(二)—— 探索性数据分析EDA(单因子与对比分析) 可视化 (1) —— 集中趋势 离中趋势 数据分布(偏态系数峰态系数正态分布三大分布)抽样理论(误差精度)
  15. ActionBar 设置显示返回箭头图标
  16. 乐有家携手法大大,实现租房签约数字化
  17. RIP和IGRP实验
  18. 蓝色大气的交替导航菜单
  19. 易语言查找过滤相同重复文本源码
  20. arm服务器安装docker及docker-compose

热门文章

  1. PowerDesigner的下载及安装
  2. Qt Creator常用快捷键及技巧提升编码效率
  3. memcpy和strcpy的区别及memcmp和strcmp的区别
  4. 时隔七个月,我终于弄懂了汉诺塔的思想
  5. 你所需要的MySQL检索语句(DQL)都在这儿(小白都能懂的哦)
  6. sql count用法_SQL是一门手艺
  7. 设计模式理解:策略模式
  8. 算法练习day1——190318(二分查找)
  9. 常用API-2(字符串与数组)
  10. Cpp 对象模型探索 / 静态联编和动态联编