目的:

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 (服务端+客户端)相关推荐

  1. Windows安装VNC服务端

    下载VNC服务端 由于服务器在IDC机房,只能使用系统自带远程桌面连接到服务器进行安装VPC服务端 但在安装过程发现,如果是通过远程桌面连接到服务器进行安装,VNC Mirror Driver会报错无 ...

  2. windows 安装openssh服务端_Git神器| SourceTree安装使用教程

    SourceTree 是 Windows 和Mac OS X 下免费的Git客户端管理工具.支持创建.克隆.提交.push.pull 和合并等操作. 一.sourcetree的安装 1. 下载sour ...

  3. 安装Kerberos服务端和客户端

    简介 Kerberos认证流程 环境准备 安装Kerberos服务端 yum安装 yum install krb5-server krb5-libs krb5-workstation -y vim / ...

  4. 红叶倾城一键网页游戏服务端+客户端(无须安装Java)源码

    倾城的一键安装版服务端(包括客户端) , 无须安装Java,直接启动服务端就可进入游戏!!! 新开服添加首个GM的方法: 注册帐号并登陆游戏创建角色名称后,再服务端控制台中输入gmGrade 玩家角色 ...

  5. SVN服务端客户端安装配置及权限管理

    SVN服务端安装配置: 1. 下载SVN服务端: 下载地址:https://www.visualsvn.com/downloads/ 2. 安装SVN服务端: 打开程序:安装目录\bin\msc程序 ...

  6. Windows 2008 部署服务之客户端安装

    ------------------------------ Windows 2008 部署服务八步走: 1.Windows 2008 部署服务之WDS概述 2.Windows 2008 部署服务之W ...

  7. netty java_GitHub - leihuazhe/Java11-Netty-Demo: 基于Java11 构建的 netty 服务端客户端 模块化例子...

    Java11-Netty-Demo Java11 基于maven构建的简单的服务端客户端分离模块调用的例子 Java 11 从 Java9 开始引入了模块化的概念.使用Java11 也需要以模块化的方 ...

  8. CentOS 7下安装pptp服务端手记

    主要配置步骤 安装前检查系统支持 a. 在安装之前查看系统是否支持PPTP modprobe ppp-compress-18 && echo success 应该输出:success ...

  9. 侠义道服务器修改,[侠义道1]1.85虚拟机镜像一键启动服务端+客户端+启动教程+元宝修改...

    [侠义道1]1.85虚拟机镜像一键启动服务端+客户端+启动教程+元宝修改 资源说明: 1.本资源为侠义道Online1.85版本,默认IP为192.168.200.175,虚拟机架设,默认使用NAT模 ...

最新文章

  1. 【牛客】CSL 的字符串 (stack map)
  2. ACM入门之【组合数】
  3. 虚拟机中安装MAC OS X教程(适用所有电脑方法,特别是cpu不支持硬件虚拟化的电脑)...
  4. MacOS运行多个实例
  5. ADSL技术的系统结构
  6. JS~~~ 前端开发一些常用技巧 模块化结构 命名空间处理 奇技淫巧!!!!!!...
  7. 深度学习之学习率退火的六种调整策略
  8. 【语音加密】基于matlab语音加密【含Matlab源码 1303期】
  9. Unity—背包系统(思路总括)
  10. 老老实实准备一下java面试(java基础)
  11. 英语常用口语1000句
  12. 统一网关Gateway
  13. dismiss和ignore区别_词汇辨析:dismiss, discharg, expell, resign的区别
  14. android九宫格切图,拼图九宫格切图app
  15. MetersPhere参数赋值时间戳+对接口参数进行加密---form-data格式请求
  16. pboot 将编码转换为实体html_java转换 HTML字符实体,java特殊字符转义字符串
  17. 详解熵、最大熵、联合熵和条件熵、相对熵以及互信息之间的关系
  18. C++程序设计课程同步项目——循环结构程序设计项目任务二
  19. 机房租赁,如何鱼和熊掌兼得?
  20. C++里string转换为int

热门文章

  1. 【生活】驾照C1-科一手册
  2. 程序员初学者如何自学编程
  3. 社保管理系统连接不上服务器,社保费客户端登录服务器异常
  4. 在Java里面使用Pairs或者二元组
  5. 蓝桥杯 青少年创意编程大赛 scratch组 (二)
  6. 2021AAPM大赛第一名技术报告Designing an Iterative Network for Fanbeam-CTwith Unknown Geometry 阅读笔记
  7. Python邮件附件保存
  8. EndNote安装与使用
  9. 专升本英语——语法知识——基础语法——第三节 形容词、副词及其比较级【学习笔记】
  10. win10免费sdk安装详细过程