Linux for the Oracle DBA -Customizing the Oracle User's Environment

There are many ways to customize the Oracle user on the system.  I strongly recommend making the changes covered in this section.  Also see my notes on oratab.

To effectively administer the Oracle installation we that was just made, it is useful to have several environment variables set whenever a command line session is started.  The Oracle provided script oraenv is the best way to set these variables automatically. The oraenv scriptis installed in /usr/local/bin and takes values from the oratab file located in /etc.  The oratab filetypically contains an entry for each database, but in the current configuration, there is no database set up.  To use the oraenv script, set up a dummy entry in the oratab file.

The oratab file can be edited by the oracle user using vi or another text editor.  Each line in the oratab file has three elements separated by colons.  The first element is the SID, the second indicates the Oracle Home directory for that SID, and the third indicates if the database should be started and stopped by the dbstart/dbshut commands.

Edit the oratab file and add the following line:

db_11g:/u01/app/oracle/product/11.1.0/db_1:N

Though a database does not exist by the name db_11g, this entry allows us to setting up the environment for this home without having to set several variables manually.  Make sure the final element is set to N so Oracle does not attempt to start a database that is not there.

With an entry now in the oratab file, use the oraenv command to set up theour environment.  To do that, run .oraenv which causes the oraenv script to be run as part of the current shell rather than as a subprogram.

$ . oraenv
 
ORACLE_SID = [oracle] - db_11g
The Oracle base for ORACLE_HOME=/u01/app/oracle/product/11.1.0/db_1
is /u01/app/oracle
 
$ echo $ORACLE_SID
 
db_11g
 
$ echo $ORACLE_HOME
 
/u01/app/oracle/product/11.1.0/db_1
 
$ echo $PATH
 
/usr/kerberos/bin:/usr/local/bin:/bin:/usr/bin:/home/oracle/bin:/u01/app/
oracle/product/11.1.0/db_1/bin
 
Among other things, the oraenv script sets the ORACLE_SID and
ORACLE_HOME variables.  The PATH variable is also updated to include
the location of the Oracle binaries. Though they could be set
manually, the oraenv script is the best way to set these variables. 
Since these variables should be set anytime, log in as oracle and
can then add the oraenv command to the user's profile.

A user's profile, often referred to as the dot-profile, is a
hidden file in their home directory that is executed when a user
logs in. Since Linux uses the bash shell
by default, the profile file is called .bash_profile.  Using the -a
option, it can be seen in an ls listing.

$ pwd
 
/home/oracle
 
$ ls -a
 
.              .bash_logout   database_11g  .gconfd          .mozilla
..             .bash_profile  .emacs        .gnome2          .viminfo
.bash_history  .bashrc        .gconf        .gnome2_private  .Xauthority
 
The profile can be edited with vi or another text editor.  To run
oraenv when the user
logs in, add the following lines to the .bash_profile file.

ORACLE_SID=db_11g
ORAENV_ASK=NO
. oraenv

This causes the Oracle variables to be set based on the oratab
entry for db_11g without any prompting.  If the variable ORAENV_ASK
is changed to YES or is not set at all, there is a prompted to enter
a SID when logging in.

Calling the oraenv File

The oraenv scriptshould be
called from a user's .bash_profile
to make these configuration changes.  It is typically installed in
the /usr/local/bin directory and as long as that is included in
the PATH variable, it can be called with the following syntax.

. oraenv

If the ORACLE_SIDvariable
is set before the oraenv script is run, the value of ORACLE_SID is
given as a default when the user is prompted to enter a SID. 
Additionally, if the ORAENV_ASK variable is set to NO before
oraenv is called, then oraenv does not prompt for a SID to be
entered; instead, the value from ORACLE_SID is used.  Below is a
script showing oraenv being called without being prompted to enter
a SID.

export
ORACLE_SID=TEST
export ORAENV_ASK=NO
. oraenv

These are both valid methods for calling the oraenv
script.  Which one you choose will depend on if you wish a user to
be prompted to give a SID when they log in.

Adding Custom Code to the oraenv File

Sometimes it is necessary to have product-specific environment
settings for a product associated with a given Oracle database. 
The end of the oraenv script
has a special section to accommodate this kind of setting.

Custom settings can be added to the oraenv script after the
comment reading 'Install any 'custom'?? code here'.  The oraenv
script is a Bourne shell script - most common shell scripting
syntax will work.  Here is a short example of custom code added to
the oraenv script:

...
#
# Install any "custom" code here
#
 
TEMP_DIR=/tmp
export TEMP_DIR
 
case $ORACLE_SID in
    TEST)
           SCRIPT_DIR=/u01/app/laftdba/test
           export SCRIPT_DIR
    ;;
    PROD)
           SCRIPT_DIR=/u01/app/laftdba/prod
           export SCRIPT_DIR
    ;;
    *)
           unset SCRIPT_DIR;
    ;;
esac

In the example above, the first two lines setting
and exporting the variable TEMP_DIR are run for any database.  The
case statement then executes additional code based on the setting
of ORACLE_SID.  case statements will be explained further in the
section on shell scripting.

Oracle-Specific Environment
Settings

Oracle provides the oraenv script to set up most environment
variables necessary for Oracle administration.  The oraenv script
sets the ORACLE_HOME, ORACLE_BASE and LD_LIBRARY_PATH variables
and updates the PATH variable with Oracle specific values.

WARNING: When
setting up accounts which will be accessed from other
systems through scripts, avoid having the user prompted to
enter a SID.

Conclusion

There are a lot of steps to getting a system ready for Oracle. 
System requirements, installed software and many settings must all
be correct or Oracle will not function properly.  As these steps are
reviewed, it is a good idea to take notes on what things were set to
when they were found and what changes were made to prepare for
Oracle.  This will make preparing future systems much easier.

The next chapter, we will start to explore the many things we
that can be done to further customize and tune the Linux system.

Linux oraenv Tips的更多相关文章

  1. linux指令tips

    1.调用命令使用应用名称免路径.   例如在路径 /usr/local/mobile/php538 建立了php应用,在调用php命令的时候,我们需要加路径访问 如 /usr/local/mobile ...

  2. 01 Linux入门介绍

    一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以及游戏支持度不足 L ...

  3. Linux转发性能评估与优化-转发瓶颈分析与解决方式(补遗)

    补遗 关于网络接收的软中断负载均衡,已经有了成熟的方案,可是该方案并不特别适合数据包转发,它对server的小包处理非常好.这就是RPS.我针对RPS做了一个patch.提升了其转发效率. 下面是我转 ...

  4. Linux入门介绍

    Linux入门介绍 一.Linux 初步介绍 Linux的优点 免费的,开源的 支持多线程,多用户 安全性好 对内存和文件管理优越 系统稳定 消耗资源少 Linux的缺点 操作相对困难 一些专业软件以 ...

  5. Linux转发性能评估与优化(转发瓶颈分析与解决方式)

    线速问题 非常多人对这个线速概念存在误解. 觉得所谓线速能力就是路由器/交换机就像一根网线一样. 而这,是不可能的.应该考虑到的一个概念就是延迟. 数据包进入路由器或者交换机,存在一个核心延迟操作,这 ...

  6. Linux 驱动开发

    linux驱动开发总结(一) 基础性总结 1, linux驱动一般分为3大类: * 字符设备 * 块设备 * 网络设备 2, 开发环境构建: * 交叉工具链构建 * NFS和tftp服务器安装 3, ...

  7. TCP的TIME_WAIT快速回收与重用

    声明一点: Linux中是无法修改tcp的TIME_WAIT值的,除非重新编译,起码我是没有找到怎么改.值得注意的是,net.ipv4.tcp_fin_timeout这个参数是FIN_WAIT_2的值 ...

  8. 玩转渗透神器Kali:Kali Linux作为主系统使用的正确姿势TIPS

    Kali Linux 前身是著名渗透测试系统BackTrack ,是一个基于 Debian 的 Linux 发行版,包含很多安全和取证方面的相关工具. 本文假设你在新装好的kali linux环境下… ...

  9. 10 Interesting Linux Command Line Tricks and Tips Worth Knowing

    I passionately enjoy working with commands as they offer more control over a Linux system than GUIs( ...

随机推荐

  1. Android MediaRecorder录音与播放

    上一篇讲到了使用意图录音.这篇文章将使用MediaRecorder类来录音,从而提供很多其它的灵活性. 效果图: 源码奉上: <LinearLayout xmlns:android=" ...

  2. LoadRunner系列之—-04 录制基于https协议的脚本

    实际性能测试过程中,有些需录制脚本的页面或接口是基于https协议的,按原来方法录制脚本,录完了脚本是空的.为解决这个问题,第一步了解https协议的具体实现,这块网上资料很多,可参考页面下方参考资料 ...

  3. C++对象模型——解构语意学(第五章)

    5.4    对象的效率 (Object Efficiency) 在下面的效率測试中,对象构造和拷贝所须要的成本是以Point3d class声明为基准,从简单形式逐渐到复杂形式,包含Plain Ol ...

  4. c语言学习-指针探究

    1:指针定义格式:格式:变量类型 *变量名用途:指针变量用于储存地址(only),也就是根据地址值,访问对应的存储空间. 注意.int *p 只能指向int类型的数据: 例: int a = 20; ...

  5. ASP.NET MVC 原理

    我出了份卷子做面试题,其中之一就是要求说说ASP.NET MVC的原理.感觉太空泛了,谁能说得准呢? 但是,如果站在我这个面试官立场,面试题好多时并不要求有标准答案,可能也没有什么标准答案,主要是通过 ...

  6. 导入项目 R.java没有

    网上一搜,各种 Android tools-fix your porject或者Clean ...不好使 其实可能是由于XML布局文件有错误导致,修改掉这些错误就可以了..

  7. HBase 数据迁移

    最近两年负责 HBase,经常被问到一些问题, 本着吸引一些粉丝.普及一点HBase 知识.服务一点阅读人群的目的,就先从 HBase 日常使用写起,后续逐渐深入数据设计.集群规划.性能调优.内核源码 ...

  8. ios app抓包分析

    1 使用rvictl工具 这是mac下的一条命令.ios usb连mac,然后创建虚拟网络接口. 2 使用wireshark抓包 wireshark可以抓这个虚拟网络接口上的数据包.

  9. (续)linux SD卡初始化---mmc_sd_init_card函数

    mmc_sd_init_card剩下的关于UHS-I的分支结构. uhs-I的初始化流程图如图: 红线标出的部分是已经做了的事,与上一篇那个流程图是一致的,之后就是if分支中做的事. if分支中的函数 ...

  10. unbantu安装mysql

    1,方法一 sudo apt-get install mysql-server apt isntall mysql-client apt install libmysqlclient-dev(暂不知用 ...