写这篇文档纯属好奇试水,起源是群里的一次讨论:
之前在群里和朋友们讨论windows 安装oracle在各个医院都十分普遍,中勒索病毒的又特别多,要是windows上把oracle放到ASM里,那是不是就不会被加密了(起码重要的数据文件是安全的)?
我们平时都用LINUX/AIX/SOLARIS来跑数据库,压根不用图形。
windows也有无图形版本,在这上面安装完,是不是就能避免别人上去乱动了(虽说没有图形,但是有漏洞的话也会被勒索病毒注入)。于是研究了这么一篇水文,这一篇先研究一下在server core上安装oracle。
成了再研究下一篇Windows server Core+19c database +asm
以下是准备环境:
虚拟机软件:vmware workstation 17
操作系统:Windows Server 2019,安装无图形版本。
数据库:Oracle 19.3 database
目录
1、安装Server Core操作系统
2、配置操作系统
3、磁盘分区
4、虚拟机安装VMTOOLS
5、使用默认共享上传安装包
6、安装数据库
7、配置监听
8、DBCA创建数据库
9、添加环境变量
10、关于4K对齐
参考
1、安装Server Core操作系统
安装系统时不选择(桌面体验),即为无图形界面,后面的步骤和普通WINDOWS安装一样。
2、配置操作系统
安装完系统就是这个样子了,哈哈,没有图形,上来就是CMD窗口。
先是配置初始用户密码
如果不小心关掉了CMD窗口,再按ctrl+alt+del调出任务管理器,再运行CMD
可以运行sconfig.cmd调出操作系统配置界面,这里能进行一些简单的IP、主机名等配置,类似AIX的smitty,但是功能完全没有AIX的强大(AIX的smitty几乎覆盖了80%的操作)
后期大量配置还是要基于power shell来进行配置。
打开远程桌面
配置网络
关闭防火墙(如果有兴趣研究这块,我后面附上如何在在pwoershell下管理windows防火墙)
先切换到powershell,在CMD下直接敲powershell就行
执行命令查看防火墙配置
get-netfirewallprofile
默认防火墙是都开启的状态Enabled值都是True
查关闭所有防火墙
set-netfirewallprofile -profile domain,public,private -enable false
以下是前两步执行输出,enabled值为false表示防火墙己经关闭了
C:Windowssystem32>powershell
Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS C:Windowssystem32> get-netfirewallprofile
Name : Domain
Enabled : False
DefaultInboundAction : NotConfigured
DefaultOutboundAction : NotConfigured
AllowInboundRules : NotConfigured
AllowLocalFirewallRules : NotConfigured
AllowLocalIPsecRules : NotConfigured
AllowUserApps : NotConfigured
AllowUserPorts : NotConfigured
AllowUnicastResponseToMulticast : NotConfigured
NotifyOnListen : False
EnableStealthModeForIPsec : NotConfigured
LogFileName : %systemroot%system32LogFilesFirewallpfirewall.log
LogMaxSizeKilobytes : 4096
LogAllowed : False
LogBlocked : False
LogIgnored : NotConfigured
DisabledInterfaceAliases : {NotConfigured}
Name : Private
Enabled : False
DefaultInboundAction : NotConfigured
DefaultOutboundAction : NotConfigured
AllowInboundRules : NotConfigured
AllowLocalFirewallRules : NotConfigured
AllowLocalIPsecRules : NotConfigured
AllowUserApps : NotConfigured
AllowUserPorts : NotConfigured
AllowUnicastResponseToMulticast : NotConfigured
NotifyOnListen : False
EnableStealthModeForIPsec : NotConfigured
LogFileName : %systemroot%system32LogFilesFirewallpfirewall.log
LogMaxSizeKilobytes : 4096
LogAllowed : False
LogBlocked : False
LogIgnored : NotConfigured
DisabledInterfaceAliases : {NotConfigured}
Name : Public
Enabled : False
DefaultInboundAction : NotConfigured
DefaultOutboundAction : NotConfigured
AllowInboundRules : NotConfigured
AllowLocalFirewallRules : NotConfigured
AllowLocalIPsecRules : NotConfigured
AllowUserApps : NotConfigured
AllowUserPorts : NotConfigured
AllowUnicastResponseToMulticast : NotConfigured
NotifyOnListen : False
EnableStealthModeForIPsec : NotConfigured
LogFileName : %systemroot%system32LogFilesFirewallpfirewall.log
LogMaxSizeKilobytes : 4096
LogAllowed : False
LogBlocked : False
LogIgnored : NotConfigured
DisabledInterfaceAliases : {NotConfigured}
3、磁盘分区
先修改盘符,把光驱改成O盘,这步纯属个人强迫症。
C:UsersAdministrator>diskpart
Microsoft DiskPart 版本 10.0.14393.0
Copyright (C) 1999-2013 Microsoft Corporation.
在计算机上: ORACLE
DISKPART> lis volume
卷 ### LTR 标签 FS 类型 大小 状态 信息
卷 0 D SSS_X64FREV UDF DVD-ROM 5913 MB 正常
卷 1 RAW 磁盘分区 59 GB 正常
卷 2 C NTFS 磁盘分区 99 GB 正常 启动
卷 3 恢复 NTFS 磁盘分区 450 MB 正常 已隐藏
卷 4 FAT32 磁盘分区 99 MB 正常 系统
DISKPART> select volume 0
卷 0 是所选卷。
DISKPART> assign letter=o
DiskPart 成功地分配了驱动器号或装载点。
DISKPART> list volume
卷 ### LTR 标签 FS 类型 大小 状态 信息
卷 0 O SSS_X64FREV UDF DVD-ROM 5913 MB 正常
然后创建D盘(分的60G,跑到磁盘0了)
C:UsersAdministrator>diskpart
Microsoft DiskPart 版本 10.0.14393.0
Copyright (C) 1999-2013 Microsoft Corporation.
在计算机上: ORACLE
DISKPART> list disk
磁盘 ### 状态 大小 可用 Dyn Gpt
-------- ------------- ------- ------- --- ---
磁盘 0 脱机 60 GB 60 GB
磁盘 1 联机 100 GB 0 B *
DISKPART> select disk 0
磁盘 0 现在是所选磁盘。
DISKPART> online disk
DiskPart 成功使所选磁盘联机。
DISKPART> attr disk clear readonly
已成功清除磁盘属性。
DISKPART> convert gpt
DiskPart 已将所选磁盘成功地转更换为 GPT 格式。
DISKPART> clean
DiskPart 成功地清除了磁盘。
DISKPART> create partition primary align=1024 //这步是模拟4K对齐配置的,后面的章节我附上说明
DiskPart 成功地创建了指定分区。
DISKPART> list partition
分区 ### 类型 大小 偏移量
------------- ---------------- ------- -------
* 分区 1 主要 59 GB 1024 KB
DISKPART> select partition 1
分区 1 现在是所选分区。
DISKPART> format fs=ntfs unit=64k label="oradata" quick
100 百分比已完成
DiskPart 成功格式化该卷。
DISKPART> assign letter=d
DiskPart 成功地分配了驱动器号或装载点。
DISKPART> list volume
卷 ### LTR 标签 FS 类型 大小 状态 信息
---------- --- ----------- ----- ---------- ------- --------- --------
卷 0 O SSS_X64FREV UDF DVD-ROM 5913 MB 正常
* 卷 1 D oradata NTFS 磁盘分区 59 GB 正常
卷 2 C NTFS 磁盘分区 99 GB 正常 启动
卷 3 恢复 NTFS 磁盘分区 450 MB 正常 已隐藏
卷 4 FAT32 磁盘分区 99 MB 正常 系统
4、虚拟机安装VMTOOLS
在WORKSTATION上点击挂载TOOLS
先用diskpart查看一下盘符diskpart---list volume
C:Windowssystem32>diskpart
Microsoft DiskPart 版本 10.0.14393.0
Copyright (C) 1999-2013 Microsoft Corporation.
在计算机上: ORACLE
DISKPART> list volume
卷 ### LTR 标签 FS 类型 大小 状态 信息
---------- --- ----------- ----- ---------- ------- --------- --------
卷 0 O VMware Tool CDFS DVD-ROM 124 MB 正常
卷 1 D oradata NTFS 磁盘分区 59 GB 正常
卷 2 C NTFS 磁盘分区 99 GB 正常 启动
卷 3 恢复 NTFS 磁盘分区 450 MB 正常 已隐藏
卷 4 FAT32 磁盘分区 99 MB 正常 系统
可以看到O盘是光驱挂载了vmware tools,接下来执行安装。
C:Windowssystem32>o:
O:>dir
驱动器 O 中的卷是 VMware Tools
卷的序列号是 CF56-84A4
O: 的目录
2022/08/02 20:50 Program Files
2022/08/02 20:50 788,240 VMwareToolsUpgrader.exe
2022/08/02 20:50 55,802 autorun.ico
2022/08/02 20:50 100 autorun.inf
2022/08/02 20:50 23 certified.txt
2022/08/02 20:50 2,694 manifest.txt
2022/08/02 20:50 44,265,872 setup.exe
2022/08/02 20:50 82,964,152 setup64.exe
7 个文件 128,076,883 字节
1 个目录 0 可用字节
O:>setup.exe
这里窗口弹出了,哈哈,也不全完是没有图形的,接下来傻瓜安装就可以了。
5、使用默认共享上传安装包
拷贝安装文件至D盘根目录下
执行命令创建安装目录
C:UsersAdministrator>d:
D:>mkdir apporacleproduct19.3db_1
创建之后,解压软件到刚才创建的目录
d:>powershell
Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS D:> cd d:
PS D:> dir
目录: D:
Mode LastWriteTime Length Name
---- ------------- ------ ----
d----- 2023/12/29 20:33 app
-a---- 2023/12/28 22:40 3105763999 Oracle Database 19.3.0.0.0 - Long Term Release for Microsoft Windows x
64 (64-bit).zip
PS D:> Expand-Archive -LiteralPath '.Oracle Database 19.3.0.0.0 - Long Term Release for Microsoft Windows x64 (64-bit)
.zip' -DestinationPath d:apporacleproduct19.3db_1
会弹出解压进度,等待解压完毕。
6、安装数据库
解压完成后cd到 指定目录
直接运行setup.bat进行安装
PS D:> cd D:apporacleproduct19.3db_1
PS D:apporacleproduct19.3db_1> .setup.bat
不出意外,出了图形界面。。。
接下来就是正常的安装步骤了
7、配置监听
安装完成后,环境变量没有生效,手动进到安装目录下,执行下命令
d:app>cd d:apporacleproduct19.3db_1bin
d:apporacleproduct19.3db_1bin>netca
创建监听
8、DBCA创建数据库
再往下我就不截图了,大家都会
9、添加环境变量
方法1:powershell
切换到powershell下,运行如下命令查看当前PATH
C:Windowssystem32>powershell
Windows PowerShell
版权所有 (C) 2016 Microsoft Corporation。保留所有权利。
PS C:Windowssystem32> $env:path -split";"
C:Windowssystem32
C:Windows
C:WindowsSystem32Wbem
C:WindowsSystem32WindowsPowerShellv1.0
C:UsersAdministratorAppDataLocalMicrosoftWindowsApps
----临时生效配置方法,在powershell里输入如下
$env:ORACLE_HOME+="D:apporacleproduct19.3db_1"
$env:ORACLE_BASE+="D:appAdministrator"
$env:ORACLE_SID+="ORCL"
$env:PATH+=";D:apporacleproduct19.3db_1bin"
exit
---然后再执行oracle命令,立即生效
C:UsersAdministrator>lsnrctl status
LSNRCTL for 64-bit Windows: Version 19.0.0.0.0 - Production on 29-12月-2023 22:29:42
Copyright (c) 1991, 2019, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=Oracle)(PORT=1521)))
LISTENER 的 STATUS
------------------------
别名 LISTENER
版本 TNSLSNR for 64-bit Windows: Version 19.0.0.0.0 - Production
启动日期 29-12月-2023 22:12:56
正常运行时间 0 天 0 小时 16 分 47 秒
跟踪级别 off
安全性 ON: Local OS Authentication
SNMP OFF
监听程序参数文件 D:apporacleproduct19.3db_1networkadminlistener.ora
监听程序日志文件 D:appAdministratordiagtnslsnrOraclelisteneralertlog.xml
监听端点概要...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=Oracle)(PORT=1521)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(PIPENAME=\.pipeEXTPROC1521ipc)))
服务摘要..
服务 "CLRExtProc" 包含 1 个实例。
实例 "CLRExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序...
服务 "orcl" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
服务 "orclXDB" 包含 1 个实例。
实例 "orcl", 状态 READY, 包含此服务的 1 个处理程序...
命令执行成功
C:UsersAdministrator>sqlplus / as sysdba
SQL*Plus: Release 19.0.0.0.0 - Production on 星期五 12月 29 22:29:47 2023
Version 19.3.0.0.0
Copyright (c) 1982, 2019, Oracle. All rights reserved.
连接到:
Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
Version 19.3.0.0.0
SQL> select status from v$instance;
STATUS
------------
OPEN
SQL>
方法2:使用setx修改系统变量,改完立即生效
setx 用法:
设置用户环境变量:setx "变量名" "变量值"
设置计算机(全局)环境变量:setx "变量名" "变量值" /m
setx "ORACLE_HOME" "D:apporacleproduct19.3db_1"
setx "ORACLE_BASE" "D:appAdministrator"
setx "ORACLE_SID" "ORCL"
setx "PATH" "D:apporacleproduct19.3db_1bin;%PATH%"
方法3:regedit直接修改注册表
在指定的位置创建键值即可
- 用户变量所在位置:
HKEY_CURRENT_USEREnvironment
- 系统变量所在位置:
HKEY_LOCAL_MACHINESYSTEMControlSet001ControlSession ManagerEnvironment
10、关于4K对齐
Windows Server 2003 以及以前的版本,创建分区的时候,默认偏移量是32K。
Windows server 2008 及以后的版本,创建分区的时候,默认是1024K
网上的说法是:并检查“分区起始偏移”的数值是否能被4096整除,能整除则表明是4K对齐,否则则不是4K对齐。
这块我也没太看懂,有懂的小伙伴可以给我讲讲。
检查的方法1:
检查方法2:
查看startingoffset值
C:UsersAdministrator>wmic partition get blocksize,startingoffset,name,index
BlockSize Index Name StartingOffset
512 0 磁盘 #1,分区 #0 1048576
512 1 磁盘 #1,分区 #1 472907776
512 2 磁盘 #1,分区 #2 593494016
512 0 磁盘 #0,分区 #0 1048576
关于我第3节里要与置align的参数说法如下:
ALIGN= 通常与硬件 RAID 逻辑单元号(LUN)
阵列一同使用来提高性能。分区偏移将是 的倍数。如果指定了 OFFSET 参数,则将四舍五入为最接近的 的倍数。
参考
How to Zip (and Unzip) Files Using PowerShell (howtogeek.com)
Basic Commands to Configure and Manage Windows Server Core | Windows OS Hub (woshub.com)
Managing Windows Firewall Rules with PowerShell | Windows OS Hub (woshub.com)
也欢迎关注我的公众号【徐sir的IT之路】,一起学习!
————————————————————————————
公众号:徐sir的IT之路
CSDN :https://blog.csdn.net/xxddxhyz?type=blog
墨天轮:https://www.modb.pro/u/3605
PGFANS:https://www.pgfans.cn/user/home?userId=5568
————————————————————————————