windows安装Oracle12 (服务端+客户端)
目的:
windows 系统下,实现:
1 多台机器之间的通信。如有四台机器且在一个子网内,要先把机器连起来,能够互相ping,然后继续后续
2 第二件事情,是搭建Oracle服务/客户端环境。为了更加贴近实际场景,选择把服务端和客户端放在不同的机器上(一般的教程可能是会选择放在同一台机器)。
过程
1 搞定机器和通信
首先拿到多台计算机,一个路由器,网线/无线网卡若干,把硬件搭好。
以其中一台计算机A为例,CMD --- ipconfig 结果如下:
为了把服务端和客户端放在不同的机器上(后面甚至会是有多台机器上有相同服务器以形成服务器集群的形式),先要实现机器之间的通信。
问题:但是发现连接子网内多台windows 机器(在同一个子网内部)无法ping通。
解决: 既然都在一个内网,网线等物理因素都是OK的,那便可能是防火墙的问题,选择关掉。 先把所有的机器的网络类型设为专属网络,然后关掉专属网络下计算机的的防火墙,然后测试,发现可以ping通。
网络防火墙设置的详细步骤参考:https://jingyan.baidu.com/article/f3ad7d0f344d6209c3345b05.html
2 搭建Oracle服务/客户端
操作系统是win10 64位;
1.1首先装一下java环境(略);
1.2然后去如下官网下载Oracle 12c Release 2(Version 12.2.0.1.0,64位) 我下的时候能有几M每秒,挺快的;
http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html
(或者这里:http://218.94.103.156:8090/download/oracle/)
1.3然后运行安装,会选择安装位置,口令等(参考https://www.cnblogs.com/onezg/p/8768597.html 前半篇);
1.4然后运行SQL Plus ,以system 用户登进去看下是否装好了, 或者登陆https://localhost:5500/em/login 可以看到管理界面;
1.5运行SQL developer ,可以更直观的看到表信息(参考https://www.cnblogs.com/shootercheng/p/6204531.html)。
1.6这时只有system 用户,我决定创建一个用户,并授予其连接建表等权限。
create user xxx identified by xxx; --后面是密码,前面是name
问题 :ORA-65096:公用用户名或角色无效
解决: 创建用户的时候用户名需要以c##开头,如c##pofile
错误写法: create user xxx identified by oracle;正确写法: create user c##xxx identified by oracle;
授予权限:
grant connect,resource,dba to c##xxx;grant create session, connect, resource to c##xxx;
1.7 SQL developer测试这个新建的用户并执行一个建表语句和插入语句
SQL developer配置新用户同1.5操作。
create table DEMO_USER(USER_ID NUMBER(9,0) not null, USER_NAME VARCHAR2(120) not null,STATE CHAR(1) not null,CREATE_DATE DATE not null,STATE_DATE DATE not null,EMAIL VARCHAR2(120) not null,LOST_FOUND_KEY NUMBER(9,0) not null,constraint PK_DEMO_USER primary key (USER_ID))ALTER TABLE DEMO_USER ADD CONSTRAINT EMAIL UNIQUE (EMAIL); --创建唯一约束select * from DEMO_USER;insert into DEMO_USER(USER_ID,USER_NAME, STATE, CREATE_DATE, STATE_DATE, EMAIL, LOST_FOUND_KEY)values(1,'admin','A', to_date('2019-06-08 20:20:59','yyyy-mm-dd hh24:mi:ss'),to_date('2019-06-08 20:20:59','yyyy-mm-dd hh24:mi:ss'), '5461XXXXX@qq.com', 201314947);
1.8 换一台机器,使用PLSQL连接这个新用户
一些前提的说明:装数据库服务端的机器IP为192.168.1.112, SID是 orcl ,新用户用户名是 c##profile,PLSQL所在机器的IP是 192.168.1.107。
首先,在机器192.168.1.107上,按如下官网地址下一个32位的Oracle客户端,注意选对应数据库的版本,这个下载网速不是很快。
http://www.oracle.com/technetwork/database/database-technologies/instant-client/downloads/index.html
然后,打开PLSQL,点击取消不进行登录,选择“工具”菜单下“首选项”,填写如下。
Oracle主目录名:XXX\instantclient_12_2 --注意是新下的这个32位的Oracle客户端的对应地址,不是PLSQL原来的那个
OCI库:XXX\instantclient_12_2\oci.dll, --注意是新下的这个32位的Oracle客户端的对应地址,不是PLSQL原来的那个
然后,设置环境变量如下:
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
ORACLE_HOME XXX\instantclient_12_2 --注意是新下的这个32位的Oracle客户端的对应地址,不是PLSQL原来的那个
path XXX\instantclient_12_2
TNS_ADMIN XXX\instantclient_12_2 ---环境变量的作用是确定软件字符编码和配置文件tnsnames.ora的读取位置
然后,tnsnames.ora的正确写法如下(放哪里都无所谓,根据环境变量写的位置去放即可):
host写成服务器所在机器的静态IP,service_name写SID,默认的是orcl,我一开始以为是新建的用户名,这样会报解析不了或者找不到对应服务的错误。
然后,直接连可能会报监听服务不存在!这时说明服务端的监听服务没打开或者没配好,回到192.168.1.112机器,
xxx\product\12.2.0\dbhome_1\network\admin目录下会有listener.ora 文件和 tnsnames.ora 文件,需要修改并重启下监听服务,或者重启下电脑也行。
# listener.ora Network Configuration File: C:\AFile\progam\Oracle\oracle12\product\12.2.0\dbhome_1\network\admin\listener.ora
# Generated by Oracle configuration tools.SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = C:\AFile\progam\Oracle\oracle12\product\12.2.0\dbhome_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ONLY:C:\AFile\progam\Oracle\oracle12\product\12.2.0\dbhome_1\bin\oraclr12.dll")))(SID_DESC = (GLOBAL_DBNAME = ORCL) (ORACLE_HOME = C:\AFile\progam\Oracle\oracle12\product\12.2.0\dbhome_1) (SID_NAME = ORCL) )
)LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))))
# tnsnames.ora Network Configuration File: C:\AFile\progam\Oracle\oracle12\product\12.2.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.LISTENER_ORCL =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))ORACLR_CONNECTION_DATA =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521)))(CONNECT_DATA =(SID = CLRExtProc)(PRESENTATION = RO)))ORCL =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.112)(PORT = 1521))(CONNECT_DATA =(SERVER = DEDICATED)(SERVICE_NAME = orcl)))
----------------------------------------------------------------------
OK 换了台机器,IP都换了,记录下过程:
首先改下上文的几处服务器IP
启java应用,需要改DB配置文件,这时报了:
Oracle12c连接问题ORA-28040:没有匹配的验证协议
在oracle服务端的找到如下文件:
$ORACLE_HOME/network/admin/sqlnet.ora
加入如下:
SQLNET.ALLOWED_LOGON_VERSION=8
然后报了:
oracle 12c ORA-01017: 用户名/口令无效; 登录被拒绝
改一下密码,改成纯数字;
alter user XXX identified by XXX
最后,回到PLSQL所在机器,输入新用户和口令,发现可以成功登陆上去。
Conclusion
第一个,关于机器通信,主要是防火墙导致的,较为简单。
第二个。关于oracle客户端和服务端,服务端的SID是orcl,这个我目前不清楚为什么默认是这个。要想在其他机器上使用客户端连到数据库用户,首先要更改部分设置,使用32位的客户端。然后要正确配置PLSQL的tnsnames.ora配置文件。然后要保证数据库服务端的监听程序正常配置和打开,也就是配置服务端的listener.ora 文件和 tnsnames.ora。这样即可实现!
本文记录了操作步骤,和一些配置的方法以及一些错误。
windows安装Oracle12 (服务端+客户端)相关推荐
- Windows安装VNC服务端
下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...
- windows 安装openssh服务端_Git神器| SourceTree安装使用教程
SourceTree 是 Windows 和Mac OS X 下免费的Git客户端管理工具.支持创建.克隆.提交.push.pull 和合并等操作. 一.sourcetree的安装 1. 下载sour ...
- 安装Kerberos服务端和客户端
简介 Kerberos认证流程 环境准备 安装Kerberos服务端 yum安装 yum install krb5-server krb5-libs krb5-workstation -y vim / ...
- 红叶倾城一键网页游戏服务端+客户端(无须安装Java)源码
倾城的一键安装版服务端(包括客户端) , 无须安装Java,直接启动服务端就可进入游戏!!! 新开服添加首个GM的方法: 注册帐号并登陆游戏创建角色名称后,再服务端控制台中输入gmGrade 玩家角色 ...
- SVN服务端客户端安装配置及权限管理
SVN服务端安装配置: 1. 下载SVN服务端: 下载地址:https://www.visualsvn.com/downloads/ 2. 安装SVN服务端: 打开程序:安装目录\bin\msc程序 ...
- Windows 2008 部署服务之客户端安装
------------------------------ Windows 2008 部署服务八步走: 1.Windows 2008 部署服务之WDS概述 2.Windows 2008 部署服务之W ...
- netty java_GitHub - leihuazhe/Java11-Netty-Demo: 基于Java11 构建的 netty 服务端客户端 模块化例子...
Java11-Netty-Demo Java11 基于maven构建的简单的服务端客户端分离模块调用的例子 Java 11 从 Java9 开始引入了模块化的概念.使用Java11 也需要以模块化的方 ...
- CentOS 7下安装pptp服务端手记
主要配置步骤 安装前检查系统支持 a. 在安装之前查看系统是否支持PPTP modprobe ppp-compress-18 && echo success 应该输出:success ...
- 侠义道服务器修改,[侠义道1]1.85虚拟机镜像一键启动服务端+客户端+启动教程+元宝修改...
[侠义道1]1.85虚拟机镜像一键启动服务端+客户端+启动教程+元宝修改 资源说明: 1.本资源为侠义道Online1.85版本,默认IP为192.168.200.175,虚拟机架设,默认使用NAT模 ...
最新文章
- 【牛客】CSL 的字符串 (stack map)
- ACM入门之【组合数】
- 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)...
- MacOS运行多个实例
- ADSL技术的系统结构
- JS~~~ 前端开发一些常用技巧 模块化结构 命名空间处理 奇技淫巧!!!!!!...
- 深度学习之学习率退火的六种调整策略
- 【语音加密】基于matlab语音加密【含Matlab源码 1303期】
- Unity—背包系统(思路总括)
- 老老实实准备一下java面试(java基础)
- 英语常用口语1000句
- 统一网关Gateway
- dismiss和ignore区别_词汇辨析:dismiss, discharg, expell, resign的区别
- android九宫格切图,拼图九宫格切图app
- MetersPhere参数赋值时间戳+对接口参数进行加密---form-data格式请求
- pboot 将编码转换为实体html_java转换 HTML字符实体,java特殊字符转义字符串
- 详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系
- C++程序设计课程同步项目——循环结构程序设计项目任务二
- 机房租赁,如何鱼和熊掌兼得?
- C++里string转换为int