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