Oracle12cR1安装步骤及直连arcgis10.2.X

前言

因为项目需求,系统框架和arcgis为比较老得版本,之前oracle是11g 现改为12c版本。所以遇到一系类问题,但项目需求实属没有办法,只能一步一步解决,如果可以,尽量用数据库、arcgis、api等为同个版本。
本文档为Oracle12cR1数据库直连arcgis10.2.2,arcgis官网说明:arcgis10.2.x适用于oracle12cR1以下的版本。oracle11g的bug较多且只能安装在server 2008以下版本的操作系统中,所以优先选择用12cR1了.但是数据库客户端安装选择为orcacle12cR2 32位+64位+oracle12cR1 32位静默安装的版本。(注:客户端是三个哦)

示例安装说明

数据库服务器配置
处理器:4核
内存:256GB
系统:Windows server2019

安装包在以下截图中的就够了,如果是别的低版本系统的话可能要多打一些补丁才可以,这里没有用额外补丁所以不太清楚不做赘述。

Oracle12cR1的安装包在官网上可以下载

开始安装

解压完压缩包以后点开双击setup.exe
1、会跳出一个运行窗口,这个是在检查监视器的参数,这个检查完以后会自动跳没,所以不要动它,等待跳下一个窗口就好了。

2、下面这个选项不用勾选,是要你是否接收关于oracle更新的相关的东西,没什么必要的。点击下一步以后会跳出一个窗口,直接点击“是”就可以了。

3、软件更新———点击下一步

4、安装选项————点击“创建和配置数据库”

5、系统类————选择“服务端”

6、安装类型————点击“高级安装”

软件语言——直接默认点击“下一步”就可以了












安装过程中会遇到的问题:


查了一下百度,oracle12cR1在安装的时候遇到这个问题的概率还是很大的,也有很多解决办法,以下写一种,这个相对来说算是万能的,也是网上查阅中用的最多最管用的了

控制面板>所有控制面板项>管理工具>计算机管理>系统工具>共享文件夹>共享右键单击“共享”>新建共享>,创建名为C$的c盘共享文件夹

验证安装

*安装完以后为了不必要的重复性工作,我们最好还是多验证几次数据库的安装是否真的正确后再继续进行下一步。
1、我们先用服务器cmd窗口连接 sqlplus 看一下是否可以连接成功
2、然后我们用自己的本机电脑的plsql工具连接一下(前提我们本机电脑上有,如果全部都是全新环境就没必要先在自己电脑上安装plsql工具了,我们的目的只是为了验证一下)。
一般来说在服务器上连接成功就是没有问题了,第2步是为了双重保险算是。

安装客户端

客户端安装在arcgis server的那台机器上面
本例中arcgis desktop和server是安装在了同一台机器上面,所以32位和64位的客户端都要安装。
Arcgis desktop:10.2.2
Arcgis server:10.2.2
Oracle12cR2:32位+64位(程序安装)
Oracle12cR1:32位(静默安装)

第一步、安装好arcgis destop和server(这里不做赘述)
第二步、Oracle12cR2客户端的32位和64位。(安装过程很简单,大多都是直接点下一步,安装时选择“管理员安装”,还有路径选择的时候修改最后数字)
小提示:desktop读取的客户端位32位,server读取64位。
所以这里有一个要注意的地方是我们的desktop和server是安装在同一台机器的,如果是不同机器我们习惯性的在环境变量中把32位放在前面。这里如果我们再把32位放在前面会发现我们无法注册数据源了。所以再这种情况下,我们需要把64位放在前面来读取。


第三步、Oracle12cR1 的32位静默安装
解压安装包以后配置环境变量就可以了,注意环境变量的地址和解压的路径要一样
注意:为了今后的管理和分辨,最好把文件夹解压到安装的orcl client同一个路径下,例如我们已经生成过12cR2的客户端了,那么我们可以在同个路径下创建一个12cR1的client路径。后期会很清晰明了和方便管理。忌随意解压放置!!!忌随意解压放置!!!忌随意解压放置!!!
增加环境变量:
path环境变量追加 ;D:\oracle_instantclient-basic-win32-10.2.0.4;
ORACLE_HOME=D:\oracle_instantclient-basic-win32-10.2.0.4
TNS_ADMIN=D:\oracle_instantclient-basic-win32-10.2.0.4
NLS_LANG=AMERICAN_AMERICA.ZHS16GB

Catalog用映射名连接

以上安装好以后先用catalog进行连接验证(ip方式),如果确认连接+注册数据源+发布服务都没有问题后。我们再继续进行下一步,用映射名方式进行连接,这个的好处就在于,如果我们的数据库服务器换ip了,那么我们也不需要重新发服务,只需要重新配置一下就可以了。
在“开始”里面找到oracle的安装目录然后找到net manager添加服务命名
注:我们一共安装了三个客户端,每一个的配置都要修改,这个很重要!


搬运机器导致的错误:

1、数据库服务器监听问题

问题:服务器搬运后,没有修改任何东西,但是发现数据库无法连接了,报错无法读取到监听位置。我们首先检查网络发现并没有问题,然后检查数据库服务器本身是不是出现了问题,结果并没有报错,在重新配置了监听以后还是出现了同样的问题,然后打开net manager把服务命名、监听全部删除重启(删除前先文件备份),重启后重新配置服务命名和监听。然后就好了。很奇怪,但就是这样。不确定是不是每次搬运机器都会出现还是几率性事件。所以记录一下。

2、数据库重新恢复后缺少函数

问题:数据恢复使用的是在服务器上用dmp导入恢复的方式
但是恢复后发现系统中有两个页面显示404,首先我们先找数据库的原因,**tomact中报错缺少WM_CONCAT函数。**百度后用下面的方法2解决。解决办法如下

报错信息如下:
ORA-00904: “WM_CONCAT”: invalid identifie

经了解,wm_contact(column)函数从oracle10g开始使用,然而12C以上版本摒弃了wm_concat函数,导致不能识别"WM_CONCAT"函数。大家都知道,WM_CONCAT"可以实现oracle中字段的合并,wm_concat(列名)函数,能把指定的列的值,按照group by 中指定的分隔方法,用逗号拼接起来。通常用法如下例:

#通用用法
select id,wm_concat(test) result
from test
group by id;
#使用时记得用to_char()封装下
select id,to_char(wm_concat(test)) result
from test
group by id;

注意:
实际使用中,需用to_char(wm_concat())方式封装,方可正常调用。

至于为何oracle在12c的版本中抛弃不用wm_contact(column)?
个人这里大致推测下:应该和函数执行效率低有关,因为用过的朋友有切身体会,万行的查询合并,执行时间较长。另,wm_contact英文描述为undocumented,意味着随时可能发生变更;10.2.0.5上,其返回类型从varchar2变为了clob,12c后续版本,直接就取消了此函数。用到此函数的数据库发生大版本升级,因升级后如不注意,应用在进行功能性测试时,肯定出问题。

本次升级,11g中版本对应的应用程序中使用了wm_contact该函数,升级后的12c没有此wmsys.wm_contact函数,故致使所以来的view和package报错,出现如下:
ORA-00904: “WM_CONCAT”: invalid identifie

问题如何解决?

解决方案有三种:
方法1:19c中创建低版本的wm_contact函数;
方法2:19c中手动创建wm_contact函数;
方法3:使用其替代函数,listagg

方法1创建wm_contact函数
从原有低版本11g中copy相应的文件,在19c中执行创建wm_contact函数;具体如下:
从11g的O R A C L E H O M E / r d b m s / a d m i n 目 录 下 拷 贝 o w m c t a b . p l b 、 o w m a g g r s . p l b 、 o w m a g g r b . p l b 三 个 文 件 至 19 c 的 ORACLE_HOME/rdbms/admin目录下拷贝owmctab.plb、owmaggrs.plb、owmaggrb.plb三个文件至19c的ORACLE

HOME/rdbms/admin目录下拷贝owmctab.plb、owmaggrs.plb、owmaggrb.plb三个文件至19c的ORACLE_HOME/rdbms/admin/目录下。然后依次执行owmctab.plb、owmaggrs.plb、owmaggrb.plb这三个文件。

查看owmctab.plb脚本内容,因owmctab.plb需要引用owmt9012.plb,而owmt9012.plb需要引用owmt9013.plb,故需要需要从11g中scp到19C中,如下共计5个文件。
owmctab.plb
owmt9013.plb
owmt9012.plb
owmaggrs.plb
owmaggrb.plb

19c中oracle环境下依次执行如下命令:
SQL> @?/rdbms/admin/owmctab.plb
SQL> @?/rdbms/admin/owmaggrs.plb
SQL> @?/rdbms/admin/owmaggrb.plb

方法2:19c中手动创建wm_contact函数
参考如下链接:
https://blog.csdn.net/alicewang99/article/details/89945252

创建wm_concat函数
–首先使用dba账号登录oracle数据库
–解锁wmsys用户
alter user wmsys account unlock;

–并为wmsys用户授权,可根据需要授权,不建议授权所有权限
grant all privileges to wmsys;

–如果不知道wmsys用户的密码,可以修改其密码
alter user wmsys identified by 123456;

–使用wmsys用户登录数据库
conn wmsys/123456

–在wmsys下创建可用的wm_concat函数,直接执行以下语句
–定义类型
CREATE OR REPLACE TYPE WM_CONCAT_IMPL AS OBJECT
(
CURR_STR VARCHAR2(32767),
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2) RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER,
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL) RETURN NUMBER
);
/

–定义类型body:
CREATE OR REPLACE TYPE BODY WM_CONCAT_IMPL
IS
STATIC FUNCTION ODCIAGGREGATEINITIALIZE(SCTX IN OUT WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
SCTX := WM_CONCAT_IMPL(NULL) ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEITERATE(SELF IN OUT WM_CONCAT_IMPL,
P1 IN VARCHAR2)
RETURN NUMBER
IS
BEGIN
IF(CURR_STR IS NOT NULL) THEN
CURR_STR := CURR_STR || ‘,’ || P1;
ELSE
CURR_STR := P1;
END IF;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATETERMINATE(SELF IN WM_CONCAT_IMPL,
RETURNVALUE OUT VARCHAR2,
FLAGS IN NUMBER)
RETURN NUMBER
IS
BEGIN
RETURNVALUE := CURR_STR ;
RETURN ODCICONST.SUCCESS;
END;
MEMBER FUNCTION ODCIAGGREGATEMERGE(SELF IN OUT WM_CONCAT_IMPL,
SCTX2 IN WM_CONCAT_IMPL)
RETURN NUMBER
IS
BEGIN
IF(SCTX2.CURR_STR IS NOT NULL) THEN
SELF.CURR_STR := SELF.CURR_STR || ‘,’ || SCTX2.CURR_STR ;
END IF;
RETURN ODCICONST.SUCCESS;
END;
END;
/
–自定义行变列函数:
CREATE OR REPLACE FUNCTION wm_concat(P1 VARCHAR2)
RETURN VARCHAR2 AGGREGATE USING WM_CONCAT_IMPL ;
/

–创建完成,给其创建同义词及授权,以供其他用户能正常使用。
create public synonym WM_CONCAT_IMPL for wmsys.WM_CONCAT_IMPL
/
create public synonym wm_concat for wmsys.wm_concat
/

grant execute on WM_CONCAT_IMPL to public
/
grant execute on wm_concat to public
/

方法3:使用替代函数listagg
参考链接:
https://blog.csdn.net/sinat_36257389/article/details/81004843
使用listagg函数代替
基本语法:
SELECT
T .DEPTNO,
listagg (T.ENAME, ‘,’) WITHIN GROUP (ORDER BY T.ENAME) names
FROM
SCOTT.EMP T
WHERE
T.DEPTNO = ‘20’
GROUP BY
T.DEPTNO

1.个人进行oracle11g升级12c以上大版本的升级案例中,所遇到的第一个大坑;各位亲,请留意。
2.至于oracle官方为何弃用wm_contact函数,文中个人初步推断为该函数执行效率低的原因,后续具体原因,文章待定。
3.Oracle大版本后的升级,一定要谨慎再谨慎,充分做好应用测试。

【参考】
https://www.cnblogs.com/YuyuanNo1/p/7910714.html
【参考】
https://blog.csdn.net/sinat_36257389/article/details/81004843

3、ORA-28040: No matching authentication protocol

这个问题是因为版本问题,需要向下兼容,在数据库服务器的那天机器中D:\app\Administrator\product\12.1.0\dbhome_1\NETWORK\ADMIN\sqlnet配置两行东西

NAMES.DIRECTORY_PATH= (TNSNAMES, EZCONNECT)
SQLNET.ALLOWED_LOGON_VERSION=8

Oracle12cR1安装步骤及直连arcgis10.2.X相关推荐

  1. ArcGIS10.8下载及安装教程(附安装步骤)

    谷歌云: https://drive.google.com/drive/folders/10igu7ZSMaR0v0WD7-2W-7ADJGMUFc2ze?usp=sharing ArcGIS10.8 ...

  2. python软件安装步骤-一篇非常棒的安装Python及爬虫入门博文!

    一. 大数据及数据挖掘基础(私信小编007即可获取大量Python学习资料!) ***部分主要简单介绍三个问题: 1.什么是大数据? 2.什么是数据挖掘? 3.大数据和数据挖掘的区别? 1.大数据(B ...

  3. 安装python步骤-从0到1,Python安装步骤详解(附基础知识简介)!

    Python下载安装步骤 python解释器,在Linux中可以内置安装,而在windows中则需要去下载.具体步骤如下: 第一步:通过Web浏览器,访问http://www.python.org官网 ...

  4. HFSS15.0安装步骤

    安装步骤: 安装前先关闭杀毒软件和360卫士,注意安装路径不能有中文,安装包路径也不要有中文. 试装系统位win10. 1.解压压缩包HFSS150Win64.ZIP. 2.以管理员身份运行安装程序. ...

  5. 联想打印机 linux驱动怎么安装步骤,如何在MAC系统下安装打印机驱动

    故障现象: 如何在MAC系统下安装打印机驱动?解决方案: 一.LJ2208安装苹果驱动步骤: 1.运行lenovo Lj2208 install: 2.点击"继续": 3.软件许可 ...

  6. python安装步骤-从0到1,Python安装步骤详解(附基础知识简介)!

    Python下载安装步骤 python解释器,在Linux中可以内置安装,而在windows中则需要去下载.具体步骤如下: 第一步:通过Web浏览器,访问http://www.python.org官网 ...

  7. sass安装步骤、概述、基本语法等

    SASS sass的安装步骤 1) 在cmd中输入 sass -v 或 sass --version 只要其中一个有版本号就不需要以下操作了. 2) 在cmd中输入ruby -v ,查看是否有版本号 ...

  8. 一、ElasticSearch5.6.3下载安装步骤 说明:ElasticSearch的运行不能用root执行,自己用useradd命令新建一个用户如下所示: sueradd chen passw

    一.ElasticSearch5.6.3下载安装步骤 说明:ElasticSearch的运行不能用root执行,自己用useradd命令新建一个用户如下所示: sueradd chen passwd ...

  9. Android studio 安装步骤

    Android studio 安装步骤 Android studio下载地址 官网 百度网盘 下载好安装包后安装步骤: 新建一个Android 在新建的Android下面建skd.studio.wor ...

最新文章

  1. 【坑爹升级】更新NVIDIA GeForce GTX Ti最新驱动,突然屏幕亮瞎我24K钛合金双眼。导致Fn+F2/F3、win+x无法控制笔记本电脑显示器亮度调整, 电源选项屏幕亮度也不见了!
  2. 这才是程序员想弄死产品经理的真正原因!
  3. java.util.set cannot be assigned from null_Java中有关Null的9件事
  4. Linux怎么查看保存的密码,在Linux中查看已保存的WiFi密码
  5. object detection错误Message type object_detection.protos.SsdFeatureExtractor has no field named bat
  6. 人工智障学习笔记——强化学习(4)时间差分方法
  7. 数据结构的堆栈与内存中堆栈的区别
  8. AI 又进阶!除了鉴别 PS 图片,还能一键卸妆!
  9. ios12上滑关闭程序动画_iOS 12.3正式版终于来了:这类用户升级需谨慎!
  10. 如何使用Mac电脑内置的屏幕共享功能进行远程桌面协助?
  11. static在实例Extends、Overload中理解
  12. HDMI接口定义,传输流程
  13. 堰流实验报告思考题_创新实验之一:桥墩冲刷实验
  14. python基础五之for和while
  15. Velodyne VLP16 激光雷达测试
  16. 游戏的帧率与屏幕的刷新率
  17. 支付宝积分兑换的扫地机器人好用_如何选购扫地机器人?
  18. “阿里云大数据技术实战训练营”江苏省大学生万人计划学术冬令营活动成功举行...
  19. 3通道高清视频编码电路 转接IC GM7123:TTL转VGA芯片
  20. [USACO 2017DEC] Greedy Gift Takers

热门文章

  1. 一点通票据打印系统 v3.5 专业版 bt
  2. 智能楼宇可视化对讲及门禁对讲系统实训装置
  3. python网页版本_利用jupyter网页版本进行python函数查询方式
  4. Mycat启动日志报错:XML document structures must start and end within the same entity.
  5. ultraedit链接linux服务器,(工具类)使用UltraEdit与虚拟机上的Linux进行ftp连接
  6. 编写程序:找出一个大于给定整数且紧随这个整数的素数,并作为函数值返回。
  7. 线性代数概念题证明题解答
  8. Wireshark 过滤器使用
  9. 三级缓存(不是CPU的概念,而是一种技术上逻辑容错处理方案)
  10. 能在CAD2004以下版本里面打开2007以上版本文件的外挂