[TOC]
0x00 快速入门
目前Oracle最新版本为18c 应用最广泛的为11g;
官网下载:https://www.oracle.com/downloads/index.html
0x01 环境准备
Oracle 11g安装环境准备
[TOC]
目前Oracle最新版本为18c 应用最广泛的为11g;
官网下载:https://www.oracle.com/downloads/index.html
Oracle 11g安装环境准备
[TOC]
目前Oracle最新版本为18c 应用最广泛的为11g;
官网下载:https://www.oracle.com/downloads/index.html
Oracle 11g安装环境准备1
2
3
4
5
6
7
8
9
10
11#环境准备
操作系统: Windows Server 2008 R2 :
必须基础环境: JDK (Java)
Oracle版本:Oracle Database 11g Release 2 (11.2.0.1.0) for Microsoft Windows (x64)
#Oralce11g下载页面:
https://www.oracle.com/database/technologies/112010-win64soft.html
#依次解压下面的压缩文件到当前目录之下
win64_11gR2_database_1of2.zip
win64_11gR2_database_2of2.zip
Oracle 10g提供了高性能与高稳定性的企业级数据存储方案,也对Windows操作系统提供了更好的支持。
借助Windows操作系统以线程为基础的服务模式,Oracle 10g可以提供更高的执行性能、更稳定的执行环境,以及更具扩展性的平台。
1.右键以管理员运行setup.exe出现图1所示的“Oracle Database 10g安装”画面。
画面中网格背景寓示了10g的卖点Grid Computing“网格计算”
, 选中“高级安装”,以便为SYS、SYSTEM设置不同的口令
,并进行选择性配置。
2.“下一步”进入“Oracle Universal Installer:指定文件位置”,设置源“路径”、“名称”和目的“路径”,名称”对应ORACLE_HOME_NAME环境变量,“路径”对应ORACLE_HOME环境变量
注意:最好不要有英文;
3.“下一步” 进入“Oracle Universal Installer:选择安装类型”,企业版(E)
4.选择数据库配置通用
5.下一步,进入“Oracle Universal Installer:指定数据库配置选项”。 (非常重要)
指定“全局数据库名”和“SID”,对这两个参数的指定一般相同,例如:oract(后面的服务会用到)也可以将“全局数据库名”设置为域名例如:oract.abc.com
如果选择“创建带样本方案的数据库,OUI会在数据库中创建HR、OE、SH等范例方案(sample schema),大数据专用!
6.下一步,进入“Oracle Universal Installer:选择数据库管理选项”,选择Database Control管理数据库,不启用电子邮件通知;
7.保持默认值,下一步,进入“Oracle Universal Installer:指定数据库文件存储选项”
8.保持默认值,下一步,进入“Oracle Universal Installer:指定备份和恢复选项” (不恢复和备份选项)
9.保持默认值,单击“下一步”,进入“Oracle Universal Installer:指定数据库方案的口令”,对不同的帐户设置不同的口令,或者使用同一个密码
10.单击“下一步”,继续安装,进入“Oracle Universal Installer:概要”
11.单击“安装”,开始安装过程
12.数据库创建完成时,显示“Database Configuration Assistant”窗口
13.单击“口令管理”,进入“口令管理”窗口
解锁用户HR、OE和SCOTT,输入HR和OE的口令,SCOTT的默认口令为tiger。
安装过程中需要注意:口令设置时一般有四个用户:1
2
3
4
5
6
7
8
9* 超级管理员:sys/change_on_install;
* 普通管理员:system/manager;
* 普通用户:scott/tiger; (普通用户在业务上使用为了安全)
* 大数据用户:sh/sh;
#超级/普通管理员账号一定要设置密码
sys : admin
system :system
14.安装结束验证:1
2
3
4
5
6
7
8
9Enterprise Manager Database Control URL - (orcl) :
http://USER-39:1158/em
数据库配置文件已经安装到 C:\oracle\product\10.2.0,同时其他选定的安装组件也已经安装到 C:\oracle\product\10.2.0\db_1。
iSQL*Plus URL 为:
http://USER-39:5560/isqlplus
iSQL*Plus DBA URL 为:
http://USER-39:5560/isqlplus/dba
15.Oracle 10g 的卸载1
2
3
4参考如下步骤:
1)直接运行卸载程序;
2)删除硬盘上残留文件,如果删除不掉则先进入到安全模式下删除;
3)同时删除注册表中所有与Oracle有关的配置项。
补充说明:
1.目录树型结构图及PATH环境变量:1
2
3D:\oracle\product\10.1.0\dbct\bin;
D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin\client;
D:\oracle\product\10.1.0\dbct\jre\1.4.2\bin;
2.默认ORACLE_BASE所有的ORACLE软件文件和数据库文件都位于它下面的子目录中。1
2在Windows中,默认的ORACLE_BASE目录是:D:\oracle\product\10.1.0(跟你设置有关)
在UNIX中,默认的ORACLE_BASE目录是:/pm/app/oracle/10.1.0
3.默认ORACLE_HOMEE是访问所有ORACLE软件的路径。1
2
3
4
5在Windows中,默认的ORACLE_HOME目录是:D:\oracle\product\10.1.0\dbct (跟你设置有关)
在UNIX中,默认的ORACLE_HOME目录是:/pm/app/oracle/10.1.0/dbct
admin文件夹,存储初始化文件和日志文件网络监听控制器
Oradata\oract文件夹,存储数据库数据文件.dbf、控制文件.ctl、重做日志文件.log
4.Oracle 注册表项之语言设置1
2
3#名称 数据
NLS_LANG SIMPLIFIED CHINESE_CHINA.ZHS16GBK
#//其中:SIMPLIFIED CHINESE表示简体中文 simplified,CHINA表示中文日期格式,ZHS16GBK表示编码。
详细说明:
NLS_LANG格式:NLS_LANG=language_territory.charset 有三个组成部分(语言、地域和字符集)
,每个组成成分控制了NLS子集的特性。
三个成分可以任意组合,例如:
1 | #还有一些子集可以更明确定义NLS_LANG参数: |
其中:language 指定服务器消息的语言,territory 指定服务器的日期和数字格式,Charset 指定字符集;如果使用英文,将NLS_LANG的值改为:AMERICAN_AMERICA.WE8ISO8859P1 或 englishi_ America.US7SCII
在SQL/PLUS中,运行下面的SQL语句,检查所连接数据库的字符集:1
2
3
4SQL> select userenv('language') from dual;
USERENV('LANGUAGE')
----------------------------------------------------
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
5.Oracle 10G服务进程
在Windows操作系统下安装Oracle 10g数据库以后,计算机的运行速度明显降低,所以在不使用数据库时,可将Oracle 10g数据库服务关闭
6.ORACLE DATABASE 10G 版本安装异常处理
设置兼容性为windows xp,和右键管理员启动安装程序Setup.exe
0.在Oracle11g解压的根目录中运行 C:\11gR2\database\setup.exe
,弹出安装界面;
1.配置安全更新(可以直接跳过),点击下一步即可
2.安装选项:创建和配置数据库
3.系统类选项:选择桌面类
4.典型安装配置目录信息:Oracle根目录/软件位置/数据库文件位置/
@.
符号) WeiyiGeek1235.安装条件检测(然后显示出概要),您可以保存响应文件
6.最后安装Oracle产品(等待几分钟即可)
7.安装完成之后会然我们管理Oracle数据库账号密码(是否停用等打勾为确定锁定)
8.通过客户端或者是网页端连接数据库;
9.验证登录使用 PLSQL Developer 12 (64 bit)1
2
3
4
5SQL> select open_mode from v$database;
OPEN_MODE
--------------------
READ WRITE
补充知识:
1.环境变量设置1
2
3
4
5
6
7#Oracle语言:
NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
#监听目录
setx /M ORACLE_HOME "C:\app\Oracle\product\11.2.0\dbhome_1"
setx /M TNS_ADMIN "%ORACLE_HOME%\NETWORK\ADMIN"
setx /M PATH "%PATH%;%ORACLE_HOME%\BIN"
2.验证Oracle是否正常启动监听运行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#看服务 ORCL表示实例名称
- OracleServiceORCL (启动)#@不建议自启
- OracleRemExecService
- OracleOraDb11g_home1TNSListener #@不建议自启
- OracleMTSRecoveryService
- OracleDBConsoleorcl
- OracleVssWriterORCL
- OracleOraDb11g_home1ClrAgent(未启动)
- OracleJobSchedulerORCL
#看端口
TCP 127.0.0.1:1521 0.0.0.0:0 LISTENING 2828
TCP 127.0.0.1:1521 127.0.0.1:49192 ESTABLISHED 2828
#看状态
lsnrctl status #查看oracle状态
LSNRCTL for 64-bit Windows: Version 11.2.0.1.0 - Production on 28-8月 -2019 11:1
2:52
Copyright (c) 1991, 2010, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 11.2.0.1.0 - Produ
ction
启动日期 28-8月 -2019 09:58:26
正常运行时间 0 天 1 小时 14 分 27 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 C:\app\Oracle\product\11.2.0\dbhome_1\network\admin\listener.ora
监听程序日志文件 c:\app\oracle\diag\tnslsnr\WIN-76Q3KD7PI52\listener\alert\log.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\\.\pipe\EXTPROC1521ipc)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1521)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
3.Oracle的停止与启动1
2
3
4
5
6
7
8
9
10
11
12
13
14#重要提示:管理员身份运行该脚本
启动服务(OrclService_Start.bat)命令:
net start "OracleDBConsoleorcl"
net start OracleOraDb11g_home1TNSListener
net start OracleServiceORCL
pause
exit
停止服务(OrclService_Stop.bat)命令:
net stop "OracleDBConsoleorcl"
net stop OracleOraDb11g_home1TNSListener
net stop OracleServiceORCL
pause
exit
4.Oracle监听停止和启动
1 | lsnrctl stop #关闭 |
注意事项:
1 | #开始 -> Oracle - OraDb11g_home1 -> 配置和移植工具 -> net manager (只是本身的ps/SQL连接的时候生效) |
外部机器登录到ORACLE数据库中
PLSQL Developer 12(64bit)
描述:用PL/SQL连接到其他Oracle机器上面:
1 | 192.168.1.129_bd = |
F:\ChoromeDownload\instantclient_11_2\oci.dll
1 | 192.168.1.129:1521/orcl |
注意: 如果本机安装有Oracle数据库的话直接在Oracle根目录下安装 C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
文件进行修改配置配置oracle客户端的监听;
Navicat Premium 12 客户端连接
描述:可以看到Navicat支持众多的数据库连接,还包括云上数据库的连接;
下面进行连接Oracle数据库配置(需要设置登录角色):
知识1.Oracle监听器的静态注册与动态注册区别
描述:如何查询某服务是静态注册还是动态注册?1
2
3
4
5
6
7#在运行lsnrctl status 常会看到如下返回值:
服务Orcl包含1个例程。
例程"mydata",状态 UNKOWN,包含此服务的一个处理程序。
服务Orcl包含1个例程。
例程"mydata",状态 READY,包含此服务的一个处理程序
服务Orcl包含1个例程。
例程"mydata",状态 BLOCK,包含此服务的一个处理程序
(1)静态注册
由于静态注册参数是手动静态添加与数据库无关
,监听配置中数据库服务中的全局数据库名写任意内容与数据库无关
,只要保证SID正确即可连上数据库。
数据库无法确认监听是否正确配置因此lsnrctl中的status显示状态为unkown
,即不保证能连通数据库;
监听器用来表明它不知道关于该实例的任何信息,只有当客户发出连接请求时,它才检查该实例是否存在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# 在配置listerner.ora中 #
#lsnrctl status中显示如下
服务"WeiyiGeek"包含1个例程。
例程"mydata" 状态UNKOWN,包含此服务的一个处理程序
#WeiyiGee 从监听配置过程,数据库服务中的“全局数据库名”读到的值(即配置文件中GLOBAL_DBNAME的值)
#"mydata" 从监听配置中,数据库服务中SID读到的值(即SID_NAME的值)
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(GLOBAL_DBNAME = WeiyiGeek)
(ORACLE_HOME = /orahome/oracle/product/10.2.0/db_1)
(SID_NAME = mydata)
)
)
# 在配置tnsname.ora中 #
服务名SERVICE_NAME即为WeiyiGeek,否则连接不到数据库。
#在客户端连接服务器时,填写的主机字符串即为此服务命名192.168.1.129_bd
192.168.1.129_bd =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = WeiyiGeek) #关键点哟
)
)
静态注册监听不知道实例的具体状态,所以监听启动之初查看实例信息其状态信息显示为UNKNOWN.例如:1
2
3
4> lsnrctl status LISTENER_PHAMR
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Service "phamr" has 1 instance(s). 监听状态中的服务名
Instance "phamr", status UNKNOWN, has 1 handler(s) for this service... 监听状态中的实例名
(2)动态注册
描述: 动态注册的数据库通过状态信息中的状态READY或状态BLOCKED(对于一个备用数据库)来指明。
不管何时关闭数据库,动态注册的数据库都会动态地从监听器注销,而与之相关的信息将从状态列表中消失。不管数据库是在运行还是已经关闭,监听器总是知道它的状态;该信息将被用于连接请求的回退(fallback)和负载平衡。
pmon在数据库启动到mount或open时动态从参数文件中读取service_names值缺省为dbca建立数据库时的全局数据库名(orcl)
。
设置参数service_names为’a,b,c’,命令如下: alter system set service_names='a,b,c'
;1
2
3
4
5
6
7
8
9
10
11
12
13
14#lsnrctl状态如下:
服务“test”包含1个例程。
例程"WeiyiGeek",状态 UNKOWN,包含此服务的一个处理程序
服务"a"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务"b"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务"c"包含1个例程。
例程"WeiyiGeek",状态 READY,包含此服务的一个处理程序
服务 "WeiyiGeek" 包含一个例程。
例程"mydata",状态 READY, 包含此服务的一个处理程序
#以上服务名a, b, c, WeiyiGeek都为READY为动态注册,注意这里最后一条WeiyiGeek是PMON缺省动态注册到监听器内的。
不管参数service_names为何值pmon都会自动以全局数据库名(这里为WeiyiGeek)为服务名,动态注册一个监听。
自定义端口的动态监听注册:
若要启用非默认端口1521的动态监听注册,缺省状态Oracle不会进行动态注册。
要启用动态注册,必须设置local_listener参数,并在服务端配置tnsnames.ora指定监听参数
,或者直接通过修改local_listener指定监听参数。步骤如下:
1.服务端: Net Manager 配置监听程序,监听端口为1525(非默认端口)并且保存配置
2.指定监听参数1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18#法1:直接通过修改local_listener参数指定
SQL>alter system set LOCAL_LISTENER='(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.1.23)(PORT=1525))';
System altered
SQL>alter system register
System altered
#法2:在Oracle服务器端建立$ORACLE_HOME/network/admin/tnsnames.ora 解析文件位置并填入如下内容
WeiyiGeekOracleLogin =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS=(PROTOCOL=TCP)(HOST = 192.168.1.23)(PORT = 1525))
)
)
#设置参数指定通过tnsnames.ora内的信息指定监听参数
SQL>alter system set local_listener=WeiyiGeekOracleLogin;
System altered
SQL>alter system register;
监听动态注册时的实例状态:来自PMON进程动态注册时的实例3种状态:READY、BLOCKED和RESTRICED
动态与静态区别总结:
1.静态注册(手动填写参数): 状态为 "Unknown"
而是通过搜索Listener.ora找到匹配的service后进行注册相应的服务
2.动态注册(由PMON进程自动从参数文件获取): 状态为 "READY"
注意事项:
服务端静态注册监听器时的全局数据库名一致,
否则无法连通。参考:https://www.cnblogs.com/sharpest/p/11016555.html
参考:https://blog.csdn.net/qq_28189423/article/details/82696932
1 | HKEY_LOCAL_MACHINE\SOFTWARE\Oracle |
问题1:新手面临最容易出错的两个文件
常见目录:C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN
监听配置文件(主):listener.ORA
监听登录配置文件(从):nsnames.ORA (transparence Network Substrate透明网络底层,监听服务是它重要的一部分不是全部,不要把TNS当作只是监听器)
正常监听(连接)配置文件参考
listener.ORA1
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# listener.ora Network Configuration File: C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\listener.ora
# Generated by Oracle configuration tools.
# listener.ora文件两大模块
# SID_LIST_LISTENER模块:配置监听的静态注册特性,包含数据库服务名、ORACLE_HOME、实例名等信息。
SID_LIST_LISTENER =
(SID_LIST =
(SID_DESC =
(SID_NAME = CLRExtProc)
(ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1)
(PROGRAM = extproc)
(ENVS = "EXTPROC_DLLS=ONLY:C:\app\Oracle\product\11.2.0\dbhome_1\bin\oraclr11.dll")
)
(SID_DESC =
(GLOBAL_DBNAME = orcl) #数据库服务名称
(ORACLE_HOME = C:\app\Oracle\product\11.2.0\dbhome_1)
(SID_NAME = ORCL) #实例名称
)
)
# LISTENER模块:监听名字、连接协议、监听主机、监听端口等基本配置信息
# 监听默认名字是LISTENER也可以配置别名
LISTENER =
(DESCRIPTION_LIST =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))
)
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.129)(PORT = 1521))
)
)
ADR_BASE_LISTENER = C:\app\Oracle
tnsnames.ora1
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# tnsnames.ora Network Configuration File: C:\app\Oracle\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora
# Generated by Oracle configuration tools.
LISTENER_ORCL =
(ADDRESS = (PROTOCOL = TCP)(HOST = localhost)(PORT = 1521))
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 = localhost)(PORT = 1521))
#配置远程连接重要参数
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
你好看友,欢迎关注博主微信公众号哟! ❤
这将是我持续更新文章的动力源泉,谢谢支持!(๑′ᴗ‵๑)
温馨提示: 未解锁的用户不能粘贴复制文章内容哟!
方式1.请访问本博主的B站【WeiyiGeek】首页关注UP主,
将自动随机获取解锁验证码。
Method 2.Please visit 【My Twitter】. There is an article verification code in the homepage.
方式3.扫一扫下方二维码,关注本站官方公众号
回复:验证码
将获取解锁(有效期7天)本站所有技术文章哟!
@WeiyiGeek - 为了能到远方,脚下的每一步都不能少
欢迎各位志同道合的朋友一起学习交流,如文章有误请在下方留下您宝贵的经验知识,个人邮箱地址【master#weiyigeek.top】
或者个人公众号【WeiyiGeek】
联系我。
更多文章来源于【WeiyiGeek Blog - 为了能到远方,脚下的每一步都不能少】, 个人首页地址( https://weiyigeek.top )
专栏书写不易,如果您觉得这个专栏还不错的,请给这篇专栏 【点个赞、投个币、收个藏、关个注、转个发、赞个助】,这将对我的肯定,我将持续整理发布更多优质原创文章!。
最后更新时间:
文章原始路径:_posts/数据存储/Oracle/Windows下安装Oracle数据库详细.md
转载注明出处,原文地址:https://blog.weiyigeek.top/2019/8-18-95.html
本站文章内容遵循 知识共享 署名 - 非商业性 - 相同方式共享 4.0 国际协议