一、Oracle:
Oracle服务器端或桌面端可以创建本地的Oracle数据库,而Oracle客户端是用来远程连接其他服务器或电脑上的Oracle服务器端或桌面端的,安装客户端软件只需配置网络连接文件tnsnames.ora即可与远程服务器连接,操作数据库。因此安装了Oracle服务器之后,可以不必安装Oracle客户端了。
注:
1、当ArcGIS Server 和 ArcMap 安装在一台服务器上,Oracle 安装在另一台服务器上时,ArcGIS Server 和 ArcMap的服务器需要同时安装 32 位 和 64 位 Oracle 客户端。
(server需64位,map需要32位)
2、配置Oracle前最好先设为固定IP,防止之后Oracle配置时IP变化,Oracle配置失效(配置时也可用计算机名代替)。
安装:
上图操作已创建数据库,安装成功后可不再创建数据库,若选择仅配置,则安装成功之后需创建数据库。
注:电脑端安装桌面类,服务器虚拟机等安装服务器端。
之后直接下一步安装。(若之前选择仅配置,则不会出现上图。 )
安装后进行测试,打开Oracle自带的SQL PLUS, 输入用户名、密码(用户名为system,密码为安装时设置的管理口令)。
注:1、输入密码时密码不显示,直接输密码就好。
2、安装客户端后SQL Plus连接数据库时,用户名不变,但在输入密码时,要输入【密码@服务名】(如:123@orcl)
问题:
问题1:打开setup安装时,如弹出下图问题,则用记事本打开stage>>cvu>>cvu_prereq.XML文件,并添加以下内容(由于本机使用Windows Server 2012 R2系统,则NAME VALUE= WindowsServer2012R2, OPERATING_SYSTEM RELEASE="6.2"。 若系统为windows 10,则NAME VALUE= windows 10。)
问题2:桌面端检测先决条件时如弹出不符合,将各项前的对勾去掉,直接进行安装
问题3:安装Oracle时如果出现无法安装以下功能:.NET Framework 3.5(包括.NET2.0和3.0)时,进行以下操作安装.NET Framework 3.5:
【此括号内操作为系统内无.NET Framework 3.5安装文件或不知道sxs源文件所在位置而做的操作,通常win8、windows server2012有此文件,如知道源文件位置该步骤可省略。
解压安装系统时的镜像文件,找到sources文件夹>>sxs文件夹,将sxs文件夹尽量复制到C盘以外的任何目录下(本次因为无其他磁盘,例外处理),以管理员身份运行命令提示符(命令提示符右击,选择以管理员身份运行)。输入以下命令:dism.exe /online /enable-feature /featurename:NetFX3 /Source:命令+sxs文件的路径(例:dism.exe /online /enable-feature /featurename:netfx3 /source:C:sxs)】
打开服务器管理器(桌面即有,或控制面板>>程序>>启用或关闭windows功能)>>快速启动>>2添加角色和功能,一直是进行下一步,直到勾选.NET Framework 3.5,之后进行下一步,直到填写源文件位置(如进行前步骤操作,源文件位置即C:sxs),之后进行安装。
配置:
服务器端:
①创建数据库(若安装Oracle时已经创建数据库,可不需要此操作):(步骤未写完)
打开Database Configuration Assistant,选择创建数据库,勾选一般用途或事物用途,创建全局数据库名和SID
②本地网络服务名配置:
打开Net Configuration Assistant,选择本地网络服务名配置,点击添加,输入服务名orcl,默认选择TCP协议,输入主机名或IP地址,默认端口1521,并进行测试。若测试不成功可点击更改登录,重新输入用户名及密码。至此本地网络服务名配置成功,点下一步之后将添加新的本地网络服务。
③命名方法配置:
打开Net Configuration Assistant,选择命名方法配置,根据默认方法(本地命名和轻松连报命名)一直选择下一步。
④监听程序配置:
(监听一般一条就足矣,不要配置太多,之前如果有监听配置可以删除。删除监听设置打开Net Configuration Assistant,选择监听程序配置,选择删除。此外,打开C:appqiaoproduct11.2.0dbhome_1(客户端在client_1中)NETWORKADMIN:位置,删除listener的相关文件。注:命名方法配置文件(sqlnet)、本地网络服务名配置文件(tnsnames)也在该文件夹中。)
打开Net Configuration Assistant,选择监听程序配置,选择添加,设置监听程序名,默认LISTENER,默认协议TCP,默认端口1521.
问题1:
ora-12514:监听程序无法识别
解决方法一:
重新配置监听文件。可以通过net configuration assistant进行配置,或在NETWORK文件夹下ADMIN文件夹下找到listen.ora文件,通过记事本打开进行配置。(若无此文件可通过记事本新建)。
解决方法二:
启动Oracle所有服务。注意:应先启动LISTEN服务,后启动ORCL服务
问题2:
本地计算机上的OracleOraDb11g_homeTNSListener服务启动后停止。某些服务在未由其他服务或程序使用时将自动停止
解决方法:
查看环境变量ORACLE_HOME和注册表(software)中Oracle注册表中ORACLE_HOME中的值是否一致,修改二者完全一致
客户端:
(1)安装版:客户端直接安装即可。
注:客户端无需配置监听,需配置命名方法和本地网络服务名。本地网络服务名配置时的计算机名或ip要输入服务器端计算机的名称或ip。
pl SQL连接数据库登录时,用户名不变,但在输入密码时,要输入【密码@服务名】(如123@orcl)
通过命令提示符(cmd)连接时输入【sqlplus 用户名/密码@服务名 as sysdba】(如:sqlplus system/123@orcl)
(2)绿色免安装版:安装oracle绿色免安装版,需要配置环境变量(计算机,属性,高级系统设置,高级,环境变量,path里添加oracle客户端的路径),需要在安装目录下添加NETWORK文件夹,文件夹下有Admin文件夹,文件夹内有从服务器端拷出的tnsnames.ora文件(注:注意文件中的IP,不要localhost)。
注:如果64位和32位的oracle 客户端都安装的话,环境变量里64位在前,32位在后,且若环境变量一长串中有多个,用分号“;”隔开
附Oracle配置文件:
oracle 服务器端
(监听配置)
# listener.ora Network Configuration File: E:appWorker01product11.2.0dbhome_1
etworkadminlistener.ora
# Generated by Oracle configuration tools.
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = E:appWorker01product11.2.0dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:E:appWorker01product11.2.0dbhome_1inoraclr11.dll")
)
(SID_DESC =
(SID_NAME = PLSExtProc)
(ORACLE_HOME = E:appWorker01product11.2.0dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:D:arcgisdesktop10.5DatabaseSupportOracleWindows64st_shapelib.dll")
)
)
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-22ON9TA)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)
ADR_BASE_LISTENER = E:appWorker01
(网络连接配置)
# tnsnames.ora Network Configuration File: E:appWorker01product11.2.0dbhome_1
etworkadmin nsnames.ora
# Generated by Oracle configuration tools.
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
ORCL_DBSERVER =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
oracle 客户端
(网络连接配置)
# tnsnames.ora Network Configuration File: E:appWorker01product11.2.0dbhome_1
etworkadmin nsnames.ora
# Generated by Oracle configuration tools.
ORCL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = orcl)
)
)
二、PLSQL Developer:
PL/SQL软件是为了开发者更好地开发,使得操作起来界面清晰亲和易懂而安装的。通过它可以去操作数据库,而不再需要在数据库服务器端写命令。只需要把我们平时所写的sql脚本放在上面执行即可。
安装:
直接下一步并安装汉化包即可。
配置:
1、PL/SQL连接本机Oracle
注:本机Oracle客户端为64位,就安装64位PL/SQL;本机Oracle客户端为32位,就安装32位PL/SQL。
工具<<首选项<<连接,将主目录设置为本机Oracle安装目录,在不安装client端的情况下,可以直接连接本机Oracle。
2、配置ODBC数据源驱动(用于Oracle导入Excel或WPS表格,如果不需要可以不进行配置)
注:wps表格没有自带odbc,用的是office的驱动,所以需要安装office以后,通过保存为xls格式,利用office的xls驱动来添加odbc数据源。
用64位系统要用C:WindowsSysWOW64里面的odbcad32.exe才能添加excel表格的数据源。
下图是system32里面的odbc数据源管理器用户dsn添加:
改成64位数据源管理器:
添加ODBC数据源时,原先存在的excel files 貌似有问题,没去管,直接在用户DSN添加了一个不同名称的Microsoft Excel Driver(xls),excel2000的xls格式可以,2007的xlsx不行,这个问题没去追究。
测试在PL/SQL Developer odbc导入——myxls,报错,dsn体系结构不匹配
尝试通过分别下载32位和64位client,复制NETWORK,设置首选项Oracle主目录为client目录。其中32位client无法连接64位Oracle,64位client可以连接64位Oracle,但是odbc导入myxls,仍然报同样错误。
注意,以client连接Oracle时,需要将Oracle目录中Network复制到client下,否则报错:
3、32位PL/SQL Developer连接远程64位Oracle
首选项Oracle主目录设置为本机Oracle目录,无法连接。首选项Oracle主目录设置为64位client,无法连接。
首选项Oracle主目录设置为32位client目录,测试连接Oracle成功。
问题:
问题一:若sqlplus无法连接数据库,而pl sql可以连接数据库?
解决方法:
1、启动监听服务。
2、配置环境变量(若同时安装32位Oracle和64位Oracle时,环境变量64位Oracle在前,32位Oracle环境变量在后)