上一篇博文介绍了关于.bashrc和.bash_profile的相关知识,在oracle的用户设置中能发挥作用。

场景:上周准备学习一下oracle,下载了安装文件后,在linux上新建了一个用户oracle,然后在这个用户下面安装的。也不太记得当时什么情况了,前些天通过oracle系统提供的sqlplus访问,一切正常。今天我想通过终端su到oracle用户下,然后用sqlplus命令打开sqlplus,遇到了不少问题,这里做一个总结。

1. oracle用户密码忘记了。

这个比较容易,打开terminal,登录到root用户下,更改oracle用户密码。

[root@win ~]# passwd oracle

2. 修改密码,登录后问题就多了,发现bash中不会显示成 [oracle@win ~] 这样的模式,而是 bash-4.1$。输入任何命令都不能运行,当然输入sqlplus也不行,提示找不到命令。

查看oracle用户的HOME目录,上一篇文章提到了怎么查找,因为登录后任何命令都不能执行,所以不能通过命令来获取,要手动查。

查看得知HOME=/u01/app/oracle

查看此目录下的文件,发现没有.bashrc 和 .bash_profile文件,也就是说,没有设置任何环境变量与bash配置,当然不可能找到任何命令。

解决方法:

从其他用户那儿拷贝这两个文件,当然如果你非常熟悉的话也可以自己编写,不过建议拷贝过来做修改。

我从Jack用户那儿拷来了这两个文件,将它们放在了oracle home目录下。应用这两个脚本:

bash-4.1 $  source .bashrc
bash-4.1 $ source .bash_profile

执行后,bash中就显示成 [oracle@win~] 这样的形式了。这是因为之前没有设置任何变量,执行脚本后,设置了SP1变量,显示恢复正常。

此时常用的命令也可以执行了。

3. 现在的问题就剩下这个了,网上有不少人讨论的,输入sqlplus后提示命令找不到。

这种情况就是要环境变量的设置问题了。前一篇文章中已经提到了,我们可以在.bashrc中进行配置,一定会在bash启动时执行。最终的bash设置如下:

[oracle@win ~]$ cat .bashrc
# .bashrc # Source global definitions
if [ -f /etc/bashrc ]; then
. /etc/bashrc
fi # User specific aliases and functions ORACLE_BASE=/u01/app ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2./xe ORACLE_SID=XE PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin export PATH ORACLE_BASE ORACLE_HOME ORACLE_SID

这里设置了四个环境变量,分别是:ORACLE_BASE, ORACLE_HOME, ORACLE_SIDPATH

在设置这些环境变量的过程中出现了三个问题。

1. SP2-0750: you may need to set ORACLE_HOME to your Oracle software directory

由于我没有设置ORACLE_HOME环境变量,注意这里选择oracle内bin前面的路径就好了。

ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2./xe

 2. ORA-12162: TNS:net service name is incorrectly specified

这个错误是由于没有设置ORACLE_SID环境变量导致。查询ORACLE_SID的方法如下:

SQL> select instance_name from v$instance;

INSTANCE_NAME
----------------
XE

我们根据这个设置ORACLE_SID环境变量。

ORACLE_SID=XE

3. 明明我在另一个sqlplus中已经启动了数据库,可是在这个bash中连接时却提示:“Connected to an idle instance. ” ,即不能登陆到数据库中 。

此时,所有的环境变量我已经设置好了,PATH设置好了,sqlplus命令正常执行,可是到底是由于什么原因导致这个错误的呢?

还是考虑环境变量,经检查发现一个隐晦的小错误。我的ORACLE_BASE设置成了如下形式:

ORACLE_BASE=/u01/app/

ORACLE_HOME=$ORACLE_BASE/oracle/product/11.2.0/xe

很明显,这里ORACLE_BASE最后面多了一个斜线,导致了这个错误,修改完成后,就完全正常了。

上面这整个流程,就是手动配置oracle用户的环境变量的整个过程。由于是第一次配置,所以犯了不少错误,但是这些错误让我更加理解整个过程。最后,设置了环境变量后别忘了在最后export进去。



Oracle用户的初始化问题的更多相关文章

  1. Oracle用户被锁原因及办法

    Oracle用户被锁原因及办法   在登陆时被告知test用户被锁 1.用dba角色的用户登陆,进行解锁,先设置具体时间格式,以便查看具体时间 SQL> alter session set nl ...

  2. oracle 用户与表空间关系

    oracle用户与表空间关系用户=商家表=商品表空间=仓库1. 1个商家能有很多商品,1个商品只能属于一个商家2. 1个商品可以放到仓库A,也可以放到仓库B,但不能同时放入A和B3. 仓库不属于任何商 ...

  3. Oracle 用户管理与权限控制

    Oracle 用户管理与权限控制 oracle数据库的权限系统分为系统权限与对象权限.系统权限( database system privilege )可以让用户执行特定的命令集.例如,create ...

  4. 【密码】Oracle用户密码系列

    [密码]Oracle用户密码系列 1.1  BLOG文档结构图 1.2  前言部分 1.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识, ...

  5. oracle用户创建及权限设置及表空间

    建立表空间: create tablespace portx_data datafile 'D:\oracle_data\portx.dbf' size 50m autoextend on next ...

  6. 【oracle】解锁oracle用户,unlock

    解除oracle用户的锁定状态,例如oracle数据库建立测试实例时默认建立的scott用户,一开始是处于locked状态的,现在我们需要将其解锁,步骤如下: (1)在cmd中登录sqlplus,例如 ...

  7. oracle 用户的管理<二>

    oracle 用户的管理 创建用户 概述:在 oracle 中要创建一个新的用户使用 create user 语句,一般是具有 dba(数据库管理员)的权限才能使用. create user 用户名 ...

  8. Oracle用户、权限、角色管理(转)

    http://blog.csdn.net/junmail/article/details/4381287 Oracle 权限设置一.权限分类:系统权限:系统规定用户使用数据库的权限.(系统权限是对用户 ...

  9. oracle用户创建及权限设置

    权限: create session create table unlimited tablespace connect resource dba 例: #sqlplus /nolog SQL> ...

随机推荐

  1. Server from URL

    在你做网页时,如果网页需要运行ActiveX或脚本,并且他们位于客户端以外的地方, 那么可以添加这个注释语句,IE当然不会不理他, IE会按照他指出的URL去找脚本的位置. 这句话的作用是让Inter ...

  2. vijos1056题解

    题目: 桌面上放了N个平行于坐标轴的矩形,这N个矩形可能有互相覆盖的部分,求它们组成的图形的面积. 在翻题目时,偶然发现了这道标号为WA的题目. 原来,以前我把一中培训的代码发了上去,却WA了4个点, ...

  3. spring框架-spring.xml配置文件

    运行的时候会报错的,因为写到<bean>标签里面去了,肯定会报错的,要记得把注释删掉,就不会报错了,这样写注释是为了方便下次自己看. <?xml version="1.0& ...

  4. POJ 3041 Asteroids / UESTC 253 Asteroids(二分图最大匹配,最小点匹配)

    POJ 3041 Asteroids / UESTC 253 Asteroids(二分图最大匹配,最小点匹配) Description Bessie wants to navigate her spa ...

  5. javascript中函数声明与函数表达式的区别

    javascript中声明函数的方法有两种:函数声明式和函数表达式.究竟他们用起来有什么区别呢? 区别如下: (1).以函数声明的方法定义的函数,函数名是必须的,而函数表达式的函数名是可选的. (2) ...

  6. zabbix实现邮件报警

    说明: Zabbix监控服务端.客户端都已经部署完成,被监控主机已经添加,Zabiix监控运行正常. 实现目的: 在Zabbix服务端设置邮件报警,当被监控主机宕机或者达到触发器预设值时,会自动发送报 ...

  7. electron 使用 node-ffi C++ 动态链接库(DLL)

    一.为什么需要使用DLL 需要使用系统 API 操作或扩展应用程序: 需要调用第三方的接口API,特别是与硬件设备进行通信,而这些接口 API 基本上都是通过 C++ 动态链接库(DLL)实现的: 需 ...

  8. Epii.js 一个极其简单的Js模板引擎

    Epii.js 简约而不简单的Js模板引擎 Epii.js 简约而不简单的JavaScript模板引擎 # 特性 一个轻量级模板引擎,可快速实现数据与ui绑定(数据变动,UI自动变动),快速实现事件绑 ...

  9. 【SignalR学习系列】1. SignalR理论介绍

    什么是SignalR? ASP.NET SignalR 是一个让 ASP.NET开发者可以简单地给自己的程序添加即时通讯功能的开发库.即时通讯功能可以直接从服务器端给在线的客户端发送数据,而不用等待客 ...

  10. HDOJ2003-求绝对值

    Problem Description 求实数的绝对值.   Input 输入数据有多组,每组占一行,每行包含一个实数.   Output 对于每组输入数据,输出它的绝对值,要求每组数据输出一行,结果 ...