Oracle新建数据库总结

1.      创建ORACLE实例以后,需要先配置ORACLE的环境变量,我们通过su - oracle 切换用户至oracle(用户名为oracle)进行配置环境变量:~/.bash_profile,其中~代表当前用户的$HOME

EXPORTORACLE_HOME=/oracle/app/oracle/product/11.2.0/dbhome_1/

EXPORT ORACLE_SID=SGSORCL,


2.      配置oracle的监听listener.ora(如果没有,需要我们自己手动创建),一般在

[oracle@oracle admin]$ cat listener.ora 
LISTENER =
  (DESCRIPTION_LIST =
    (DESCRIPTION =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 172.31.2.121)(PORT = 1521))
      (ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
    )
  )


SID_LIST_LISTENER =
(SID_LIST =
  (SID_DESC =
  (GLOBAL_DBNAME = gzyhdb)
  (SID_NAME = SGSORCL)
  )
)

ADR_BASE_LISTERNER = /oracle/app/oracle


3.      分别通过命令dbstart和lsnrctl start重启数据库和重启监听器(1521端口)

   一般默认路径是在$ORACLE_HOME/bin目录下


4.      开始创建用户数据库(包括用户表空间):

使用oracle用户登录,进入sqlplus,进行操作:

$su - oracle


 [oracle@localhost ~]$ sqlplus /nolog

SQL*Plus: Release 11.2.0.3.0 Production on 星期四 5月 28 11:33:06 2015

Copyright (c) 1982, 2011, Oracle.  All rights reserved.

SQL> conn system/system

Connected.

SQL>

--创建数据表空间

SQL> create tablespace MTLDATA

datafile '/oracle/oradata/orcl/MTLDATA.dat'

size 10240m;

--创建索引表空间

SQL> create tablespace MTLINDEX

datafile '/oracle/oradata/orcl/MTLINDEX.dat'

size 1024 m;

--创建临时表空间

SQL> create temporary tablespace MTLTEMP

tempfile '/oracle/oradata/orcl/MTLTEMP.dat'

size 2048m;

 

--创建用户并指定表空间

SQL> create user gzyhdb identified by gzyhab

default tablespace MTLDATA

temporary tablespace MTLTEMP;

--给用户授予权限

SQL> grant connect,resource to gzyhdb;

 

 

 

5.      在一切貌似顺利的时候,发现通过服务器上的sqlplus工具,connect可以连接成功,但是通过其他电脑上的oracle客户端(navicat或者plsql)都不能连接成功,客户端提示no listener(以下命令都需要用oracle的用户名下启动,除了配置hostname之外。)

提示:TNS-12541: TNS:no listener错误 ,通过上网查发现一般是监听配置不对,我追加了红框内的如下内容,指明了GLOBAL_DBNAME,和SID_NAME的值。


配置好后再次重启监听器时(通过lsnrctlstop关闭,通过lsnrctl start开启),又出现以下错误:

TNS-12547: TNS:lost contact

 TNS-12560: TNS:protocol adapter error

 TNS-00517: Lost contact

  Linux Error: 104: Connection reset by peer

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

TNS-12541: TNS:no listener

 TNS-12560: TNS:protocol adapter error

 TNS-00511: No listener

  Linux Error: 111: Connection refused

 

这个错误一般是由我们的服务器DNS没有配置127.0.0.1的域名解析,输入命令:vi /etc/hosts,并进行编辑并追加:127.0.0.1 localhost localhost.localdomain

 

6. 继续重启,发现还是不成功:

[oracle@redhat6 bin]$ ./lsnrctl start

LSNRCTL for Linux: Version 11.2.0.3.0 -Production on 15-MAY-2017 20:03:00

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

Starting/oracle/app/oracle/product/11.2.0/dbhome_1/bin/tnslsnr: please wait...

TNSLSNR for Linux: Version 11.2.0.3.0 -Production

System parameter file is /oracle/app/oracle/product/11.2.0/dbhome_1/network/admin/listener.ora

Log messages written to/oracle/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml

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

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

 

Connecting to(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=172.31.2.121)(PORT=1521)))

 

 

发现一只在connecting....,并通过提示查看日志文件(日志文件目录:

Log messages written to/oracle/app/oracle/diag/tnslsnr/oracle/listener/alert/log.xml),日志最后打印如下:

 

 type='UNKNOWN' level='16' host_id='redhat6.5'

 host_addr='127.0.0.1'>

 

日志中显示:host_id为'redhat6.5',输入命令验证:hostname,输出了:redhat6.5,

看来找到问题原因了。切换回root用户进行修改/etc/sysconfig/network,先将原来的主机名称从:redhat6.5改为其他名称(我们这里取名为oracle,此oracle与系统用户名oracle没有任何关系,也完全可以取名为abc)

 

此时如果不重启,系统不会生效,我们对它进行强制生效(通过命令:hostname=oracle)

然后再修改DNS配置文件,vi /etc/hosts,将172.31.2.121的主机名改为oracle(即netwok中的HOSTNAME;如果取名为abc,则需要将oracle改为abc),然后再重启监听器, ./lsnrctl start,启动成功。

 

7. 对于HOSTNAME和/etc/hosts的区别和解释,自己先网上查明。对于我们本案例,

Hostname:是给数据库服务器Oracle的listener用的,它通过系统的HOSTNAME(我们配置的名字是oracle),找到/etc/hosts下对应的IP为172.31.2.121并解析。

 

错误的日志输出:

 type='UNKNOWN' level='16' host_id='oracle'

 host_addr='UNKNOWN'>

 

配置HOSTNAME和/etc/hosts之后的正确日志输出:

 type='UNKNOWN' level='16' host_id='oracle'

 host_addr='172.31.2.121'>

 Listening on:

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

 

 

上述蓝色的HOST就是我们listener.ora中配置的HOST地址。

 

你可能感兴趣的:(Oracle新建数据库总结)