Oracle 第2章:安装与配置Oracle
安装与配置Oracle数据库是一项复杂但有序的过程。以下是对Oracle数据库安装与配置的概述,包括系统需求与硬件推荐,以及详细的安装步骤。
系统需求与硬件推荐
系统需求
在安装Oracle数据库之前,需要确保目标系统满足Oracle官方规定的最低要求。以下是一般性的要求,但具体版本可能会有所不同:
- 操作系统:支持的操作系统包括Windows Server、Linux、Unix等。确保你的操作系统版本与Oracle数据库版本兼容。
- 处理器:至少需要一个64位的多核处理器。
- 内存:推荐至少16GB RAM,对于更大的数据库环境,推荐更高的内存配置。
- 磁盘空间:
- 至少需要10GB的磁盘空间用于安装Oracle软件。
- 另外,根据数据库大小的不同,还需要额外的空间来存储数据文件、日志文件等。
硬件推荐
为了获得最佳性能,以下是一些建议的硬件配置:
- CPU:建议使用Intel Xeon或AMD EPYC系列的多核处理器。
- RAM:建议至少配备32GB RAM,对于大型数据库应用,建议配备更高容量的RAM。
- 存储:建议使用SSD作为系统盘和数据库文件存放盘,以加快I/O速度。
- 网络:确保有足够的带宽和支持TCP/IP协议的网络接口卡。
安装过程与配置步骤
步骤1:下载安装包
前往Oracle官方网站下载相应版本的数据库安装包。选择与你的操作系统兼容的版本。
步骤2:准备安装目录
创建一个专门的目录用于安装Oracle数据库,例如 /u01/app/oracle 或 C:\oracle (对于Windows)。
步骤3:解压安装文件
解压下载的安装包到准备好的目录中。
步骤4:启动安装程序
找到解压后的安装文件(通常是setup.exe或runInstaller.sh),双击启动安装向导。
步骤5:选择安装类型
选择合适的安装类型,通常可以选择标准安装(Standard Installation)或自定义安装(Custom Installation)。
步骤6:接受许可协议
阅读并接受Oracle数据库的许可协议。
步骤7:选择安装位置
指定Oracle Home目录的位置,默认情况下会安装到解压的位置。可以根据需要更改安装目录。
步骤8:配置Oracle Inventory
如果是首次在该主机上安装Oracle产品,安装程序会提示创建Oracle Inventory目录,并选择一个用户组(如oinstall)。
步骤9:指定组件
选择需要安装的组件,例如数据库服务器、管理工具等。
步骤10:配置数据库
- 数据库标识符:输入全局数据库名称(Global Database Name)和系统标识符(System Identifier,简称SID)。
- 管理账户密码:设置sys和system用户的密码。
- 存储类型:选择自动存储管理(ASM)或文件系统。
- 模板选择:可以选择标准数据库模板或其他模板。
步骤11:确认配置信息
仔细检查配置信息是否正确,然后点击下一步开始安装。
步骤12:等待安装完成
安装过程中可能需要一段时间,期间不要关闭安装向导。
步骤13:配置网络服务
安装完成后,使用Net Configuration Assistant(NetCA)配置监听器和网络服务。
步骤14:验证安装
- 使用SQL*Plus或其他客户端工具连接数据库,验证安装是否成功。
- 运行
tnsping命令验证网络连接。
步骤15:配置环境变量
根据需要,在系统中添加Oracle相关的环境变量,如ORACLE_HOME、ORACLE_SID等。
步骤16:数据库初始化
初始化数据库,创建必要的表空间和其他对象。
以上是安装与配置Oracle数据库的基本步骤。具体步骤可能会因不同的操作系统和Oracle版本而有所差异。请始终参考Oracle官方文档以获得最准确的安装指南。
安装后的配置与管理
步骤17:配置环境变量
为了方便在命令行下使用Oracle工具,需要配置环境变量。在Linux环境下,可以在.bashrc或.bash_profile文件中添加如下环境变量:
export ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1
export ORACLE_SID=orcl
export PATH=$PATH:$ORACLE_HOME/bin
在Windows环境下,可以在系统环境变量中添加相应的变量。
步骤18:启动和停止数据库
安装完成后,需要手动启动数据库。可以使用sqlplus工具登录到数据库,并启动数据库:
SQL> startup
同样,关闭数据库时可以使用:
SQL> shutdown immediate
步骤19:验证安装
验证数据库是否正确安装和配置,可以通过登录SQL*Plus来尝试执行一些基本的SQL命令:
SQL> select status from v$instance;
如果返回的状态是OPEN,那么数据库已经启动并且可以使用。
步骤20:配置监听器
确保数据库监听器已正确配置,并且正在监听正确的端口。可以使用lsnrctl status命令查看监听器的状态。如果需要配置监听器,可以使用netca或lsnrctl命令:
# 启动监听器配置向导
$ netca# 手动启动监听器
$ lsnrctl start
步骤21:创建用户和权限分配
创建新的数据库用户,并授予相应的权限。例如,创建一个名为hr的用户,并授予其CONNECT角色:
SQL> create user hr identified by hr password expire never;
SQL> grant connect to hr;
步骤22:导入数据
如果已有现成的数据,可以通过impdp(导入导出工具)来导入数据。首先需要创建一个新的表空间来存储导入的数据:
SQL> create tablespace users_data logging datafile '/u01/app/oracle/oradata/orcl/users01.dbf' size 100m autoextend on next 10m maxsize unlimited;
然后使用impdp命令导入数据:
$ impdp hr/hr DIRECTORY=dpdir1 DUMPFILE=hr.dmp REMAP_SCHEMA=oldschema:hr
步骤23:配置归档模式
为了实现数据库的高可用性和数据保护,通常需要将数据库配置为归档模式。启用归档模式后,可以在数据库运行的同时备份重做日志文件:
SQL> alter database archivelog;
步骤24:创建备份
一旦数据库处于归档模式,就可以开始创建备份。可以使用RMAN(恢复管理器)来创建完整的数据库备份:
$ rman target /
RMAN> run {allocate channel disk1 device type disk;backup database plus archivelog delete input;release channel all;
}
步骤25:配置安全管理
确保数据库的安全性,包括但不限于:
- 设置强密码策略。
- 配置网络访问控制,限制IP地址范围内的访问。
- 定期审查数据库审计日志。
步骤26:性能监控与优化
使用Enterprise Manager Cloud Control或SQL*Plus中的v$session、v$waitstat等视图来监控数据库性能。根据监控结果调整参数,优化数据库性能。
步骤27:日常管理与维护
- 补丁管理:定期检查Oracle官方发布的安全补丁,并及时更新。
- 空间管理:定期检查数据库表空间使用情况,扩展表空间以防止空间不足。
- 日志管理:管理重做日志文件,确保有足够的日志文件来支持事务处理。
总结
通过上述步骤,你应该能够顺利完成Oracle数据库的安装与配置,并初步具备管理数据库的能力。记住,Oracle数据库的管理是一个持续的过程,涉及到监控、优化、备份等多个方面。随着时间的推移,你将积累更多的经验,并能够更加熟练地应对各种数据库管理挑战。如果你遇到任何具体的问题,都可以进一步寻求帮助或查阅Oracle官方文档。
我们继续深入探讨Oracle数据库的安装与配置,特别是在安装后的管理与维护方面。以下是一些更详细的管理和优化措施,以及一些常见的管理任务。
日常管理和维护
步骤28:数据库性能监控
- 使用AWR(自动工作负载存储库):AWR提供了关于数据库性能的详细报告,包括等待事件、SQL执行统计等。可以通过
DBMS_WORKLOAD_REPOSITORY包来查询AWR数据。
-- 查询最近的AWR快照
SELECT * FROM dba_hist_snapshot ORDER BY snap_id DESC;-- 查询等待事件
SELECT * FROM dba_hist_sysstat WHERE stat_name IN ('log file sync', 'latch: cache buffers chains');
- 使用ASH(自动SQL跟踪):ASH记录了数据库中SQL语句的执行情况,可以用来识别慢查询。
SELECT * FROM v$sqlarea WHERE elapsed > 10000;
步骤29:数据库优化
- SQL查询优化:定期检查并优化SQL查询,使用
DBMS_SQLTUNE包来分析SQL语句的执行计划。
BEGINDBMS_SQLTUNE.REPLAY_BEGIN('tuning_task');
END;
/
- 索引优化:检查索引的使用情况,重建或重组索引以提高查询性能。
ALTER INDEX idx_name REBUILD;
步骤30:空间管理
- 清理无用数据:定期清理过期的数据,释放空间。
DELETE FROM old_table WHERE date_column < SYSDATE - 365;
- 调整表空间大小:根据实际使用情况调整表空间大小,避免空间不足。
ALTER DATABASE DATAFILE '/path/to/datafile.dbf' RESIZE 20G;
步骤31:安全管理
- 设置密码策略:强制用户定期更改密码,并确保密码强度。
ALTER PROFILE default LIMIT PASSWORD_LIFE_TIME 90;
- 启用审计功能:记录重要的数据库操作,以便于安全审查。
AUDIT ALL BY scott BY ACCESS;
步骤32:备份与恢复
- 定期备份:设定定期备份计划,确保数据的安全。
$ rman target /
RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;
- 测试恢复:定期测试备份文件的恢复能力,确保在必要时能够恢复数据。
$ rman target /
RMAN> RECOVER DATABASE USING BACKUP CONTROLFILE;
高级管理技巧
步骤33:使用Oracle企业管理器(OEM)
Oracle Enterprise Manager Cloud Control 提供了一个统一的界面来管理整个Oracle环境。通过OEM可以:
- 监控数据库性能。
- 配置自动任务,如备份和补丁应用。
- 分析SQL性能,识别瓶颈。
- 管理云环境中的Oracle资源。
步骤34:性能调优
- 使用SQL Tuning Advisor:通过SQL Tuning Advisor来优化SQL语句的性能。
BEGINDBMS_SQLTUNE.BEGIN_TUNING_TASK(task_name => 'my_tuning_task',task_type => 'SQL_PROFILE',task_objectives => 'ALL_OBJECTIVES',task_parameters => 'ACTION=ADD_INDEX');
END;
/
- 调整系统参数:根据数据库负载调整SGA(共享池)、PGA(程序全局区)等内存池大小。
ALTER SYSTEM SET shared_pool_size='128M';
步骤35:自动化与脚本化
- 创建自动化脚本:编写shell脚本或批处理文件来自动化日常管理任务,如备份、监控、日志轮换等。
#!/bin/bash
DATE=$(date +%Y%m%d)
rman target / <<EOF
CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF 7 DAYS;
RUN {ALLOCATE CHANNEL c1 DEVICE TYPE DISK;BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT;RELEASE CHANNEL c1;
}
EOF
结论
通过以上的步骤和技巧,你可以有效地管理和维护Oracle数据库,确保其稳定运行并发挥最佳性能。记住,数据库管理是一个持续的过程,需要不断地监控、调整和优化。此外,随着技术的发展,Oracle不断推出新的版本和功能,因此定期更新知识并学习新的工具和技术也是十分重要的。
如果你在实际操作中遇到任何问题,Oracle官方文档、社区论坛以及专业的技术支持都是很好的求助渠道。希望这些信息对你有所帮助!
相关文章:
Oracle 第2章:安装与配置Oracle
安装与配置Oracle数据库是一项复杂但有序的过程。以下是对Oracle数据库安装与配置的概述,包括系统需求与硬件推荐,以及详细的安装步骤。 系统需求与硬件推荐 系统需求 在安装Oracle数据库之前,需要确保目标系统满足Oracle官方规定的最低要…...
动态规划 —— 斐波那契数列模型-解码方法
1. 解码方法 题目链接: 91. 解码方法 - 力扣(LeetCode)https://leetcode.cn/problems/decode-ways/description/ 2. 题目解析 1. 对字母A - Z进行编码1-26 2. 11106可以解码为1-1-10-6或者11-10-6, 但是11-1-06不能解码 3. 0n不能解码 4. …...
PPT / Powerpoint中利用LaTeX输入公式
PPT / Powerpoint中利用LaTeX输入公式_ppt插入latex公式-CSDN博客文章浏览阅读2.8w次,点赞42次,收藏75次。新版的Word(Office 2016后?)是支持LaTeX公式输入的,但是Powerpoint并不支持。下面介绍如何利用。_…...
C++ 模板专题 - 类型擦除
一:概述 C 中的类型擦除(Type Erasure)是一种技术,允许你在不暴露具体类型信息的情况下,通过统一的接口处理不同的类型。这种技术常用于实现泛型编程,特别是在需要支持多种不同类型的情况下,如容…...
RuoYi-Vue项目 重点代码讲解
1. RuoYi-Vue项目 常规说明: ruoyi-admin:后台接口开发(主要存放控制层相关代码)ruoyi-common:通用工具ruoyi-framework:框架核心ruoyi-generator:代码生成(可以移除)r…...
pandas习题 024:用字典构造 DataFrame
编码题)用 Python 的字典构造一个 DataFrame,它有 a、b 两列,三行数据。其中 a 列值为 1、4、7,b 列值为 2、5、8,索引为 x、y、z。 即: ‘’’ a b x 1 2 y 4 5 z 7 8 ‘’’ import pandas as pddf = pd.DataFrame({a: [1, 4,...
如何在Node.js中执行解压缩文件操作
一、解压文件 1.安装依赖: 安装adm-zip依赖包:npm install adm-zip --save 安装iconv-lite依赖包:npm install iconv-lite --save 解压前的file文件夹结构: update-1.0.2.zip压缩包内容: 2.在depresssFile.js文件&…...
梦熊 CSP-S模拟赛 T3 youyou 的序列 II
原题链接 题目大意 给定一个长度为 n 的非负整数序列 a ,初始时所有数字均被标记为蓝色,youyou 和 yy 轮流对序列 a 进行操作,由 youyou 开始。 • 如果当前是 youyou 的回合,那么他可以至多选择连续的 c 1 个数…...
记录下docker部署gitlab-ce-17.5版本及客户端git拉取方式配置
服务端部署 # 提前拉取镜像 docker pull gitlab/gitlab-ce:17.5.0-ce.0docker run -d \ --name gitlab \ --hostname gitlab.test.cn \ -p 443:443 \ -p 88:80 \ -p 2222:22 \ --restartalways \ -v /data/gitlab/config:/etc/gitlab \ -v /data/gitlab/logs:/var/log/gitlab …...
opencv-platform实现人脸识别
和同事接触了下甲方,对方算是一个资源整合的自由人,手里有项目,然后认识些开发就聊下有什么事情可以做的,对方聊了下做人脸签到,或者说人脸打开。就这方面我做了下简单的了解。做了个java小demo。 我们常用的人脸识别的摄像头屏幕…...
leetcode 有重复字符串的排列组合
1.题目要求: 2.题目代码: class Solution { public://运用回溯vector<string> result;string s;void backtricking(string S,vector<bool>& used){if(s.size() S.size()){result.push_back(s);return;}for(int i 0;i < S.size();i){if(i >…...
【大数据学习 | kafka】kafka的组件架构
broker:每个kafka的机器节点都会运行一个进程,这个进程叫做broker,负责管理自身的topic和partition,以及数据的存储和处理,因为kafka是集群形式的,所以一个集群中会存在多个broker,但是kafka的整体又不是一…...
Python基于TensorFlow实现简单循环神经网络回归模型(SimpleRNN回归算法)项目实战
说明:这是一个机器学习实战项目(附带数据代码文档视频讲解),如需数据代码文档视频讲解可以直接到文章最后关注获取。 1.项目背景 Simple RNN是一种基础的循环神经网络,它能够处理序列数据,例如文本、时间序…...
torch.isclose
torch.isclose是 PyTorch 中的一个函数,用于判断两个张量中的对应元素是否接近相等。 其函数签名为:torch.isclose(input, other, rtol1e-05, atol1e-08, equal_nanFalse)。 参数说明: input 和 other:要进行比较的两个张量。r…...
Python记录-字典
定义 Python 中的字典(dictionary)是一种内置的数据结构,用于存储键值对(key-value pairs)。字典中的每个键(key)都是唯一的,并且与一个值(value)相关联。键…...
python读取学术论文PDF文件内容
目录 1、PyPDF22、pdfplumber3、PyMuPDF4、pdfminer总结 1、PyPDF2 PyPDF2 是一个常用的库,可以用来读取、合并、分割和修改PDF文件。读取pdf内容: import PyPDF2# 打开PDF文件 with open(ELLK-Net_An_Efficient_Lightweight_Large_Kernel_Network_for…...
5550 取数(max)
经验值:2000 时间限制:1000毫秒 内存限制:128MB 庐阳区2020年信息学竞赛试题 不许抄袭,一旦发现,直接清空经验! 题目描述 Description 盒子里面有N个球,每个球上都一个数。你每次可以取走一…...
Windows常用网络命令
ipconfig 功能:查看维护本地的IP地址 ipconfig 显示计算机中网络适配器的ip地址、子网掩码及默认网关。 ipconfig /all 显示所有网络适配器(网卡、拨号连接等)的完整tcp/ip配置信息。与不带参数的用法相比,它的信息更全更多&am…...
地磁传感器(学习笔记上)
在咱们地磁传感器里的开发板: 开发板上的地磁传感器型号是QMC5883L,它也是使用I2C与ESP32通信,I2C地址为0X0D。这个项目,我们使用地磁传感器QMC5883L计算方位角,最终,把开发板放平到桌子上,旋转…...
使用 NumPy 和 Matplotlib 进行高级数据可视化:实践指南
使用 NumPy 和 Matplotlib 进行高级数据可视化:实践指南 数据科学和工程实践中,NumPy 和 Matplotlib 是强大的组合工具。本文将进一步展示如何借助这两个库进行更复杂的可视化任务,例如创建多曲线、叠加图、动态可视化等场景。 一、环境准备…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
docker 部署发现spring.profiles.active 问题
报错: org.springframework.boot.context.config.InvalidConfigDataPropertyException: Property spring.profiles.active imported from location class path resource [application-test.yml] is invalid in a profile specific resource [origin: class path re…...
Vite中定义@软链接
在webpack中可以直接通过符号表示src路径,但是vite中默认不可以。 如何实现: vite中提供了resolve.alias:通过别名在指向一个具体的路径 在vite.config.js中 import { join } from pathexport default defineConfig({plugins: [vue()],//…...
实战三:开发网页端界面完成黑白视频转为彩色视频
一、需求描述 设计一个简单的视频上色应用,用户可以通过网页界面上传黑白视频,系统会自动将其转换为彩色视频。整个过程对用户来说非常简单直观,不需要了解技术细节。 效果图 二、实现思路 总体思路: 用户通过Gradio界面上…...
【SpringBoot自动化部署】
SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一,能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时,需要添加Git仓库地址和凭证,设置构建触发器(如GitHub…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
HybridVLA——让单一LLM同时具备扩散和自回归动作预测能力:训练时既扩散也回归,但推理时则扩散
前言 如上一篇文章《dexcap升级版之DexWild》中的前言部分所说,在叠衣服的过程中,我会带着团队对比各种模型、方法、策略,毕竟针对各个场景始终寻找更优的解决方案,是我个人和我司「七月在线」的职责之一 且个人认为,…...
华为OD最新机试真题-数组组成的最小数字-OD统一考试(B卷)
题目描述 给定一个整型数组,请从该数组中选择3个元素 组成最小数字并输出 (如果数组长度小于3,则选择数组中所有元素来组成最小数字)。 输入描述 行用半角逗号分割的字符串记录的整型数组,0<数组长度<= 100,0<整数的取值范围<= 10000。 输出描述 由3个元素组成…...
用js实现常见排序算法
以下是几种常见排序算法的 JS实现,包括选择排序、冒泡排序、插入排序、快速排序和归并排序,以及每种算法的特点和复杂度分析 1. 选择排序(Selection Sort) 核心思想:每次从未排序部分选择最小元素,与未排…...
OpenHarmony标准系统-HDF框架之I2C驱动开发
文章目录 引言I2C基础知识概念和特性协议,四种信号组合 I2C调试手段硬件软件 HDF框架下的I2C设备驱动案例描述驱动Dispatch驱动读写 总结 引言 I2C基础知识 概念和特性 集成电路总线,由串网12C(1C、12C、Inter-Integrated Circuit BUS)行数据线SDA和串…...
