当前位置:首页 > 开发 > 数据库 > 正文

Linux Oracle中常遇到的一些问题及命令总结

发表于: 2015-07-08   作者:超声波   来源:转载   浏览:
摘要: 1.linux更改主机名   (1)#hostname oracledb    临时修改主机名 (2) vi /etc/sysconfig/network   修改hostname (3) vi /etc/hosts        修改IP对应的主机名   2.linux重启oracle实例及监听的各种方法 (注意操作的顺序应该是先监听,后数据库实例) &nbs

1.linux更改主机名

 

(1)#hostname oracledb    临时修改主机名

(2) vi /etc/sysconfig/network   修改hostname

(3) vi /etc/hosts        修改IP对应的主机名

 

2.linux重启oracle实例及监听的各种方法

(注意操作的顺序应该是先监听,后数据库实例)

 

方法1:

 

用root以ssh登录到linux,打开终端输入以下命令:

 

cd $ORACLE_HOME   #进入到oracle的安装目录 
dbstart           #重启服务器 
lsnrctl start     #重启监听器 

 

方法2:

 

Sql代码

 

cd $ORACLE_HOME/bin   #进入到oracle的安装目录 
./dbstart             #重启服务器 
./lsnrctl start       #重启监听器

 

方法3:

 

(1) 以oracle身份登录数据库,命令:su – oracle

(2) 进入Sqlplus控制台,命令:sqlplus /nolog

(3) 以系统管理员登录,命令:connect / as sysdba

(4) 启动数据库,命令:startup

(5) 如果是关闭数据库,命令:shutdown immediate

(6) 退出sqlplus控制台,命令:exit

(7) 进入监听器控制台,命令:lsnrctl

(8) 启动监听器,命令:start

(9) 退出监听器控制台,命令:exit

(10) 重启数据库结束

 

方法4:(自已写脚本)

 

1)启动脚本(dbstart.sh)

 

lsnrctl start
sqlplus /nolog <<EOF
connect / as sysdba
startup;
exit
EOF

 

$sh dbstart.sh 即可

 

2)关闭脚本(dbstop.sh)

  

lsnrctl stop
sqlplus /nolog <<EOF
connect / as sysdba
shutdown immediate;
exit
EOF

 

$sh dbstop.sh 即可

 

小结:

linux中启动oracle主要分两步:一个是启动监听器,一个是启动实例(一般都忘记了这一步),具体命令如下:

 

1.进入oracle根目录
cd $ORACLE_HOME/bin
 
2.进入监听
./lsnrctl

3.启动监听器
start

4.退出监听
exit

5.进入sqlplus
sqlplus /nolog

6.使用管理员连接
connect as sysdba

7.启动ORACLE实例
startup

 

 

3.lsnrctl status命令结果The listener supports no services这一问题解决办法

 

问题现象如下:

[oracle@oracledb admin]$ lsnrctl status
 
LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-JUL-2015 05:00:53
 
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                08-JUL-2015 04:35:53
Uptime                    0 days 0 hr. 24 min. 59 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/app/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
The listener supports no services
The command completed successfully

 

首先需要知道我们可以通过netca来配置Listener动态监听,通过mgr来配置静态监听。

如果这两种方式都不好使,还有一个方法就是手动修改listener.ora文件,添加以下几行内容:

 

SID_LIST_LISTENER =  

(SID_LIST =  

  (SID_DESC =  

  (GLOBAL_DBNAME = orcl)

  (SID_NAME = orcl)

  )

)

 

然后重新加载一次监听就可以注册上实例了

 

[oracle@oracledb ~]$ lsnrctl reload

 

重新查看监听状态lsnrctl status

 

 LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 08-JUL-2015 05:05:41
 
Copyright (c) 1991, 2009, Oracle.  All rights reserved.
 
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=127.0.0.1)(PORT=1521)))
STATUS of the LISTENER
------------------------
Alias                     LISTENER
Version                   TNSLSNR for Linux: Version 11.2.0.1.0 - Production
Start Date                08-JUL-2015 04:35:53
Uptime                    0 days 0 hr. 29 min. 47 sec
Trace Level               off
Security                  ON: Local OS Authentication
SNMP                      OFF
Listener Parameter File   /opt/oracle/app/product/11.2.0/dbhome_1/network/admin/listener.ora
Listener Log File         /opt/oracle/app/diag/tnslsnr/oracledb/listener/alert/log.xml
Listening Endpoints Summary...
  (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
Services Summary...
Service "orcl" has 1 instance(s).
  Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...
The command completed successfully

 

注意"UNKNOWN"就表示是静态注册的,如果是"READY"则表示是动态注册的

 

总结:以上利用了手动修改配置静态监听的方法成功注册了Oracle实例,动态监听往往需要等实例启动后,过一段时间才会注册上,而静态监听则可以马上注册。而且一旦实例重启会造成动态监听暂时无效,有些版本的bug甚至会导致动态监听的注册就再也起不来了。所以我对于监听的观点是,尽量配置静态监听,这样就可以避免很多由监听带来的问题,诸如我们经常会碰到的几个ora error:ora-12541、ora-12514、ora-12154等,尤其是在RAC和DG中,一个监听的问题,往往会带来很大的麻烦,尤其需要引起大家的注意。

 

4.常用的两个命令查询数据库实例名和服务名

 

SQL> select instance_name from v$instance
 
INSTANCE_NAME
----------------
orcl
 
SQL> show parameter service_names
 
NAME                                 TYPE        VALUE 
------------------------------------ ----------- ------------------------------ 
service_names                        string      orcl

 

Linux Oracle中常遇到的一些问题及命令总结

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
tpn(taobao push notification)在使用redis计算消息未读数的过程中,遇到了一系列的问题,下面把这
在安装oracle客户端的时候出现了暂存路径缺失JRE问题 如图 解决方法是 参考解决方法: 打开: 我的电
(1) 安装grid软件,停止在38%很长时间不动,日志显示正常 解决方法: 由于是虚拟机安装,设置的内
通过itext生成pdf出现的问题,在JTable2PDF类中,当生成pdf中table的时,出现一个问题。 Cell cell1
需要开发1个类型sina下图中的多列AutoComplate的功能,在开发过程中一些JS问题的总结。 1、弹出层位
通过itext生成pdf出现的问题,在JTable2PDF类中,当生成pdf中table的时,出现一个问题。 Cell cell1
第一个问题:驱动名称错误 错误截图如下: 从错误提示可以看出,oracle少写了一个'a',手误对程序员
Eclipse遇到的一些问题汇总 1. 访问限制:由于对必需的库 C:\Program Files\Java\jre8\lib\rt.jar
安装SQLSERVER2012遇到的一些问题 先到MSDN我告诉你http://msdn.itellyou.cn/下载安装包,我每次都
1. git push origin master 时提示everything up to date: 我建立了一个分支Inverse,之后提交变成
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号