iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >怎么掌握Oracle数据文件和临时文件的管理
  • 206
分享到

怎么掌握Oracle数据文件和临时文件的管理

2024-04-02 19:04:59 206人浏览 安东尼
摘要

这篇文章主要介绍“怎么掌握oracle数据文件和临时文件的管理”,在日常操作中,相信很多人在怎么掌握Oracle数据文件和临时文件的管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大

这篇文章主要介绍“怎么掌握oracle数据文件和临时文件的管理”,在日常操作中,相信很多人在怎么掌握Oracle数据文件和临时文件的管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”怎么掌握Oracle数据文件和临时文件的管理”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

一、数据文件概述
在Oracle数据库中,SYSTEM和SYSAUX表空间至少需要包含一个数据文件,此外还将包含多个其他表空间及与其相关的数据文件和临时文件。Oracle的数据文件和临时文件是操作系统文件,属于数据库物理结构范畴,用于存储数据库中的逻辑结构的数据。在创建表空间时,必须明确的为每个表空间指定数据文件。

Oracle通过两种方式为文件分配编号:绝对文件号,用于唯一标识数据库中的数据文件,绝对文件号可以通过v$datafile或v$tempfile视图的FILE#列查询,也可以通过DBA_DATA_FILES或DBA_TEMP_FILES视图的FILE_ID列查询;相对文件号,用于唯一标识表空间内的数据文件。大多数情况下,绝对文件编号和相对文件编号都是相等的,但当数据库中的数据文件数量超出了一个阈值(比如1023),那么他们就不再相等了。大文件表空间数据文件的相对文件号总为1024。

查询数据文件的绝对文件号和相对文件号:
select t.name tablespace_name,d.file#,d.rfile#,d.name file_name from v$tablespace t,v$datafile d where t.ts#=d.ts#;
TABLESPACE_NAME           FILE#     RFILE# FILE_NAME
-------------------- ---------- ---------- --------------------------------------------------
SYSTEM                        1          1 /u01/app/oracle/oradata/stdb/system01.dbf
UNDOTBS1                      2          2 /u01/app/oracle/oradata/stdb/undotbs01.dbf
SYSAUX                        3          3 /u01/app/oracle/oradata/stdb/sysaux01.dbf
USERS                         4          4 /u01/app/oracle/oradata/stdb/users01.dbf
USERS                         8          8 /u01/app/oracle/oradata/stdb/user02.dbf
EXAMPLE                       5          5 /u01/app/oracle/oradata/stdb/example01.dbf
TEST                          7          7 /u01/app/oracle/oradata/stdb/test02.dbf
TEST                          6          6 /u01/app/oracle/oradata/stdb/test01.dbf
BIGTBS                        9       1024 /u01/app/oracle/oradata/stdb/bigfile01.dbf
9 rows selected.

数据库所能够创建的数据文件数量受CREATE DATABASE ... MAXDATAFILES语句和DB_FILES参数的影响。另外,还应注意操作系统在创建文件数量方面的强制限制。在实例启动过程中,Oracle将根据初始化参数DB_FILES分配SGA中用于保存数据文件信息的空间,实例可以根据这个参数值来决定所能创建的最大文件的数量。该参数可以修改,但必须重启数据库方可生效,该参数在实例的整个生命周期中有效。

表空间中包含的数据文件的数据量的多少,最终会影响到数据库的性能。Oracle允许的在线文件数量超过了操作系统的默认限制,DBWn进程能够打开所有的在线数据文件,并有能力缓存所有处理中的文件,当打开文件数据量达到操作系统的默认限制时,Oracle将自动关闭文件。这可能会对性能产生负面的影响,建议调整操作系统的默认限制值,使其大于数据库的在线文件数量。

二、为表空间创建和添加文件
为表空间创建和添加数据文件的方法在之前已经学习过了,这里仅简要回顾一下。
1、在创建表空间的同时创建数据文件
create tablespae ... datafile '/xxx/xxxx/xxxx ...' size xx 
create temporary tablespace  datafile '/xxx/xxxx/xxxx ...' size xx
2、为已存在的表空间添加数据文件
alter tablespace ... add datafile  '/xxx/xxxx/xxxx ... ' size xx
alter tablespace ... add tempfile '/xxx/xxxx/xxxx ... ' size xx

三、修改数据文件大小
使用自动扩展子句为表空间添加数据文件:
sql> create tablespace test_tbs
  2  datafile '/u01/app/oracle/oradata/stdb/test03.dbf' size 10m
  3  autoextend on
  4  next 1m
  5  maxsize 100m;
Tablespace created.

打开数据文件自动扩展:
SQL> alter database datafile '/u01/app/oracle/oradata/stdb/test02.dbf'     
  2  autoextend on
  3  next 1m
  4  maxsize 100m;
Database altered.

关闭数据文件自动扩展:
SQL> alter database datafile '/u01/app/oracle/oradata/stdb/test02.dbf'
  2  autoextend off;
Database altered.

手动RESIZE数据文件大小:
SQL> alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' resize 20m;
Database altered.

四、修改数据文件可用性
可以通过执行数据文件的在线和离线操作修改数据文件的可用性,离线的数据文件不能被数据库所访问,直到它恢复在线状态之前。只读表空间中的数据文件也可以被离线或在线,只读表空间内的数据文件的在线或离线不影响表空间自身的状态,不管怎么样,在表空间未处于读写状态之前,这些文件都是不可写的。

1、归档模式下的数据文件离线
SQL>  alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' offline;
Database altered.

SQL>  alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online;
 alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online
*
ERROR at line 1:
ORA-01113: file 10 needs media recovery             //test03.dbf文件离线时不触发检查点操作,所以该文件恢复在线时提示需要介质恢复
ORA-01110: data file 10: '/u01/app/oracle/oradata/stdb/test03.dbf'

SQL> arcHive log list
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            /u02/arch_1
Oldest online log sequence     5
Next log sequence to archive   7
Current log sequence           7

SQL> recover datafile 10;
Media recovery complete.

SQL> alter database datafile '/u01/app/oracle/oradata/stdb/test03.dbf' online;
Database altered.

2、非归档模式下的数据文件离线
在非归档模式下使用alter database ... offline for drop语句离线数据文件。offline关键字标记该数据文件离线,不论其是否损坏,所以可以打开数据库;for drop关键字标记该数据文件随后被删除,该数据文件不能再次恢复到在线状态。(实际上,在在线日志组还未发生切换之前,还是可以恢复到在线状态的)

SQL> alter database datafile 'D:\app\Manganese\oradata\orcl\test01.dbf' offline for drop;
数据库已更改。

SQL> alter system switch logfile;
系统已更改。

SQL> alter system switch logfile;
系统已更改。

SQL> alter system switch logfile;
系统已更改。

SQL> alter database datafile 'D:\app\Manganese\oradata\orcl\test01.dbf' online;
alter database datafile 'D:\app\Manganese\oradata\orcl\test01.dbf' online
*
第 1 行出现错误:
ORA-01113: 文件 7 需要介质恢复
ORA-01110: 数据文件 7: 'D:\APP\MANGANESE\ORADATA\ORCL\TEST01.DBF'

SQL> recover datafile 7;
ORA-00279: 更改 1108304 (在 03/19/2014 15:44:41 生成) 对于线程 1 是必需的
ORA-00289: 建议:
D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC
ORA-00280: 更改 1108304 (用于线程 1) 在序列 #9 中
指定日志: {<RET>=suggested | filename | AUTO | CANCEL}
auto
ORA-00308: 无法打开归档日志
'D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。
ORA-00308: 无法打开归档日志
'D:\APP\MANGANESE\FLASH_RECOVERY_AREA\ORCL\ARCHIVELOG\2014_03_19\O1_MF_1_9_%U_.ARC'
ORA-27041: 无法打开文件
OSD-04002: 无法打开文件
O/S-Error: (OS 2) 系统找不到指定的文件。

3、修改表空间内所有数据文件和临时文件的可用性
alter tablespace ... datafile  { online | offline }
alter tablespace ... tempfile { online | offline }

五、重命名(修改存储位置)数据文件
1、将包含数据文件的表空间离线。
2、使用操作系统命令修改数据文件名。
3、使用alter database ... rename datafile ...语句改变数据库中的数据文件名。
4、备份数据库。

示例一:重命名同一表空间内的数据文件
SQL> alter tablespace test_tbs offline nORMal;
Tablespace altered.

[oracle@stdb stdb]$ mv test03.dbf test04.dbf

SQL> alter tablespace test_tbs                
  2  rename datafile '/u01/app/oracle/oradata/stdb/test03.dbf'
  3  to '/u01/app/oracle/oradata/stdb/test04.dbf';
Tablespace altered.

SQL> alter tablespace test_tbs online;
Tablespace altered.

示例二:重命名不同表空间中的数据文件
SQL> select status from v$instance;
STATUS
------------
MOUNTED        //该操作必须在mount下进行

SQL> alter database
  2  rename file '/u01/app/oracle/oradata/stdb/test01.dbf', 
  3              '/u01/app/oracle/oradata/stdb/test02.dbf',
  4              '/u01/app/oracle/oradata/stdb/test04.dbf'
  5           to
  6              '/u01/app/oracle/oradata/stdb/test1.dbf',
  7              '/u01/app/oracle/oradata/stdb/test2.dbf',
  8              '/u01/app/oracle/oradata/stdb/test3.dbf';

Database altered.

SQL> alter database open;
Database altered.

六、删除数据文件

从表空间内删除数据文件:
alter tablespace ... drop datafile ... ;
alter tablespace ... drop tempfile ... ;

从数据库中删除数据文件:
alter database tempfile '/xxx/xxxx/....' drop including datafiles;

SQL> alter database tempfile '/u01/app/oracle/oradata/stdb/temp03.dbf' drop including datafiles;
Database altered.

SQL> alter database datafile '/u01/app/oracle/oradata/stdb/test1.dbf' drop including datafiles;    //注意:数据文件不能以这样的方式删除
alter database datafile '/u01/app/oracle/oradata/stdb/test1.dbf' drop including datafiles
                                                                 *
ERROR at line 1:
ORA-01916: keyWord ONLINE, OFFLINE, RESIZE, AUTOEXTEND or END/DROP expected

注意:
1、从字典管理迁移到本地管理的只读表空间内的数据文件时不能被删除的。除此之外,其他的只读表空间内的数据文件可以删除。
2、系统表空间内的数据文件无法被删除。
3、如果一个本地管理的表空间被离线,则其内的数据文件无法被删除。
SQL> alter tablespace test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test4.dbf';
alter tablespace test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test4.dbf'
*
ERROR at line 1:
ORA-03264: cannot drop offline datafile of locally managed tablespace
4、如果表空间内仅包含一个数据文件,该数据文件无法被删除。
SQL> alter tablespace test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test3.dbf';
alter tablespace test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test3.dbf'
*
ERROR at line 1:
ORA-03261: the tablespace TEST_TBS has only one file
5、如果数据文件不为空,该数据文件无法被删除。
6、删除数据文件必须保证数据块处于打开状态。

到此,关于“怎么掌握Oracle数据文件和临时文件的管理”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注编程网网站,小编会继续努力为大家带来更多实用的文章!

您可能感兴趣的文档:

--结束END--

本文标题: 怎么掌握Oracle数据文件和临时文件的管理

本文链接: https://www.lsjlt.com/news/65218.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么掌握Oracle数据文件和临时文件的管理
    这篇文章主要介绍“怎么掌握Oracle数据文件和临时文件的管理”,在日常操作中,相信很多人在怎么掌握Oracle数据文件和临时文件的管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大...
    99+
    2024-04-02
  • win10怎么清理临时文件
    要清理Windows 10中的临时文件,可以按照以下步骤进行:1. 打开“设置”(Win键+I),然后点击“系统”选项。2. 在“系...
    99+
    2023-09-01
    win10
  • Oracle表空间和数据文件管理
    表空间和数据文件 1.表空间介绍 1). 表空间与数据文件的关系 在Oracle数据库中,表空间与数据文件之间的关系非常密切,这二者相互依存,也就是说,创建表空间时必须...
    99+
    2024-04-02
  • 怎么理解并掌握mysql参数文件和类型
    这篇文章主要讲解了“怎么理解并掌握mysql参数文件和类型”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“怎么理解并掌握mysql参数文件和类型”吧!1.&n...
    99+
    2024-04-02
  • 文件系统向导:掌握操作系统文件管理的精髓
    1. 文件系统是什么 文件系统是计算机操作系统的重要组成部分,负责管理和组织计算机中的文件,它允许用户以层次结构的方式管理文件并访问文件内容。文件系统通过将磁盘空间划分为一定大小的存储块(又称为簇),并为每个存储块分配一个唯一的地址(即...
    99+
    2024-02-11
    文件系统 操作系统 文件管理 FAT NTFS Linux
  • oracle怎么删除临时表空间文件
    要删除Oracle临时表空间文件,您需要执行以下步骤: 首先,确定哪个临时表空间文件要删除。您可以使用以下查询来查看临时表空间文件...
    99+
    2024-04-09
    oracle
  • 操作系统文件操作秘籍:全面掌握文件管理
    文件管理是操作系统中至关重要的一环,掌握文件操作技巧可以显著提升系统效率和工作流顺畅性。本文将全面介绍在 Linux 和 Windows 系统中进行文件操作的秘籍,涵盖文件创建、删除、复制、移动、重命名、查找和权限管理等方方面面。 文件创...
    99+
    2024-02-29
    文件操作、文件管理、操作系统、Linux、Windows
  • 怎么使用Python临时文件
    小编给大家分享一下怎么使用Python临时文件,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!1、前言临时文件通常用来保存无法保存在内存中的数据,或者传递给必须从文...
    99+
    2023-06-14
  • word临时文件怎么删除
    要删除Word临时文件,您可以按照以下步骤操作:1. 打开Word程序,确保没有打开任何Word文档。2. 在键盘上按下"Windo...
    99+
    2023-09-20
    word
  • 怎么创建VB.NET临时文件
    本篇内容介绍了“怎么创建VB.NET临时文件”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!使用GetTempFileName函数Window...
    99+
    2023-06-17
  • 表空间和数据文件的管理
    本文概要介绍了Oracle数据库表空间存储分配和管理的主要特性及操作。 一、表空间的物理关系和逻辑关系 database:数据库。 users:用户,一个数据库包含多个用户。 schema:...
    99+
    2024-04-02
  • ASP面试必备:掌握文件处理和数据类型知识!
    ASP是一种基于服务器端脚本语言的Web开发技术,它可以用于动态网站开发和Web应用程序开发。在ASP开发中,文件处理和数据类型知识是非常重要的。本文将介绍ASP中文件处理和数据类型的基本知识,帮助ASP开发人员更好地掌握这些知识。 一、...
    99+
    2023-08-30
    面试 文件 数据类型
  • bandizip临时文件夹怎么查看
    本篇内容介绍了“bandizip临时文件夹怎么查看”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成! ban...
    99+
    2023-04-07
    bandizip
  • windows临时文件夹怎么删除
    本篇内容介绍了“windows临时文件夹怎么删除”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!临时文件夹可以删除吗:答:临时文件夹可以删除的...
    99+
    2023-07-02
  • Python利用临时文件实现数据的保存
    假设有一个 WebSocket 接口,会源源不断地产生数据,我们需要将其保存下来,然后进行处理。但由于数据量比较大,无法一次性加载到内存,最好的办法就是保存到文件里。 如果数据处理完...
    99+
    2024-04-02
  • Java 文件操作的艺术:掌握文件的底层原理
    I. 文件抽象 1. File对象:File类表示文件或目录,提供对文件系统的基本操作,例如创建、读取、写入和删除。它是一个抽象类,可由多个具体子类实现。 2. Files类:Files类提供用于文件和目录的更高级别操作,包括复制、移动、...
    99+
    2024-04-02
  • 掌握文件权限管理:Mac和Linux中的chmod +x命令详解
    chmod +x是一个用于在Mac和Linux操作系统上设置可执行权限的命令。它允许你将可执行权限添加到文件,使得你可以运行这个文件作为一个程序或脚本。这个命令通常用于shell脚本、可执行程序和其他可运行文件。  1.什么是chmod?...
    99+
    2024-01-21
    1024程序员节 macos 运维 linux 服务器
  • MySQL数据库临时文件储存在哪里
    这篇文章主要讲解了“MySQL数据库临时文件储存在哪里”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“MySQL数据库临时文件储存在哪里”吧!MySQL使用环...
    99+
    2024-04-02
  • 怎么在PHP中操作临时文件
    这篇文章给大家分享的是有关怎么在PHP中操作临时文件的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。获取 PHP 的默认临时创建文件目录学习过 Linux 操作系统的都会知道有一个目录是 /tmp 目录( Wind...
    99+
    2023-06-15
  • bandizip临时解压文件怎么查看
    这篇文章主要讲解了“bandizip临时解压文件怎么查看”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“bandizip临时解压文件怎么查看”吧! band...
    99+
    2023-04-13
    bandizip
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作