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 是强大的组合工具。本文将进一步展示如何借助这两个库进行更复杂的可视化任务,例如创建多曲线、叠加图、动态可视化等场景。 一、环境准备…...
mysql 启动报错 ‘/var/run/mysqld/mysqld.sock‘
问题描述: Docker 拉取 Ubuntu镜像,启动ubuntu容器后 在里边安装mysql 当容器启动时,不将/var/lib/mysql 目录映射到宿主机时,mysql可以正常启动使用当容器启动时,将/var/lib/mysql 目录映射到宿主机后,my…...
JAVA基础:常用类 (习题笔记)
1,验证键盘输入的用户名不能为空,长度大于6,不能有数字。 提示:使用字符串String类的相关方法完成 package packagingClass;import java.util.Scanner;public class Exercises1 {//程序入口public static void main(String[] arg…...
element 按钮变形 el-button样式异常
什么都没动,element UI的按钮变形了,莫名其妙,连官网的也变形了,换了其它浏览器又正常, 难道这是element UI的问题?NO,是浏览器的插件影响到了!去扩展插件里面一个个关闭扩展&#x…...
Windows/Linux(服务器)查看显卡的名称
文章目录 1. 使用 nvidia-smi(适用于 NVIDIA 显卡)2. 使用 wmic 命令(Windows) 1. 使用 nvidia-smi(适用于 NVIDIA 显卡) 如果服务器上安装了 NVIDIA 驱动程序,可以使用 nvidia-smi 工具来查看…...
算法基础 - 时间复杂度和空间复杂度(万字长文详解)
文章目录 前言什么是算法效率时间复杂度定义作用类比理解 空间复杂度定义作用类比理解 大O表示法为什么需要?定义计算步骤1. 计算基本操作的执行次数 T(n)2. 确定 T(n) 的数量级(按规则)3. 使用大O表示法表示时间复杂度 常见复杂度O(1)说明案…...
【K8S系列】Kubernetes 中 Service IP 地址和端口不匹配问题及解决方案【已解决】
在 Kubernetes 中,Service 是实现 Pod 之间和 Pod 与外部之间通信的关键组件。Service 的 IP 地址和端口配置不当可能导致应用无法正常访问。本文将详细分析 Service IP 地址和端口不匹配的问题,常见原因及其解决方案。 一、问题描述 Service IP 地址和…...
10. 异常处理器
一、通过 注解 注册异常处理器 <?php namespace App\Exception\Handler;use App\Exception\FooException; use Hyperf\ExceptionHandler\ExceptionHandler; use Hyperf\HttpMessage\Stream\SwooleStream; use Swow\Psr7\Message\ResponsePlusInterface; use Throwable;use…...
python查询并安装项目所依赖的所有包
引言 如果需要进行代码的移植,肯定少不了在另一台pc或者服务器上进行环境的搭建,那么首先是要知道在已有的工程的代码中用到了哪些包,此时,如果是用人工去一个一个的代码文件中去查看调用了哪些包,这个工作甚是繁琐。…...
istio多主集群架构验证方法
istio单网格多集群架构搭建完成后,需要验证下当前集群是否可以发现对端集群,验证方法如下: 命名空间建议设置为:demo-dubbo deploy.yaml apiVersion: apps/v1 kind: Deployment metadata:finalizers:- kubebuilder.io/net.traf…...
Java全栈经典面试题剖析8】JavaSE高级 -- 线程同步、 线程通信、死锁、线程池
目录 面试题3.44 多线程的同步方式 面试题3.45 多线程安全问题怎么解决 面试题3.46 当一个线程进入一个对象的一个synchronized方法后,其它线程是否可进入此对象的其它方法? 面试题3.47 简述synchronized与java.util.concurrent.locks.Lock的异同ÿ…...
做网站代理需要办什么执照/企业网站管理系统源码
密码错误频繁登录引发的”library cache lock”或”row cache lock”等待 对于正常的系统,由于密码的更改,可能存在某些被遗漏的客户端,不断重复尝试使用错误密码登录数据库,从而引起数据库内部长时间的”library cache lock”或”…...
营销4p/南宁百度seo
Java字符串对象和常量池的总结 字符串对象 new 当执行String str1 new String("123");时,虚拟机会创建几个对象呢,答案是两个。 当一个字符串对象被new出来的时候,有两种情况: 当字符串常量池中已经有这个对象时&…...
谷歌浏览器wordpress证书不安全/合肥网络推广公司
除了USB方式连接Android终端设备,还有一种方法是通过adb connect命令利用TCP/IP协议来连接。毕竟,PC端的USB口也是有限的。Step1:设置手机和PC在同一网络下,即连接同一WIFI;用USB连接手机;在终端输入&#…...
上海做网站公司qinmoo/手机百度账号登录个人中心
子查询的小秘密 多表查询之间使用子查询, 需要表之间具有联系, 比如让两张表进行联系, 需要一个共同所有的标识来联系; 两张表表示两个对象, 对象之间是独立的, 通过一个字段进行了联系。 (还具…...
做vue用哪个网站/郑州seo实战培训
现在市场上的一些茶,闻起来非常香,泡出来却没有茶味,这是不良商家在茶叶里添加了香精的缘故。那么如何辨别茶叶里有没有添加香精呢?下面我们以铁观音为例。 第一,因为铁观音的特殊加工工艺,铁观音在干茶时的香味并不高…...
知道网站是wp程序做的如何仿站/河南疫情最新情况
最近在用RDA工具,在网上找资料的过程中发现介绍大多都是RDA 4.24的版本。但是我去MOS下载的时候,只能下载RDA8.05的版本了。 在RDA 4.24的版本中,在第一次运行的时候,需要设置很多收集项,但是在RDA8.0.5的版本中&#…...