Oracle11g部署注意事项

Oracle重新部署注意事项

Oracle19c下载地址,无需登录,历史版本下载需要登录
https://www.oracle.com/cn/database/technologies/oracle-database-software-downloads.html#19c

在此页面可以找到官方说明文档
https://www.oracle.com/cn/database/technologies/
在这里插入图片描述

一、Oracle11g安装包的准备下载

官网找历史版本准备服务端Oracle11g R2以及客户端Oracle11g client
  
服务端Oracle11g R2  http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_1of2.zip   
  http://download.oracle.com/otn/nt/oracle11g/112010/win64_11gR2_database_2of2.zip

客户端Oracle11g client
客户端文件,就直接从我下面给出的度盘地址获取。  
  
需要下载历史版本,Oracle公司很骚,包括老版本的JDK都需要注册账号登录才能下载。N年前,无需注册登录就可以下载。难道是市场份额少了,开始慌了?下载Oracle数据库历史版本同样需要注册登录,就问骚不骚。懒得吐槽,也无力吐槽,大家都懂得。 
  
或者使用我提供的阿里云盘下载地址:https://www.aliyundrive.com/s/mMV92NTDwNr

文件夹虽然可以分享,但读取不到里面的压缩包。目前阿里云盘并不支持zip压缩包以及iso镜像文件的分享,还是给度盘资源。

度盘资源
链接: https://pan.baidu.com/s/16RjeUCobGveCeqyCrULsyQ
提取码: iz9g

二、Oracle11g的安装

安装过程很简单,大部分是被系统环境折腾安装不上。就算重装,也受注册表的影响。这里推荐使用虚拟机进行测试,VMware虚拟机的快照功能很强大,任你折腾。

1 服务端的安装

与操作系统环境息息相关,安装过程中只要没报错,基本测试成功。个人系统环境原因,导致服务端安装出错,最终用虚拟机安装win7得以解决。
选择完全安装或者安装服务器,这里选择安装服务器首先是安装服务端。
安装成功使用net manager测试连接(需要新建listener监听服务,实例设置默认为orcl,端口号默认1521)

2 客户端的安装

这里客户端准备的32位,相应的plsql developer连接工具也要使用32位的(win10 1703企业版亲测)
安装成功使用net manager测试连接(需要新建listener监听服务实例orcl或者根据实际工作需求来,端口号默认1521)

net manager配置如下:这里客户端连接的,还是去找的服务端的ip地址。

如果连接失败,多半是监听文件和远程ip的问题。

在这里插入图片描述

3 监听配置问题

解决虚拟机重启后的Oracle11g监听问题ORA-12541

编辑完后,cmd以管理员身份运行

关闭监听实例

1
lsnrctl stop 

启动监听实例

1
lsnrctl start 

查看监听实例状态

1
lsnrctl status 

修改完监听配置文件,最后记得重启Oracle11g监听服务

1
OracleOraDb11g_home1TNSListener AND OracleServiceORCL SERVER

虚拟机我只安装了Oracle11g服务端,由于是虚拟机我就直接放C盘了。实际安装,推荐安装在D盘或者顺延E盘,尽量不要出现有中文空格之类的路径名。

1
listener.ora文件C:\app\product\11.2.0\dbhome_1\network\admin\listener.ora
1
2
#listener.ora Network Configuration File: C:\app\product\11.2.0\dbhome_1\network\admin\listener.ora
#Generated by Oracle configuration tools.

这一段可以取消注释尝试,个人没试过,可以自行测试有没有影响

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
#SID_LIST_LISTENER =
# (SID_LIST =
# (SID_DESC =
# (SID_NAME = CLRExtProc)
# (ORACLE_HOME = C:\app\product\11.2.0\dbhome_1)
# (PROGRAM = extproc)
# (ENVS = "EXTPROC_DLLS=ONLY:C:\app\product\11.2.0\dbhome_1\bin\oraclr11.dll")
# )
# )


#我把上面的注释了,下面是我新增的
SID_LIST_LISTENER =
(SID_DESC =
(GLOBAL_DBNAME = ORCL)
(ORACLE_HOME = C:\app\product\11.2.0\dbhome_1)
(SID_NAME = ORCL)
)

#这里修改HOST为固定ip或者localhost、127.0.0.1以及本机名
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机或者远程IP)(PORT = 1521))
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
)

ADR_BASE_LISTENER = C:\app

tnsnames.ora文件只需要改一下HOST为固定ip或者localhost、127.0.0.1以及本机名

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
C:\app\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# tnsnames.ora Network Configuration File: C:\app\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.

ORACLR_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(CONNECT_DATA =
(SID = CLRExtProc)
(PRESENTATION = RO)
)
)

ORCL =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 主机或者远程IP)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)

测试修改完,记得使用如下命令验证监听状态
关闭监听实例

1
lsnrctl stop 

启动监听实例

1
lsnrctl start 

查看监听实例状态

1
lsnrctl status 

然后可以使用Oracle服务端的net manager 或者客户端的net manager进行测试连接system用户。

三、Oracle11g重装注意事项

1 服务器CPU核心数问题

部署Oracle11g,创建数据实例卡在2%不动解决方案
进入控制面板,修改系统配置,打开高级管理,修改CPU核心数为16保存重启服务器

2 .NET framework3.5无法安装问题

准备需要的.dll扩展文件放入C盘根目录sxs,然后安装.NET framework3.5指定存放C:\sxs\

3 清除注册表

注册表清除不干净,部署Oracle11g可能会出现卡在85%情况。
使用如下脚本,新建一个Oracle11g.bat文件保存,或者按照如下的注册表所在地址进入regedit删除对应Oracle11g的注册表,删完后,最好重启。

使用win+r快捷键运行regedit:进入注册表。
在这里插入图片描述

使用如下脚本,新建一个Oracle11g.bat文件保存,建议手动核对删除

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
c:
reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsoleorcl" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerORCL" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1iSQL*Plus" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORCL" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\Oracle.orcl" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OracleDBConsoleorcl" /f
reg delete "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Eventlog\Application\OracleOraDb11g_home1iSQL*Plus" /f

reg delete "HKEY_CLASSES_ROOT\OracleConfig.OracleConfig" /f
reg delete "HKEY_CLASSES_ROOT\OracleConfig.OracleConfig.1" /f
reg delete "HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase" /f
reg delete "HKEY_CLASSES_ROOT\OracleDatabase.OracleDatabase.1" /f
reg delete "HKEY_CLASSES_ROOT\OracleHome.OracleHome" /f
reg delete "HKEY_CLASSES_ROOT\OracleHome.OracleHome.1" /f
reg delete "HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer" /f
reg delete "HKEY_CLASSES_ROOT\OracleInProcServer.XOraServer.5" /f
reg delete "HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession" /f
reg delete "HKEY_CLASSES_ROOT\OracleInProcServer.XOraSession.5" /f
reg delete "HKEY_CLASSES_ROOT\OracleProcess.OracleProcess" /f
reg delete "HKEY_CLASSES_ROOT\OracleProcess.OracleProcess.1" /f

reg delete "HKEY_CLASSES_ROOT\ORADC.ORADCCtrl.1" /f
reg delete "HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData" /f
reg delete "HKEY_CLASSES_ROOT\ORAMMCCFG11.ComponentData.1" /f
reg delete "HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData" /f
reg delete "HKEY_CLASSES_ROOT\ORAMMCPMON11.ComponentData.1" /f
reg delete "HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup" /f
reg delete "HKEY_CLASSES_ROOT\OraOLEDB.ErrorLookup.1" /f
reg delete "HKEY_CLASSES_ROOT\OraOLEDB.Oracle" /f
reg delete "HKEY_CLASSES_ROOT\OraOLEDB.Oracle.1" /f
reg delete "HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon" /f
reg delete "HKEY_CLASSES_ROOT\OraPerfMon.OraPerfMon.1" /f
reg delete "HKEY_CLASSES_ROOT\ORCLMMC.About" /f
reg delete "HKEY_CLASSES_ROOT\ORCLMMC.About.1" /f
reg delete "HKEY_CLASSES_ROOT\ORCLSSO.ComponentData" /f
reg delete "HKEY_CLASSES_ROOT\ORCLSSO.ComponentData.1" /f
reg delete "HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes" /f
reg delete "HKEY_CLASSES_ROOT\EnumOraHomes.EnumOraHomes.1" /f

reg delete "HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\MenuOrder\Start Menu\Programs\Oracle - OraDb11g_home1" /f

reg delete "HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraDb11g_home1" /f


reg delete "LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleDBConsoleorcl" /f
reg delete "LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleJobSchedulerORCL" /f
reg delete "LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1iSQL*Plus" /f
reg delete "LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleOraDb11g_home1TNSListener" /f
reg delete "LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OracleServiceORCL" /f

这里建议一个一个去核对,win+r打开运行regedit手动删除注册表,有时候容易手滑。

四、使用过程中的优化

1 密码过期处理

1、登陆 sqlplus
执行SQL命令语句:

1
sqlplus / as sysdba

2、查询 密码有效期
执行SQL命令语句:

1
SELECT * FROM dba_profiles s WHERE s.profile='DEFAULT' AND resource_name='PASSWORD_LIFE_TIME'; 

通过plsql developer工具查询出来PASSWORD_LIFE_TIME默认为180,手动改为UNLIMITED就行,当然用下面提供的方法也行。

3、将密码有效期由默认的180天修改成无限制

执行SQL命令语句:

1
ALTER PROFILE DEFAULT LIMIT PASSWORD_LIFE_TIME UNLIMITED; 

修改之后无需重启动数据库,会立即生效。当然这一系列的操作也可以使用plsql developer进行。

2 空表的处理

1、打开sqlplus用sys登陆,例如

1
sqlplus /nolog

连接到SQLplus:connect sys/密码@服务名 as sysdba
例如:

1
connect sys/123456@orcl as sysdba
1
2
alter system set deferred_segment_creation=false;
@C:\createsql.sql;

2、进入C盘看是否生成allocate.sql,当然上面也可以设置为其它盘符。
如果生成继续执行

1
@ C:\allocate.sql;
1
2
3
4
5
6
7
set heading off;
set echo off;
set feedback off;
set termout on;
spool C:\allocate.sql;
select 'alter table '|| owner ||'.'||table_name||' allocate extent;' from dba_tables where SEGMENT_CREATED='NO';
spool off;

3 plsql developer的使用

版本的准备与下载

plsql developer汉化包与安装包的准备
各个版本下载地址
添加链接描述

根据安装的Oracle数据库客户端或者操作系统版本进行选择
12.0.7下载地址(32位)
https://www.allroundautomations.com/files/plsqldev1207x32.msi
12.0.7下载地址(64位)
https://www.allroundautomations.com/files/plsqldev1207x64.msi

12.0.7汉化包下载
https://www.allroundautomations.com/plsqldevlang/120/chinese.exe

阿里云盘资源,提供了32位于64位:https://www.aliyundrive.com/s/3GrS998SRSq

安装

安装流程:
先安装原版的plsql developer,然后安装汉化语言包,最后激活。

安装过程:
基本就是下一步下一步,建议选择盘符选D盘,不要安装在C盘。安装路径尽量不要出现空格或者中文之类的,至于安装的截图后续会持续更新补上。

激活

个人比较推荐这个版本PLSQL Developer 12.0.7,不算太新,而且还有官方提供的汉化语言包。首先安装32位的客户端,然后安装官方提供的汉化语言包,然后输入如下注册码进行激活:

1
2
3
4
PLSQL Developer 12.0.7 注册码
    product code: 4vkjwhfeh3ufnqnmpr9brvcuyujrx3n3le
    serial Number:226959
    password: xs374ca