完整的Oracle数据库通常由两部分组成 Oracle数据库实例和数据库
)数据库是一系列物理文件的集合(数据文件 控制文件 联机日志 参数文件等)
)Oracle数据库实例则是一组Oracle后台进程/线程以及在服务器分配的共享内存区
在启动Oracle数据库服务器时 实际上是在服务器的内存中创建一个Oracle实例(即在服务器内存中分配共享内存并创建相关的后台内存) 然后由这个Oracle数据库实例来访问和控制磁盘中的数据文件 Oracle有一个很大的内存快 成为全局区(SGA)
一 数据库 表空间 数据文件
数据库
数据库是数据集合 Oracle是一种数据库管理系统 是一种关系型的数据库管理系统
通常情况了我们称的 数据库 并不仅指物理的数据集合 他包含物理数据 数据库管理系统 也即物理数据 内存 *** 作系统进程的组合体
数据库的数据存储在表中 数据的关系由列来定义 即通常我们讲的字段 每个列都有一个列名 数据以行(我们通常称为记录)的方式存储在表中 表之间可以相互关联 以上就是关系模型数据库的一个最简单的描述
当然 Oracle也是提供对面象对象型的结构数据库的最强大支持 对象既可以与其它对象建立关系 也可以包含其它对象 关于OO型数据库 以后利用专门的篇幅来讨论 一般情况下我们的讨论都基于关系模型
表空间 文件
无论关系结构还是OO结构 Oracle数据库都将其数据存储在文件中 数据库结构提供对数据文件的逻辑映射 允许不同类型的数据分开存储 这些逻辑划分称作表空间
表空间(tablespace)是数据库的逻辑划分 每个数据库至少有一个表空间(称作SYSTEM表空间) 为了便于管理和提高运行效率 可以使用一些附加表空间来划分用户和应用程序 例如 USER表空间供一般用户使用 RBS表空间供回滚段使用 一个表空间只能属于一个数据库
每个表空间由同一磁盘上的一个或多个文件组成 这些文件叫数据文件(datafile) 一个数据文件只能属于一个表空间 在Oracle 以后 数据文件创建可以改变大小 创建新的表空间需要创建新的数据文件 数据文件一旦加入到表空间中 就不能从这个表空间中移走 也不能与其它表空间发生联系
如果数据库存储在多个表空间中 可以将它们各自的数据文件存放在不同磁盘上来对其进行物理分割 在规划和协调数据库I/O请求的方法中 上述的数据分割是一种很重要的方法
Oracle数据库的存储结构分为逻辑存储结构和物理存储结构
)逻辑存储结构 用于描述Oracle内部组织和管理数据的方式
)物理存储结构 用于描述Oracle外部即 *** 作系统中组织和管理数据的方式
二 Oracle数据库实例
为了访问数据库中的数据 Oracle使用一组所有用户共享的后台进程 此外 还有一些存储结构(统称为System Gloabl Area 即SGA) 用来存储最近从数据库查询的数据 数据块缓存区和SQL共享池(Shared SQL Pool)是SGA的最大部分 一般占SGA内存的 %以上 通过减少对数据文件的I/O次数 这些存储区域可以改善数据库的性能
Oracle数据库实例(instance)也称作服务器(server) 是用来访问数据库文件集的存储结构及后台进程的集合 一个数据库可以被多个实例访问(这是Oracle并行服务器选项)
lishixinzhi/Article/program/Oracle/201311/17362
1检查硬件要求 系统必须符合以下最低硬件要求: 至少有1024MB的物理内存 下表说明安装时物理内存(RAM)和交换区(swap space)的配置关系。 RAM Swap Space 1024 MB 到 2048 MB 15 倍 RAM 2049 MB 到 8192 MB 等于 RAM 大于 8192 MB 075 倍 RAM 在 /tmp 目录中至少有400 MB空闲磁盘空间 15 GB 到 35 GB 的磁盘空间用于安装 Oracle 数据库软件,具体大小由安装类型决定 12GB 磁盘空间用于数据库预配置文件系统存储(可选) 说明: 使用 ASM (Automatic Storage Management) 和 RDS (raw device storage) 的磁盘空间要求在后面的章节中描述。 若选择自动备份配置,启用闪回区(flash recovery area)需要额外的磁盘空间,也可以在文件系统或 ASM(Automatic Storage Management) 磁盘组中指定。 确保系统满足这些要求: 确认物理内存尺寸,键入下列命令: # grep MemTotal /proc/meminfo 假如物理内存尺寸小于推荐的内存要求,必须在安装前增加内存。 确认交换区(swap space)尺寸,键入下列命令: # grep SwapTotal /proc/meminfo 示例: as3$grep SwapTotal /proc/meminfo SwapTotal: 2048248 kB 必要时,查阅 *** 作系统文档中如何配置额外交换区(swap space)的相关信息以修改交换区(swap space)配置。 确认可用的 RAM 和交换区(swap space),键入下列命令: # free 示例: as3$free total used free shared buffers cached Mem: 503084 490356 12728 0 2432 345224 -/+ buffers/cache: 142700 360384 Swap: 2048248 72692 1975556 最好在延迟数秒后,作多次重复测试 说明: 上述命令会产生多个不同的结果。这是因为在冻结期外可用的 RAM 和交换区(swap space)随用户的 *** 作不断变化。 确认 /tmp 目录中可用的磁盘空间,键入下列命令: # df -h /tmp 示例: as3$df -h /tmp 文件系统 容量 已用 可用 已用% 挂载点 /dev/hda3 16G 45G 11G 31% / 假如在 /tmp 目录的自由磁盘空间中少于 400MB,请完成下列步骤之一: 删除 /tmp 目录中不必要的文件以满足磁盘空间需求。 在配置Oracle 用户环境时设置 TEMP 和 TMPDIR 环境变量(稍后说明)。 扩充文件系统的 /tmp 目录。必要时,联系您的系统治理员了解关于扩充文件系统的相关信息。 确认 *** 作系统的自由磁盘空间,键入下列命令: # df -h 示例: as3$df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/hda3 16G 45G 11G 31% / /dev/hda2 981M 27M 905M 3% /boot /dev/hda5 29G 27G 13G 96% /opt none 246M 0 246M 0% /dev/shm /dev/hda6 15G 191M 14G 2% /var 下表显示每种安装类型需要的大约磁盘空间: 安装类型 所需空间 Enterprise Edition 185 Standard Edition 185 Custom (maximum) 199 确认系统硬件架构能运行 Oracle 软件,键入下列命令: # grep "model name" /proc/cpuinfo 示例: as3$grep "model name" /proc/cpuinfo model name : Intel(R) Pentium(R) 4 CPU 280GHz 说明: 该命令显示处理器类型。验证处理器架构匹配您将要安装的 Oracle 发行版软件。假如看不到预期结果,则不能在系统中安装这个软件。 2检查软件要求 安装所需的软件环境,根据下表进行核实。 说明: Oracle 通用安装工具根据系统需求清单对系统进行检查核实。确保在开始安装前通过检查。 需求项 *** 作系统 包含下列 *** 作系统版本之一: Red Hat Enterprise Linux AS/ES 30 (Update 4 or later)
Red Hat Linux 40 (Update 1 or later) SUSE Linux Enterpreise Server 80 with SP4 or later SUSE Linux Enterprise Server 90 with SP2 or later 核心版本 系统必须运行在以下核心版本之上(或以上版本): Red Hat Enterprise Linux 30: 2421-20EL Red Hat Enterprise Linux 40: 269-11EL SUSE Linux Enterprise Server 80: 2421-278 SUSE Linux Enterprise Server 90: 265-139 包 下列包(或以上版本)必须已经安装: Red Hat Enterprise Linux 30: make-3791-17 control-center-2201-13 gcc-323-47 gcc-c++-323-47 gdb-61post-12004060752 glibc-232-9530 glibc-common-232-9530 glibc-devel-232-9530 glibc-devel-232-9520 (32 bit) compat-db-4014-51 compat-gcc-73-296128 compat-gcc-c++-73-296128 compat-libstdc++-73-296128 compat-libstdc++-devel-73-296128 gnome-libs-141290-342 (32 bit) libstdc++-323-47 libstdc++-devel-323-47 openmotif-223-3RHEL3 sysstat-505-5rhel3 setarch-13-1 libaio-0396-3 libaio-devel-0396-3 Red Hat Enterprise Linux 40: binutils-2159202-10EL4 compat-db-4125-9 control-center-280-12 gcc-343-9EL4 gcc-c++-343-9EL4 glibc-234-2 glibc-common-234-2 gnome-libs-141290-441 libstdc++-343-9EL4 libstdc++-devel-343-9EL4 make-380-5 pdksh-5214-30 sysstat-505-1 xscreensaver-418-5rhel42 SUSE Linux Enterprise Server 9: gcc-333 gcc-c++-333 glibc-233 libaio-03102-12ia64 libaio-devel-03102-12ia64 make-380 PL/SQL 本地编译, ProC/C++, Oracle 调用接口, Oracle C++ 调用接口, Oracle XML 开发工具 (XDK) Intel C++ 编译器 81 或 GNU C and C++ 编译器及以上版本,这些产品需要以上清单所列出的包支持。 说明: Intel C++ 编译器 V81 以上已经提供支持,不需要安装。在 Red Hat Enterprise Linux 3, OCCI上采用 32 版,已经提供 GNU C++ 编译器支持。这是默认的编译器版本。 OCCI 也同样支持采用 gcc 323 标准模板库的 Intel C++ 编译器 V81。 Oracle XML 开发套件 在使用 GCC 的 Red Hat Linux 40 上不被支持。只有 Intel C++ 编译器 (ICC) 提供支持。 在 Red Hat Enterprise Linux 40 上, Oracle C++ 调用接口 (OCCI) 不支持 GCC 343。要在 Red Hat Enterprise Linux 40 上使用 OCCI,你需要安装 GCC 323。 Oracle JDBC/OCI 驱动程序 你可以在下列 JDK 版本中使用 Oracle JDBC/OCI 驱动;然而,它们不需要单独安装: Sun JDK 142 with the JNDI extension 说明:JDK 142 在该发行版中已经安装 确保系统满足这些要求: 确认 Linux 版本,键入下列命令: # cat /etc/issue 示例: as3$cat /etc/issue Red Hat Enterprise Linux AS release 3 (Taroon) Kernel \r on an \m 说明: 只有存在先前表格中所列版本的 Linux 被支持。不能安装在其他的 Linux 版本上。 确认需要的核心已经安装,键入下列命令:
# uname -r 示例: as3$uname -r 2421-4ELsmp 下面是该命令在一个 Red Hat Enterprise Linux 30 系统中执行的输出情形: 2421-20EL 在该例中,输出表明系统的核心版本 ()和 勘误表 (20EL)等级。 新的内核命名 RHAS21 for ia32 249-e25 — 单处理器内核 249-e25-smp — 能够处理最高达 4GB 的物理内存的 SMP 内核 249-e25 — 能够处理最高达 16GB 左右的物理内存的企业 SMP 内核 RHEL3 for ia32 2421-4EL — 单处理器内核 2421-4ELsmp — 能够处理最高达 16 GB 的物理内存的 SMP 内核 2421-4ELhugemem — 能够处理超过 16 GB,最高达 64 GB 的 SMP 内核 假如核心版本不符合前述要求,请与 *** 作系统供给商联系,以获取最新的核心版本并更新。 确认必须的包已经全部安装,请键入下列格式类似的命令: # rpm -q package_name 示例: as3$rpm -q gcc-333 package gcc-333 is not installed 假如包没有安装,请从您的 Linux 安装包或从 Linux 提供商的网址下载并安装。 假如需要为 WebSphereMQ 的 CSD,请在下列网址中下载并获取安装信息: >
对于Oracle数据库而言磁盘空间主要体现在表空间上,可使用sql语句进行查看Oracle 表空间的大小及使用情况:
1、查看表空间的名称及大小
SELECT ttablespace_name, round(SUM(bytes / (1024 1024)), 0) ts_size
FROM dba_tablespaces t, dba_data_files d
WHERE ttablespace_name = dtablespace_name
GROUP BY ttablespace_name;
2、查看表空间物理文件的名称及大小
SELECT tablespace_name,
file_id,
file_name,
round(bytes / (1024 1024), 0) total_space
FROM dba_data_files
ORDER BY tablespace_name;
3、查看回滚段名称及大小
SELECT segment_name,
tablespace_name,
rstatus,
(initial_extent / 1024) initialextent,
(next_extent / 1024) nextextent,
max_extents,
vcurext curextent
FROM dba_rollback_segs r, v$rollstat v
WHERE rsegment_id = vusn(+)
ORDER BY segment_name;
4、查看控制文件
SELECT NAME FROM v$controlfile;
5、查看日志文件
SELECT MEMBER FROM v$logfile;
6、查看表空间的使用情况
SELECT SUM(bytes) / (1024 1024) AS free_space, tablespace_name
FROM dba_free_space
GROUP BY tablespace_name;
SELECT atablespace_name,
abytes total,
bbytes used,
cbytes free,
(bbytes 100) / abytes "% USED ",
(cbytes 100) / abytes "% FREE "
FROM syssm$ts_avail a, syssm$ts_used b, syssm$ts_free c
WHERE atablespace_name = btablespace_name
AND atablespace_name = ctablespace_name;
7、查看数据库库对象
SELECT owner, object_type, status, COUNT() count#
FROM all_objects
GROUP BY owner, object_type, status;
8、查看数据库的版本
SELECT version
FROM product_component_version
WHERE substr(product, 1, 6) = 'Oracle';
9、查看数据库的创建日期和归档方式
SELECT created, log_mode, log_mode FROM v$database;
--1G=1024MB
--1M=1024KB
--1K=1024Bytes
--1M=11048576Bytes
--1G=102411048576Bytes=11313741824Bytes
SELECT atablespace_name "表空间名",
total "表空间大小",
free "表空间剩余大小",
(total - free) "表空间使用大小",
total / (1024 1024 1024) "表空间大小(G)",
free / (1024 1024 1024) "表空间剩余大小(G)",
(total - free) / (1024 1024 1024) "表空间使用大小(G)",
round((total - free) / total, 4) 100 "使用率 %"
FROM (SELECT tablespace_name, SUM(bytes) free
FROM dba_free_space
GROUP BY tablespace_name) a,
(SELECT tablespace_name, SUM(bytes) total
FROM dba_data_files
GROUP BY tablespace_name) b
WHERE atablespace_name = btablespace_name
简单步骤:
1、正常关闭数据库;
2、迁移所有数据文件到新的盘;
3、启动实例到mount阶段,修改数据文件的路径;
4、启动实例到open阶段,正常使用数据库。
5、另外,如果想要迁移日志文件,比较好办,在新盘新目录下创建新的redo,删除原来盘上的redo。
6、如果想要迁移控制文件,那么:
61、正常关闭数据库;
62、迁移控制文件到新盘新目录;
63、启动实例到nomount阶段;
64、修改实例参数control_files指向新的目录;
64、alter database mount;
65、alter databse open;
如果要迁移数据库软件,那就另说了,可以先安装一套DB软件到新盘新目录,然后修改环境变量指向新的环境,重要的变量包括ORACLE_BASE、ORACLE_HOME、PATH等。
表空间在初始建立的时候最好设置成自动扩展的,如果没有设置成扩展的,则有四种方法可以增加表空间的大小,其中增加数据文件是经常用的一种。四种方法如下:
Meathod1:给表空间增加数据文件
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\1020\ORADATA\EDWTEST\APP03DBF' SIZE 50M;
Meathod2:新增数据文件,并且允许数据文件自动增长
ALTER TABLESPACE app_data ADD DATAFILE
'D:\ORACLE\PRODUCT\1020\ORADATA\EDWTEST\APP04DBF' SIZE 50M
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod3:允许已存在的数据文件自动增长
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\1020\ORADATA\EDWTEST\APP03DBF'
AUTOEXTEND ON NEXT 5M MAXSIZE 100M;
Meathod4:手工改变已存在数据文件的大小
ALTER DATABASE DATAFILE 'D:\ORACLE\PRODUCT\1020\ORADATA\EDWTEST\APP02DBF'
RESIZE 100M;
移动到另外一个位置的话需要修改数据库的控制文件,这种 *** 作都比较危险,不建议在没有经验的情况下进行尝试,磁盘快满了的话 可以定期清理各种日志文件比如$ORACLE_BASE/admin/$ORACLE_SID/ 路径下的各种dump日志,还有$ORACLE_HOME/network/log里面的监听日志,另外再进行表空间的创建或数据文件的添加时,另外指定一个路径即可。
以上就是关于Oracle数据库实例及其相关概念全部的内容,包括:Oracle数据库实例及其相关概念、运行oracle数据库对电脑硬件配置的最低要求是什么、怎么查看oracle硬盘空间不足等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)