上一章,我们以 Oracle 11g 版本为例简单介绍了Oracle 数据库体系结构,涵盖了 Oracle 11g 版本概述,以及分别针对体系结构中的逻辑存储结构、物理存储结构、内存结构、进程结构、数据库实例结构等几个方面进行简单的介绍,对于后续深入学习 Oracle DBA 打下一个坚实的基础,此章节,我们开始在 Windows Server 2022
服务器上, 从企业DBA 的视角进行 Oracle 12c 数据库部署安装,然后实践数据库的卸载重装,以及数据库实例的创建和删除,实例监听程序设置,数据库连接及其状态查看,以及对安装过程中存在的问题进行解决。
0x01 Oracle12C 数据库安装
1.1 环境需求与下载
描述: Oracle 的环境搭建需求建议如下:
硬件环境:
- 物理内存: 4G及以上。
- 虚拟内存: 物理内存*2。
- 磁盘空间: 最小需求6GB建议大于8GB。
- CPU处理器: 建议1.5GHz及以上。
软件环境:
- 操作系统: Windows 2019 / Windows 2022 (资料多), Linux 桌面/服务器版本 (节省资源)
- Oracle 数据库:目前官网提供下载的19C、21c 以及 23ai 版本,可直接访问 Oracle Download 页面下载,而12C.11g 则通过Oracle 软件交付云页面下载【后续有流程】。
weiyigeek.top-Oracle Database Software Downloads关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
安装环境
- 操作系统 :Microsoft Windows Server 2022 Standard 10.0.20348 暂缺 Build 20348
- CPU 处理器 : 2C (2.9GHz)
- 内存空间 : 8G
- 磁盘空间 : 数据库安装D盘 (100G)
- Oracle 版本 : Oracle 12C (winx64_12201_database.zip) ,特别注意: 由于Oracle 11g、12c 已经过了支持时期,Oracle 官网已经进行归档,不再官网页面提供下载,因此需要到 Oracle 归档页面进行下载,下面参考作者的操作步骤进行下载。
温馨提示:若需要文章相关的数据库安装包,以及相关客户端工具的童鞋,请关注公众号【全栈工程师修炼指南】并回复关键字 Oracle-20240806
获取。
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
下载安装程序
Step 1.浏览访问Oracle 软件交付云页面 [https://edelivery.oracle.com/ ] 并注册登录,选择 下载软件包
,输入 Oracle Database 12c
, 点击 搜索
。
weiyigeek.top-Oracle 12c软件交付云页面图
Step 2.选择后点击右上角的 Continues
,进入 Oracle 11g 数据库下载页面,并选择对应的操作系统版本即可,此处为了后续学习使用我将 Windows 和 Linux 版本都进行下载。
weiyigeek.top--Oracle12c 数据库下载页面图
Step 3.点击 Continues
进入到下一步,勾选同意许可,再次点击 Continues
继续。
weiyigeek.top-同意软件许可图
Step 4.最后将进入到下载页面,选择 Download
按钮或者点击zip包
进行下载。
weiyigeek.top-下载 Oracle 12c 数据库图
Step 5.最后将下载好的zip压缩包上传到服务器上,并解压到C盘或者当前目录下,至此我们安装包已经备好。
代码语言:javascript复制# 注意:依次解压下面的压缩文件
V839963-01.zip
Tips : 注意 Oracle Database 10.2、11.x、12.x和18c
可作为介质或FTP请求提供给那些拥有任何版本的有效Oracle数据库产品许可证的客户。
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
1.2 服务端安装
安装配置流程
- Step 1.重命名服务器主机名称
PS> Rename-Computer TestDB
然后修改C:WindowsSystem32driversetc
目录中的 hosts 文件进行硬解析配置,例如127.0.0.1 TestDB
,以及解压V839963.zip
到下载目录中。
weiyigeek.top-服务器主机名称
温馨提示:更改主机名称后需要重启系统生效,此外这里无需准备JDK环境,因为Oracle 安装包中会自带并解压。
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 2.右键管理员运行setup.exe -> 将会打开Oracle安装界面此处配置安全更新我取消勾选 -> 然后选择数据库安装选项:
1.创建和配置数据库 (在安装数据库软件的同时创建了数据库及数据库实例) - 此处选择 2.仅安装数据库软件 (只安装了数据库软件,没有创建数据库及数据库实例) 3.升级现有的数据库 (例如将 Oracle 12101 数据库版本升级到 12201 版本的数据库 )
weiyigeek.top-创建和配置数据库
Tips :如不能成功执行或者卡到安装界面上可以参考如下操作:
代码语言:javascript复制# 针对客户端安装,在cmd中执行命令;
setup.exe -ignorePrereq -J"-Doracle.install.client.validate.clientSupportedOSCheck=false"
# 针对服务端安装,在cmd中执行命令:
setup.exe -ignorePrereq -J"-Doracle.install.db.validate.supportedOSCheck=false"
- Step 3.安装Oracle的系统类别(由于我们是在服务器上安装
选择服务器类
) -> 安装类型选择单实例数据库安装
-> 再选择高级安装
-> 数据库安装版本选择企业版
(可以根据您购买的Oracle 许可进行选择)。
weiyigeek.top-服务器类与安装版本
- Step 4.设置Oracle的主目录用户(建议选择虚拟账户或者自定义账号)
此处创建dba用户
-> 选择安装位置为d盘 -> 配置类型选择一般用途/事务处理
。
weiyigeek.top-Oracle的主目录用户关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 5.配置数据库默认标识 (
即默认实例名称
) 如果不需要创建容器数据库则取消勾选 -> 配置选项中选择 字符集(建议使用AL32UTF8)
此处根据数据库或者业务需求我选择中文字符集(ZHS16GBK)
-> 取消示例方案。
weiyigeek.top-数据库默认标识关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 6.选择文件系统后指定数据库文件位置
D:appdba
-> 恢复选项一定要勾选上 -> 设置sys(本地管理用户权限)、system(网络管理用户权限)
用户密码(注意有密码复杂度要求、8位以上大小写与数字组合【建议不要有特殊字符、且用户密码不要一致】)
-> 查看概要中的配置(如果不正确可以及时修改) -> 建议保存安装配置的应答文件以备恢复或者新安装使用。
weiyigeek.top-文件系统指定数据库文件位置关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 7.等待安装完成 -> 出现如下图提示则表示安装成功 最后点击关闭即可。
weiyigeek.top-Oracle 安装成功
- Step 8.通过浏览器访问 OEM
(Oracle 企业管理管理工具)
: https://testdb:5500/em/, 利用上面创建的本地用户sys进行登陆即可, 它可以进行Oracle 服务器的调优配置,我将会在最后一章中进行介绍其使用。
weiyigeek.top-Oracle 企业管理管理工具关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
1.3 数据库卸载与重装
描述: 前面我们安装好了 Oracle,如果在安装过程中安装失败,此时我们需要将 Oracle 卸载干净后进行重新安装。
Oracle 12C 卸载
描述: 如果数据库配置了自动存储管理(ASM),先删除聚集同步服务 CSS( ClusterSynchronization Services), 在 DOS 命令终端中执行 localconfig delete
, 然后再删除自动存储管理(ASM), DOS 命令终端中执行 oracle-delete-assia asm
- Step 0.首先需要删除我们创建的数据库实例,可参考后续的《数据库实例创建与删除》章节停止Oracle 实例,关闭监听。
# 在服务器上以管理员身份访问 Oracle 数据库
sqlpuls "/ as sysdba"
# 停止 Oracle 实例
shutdown immediate
# 关闭监听
lsnrctl stop
- Step 1.然后关闭所有 Oracle 服务 -> Win R (运行) -> services.msc 进行服务管理输入 o 就可以看到oracle开头的服务。
- Step 2.在Oracle安装目录下找到
deinstall.bat
双击执行卸载, 或者在开始菜单中点击Universal Installer
进入Oracle 卸载,此时我的路径是D:appdbaproduct12.2.0dbhome_1deinstall
,(非常注意需要以管理员权限运行)。
Checking for required files and bootstrapping ...
Please wait ...
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
已复制 1 个文件。
日志的位置 C:UsersAdministratorlogs
# 之后按照提示删除对应的Listener以及Oracle主目录。
weiyigeek.top-Oracle卸载关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 3.在系统注册表中清理Oracle卸载余留参数选项,主要是以下Oracle注册表路径 -> Win R (运行) -> regedit
计算机HKEY_LOCAL_MACHINESOFTWAREORACLE # 目录
计算机HKEY_LOCAL_MACHINESOFTWAREODBCODBCINST.INI # 除 Microsoft oDbc for Oracle 注册表键以外的所有含有 Oracle的键
计算机HKEY_LOCAL_MACHINESYSTEMCurrentControlSetServices # 所有以 oracle或 OraWeb为开头的键
计算机HKEY_CURRENT_USERSoftwareMicrosoftWindowsCurrentVersionExplorerMenuOrder/Start Menu/Program # 所有以 oracle 开头的键
- Step 4.删除环境变量中的 PATH 和 CLASSPATH 中包含 Oracle的值(
echo %path%
), 然后删除“开始”/“程序”中所有 Oracle的组和图标,最后删除所有和 ORACLE 相关的目录
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
Oracle 12C 重装
描述 : Oracle 12C 的重装与Oracle 安装基本一致此处不在累述,不过有一点值得注意的是在进行安装数据库软件的同时创建了数据库及数据库实例出错时,此时我们可以先选择仅安装数据库软件
(不能接收用户请求和响应数据给用户),等待安装完成后再进行创建数据库以及 Oracle 实例。
1.4 数据库实例创建与删除
描述: 前面我们说到Oracle 服务器可以创建多个 Oracle 实例和数据库,但实例与数据库的关系通常也是一对一的,客户端通过实例(管理、联系Oracle数据库的一组进程
)联系数据库(实际上是存储数据的静态文件系统
)。
创建操作流程如下:
- Step 1.开始菜单之中选择
Database Configuration Assistant
进入数据库配置助手中 -> 选择创建数据库 -> 进行数据库创建模式配置(典型配置) -> 在全局数据库名处(输入要创建的数据库名称
) -> 存储类型默认文件系统即可 -> 数据库文件位置你可以自定义也可采用缺省配置 -> 输入sys用户管理口令 -> 在 Oracle 主目录用户口令处(输入dba账户的密码
) -> 在可插入数据库名中输入orcltest
。
weiyigeek.top-创建test
数据库关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
- Step 2.显示我们创建配置
test
数据库的配置项 -> 如无任何问题点击完成
即可 -> 等待数据库创建完成。
weiyigeek.top-创建配置test
数据库的配置项
- Step 3.创建完成后会让您更改该数据库以及实例的管理用户的口令(建议设置不一样的口令),之后查看
services.msc
你将会发现多了三个服务OracleJobSchedulerTEST、OracleServiceTEST(实例服务)、OracleVssWriterTEST
weiyigeek.top-数据库以及实例的管理用户的口令
- Step 4.至此完毕(后续讲解·SQLPlus时演示),此时你可以在
D:appdbaoradataTEST
找到该数据库的数据存储目录。
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
删除操作流程如下:
- Step 1.同样在开始菜单之中选择
Database Configuration Assistant
进入数据库配置助手中 -> 选择创建数据库 -> 删除数据库 -> 选择需要删除的数据库对象(此处TEST
) -> 输入sys口令进行验证 -> 点击下一步
weiyigeek.top-删除test数据库
- Step 2.查看删除数据库得概要 -> 确保无误后点击完成 -> 然后会显示数据库删除进度 -> 等待成功的结果 -> 并且此时你会发现服务中以无test相关的oracle服务。
weiyigeek.top-完成TEST数据库的删除关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
1.5 数据库实例监听程序
描述: Oracle 监听程序服务主要为进行接收客户请求, 没有监听程序则无法连接实例以及获取数据库中的数据信息。
监听程序 : 就是运行在Oracle服务器端用于监听客户端的请求的程序,其默认端口通常设置为1521/TCP。
weiyigeek.top-Oracle 监听程序服务关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
Q: 没有监听程序的两种情况?
1.Oracle 数据库软件安装后不存在监听程序服务(例如:
OracleOraDB12Home1TNSListener
)。2.Oracle 数据库原有的监听程序无法正常的监听客户端请求。
此时遇到上面此类情况我们可以删除监听程序后重新创建。
删除监听程序
- Step 1.在开始菜单之中选择
Net Configuration Assistant
进入数据库网络配置助手中 -> 监听程序配置 选择删除工作 -> 点击下一步 -> 选择要删除的监听程序LISTENER
(默认) -> 此时会有一个提示框出现点击是即可 -> 点击下一步
weiyigeek.top-删除监听程序
- Step 2.等待删除监听程序完成 -> 最后点击完成。
关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
创建监听程序
- Step 1.在开始菜单之中选择
Net Configuration Assistant
进入数据库网络配置助手中 -> 监听程序配置 只能选择添加
工作 -> 输入监听程序名称 以及 主目录用户的密码 -> 选择监听程序接收连接的协议 -> 点击下一步。
weiyigeek.top-创建监听程序
- Step 2.进行监听程序服务端口的配置(默认1521即可) -> 看到监听程序配置完成 -> 点击下一步完成 -> 最后在服务中查看Oracle相关的Listener服务是否其启用。
weiyigeek.top-完成创建监听程序关注公众号【全栈工程师修炼指南】,学习更多全栈知识!
1.6 数据库状态查看
描述:在 Oracle 12C 数据库安装完成后,我们可以使用SQLPlus
连接到数据库进行实例和数据库状态查看,例如:
1.查看数据库监听状态,命令行执行如下命令
代码语言:javascript复制PS C:> NETSTAT.EXE -ano | findstr ":1521"
PS C:> lsnrctl status
# 若出现 READY 状态则表示监听正常
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序.
weiyigeek.top-查看Oracle数据库监听状态图
2.设置nls_lang
环境变量防止终端显示乱码,与数据库编码对应即可。
set nls_lang=AMERICAN_AMERICAN.ZHS16GBK
3.使用命令行终端连接掉数据库执行如下命令。
代码语言:javascript复制# 服务器上执行以管理员身份运行
sqlplus "/ as sysdba"
# 查看数据库状态(正常状态:READ WRITE)
select open_mode from v$database;
# 查看实例状态(正常状态:OPEN)
select status from v$instance;
# 挂载数据库
# alert database mount;
# 打开数据库
# alert database open;
# 查看dbf文件路径
select name from v$datafile;
# 查看运行日志文件路径
select * from v$diag_info;
weiyigeek.top-查看Oracle数据库运行状态图
至此,在 Windows Server 2022
安装 Oracle 12C
数据库基本就完成了,后续会继续更新 Oracle 数据库的客户端连接以及Oracel 中几大基本 SQL 入门语句简述和实战,敬请期待。