首页 > 代码库 > Oracle 11gR2_database的安装

Oracle 11gR2_database的安装

Oracle 11gR2_database的安装

前言:

l oracle安装路径和安装目录没有中文和空格,最好拖到d:根目录

l Windows用户名不要起中文,这是作为程序员的最基本的要求,否则出现各种环境错误

l Oracle需要固定ip的,电脑又经常性换网卡,ip所以我用虚拟机的nat,ip是固定的.

l 删除注册表

因为第一次安装时,出现故障是很小的,然多次安装,就要处理一些问题:

准备工作:

如果你以前装过Oracle数据库,而且安装目录要改变请先打开注册表编辑器里的:

HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\和

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Oracle11和它下面的几个

如果你没安装过Oracle产品的话在注册表里面的与Oracle有关的注册表全删了,如果你安装过Oracle产品,就找与Oracle数据库有关的注册便删了,如果你以前安装过Oracle而没有执行安装前准备的话,在配置数据库的时候会出现各式各样的错误。

l 安装oracle 11g系统最好是1G以上内存,硬盘至少需要4.5G空间。

l 至少环境在Linux Server release 5.3以上。

l win安装包

n win32_11gR2_database(服务端)

n win32_11gR2_client(客户端)

l linux安装包

n linux_11gR2_database(服务端)

n linux_11gR2_client(客户端)

1 win在windows下安装服务端
1.1安装win32_11gR2_database安装包

系统:xp,win7,win8.1,win10ltsb2016

Java版本可以选择最新的,可以使用,需要提前安装

版本选择:oracle 11gR2,32位,尽量不要选择64位.

http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html

技术分享

1.下载两个文件

win32_11gR2_database_1of2.zip

win32_11gR2_database_2of2.zip

2.选中两个文件,解压到当前文件夹

技术分享

3.运行

技术分享

技术分享

4.选择是

技术分享

技术分享

技术分享

技术分享

技术分享

数据库版本选择标准版

字符集选择AL32UTF8或者ZHS16GBK

全局数据库名orcl

密码xxx(根据自己的习惯设置一个不容易被攻破的密码)

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

默认锁定的账户:

SYSTEM

SYS

SCOTT-->改为不锁定,设置口令密码

HR-->改为不锁定,设置口令密码

技术分享

1.2 配置win下监听服务

选择开始菜单àOracle - OraDb11g_home1à配置和移植工具àNet Configuration Assistant

技术分享

先删除后添加

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

在windows下安装win32_11gR2_database完成

1.3 设置windows下oracle服务

l 进入开始菜单à控制面板à管理工具à服务

l 技术分享

l 查看oracle相关组件是否成功安装。

l 由于oracle非常大,如果每次启动计算机时都自动启动,那么计算机会很慢,而且资源也基本被oracle占尽。

l 把oracle的相关服务启动类型都由自动改为手动。

l 需要使用oracle的时候手动启动

技术分享

u 需要启动的两个服务

– OracleServiceORCL。

– OracleOraDb11g_home1TNSListener。

u 其他的都不需要启动

1.4 测试oracle,添加数据库用户

技术分享

在命令行输入

sqlplus /nolog

技术分享

进入sqlplus命令提示符,输入

conn /as sysdba

在sqlplus命令提示符下输入

create user dbuser1 identified by dbuser1;

(一定要以;号结尾)

(用户名可以自己随便取,例子中添加用户名为’dbuser1’,密码为’dbuser1’。 如果想修改用户密码执行alter user dbuser1 identified by newpasswd;。如果想删除该用户,可以执行drop user dbuser1;)

在sqlplus命令提示符下输入

grant connect,resource to dbuser1;

(一定要以;号结尾)

在sqlplus命令提示符下输入

quit;

退出sqlplus

用户dbuser1添加成功

技术分享

测试2:

cmd命令行输入:

cd \

sqlplus scott

连接到了sql了

输入:

select * from tab;

select * from dept;

select * from emp;

设置格式:

输入:

set linesize 120

select * from emp;

-->cmd的属性窗口设置:

屏幕缓冲区大小为120,窗口大小宽度为120

-->保存属性

所有的信息放在一页了

set pagesize 120

select * from emp;

1.5 安装win32_11gR2_client

一般来说oracle需要固定ip,所以我在虚拟机里面测试,我的电脑经常性自动获取ip地址,而且网段不一样,所以设置了NAT模式,如何设置固定ip,和差别,请看我的别的文章.

这里我设置好了我的网段:192.168.100.2

技术分享

技术分享

设置1:

技术分享

设置2:

技术分享

会自动生成这个

技术分享

à我安装的数据库的系统为ip: 192.168.100.200

1. 解压出来,安装

2. 技术分享

3. 技术分享

4. 技术分享

5. 技术分享

6. 技术分享

7. 技术分享

8. 技术分享

9. 配置服务器的监听服务à这是图形化配置监听服务

l Oracle - oradb11g_homel-->配置和移植工具-->Net Configuration Assistant

技术分享

技术分享

l 监听程序名:LISTENER

技术分享技术分享技术分享

技术分享

l 标准端口号1521

技术分享

技术分享

技术分享

l 配置本地网络服务名配置:

技术分享

技术分享

l 服务器名:orcl

技术分享

技术分享

l 设置主机名:192.168.100.200

技术分享

技术分享

技术分享

技术分享

à另外一种方案:采取配置文件(ip可以设置为127.0.0.1)

l ——修改 服务器oracle11g下的 listener.ora文件

C:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN\listener.ora

修改 2 处

第一处:在SID_LIST内部,增加SID_DESC描述,如下。

(SID_DESC =

(SID_NAME = orcl)

(ORACLE_HOME = c:\app\Administrator\product\11.2.0\dbhome_1)

(PROGRAM = extproc)

(ENVS = "EXTPROC_DLLS=ONLY:c:\app\Administrator\product\11.2.0\dbhome_1\bin\oraclr11.dll")

)

第二处:将下面的HOST的值修改成服务器的IP地址,如:

LISTENER =

(DESCRIPTION_LIST =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.200)(PORT = 1521))

)

)

l ——修改 同一目录下的 tnsnames.ora 文件

C:\app\Administrator\product\11.2.0\dbhome_2\NETWORK\ADMIN\tnsnames.ora 修改 2 处,都是IP

将文件中,两个HOST的IP值都修改成服务器的IP地址, 如:

LISTENER_ORCL =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.200 )(PORT = 1521))

......

ORCL =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.100.200)(PORT = 1521))

(CONNECT_DATA = http://www.mamicode.com/

(SERVER = DEDICATED)

(SERVICE_NAME = orcl)

)

)

l ——重新启动Oracle服务。

OracleServiceORCL 和 OracleOraDb11g_home2TNSListener

l ——打开Oracle SQL Developer客户端,链接数据库。

链接 → 右键“新建连接” → 链接名:任意写,用户名:scott,口令:xx,保存口令

→ 角色:default,链接类型Basic → 主机名:192.168.100.200,端口:1521,SID:orcl

→ 点击“测试” 状态: 成功 → 点击“连接”

l 测试oracle sql develop

技术分享

技术分享

技术分享

技术分享

1.6 安装win32_10gR2_client

技术分享

技术分享

技术分享

技术分享

技术分享

要是碰到如此问题

技术分享

自然也有解决方案

就把本机的环境变量先拷贝出来,留一个系统的环境变量值,再安装10g客户端,然后把环境变量再拷贝过去,尽量不要保证环境变量不要重复

技术分享

只留一个,把其他的放到txt中,然后弄完再拷贝回去

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

拷贝回去环境变量就可以了

技术分享

技术分享

技术分享

如果同时装10g和11g客户端:

技术分享

把11g的环境变量移动到最前边,(两个)

技术分享

技术分享

如果是其他系统,可以把这个复制到txt中,然后更改即可

测试没有问题:

技术分享

2 linux下安装服务端

重要说明:为防坑,及时创建虚拟机快照,安装oracle在linux,安装时会碰到太多的问题,故此在此我写了这么一篇。

我经过测试:CentOS-7-x86_64-Everything-1511,机器上安装不成功,会报错误,我没有解决,错误1如图所示:各种调整好了之后,在进入安装过程中,出现这种,其实一回车就可以进入,网上说:运行安装程序时使用 ./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0

看样子是语言包安装问题,弹出框没有显示,系统显示问题

技术分享

可是出现语言包是什么鬼,强制进入,选择时,比如说以管理员形式,出现安装需要多少g,可是没有任何显示。语言包我安装了好几次,都是成功的,偏偏出现这个故障。

正常图如下:

技术分享

2.1 安装linux下oracle服务器

操作系统采用CentOS-7-x86_64-DVD-1511

linux_11gR2_database_1of2.zip

linux_11gR2_database_2of2.zip

Oracle安装到/home/oralce_11目录下。

2.2 centos系统安装

采用vm12虚拟机

技术分享

技术分享

技术分享

技术分享

技术分享

这里切记,先提前创建文件夹,以备份和复制到别的机器上

技术分享

技术分享

技术分享

技术分享

技术分享

技术分享

设置200g或者500g,不要立即分配所以磁盘空间,

虚拟机虚拟出来的,里面有多少大小就有多大,设置小了,往大处扩展,不好调整

技术分享

技术分享

技术分享

技术分享

技术分享

等会就会进去到安装界面,无需按任意键

技术分享

技术分享

技术分享

设置固定ip:

技术分享

技术分享

设置1:

技术分享

设置2:

技术分享

会自动生成这个

技术分享

有可能需要提前设置

技术分享

开始安装

技术分享

技术分享

技术分享

技术分享

Centos7初次开机提示Initial setup of CentOS Linux 7

开机后提示以下信息

Initial setup of CentOS Linux 7 (core)
1) [x] Creat user 2) [!] License information
(no user will be created) (license not accepted)
Please make your choice from above [‘q’ to quit | ‘c’ to continue | ‘r’ to refresh]:

解决步骤如下:

1,输入【1】,按Enter键同意许可协议,
2,输入【2】,按Enter键阅读许可协议,
3,输入【q】,按Enter键退出,
4,输入【yes】,按Enter键确定,
5,重启之后即可进入图形登录界面

技术分享

或者进入:

技术分享

安装vmtools,在此快照

2.2.1 centos启动sudo方法

CentOS默认不启用sudo,且可以直接用超级管理员身份登录服务器。ubuntu这方面做得比较好,为了安全,减小误操作带来的损失,还是推荐启用sudo。

1、添加sudo用户

执行visudo命令,找到:  root    ALL=(ALL) ALL

在下面增加: fjs ALL=(ALL) ALL

技术分享

一般来说到此就可以了,刚安装完系统,最好重启一下

技术分享

/*à备用
2、禁止root用户登录

编辑/etc/ssh/sshd_config
将 PermitRootLogin yes改为 PermitRootLogin no

3、重启sshd: service sshd reload

*/ ?

测试联网状态: ping www.baidu.com

技术分享

2.2.2网络畅通时à更新系统:

fjs@fjs 桌面]$ sudo yum -y update && yum -y upgrade

安装软件: yum install vim gcc gcc-c++ openssh-server vsftpd lftp tree lrzsz binutils compat-libstdc++-33 elfutils-libelf elfutils-libelf-devel elfutils-libelf-devel-static glibc glibc-common glibc-devel glibc-headers glibc-static kernel-headers pdksh libaio-devel libaio libgcc libgomp libstdc++ libstdc++-devel make sysstat numactl-devel unixODBC unixODBC-devel

关闭防火墙:直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

systemctl status firewalld.service #再次查看防火墙状态,发现已关闭

技术分享

2.3.配置oracle数据库的安装环境

官方参考:

http://www.oracle.com/technetwork/cn/articles/hunter-rac11gr2-iscsi-2-092412-zhs.html#13

1. 创建运行oracle数据库的系统用户和用户组,登陆root用户

[fjs@localhost 桌面]$ su root

密码:

ABRT 已检测到 ‘1‘ 个问题。预了解详细信息请执行:abrt-cli list

解决方案: 使用root账号,然后输入abrt-cli list --since 1440470310即可查询出错的原因和解决的方法,输入abrt-auto-reporting enabled,即可解决问题。

[root@localhost 桌面]# abrt-cli list --since 1440470310

id 1421d181c45af1588b3912dadde0d0f69c01fdc3

reason: nm.py:760:nm_device_setting_value:SettingsNotFoundError: SettingsNotFoundError(‘virbr0‘,)

time: 2016年11月04日 星期五 08时02分07秒

cmdline: python -m initial_setup

package: initial-setup-0.3.9.30-1.el7.centos

uid: 0 (root)

count: 1

Directory: /var/spool/abrt/Python-2016-11-04-08:02:07-1899

已禁用自动报告功能。请考虑启用该功能,方法是

作为有 root 特权的用户使用命令 ‘abrt-auto-reporting enabled‘

[root@localhost 桌面]# abrt-auto-reporting enabled

[root@localhost 桌面]# exit

exit

[fjs@localhost 桌面]$ su root

密码:

2.创建运行oracle数据库的系统用户和组,作为软件安装和支持组的拥有者

切换到root

[root@fjs ~]# su root

创建用户组oinstall

[root@fjs ~]# groupadd oinstall

创建用户组dba

[root@fjs ~]# groupadd dba

创建oracle用户,并加入到oinstall和dba用户组

[root@fjs ~]# useradd -g oinstall -g dba -m oracle

[root@fjs ~]# passwd oracle

更改用户 oracle 的密码 。

新的 密码:

无效的密码: 密码少于 8 个字符

重新输入新的 密码:

passwd:所有的身份验证令牌已经成功更新。

查看新建的oracle用户

[root@fjs ~]# id oracle

uid=1001(oracle) gid=1002(dba) 组=1002(dba)

3.创建oracle数据库安装目录:

[root@fjs ~]# mkdir -p /home/oracle_11/app

[root@fjs ~]# chown -R oracle.oinstall /home/oracle_11/

[root@fjs ~]# chmod -R 755 /home/oracle_11/

4. 修改OS系统标识

oracle默认不支持CentOS系统安装,修改文件 /etc/RedHat-release 

[root@fjs home]# cat /proc/version

Linux version 3.10.0-327.el7.x86_64 (builder@kbuilder.dev.centos.org) (gcc version 4.8.3 20140911 (Red Hat 4.8.3-9) (GCC) ) #1 SMP Thu Nov 19 22:10:57 UTC 2015

[root@fjs home]# cat /etc/redhat-release

CentOS Linux release 7.2.1511 (Core)

[root@fjs home]# vi /etc/redhat-release

[root@fjs home]# cat /etc/redhat-release

redhat-7

[root@fjs home]#

5. 关闭selinux(需重启生效)

[root@localhost /]# vi /etc/selinux/config
[root@localhost /]# cat /etc/selinux/config
# This file controls the state of SELinux on the system.
# SELINUX= can take one of these three values:
#     enforcing - SELinux security policy is enforced.
#     permissive - SELinux prints warnings instead of enforcing.
#     disabled - No SELinux policy is loaded.
SELINUX=disabled   #此处修改为disabled
# SELINUXTYPE= can take one of three two values:
#     targeted - Targeted processes are protected,
#     minimum - Modification of targeted policy. Only selected processes are protected. 
#     mls - Multi Level Security protection.
SELINUXTYPE=targeted 

6.配置内核

编辑 /etc/sysctl.confàvim /etc/sysctl.conf 或者gedit /etc/sysctl.conf

添加:

fs.file-max = 6815744

fs.aio-max-nr = 1048576

kernel.shmall = 2097152

kernel.shmmax = 2147483648

kernel.shmmni = 4096

kernel.sem = 250 32000 100 128

net.ipv4.ip_local_port_range = 9000 65500

net.core.rmem_default = 4194304

net.core.rmem_max = 4194304

net.core.wmem_default = 262144

net.core.wmem_max = 1048576

技术分享

要使 /etc/sysctl.conf 更改立即生效,执行以下命令: sysctl –p

7. 对oracle用户设置限制,提高软件运行性能编辑

vim /etc/security/limits.conf或者gedit /etc/security/limits.conf

技术分享

在此位置添加

oracle soft nproc 2047

oracle hard nproc 16384

oracle soft nofile 1024

oracle hard nofile 65536

8. 编辑 /etc/profile

vim /etc/profile或者 gedit /etc/profile

技术分享

if [ $USER = "oracle" ]; then

if [ $SHELL = "/bin/ksh" ]; then

ulimit -p 16384

ulimit -n 65536

else

ulimit -u 16384 -n 65536

fi

fi

8. 编辑 /etc/pam.d/login

技术分享

session required /lib64/security/pam_limits.so

session required pam_limits.so

【注意:如果是X64的系统,那么这里就要用 /lib64/security/pam_limits.so,不然系统可能会在服务器上无法登录!】

10. 编辑 /home/oracle/.bash_profile

vim /home/oracle/.bash_profile 或者gedit /home/oracle/.bash_profile

技术分享

umask 022

ORACLE_BASE=/home/oracle_11/app

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

ORACLE_SID=orcl

PATH=$PATH:$HOME/bin:$ORACLE_HOME/bin

LD_LIBRARY_PATH=$ORACLE_HOME/lib:/usr/lib

LANG=C

export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH LD_LIBRARY_PATH LANG

10. 在图形界面下(在本机操作或者通过VNC远程操作) 以root身份打开另一个终端窗口

--这步至关重要,不执行这步在以oracle用户运行 # ./runInstaller时会启动不了图型安装界面 桌面

#xhost +

#xhost + localhost

在此快照一下

2.4安装oracle数据库

进入时选择汉语

技术分享

1.切换oracle用户,关闭防火墙:直接关闭防火墙

systemctl stop firewalld.service #停止firewall

systemctl disable firewalld.service #禁止firewall开机启动

12.上传安装包到oracle用户下à此时界面是英文的,不要紧

执行解压缩命令

unzip linux.x64_11gR2_database_1of2.zip

unzip linux.x64_11gR2_database_2of2.zip

13. 将下载的Oracle安装文件解压到Linux中,然后安装数据库 桌面

#su - oracle

#cd database/

#./runInstaller

运行安装程序时使用 ./runInstaller -jreLoc /usr/lib/jvm/jre-1.8.0

技术分享

看样子是语言包安装问题,弹出框没有显示,系统显示问题

你可以试试下一步,再esc下,截图如下

技术分享

注意这是英文界面不要更改,安装完再更改主界面为中文的

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 技术分享

l 如果点击匆忙,而又进不去下面的页面,请设置大一点的内存,比如4g

l 技术分享

l 技术分享

[oracle@fjs ~]$ su -

Password:

Last login: Sun Nov 6 09:27:32 CST 2016 on pts/0

[root@fjs ~]# . /home/oracle_11/oraInventory/orainstRoot.sh

Changing permissions of /home/oracle_11/oraInventory.

Adding read,write permissions for group.

Removing read,write,execute permissions for world.

Changing groupname of /home/oracle_11/oraInventory to dba.

The execution of the script is complete.

[root@fjs ~]# . /home/oracle_11/app/oracle/product/11.2.0/db_1/root.sh

技术分享

l 然后重启看到图形界面有可能是英文的,然后更改图形化界面,貌似改不过来.

编辑 /home/oracle/.bash_profile

L C_ALL=zh_CN.UTF8

export LC_ALL

2.5 数据库配置

oracle数据库需要固定ip:

1. 如果出现中文乱码,将.bash_profile文件倒数第二行LANG=C使用#注释。

2. 重启终端或者执行source .bash_profile

3. 启动Oracle数据库:sqlplus /nolog

4. 当看到 SQL> 提示后,输入:connect /as sysdba

提示 Connected to an idle instance.

5. 输入 show user 查看, 提示USER is "SYS"

6. 输入 startup(up前没有“空格”)启动数据库。

提示类似: ORACLE instance started.

Total System Global Area 780824576 bytes

Fixed Size 2217424 bytes

Variable Size 478153264 bytes

Database Buffers 297795584 bytes

Redo Buffers 2658304 bytes

Database mounted.

Database opened.

7. 输入 select * from scott.emp;可以查看scott用户下的emp表信息

8. Linux启动Listener服务

lsnrctl start/stop/status可以启动/停止/查看服务状态。

l lsnrctl start

l lsnrctl stop

l lsnrctl status

9. 使用scott用户连接数据库 sqlplus scott/tiger

scott用户的登录密码是tiger,也可以使用管理员登陆修改密码

登陆:sqlplus / as sysdba

改密码:alter user scott sys identified by 11; 将密码改成“11”

alter user scott identified by 11;

(如果提示用户被锁定,使用 alter user scott account unlock;解锁)

10. –>关闭Oracle数据库指令(一般开启就不关闭了):shutdown immediate

要是重复开启就保下面的错误

ORA-01081: cannot start already-running ORACLE - shut it down first

11. 假设登陆connect scott,要是密码之类的错误。

alter user scott identified by 11;

(如果提示用户被锁定,使用 alter user scott account unlock;解锁)

报错1:[oracle@fjs ~]$

[oracle@fjs ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-NOV-2016 11:28:53

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Starting /home/oracle_11/app/oracle/product/11.2.0/db_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.1.0 - Production

System parameter file is /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Log messages written to /home/oracle_11/app/diag/tnslsnr/fjs/listener/alert/log.xml

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

Listening on: (DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fjs)(PORT=1521)))

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 06-NOV-2016 11:28:59

Uptime 0 days 0 hr. 0 min. 16 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File /home/oracle_11/app/diag/tnslsnr/fjs/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=fjs)(PORT=1521)))

The listener supports no services

The command completed successfully

这样启动后远程连接会报错:

oracle ORA-12514:TNS:listener does not currently know of service requested in connect descriptor

问题原因:数据库实例没注册到listener
解决方法一:

在listener.ora里面添加了一行

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(SID_NAME = orcl)

)

)

注:里面的orcl根据你安装的数据库实例名确定,我用此法解决了这个报错。

技术分享

解决方法二:

登录数据库:

$sqlplus / as sysdba

显示服务名:

SQL>show parameter service_names

强制注册服务:

SQL>alter system register;

查看监听状态:

$lsnrctl status

错误2:

[oracle@fjs ~]$ lsnrctl start

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-NOV-2016 11:34:46

Copyright (c) 1991, 2009, Oracle. All rights reserved.

TNS-01106: Listener using listener name LISTENER has already been started

先停止后启动

[oracle@fjs ~]$ lsnrctl stop

LSNRCTL for Linux: Version 11.2.0.1.0 - Production on 06-NOV-2016 11:34:59

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

The command completed successfully

[oracle@fjs ~]$ lsnrctl start

Services Summary...

Service "orcl" has 1 instance(s).

Instance "orcl", status UNKNOWN, has 1 handler(s) for this service...

The command completed successfully

错误3:如果:lsnrctl start 的时候出现类似如下错误:

TNS-12537: TNS:connection closed

TNS-12560: TNS:protocol adapter error

TNS-00507: Connection closed

Linux Error: 29: Illegal seek

查看主机名,会发现/etc/hosts内localhost指向多个地址,引发监听冲突

解决方法:

造成此原因的之一原因是自动获取的ip,有可能就会造成这个原因,改为静态ip就可以了。

1. sudo hostname oracle 修改主机名为oracle

2. 将服务器所在机器(本机)的IP:192.168.1.8 写入 /etc/hosts

格式如下:192.168.1.8 oracle(与127.0.0.1行并列)

3. 修改/etc/sysconfig/network这个文件内

hostname = oracle

——————正常启动提示信息类似如下:——————

Copyright (c) 1991, 2009, Oracle. All rights reserved.

Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))

STATUS of the LISTENER

------------------------

Alias LISTENER

Version TNSLSNR for Linux: Version 11.2.0.1.0 - Production

Start Date 28-APR-2015 21:49:50

Uptime 0 days 0 hr. 0 min. 18 sec

Trace Level off

Security ON: Local OS Authentication

SNMP OFF

Listener Parameter File /home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin/listener.ora

Listener Log File /home/oracle_11/app/diag/tnslsnr/oracle/listener/alert/log.xml

Listening Endpoints Summary...

(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1521)))

(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

错误4:如果再启动服务的过程中出现如下错误::

ora-12560 协议适配器错误

ora-12514 监听进程不能解析在连接描述符中给出的 SERVICE_NAME

解决方法如下:

1. 进入该目录:

[oracle@localhost admin]$ pwd

/home/oracle_11/app/oracle/product/11.2.0/db_1/network/admin

2. 找到listener.ora的文件,并打开。

3. 在文件中增加如下代码:

SID_LIST_LISTENER =

(SID_LIST =

(SID_DESC =

(GLOBAL_DBNAME = orcl)

(ORACLE_HOME = /home/oracle_11/app/oracle/product/11.2.0/db_1)

(SID_NAME = orcl)

)

)

ADR_BASE_LISTENER = /home/oracle_11/app

(此行是listener.ora文件原有的。放在这里用来提示新增代码的位置。)

Oracle 11gR2_database的安装