centos平台搭建Oracle11g数据库+远程连接
经过了几天的摸爬滚打,终于成功的能在宿主机上(window10上的Plsql)去成功的连上虚拟机上的centos数据库
下面将自己的经验分享给大家:
具体的centos7、centos6上安装Oracle11g的过程可以见下面:
- linux安装Oracle11G
- 0、下载Orcle11G
- 1、上传文件到服务器或虚拟机的/install目录下
- 2、解压文件到当前目录:
- 3、关闭selinux
- 4、关闭防火墙
- 5、安装Oracle 11g依赖包
- 6、添加安装用户和用户组
- 7、修改内核参数配置文件
- 8、修改用户的限制文件
- 9、创建安装目录和设置文件权限
- 10、设置oracle用户环境变量
- 11、编辑静默安装响应文件
- 12、根据响应文件静默安装Oracle11g
- 13、以静默方式配置监听 ----------------->自己在这以及下面的位置出了问题:自己一定要注意(并不是说这种方式有 问 题,只是自我感觉从这之后在图形界面创建一个数据库实例以及去配置监听 不 会走那么多的弯路,而且配置的监听也更容易生效!!!!)
- 14、以静默方式建立新库,同时也建立一个对应的实例
- 15、命令行模式静默删除
自己的错误点总结:对于使用上面的方式在第13步不知道是否是出错了,但是到了14步,自己按照里面在设置新的数据库实例的一些参数的时候,有一些没有设置,比如SID \GDBNAME的值好像都没有设置对,所以在未发现之前,所有的配置都配置完毕之后出了下面的一大堆的问题(
问题:1、自己在centos上可以用sqlplus sys/自己的密码 as sysdba 能正常的登录到数据库中,但是用在sys登录后创建的用户newuser登录就登不上(登录语句:sqlplus newuser/自己的密码@orcl), @后面的orc是自己创建数据库实例的时候起的名称,也是SID,一般自己配置的SID和Global Database Name
配置的数据库如下图中的orcl
2、用sqlplus newuser/newuser@orcl248登录不成功,但是用sqlplus newuser/newuser登录能登上,是因为@orcl的时候,能成功的连上,因为此时不加@数据库实例ID的话,默认的是连接到默认的库上的,而当加上@orcl248之后,是想通过orcl248(连接描述符)这个连接串的名称去连接到特定的那个数据库(特定的数据库指:SERVICE_NAME:服务器服务名称 也就是下面的orcl)
tnsnames.ora中的内容
客户端为了远程连接服务器,必须先和服务器上的监听进程联络,Oracle通过tnsnames.ora文件中的连接描述符来说明连接信息。
名词解释:
ORCL248:连接描述符
address_list:表示客户端经由多种协议与一台或多台服务器连接。在上面的例子中表示客户端使用TCP协议与服务器端连接。
PROTOCOL:使用的协议
HOST :是TCP/IP协议使用的服务器IP地址。
PORT :是TCP/IP使用的端口地址。
CONNECT_DATA: 连接数据库的连接配置
SERVER=DEDICATED: 表示用专用服务器连接oracle数据库
SERVICE_NAME:服务器服务名称
3、自己在window宿主机上通过PLSQL dev登录的时候,出现错误:window连接centos上的oracle'出现ora12514:tns监听程序当前无法识别
解决的办法可以参考:
解决windows7无法连接CentOS7系统中oracle问题:ORA-12514 TNS 监听程序当前无法识别(https://blog.csdn.net/u010915017/article/details/80430386)
试过这些东西方法之后,自己的问题还是没有解决:接着请教了大神,说是先将现有的database(orcl248)删除
,之后再去重新创建一个新的oracle实例sid为orcl,因为之用的是上面呢的 教程 linux安装Oracle11G 去静默建立的database实例和静默配置的监听,但是出了问题(初步鉴定为自己的第 12、根据响应文件静默安装Oracle11g 中设置出了错,
)
第二次重新的按照centos 7和Oracle11g,直接从0步走到了14步,但是还是本地的sys可以连、本地sys登录上之后创建的用户newuser不加@orcl可以连,加了不可以连 远程还是不可以连。
自己的问题的成功的解决
最终自己将数据库实例orcl248删除,之后通过带gnome图形界面的centos 7 调出图形界面(
Oracle创建新数据库,新用户,以及连接此用户的方法心得 https://blog.csdn.net/jiaruochao/article/details/52128719
)
用终端输入dbca调出下面的那个界面
成功的以创建 了一个oracle数据库实例
在创建的过程中遇见的问题:由于默认的数据库的文件存储的位置一般是选择图中是选项,但是自己当选了默认的之后,再后面的步骤中一直无法走动,提示空间至少要1080但是只有985MB,所以自己返回又直接的将数据文件的存储的位置更改为 用户的/ 也就是根目录下,之后可以到了最后的界面
自己解锁一个普通用户
自己在带gonme的centos的终端下操作:
使用netca命令调出listener.ora配置文件的配置界面
[root@localhost admin]# netca Oracle Net Services Configuration:
Stopping Oracle Net Listener:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl stop LISTENER
Listener Control complete.
Listener stopped successfully.
Deleted listener: LISTENER
Configuring Listener:LISTENER
Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0
调出的界面:
之后先把已经存在的listener监听delete了,
已经存在的listener.ora中的内容为
[root@localhost admin]# more listener.ora
# listener.ora Network Configuration File: /data/oracle/product/11.2./network/admin/li
stener.ora
# Generated by Oracle configuration tools. LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = ))
)
) ADR_BASE_LISTENER = /data/oracle
用下面的netca调出的界面更改之后 的内容为:
netca调出的界面:这个是针对listener.ora文件进行配置更改,删除,增加的一个管理界面
[root@localhost admin]# more listener.ora
# listener.ora Network Configuration File: /data/oracle/product/11.2.0/network/admin/li
stener.ora
# Generated by Oracle configuration tools. LISTENER =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.102)(PORT = 1521))
) ADR_BASE_LISTENER = /data/oracle
当用这个管理界面配置完毕之后,不用lsnrctl stop、lsnrctl start去重新的启动监听,因为会自动的重启,见上面的netca调出的界面保存之后显示
[root@localhost admin]# netca Oracle Net Services Configuration:
Stopping Oracle Net Listener:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl stop LISTENER
Listener Control complete.
Listener stopped successfully.
Deleted listener: LISTENER
Configuring Listener:LISTENER
Listener configuration complete.
Oracle Net Listener Startup:
Running Listener Control:
/data/oracle/product/11.2.0/bin/lsnrctl start LISTENER
Listener Control complete.
Listener started successfully.
Oracle Net Services configuration successful. The exit code is 0
之后直接在centos的终端下可以成功的连接到orcl这个数据库实例了
成功的结果如下:这个相当于在本地的客户端上去连接指定的orcl数据库
之后在window10远程客户端连接centos上的orcl数据库
具体的tnsnames.ora文件
xnjCentos1=
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.27.102)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl) )
)
远程登录成功
下面的转自:https://www.cnblogs.com/mmzs/p/9033112.html
作者 :淼淼之森
纯的命令行的centos 7 安装Oracle11g的过程
、0、下载Orcle11G
说明一下:
[root@myYUn install]#中的myYUn
等价于
[root@iz2f570bi1k56uz install]#中的iz2f570bi1k56uz;
这是为了界面效果调整的,但是有些没调整到,理解一哈。
1、上传文件到服务器或虚拟机的/install目录下
[root@myYUn install]# rz –y
如果rz –y命令不能使用,可用如下方法解决:
yum install lrzsz -y
2、解压文件到当前目录:
[root@myYUn install]# unzip linux.x64_11gR2_database_1of2.zip
[root@myYUn install]# unzip linux.x64_11gR2_database_2of2.zip
如果unzip命令不能使用,依次执行如下命令:
yum list | grep zip/unzip yum install zip yum install unzip
将解压后的文件夹直接移动到/software目录下:
[root@myYUn install]# mv database/ /software/
[root@myYUn install]# cd /software
[root@myYUn install]# ll
3、关闭selinux
[root@myYUn software]# vim /etc/selinux/config
设置SELINUX=disabled
[root@myYUn software]# setenforce 0
4、关闭防火墙
[root@myYUn software]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
[root@myYUn software]# getconf LONG_BIT
64
如果是6及以下:
[root@myYUn software]# service iptables stop
[root@myYUn software]# service iptables status
[root@myYUn software]# chkconfig iptables off
如果是centenOS7:
[root@myYUn software]# systemctl restart firewalld.service
[root@myYUn software]# systemctl list-unit-files|grep firewalld.service
firewalld.service disabled
[root@myYUn software]# systemctl disable firewalld.service
5、安装Oracle 11g依赖包
[root@myYUn software]# yum install gcc make binutils gcc-c++ compat-libstdc++-33elfutils-libelf-devel elfutils-libelf-devel-static ksh libaio libaio-develnumactl-devel sysstat unixODBC unixODBC-devel pcre-devel –y
6、添加安装用户和用户组
[root@myYUn software]# groupadd oinstall
[root@myYUn software]# groupadd dba
[root@myYUn software]# useradd -g oinstall -G dba oracle
[root@myYUn software]# passwd oracle
Changing password for user oracle.
New password:
BAD PASSWORD: The password is shorter than 8 characters
Retype new password:
passwd: all authentication tokens updated successfully.
[root@myYUn software]# id oracle
uid=1001(oracle) gid=1001(oinstall) groups=1001(oinstall),1002(dba)
7、修改内核参数配置文件
[root@myYUn software]# vim /etc/sysctl.conf
在末尾添加以下内容:

fs.aio-max-nr = 1048576
fs.file-max = 6815744
kernel.shmall = 2097152
kernel.shmmax = 1073741824
kernel.shmmni = 4096
kernel.sem = 250 32000 100 128
net.ipv4.ip_local_port_range = 9000 65500
net.core.rmem_default = 262144
net.core.rmem_max = 4194304
net.core.wmem_default = 262144
net.core.wmem_max = 1048576

查看是否成功写进/etc/sysctl.conf文件中:
[root@myYUn software]# sysctl -p
其中kernel.shmmax = 1073741824为本机物理内存(2G)的一半,单位为byte。
8、修改用户的限制文件
修改/etc/security/limits.conf文件:
[root@myYUn software]# vim /etc/security/limits.conf
在末尾添加以下内容:
oracle soft nproc 2047
oracle hard nproc 16384
oracle soft nofile 1024
oracle hard nofile 65536
oracle soft stack 10240
修改/etc/pam.d/login文件:
[root@myYUn software]# vim /etc/pam.d/login
在末尾添加以下内容:
session required /lib64/security/pam_limits.so
session required pam_limits.so
修改/etc/profile文件:
[root@ myYUn software]# vim /etc/profile
在末尾添加以下内容:

#oracle配置
if [ $USER = "oracle" ]; then
if [ $SHELL = "/bin/ksh" ]; then
ulimit -p 16384
ulimit -n 65536
else
ulimit -u 16384 -n 65536
fi
fi

9、创建安装目录和设置文件权限
[root@myYUn software]# mkdir -p /data/oracle/product/11.2.0
[root@myYUn software]# mkdir /data/oracle/oradata
[root@myYUn software]# mkdir /data/oracle/inventory
[root@myYUn software]# mkdir /data/oracle/fast_recovery_area
[root@myYUn software]# chown -R oracle:oinstall /data/oracle
[root@myYUn software]# chmod -R 775 /data/oracle
10、设置oracle用户环境变量
首先切换到oracle用户下:
[root@myYUn software]# su -l oracle
[oracle@myYUn ~]$ vim .bash_profile
在末尾添加如下内容:
ORACLE_BASE=/data/oracle
ORACLE_HOME=$ORACLE_BASE/product/11.2.0
ORACLE_SID=orcl
PATH=$PATH:$ORACLE_HOME/bin
export ORACLE_BASE ORACLE_HOME ORACLE_SID PATH
注意,标红处必须与创建的数据库实例名称一致,否则数据库启动后无法访问。第一次配置完记得source一下。
[oracle@myYUn ~]$ source .bash_profile
11、编辑静默安装响应文件
复制安装文件夹response到当前oracle用户的家目录下:
[oracle@myYUn ~]$ cp -R /software/database/response/ .
[oracle@myYUn ~]$ cd response/
[oracle@myYUn response]$ vim db_install.rsp
需要设置的选项如下:
oracle.install.option=INSTALL_DB_SWONLY
ORACLE_HOSTNAME=CentOS
UNIX_GROUP_NAME=oinstall
INVENTORY_LOCATION=/data/oracle/inventory
SELECTED_LANGUAGES=en,zh_CN
ORACLE_HOME=/data/oracle/product/11.2.0
ORACLE_BASE=/data/oracle
oracle.install.db.InstallEdition=EE
oracle.install.db.DBA_GROUP=dba
oracle.install.db.OPER_GROUP=dba
DECLINE_SECURITY_UPDATES=true
12、根据响应文件静默安装Oracle11g
[oracle@myYUn response]$ cd /software/database/
[oracle@myYUn database]$ ./runInstaller -silent -responseFile /home/oracle/response/db_install.rsp -ignorePrereq
如果执行以上命令出错,会提示有参数格式,按照提示参数格式修改修改即可,一般是由于word中的字体、符号格式复制到客户端命令行后不一致引起,修改即可。
楼主遇到了交换空间不足的问题:
解决方案如下(在root用户下执行):
[root@myYUn /]# free
[root@myYUn /]# dd if=/dev/zero of=swapfile bs=1024 count=500000
500000+0 records in
500000+0 records out
512000000 bytes (512 MB) copied, 1.67013 s, 307 MB/s
[root@myYUn /]# mkswap swapfile
Setting up swapspace version 1, size = 499996 KiB
no label, UUID=c5e355eb-e73e-4aa0-b882-cb6d1f88e6bc
[root@myYUn /]# swapon swapfile
swapon: /swapfile: insecure permissions 0644, 0600 suggested.
[root@myYUn /]# free
开始Oracle在后台静默安装。安装过程中,如果提示[WARNING]不必理会,此时安装程序仍在后台进行,如果出现Successfully Setup Software,则安装程序已经停止了。
可以在以下位置找到本次安装会话的日志:/data/oracle/inventory/logs/installActions2018-05-13_02-14-55PM.log
可以切换终端执行top命令查看后台进程一直是在安装的,/data目录也在不断增大,
当出现以下提示时,代表安装成功:
按照要求执行脚本。
打开终端,退出到root身份登录,执行脚本:
[oracle@iZ2f570bi1k56uZ database]$ exit
logout
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/inventory/orainstRoot.sh
Changing permissions of /data/oracle/inventory.
Adding read,write permissions for group.
Removing read,write,execute permissions for world.
Changing groupname of /data/oracle/inventory to oinstall.
The execution of the script is complete.
[root@iZ2f570bi1k56uZ software]# sh /data/oracle/product/11.2.0/root.sh
Check /data/oracle/product/11.2.0/install/root_iZ2f570bi1k56uZ_2018-05-13_14-25-04.log for the output of root script
centos平台搭建Oracle11g数据库+远程连接的更多相关文章
- 【MongoDB】windows平台搭建Mongo数据库复制集(类似集群)(转)
原文链接:[MongoDB]windows平台搭建Mongo数据库复制集(类似集群)(一) Replica Sets(复制集)是在mongodDB1.6版本开始新增的功能,它可以实现故障自动切换和自 ...
- MySQL数据库远程连接
12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...
- CentOS 7 搭建PXC 数据库集群
CentOS 7 搭建PXC 数据库集群 PXC( Percona XtraDB Cluster ) 特点如下: 1.同步复制,事务要么在所有节点提交或不提交,保证了数据的强一致性. 2.多主复制,可 ...
- 【MongoDB】windows平台搭建Mongo数据库复制集(相似集群)(三)
关于windows平台搭建Mongo数据库复制集这个话题,我已经在前面写了两篇博客 第一篇: 怎样在windows平台搭建Mongo数据库复制集 第二篇: 数据同步和故障自适应測试 在本篇里面,咱们重 ...
- CentOS 6.0修改ssh远程连接端口
转自:系统运维 » CentOS 6.0修改ssh远程连接端口 实现目的:把ssh默认远程连接端口修改为2222 方法如下: 1.编辑防火墙配置:vi /etc/sysconfig/iptables ...
- sql server导出数据,本地数据库远程连接不上,怎样设置防火墙(自用)
控制面板——>系统安全——>windows防火墙——>高级设置 新建入站规则: 将一下两个应用 允许入站: D:\Program Files (x86)\Microsoft SQL ...
- SQL Server 2008 R2 开启数据库远程连接
今天要测试一个.net系统~因为配置的数据库是SQL Server~我就不得不安装SQL Server 2008 R2~现在我们就一起来看看SQL Server 2008 R2是如何打开远程连接端口1 ...
- MySQL数据库远程连接开启方法
有时候需要远程连接mysql数据库,默认是不可以的,可以参考下面的方法,解决下. 1.登陆自己机器的MySQL数据库:mysql -uroot -p密码 设置root用户可以任意IP访问,代码如下(可 ...
- Linux下设置允许myql数据库远程连接
系统环境: Linux ubuntu --generic #-Ubuntu SMP Thu Apr :: UTC x86_64 x86_64 x86_64 GNU/Linux 系统中已经安装好mysq ...
随机推荐
- 多个iframe,删除详情页时刷新同级iframe的table list
说明:在使用iframe开发时,经常遇到多个iframe之间的操作. 下面就是一个需求:在一个iframe中关闭时,刷新指定的iframe: 添加需要刷新的标识reload=true //添加npi2 ...
- Java单体应用 - 架构模式 - 02.MVC架构
原文地址:http://www.work100.net/training/monolithic-architecture-mvc.html 更多教程:光束云 - 免费课程 MVC架构 序号 文内章节 ...
- django orm查询和后端缓存的使用
django orm 查询 1 字段后(db_column='age') (null=True)#表示数据库里面的该字段数据可以为空 (blank=True)#表示前端表单提交的时候可以为空 (db_ ...
- 浅析网页meta标签中X-UA-Compatible属性的使用
今天有一个做开发的朋友突然问你知道很多网站上面加入的X-UA-Compatible属性的意义么?其实这个在以前还专门花了一点时间来验证我自己的想法,结果也确实如自己所预想的那样,八九不离十,当然有一点 ...
- ++i、i++、+=、-=的区别
要分清这个区别,先要掌握赋值的顺序,赋值语句是从右往左执行的, 计算的顺序从左至右. 那么++i第一步是把自身i+1后才赋值给自身,即先加后赋值. i++第一步是先把自身赋值给自身,即先赋值后再加减. ...
- C语言循环语句工程用法
-循环语句分析 循环语句的基本工作方式 - 通过条件表达式判断是否执行循环体 - 条件表达式循环if语句表达式的原则 do.while.for的区别 - do语句先执行后判断,循环体至少循环一次 - ...
- orcal时区
查询数据库时区 select dbtimezone from dual 修改时区 alter database set time_zone='+8:00';
- C#获取当前不同网卡对应的iP
C#获取当前不同网卡对应的iP: public string GetLocalIP() { IPAddress localIp = null; try { IPAddress[] ipArray; i ...
- c++面向对象 之 内联函数 this 静态成员
1,内联函数 如果一个函数是内联的,那么在编译时,编译器会把该函数的代码副本放置在每个调用该函数的地方.用inline指定,内联函数通常短小精悍没有while和for循环,能够帮助提升程序执行的速度 ...
- input placeholder 文字颜色修改
placeholder 文字颜色修改 input::-webkit-input-placeholder{ color:red; } input::-moz-placeholder{ /* Mozill ...