如何使用数据文件的创建/离线/删除/重命名方法

分类:编程技术 时间:2024-02-20 16:16 浏览:0 评论:0
0
本文主要介绍“如何使用数据文件的create/offline/drop/rename方法”。在日常操作中,相信很多人对如何使用数据文件的create/offline/drop/rename方法有疑问。小编查阅了各种资料,整理出简单易用的操作方法。希望能帮助您解答“如何使用数据文件的创建/离线/删除/重命名方法”的疑惑!接下来就请跟随小编一起来学习吧!

1.创建表空间:
创建表空间test1
数据文件'/u01/app/oracle/oradata/DBdb/test101.dbf'大小10M
自动扩展下一个1M最大大小2G
范围管理本地统一大小1M
段空间管理自动;

已创建表空间。

SQL>

2.更改表空间状态:
SYS>altertablespace test1 只读;

表空间已更改。

SQL> select tablespace_name,initial_extent/1024/1024 m, EXTENT_MANAGEMENT、ALLOCATION_TYPE、SEGMENT_SPACE_MANAGEMENT、来自 dba_tablespaces 的状态,其中 tablespace_name='TEST1';

TABLESPACE_NAME                            M EXTENT_MAN 分配段状态
-- ----------- --------------- ---------- ---------- ---- ----- ------ ---------
Test1 1 本地统一自动只读

Sys> 更改表空间 test1 读写;

表空间已更改。

SQL> select tablespace_name,initial_extent /1024/1024 m,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,来自 dba_tablespaces 的状态,其中 tablespace_name='TEST1';

TABLESPACE_NAME M EXTENT_MAN 分配段状态
----------------- -------------- - --------- ---------- --------- ------ ---------
测试1                                                                                                                                                                                                                                   (修改表空间名称在线)
SYS> alter tablespace test1 重命名为 sales;

表空间已更改。

SQL> select tablespace_name,initial_extent/1024/1024 m,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,status from dba_tablespaces where tablespace_name='TEST1';

未选择任何行

SQL> select tablespace_name,initial_extent/1024/1024 m ,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT ,status from dba_tablespaces where tablespace_name='SALES';

TABLESPACE_NAME      M EXTENT_MAN 分配段状态
- -------------------------- ---------- ---------- - ---------- - ------ ---------
销售                                  1 本地      制服   自动   在线


<强>4。查询表空间信息:
SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,d.status,d.contents from dba_data_files s,dba_tablespaces d where s.TABLESPACE_NAME=d.TABLESPACE_NAME;

FILE_NAME TABLESPACE_NAME SIZE_M 状态内容
----------- -------------------------------- ---------------------------------------- - --------------------------- -------- ---------- ----- ---- ---------
/u01/app/oracle/oradata/DBdb/users01.dbf      USERS3466.25在线 >/u01/app /oracle/ Oradata/DBDB/SYSAUX01.dbf Sysaux 740 在线永久
/u01/app/oracle/oradata/DBdb/system01.dbf SYSTEM 2800 在线永久
/u01/app/oracle/oradata /DBdb/example01 .dbf 示例 338.75 开启线路永久
/U01/App/oracle/oradata/dbdb/test101.dbf sales strong>SQL> 从 dba_data_files s、dba_tablespaces d 中选择 s.file_name、s.tablespace_name、s.bytes/1024/1024 size_m、d.status、d.contents,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='SALES ';

FILE_NAMESTATUS 内容
------------------------ ------------------ ----------------------- --------- ------------------- --- ---------- --------- ---------
/u01/app/oracle/oradata /DBdb/test101.dbf 销售销售 10 永久在线





1. alter tablespace sales 添加数据文件 '/u01/app/oracle/oradata/DBdb/sales02.dbf' 大小 10M;

2.更改数据库数据文件'/u01/app/oracle/oradata/DBdb/test101.dbf'在最大大小2G上自动扩展;

3更改数据库数据文件'/u01/app/oracle /oradata/DBdb/test101.dbf'调整大小50M;


6.离线
SYS>更改表空间离线销售;strong>

表空间已更改。

SQL> select tablespace_name,initial_extent/1024/1024 m,EXTENT_MANAGEMENT,ALLOCATION_TYPE,SEGMENT_SPACE_MANAGEMENT,status from dba_tablespaces where tablespace_name='SALES';

TABLESPACE_NAME           M EXTENT_MAN分配段状态
--------- --------------------- ------ ---- ---------- --------- --------------------------- -------------------------------------------------- -------------------------------------------------- --
销售1本地大学AutoOFFLINE

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/第 1024 章>FILE_NAME                                           SIZE_M 状态内容
--- ------------------------------ ------------------- ------- ------------------------ ------- ---------- --- ------ ---------
/u01/app /oracle/oradata/DBdb/test101.dbfSales 离线永久

SQL>

7、删除表空间< /strong>
SYS>创建表sales_1(id号)
2表空间sales;





SYS> select table_name,tablespace_name from dba_tables where tablespace_name='SALES';

TABLE_NAME TABLESPACE_NAME
----------------------------------------- -- -------- ----
SALES_1   /strong>
第 1 行出现错误:
ORA-01549: 表空间不为空,请使用 INCLUDING CONTENTS 选项
是要删除对象,请使用以下语句:
删除表空间销售包括内容;


八:OMFstrong>
SQL> 显示参数 db_​​create

名称                                 类型        值
-------- ---- ---------------------- ---------- ---------- -------- ------------
db_create_file_dest &string
db_create_online_log_dest_4 字符串
db_create_online_log_dest_5字符串

SQL> !mkdir -p /u01/app/oracle/oradata/omf

SQL> alter system set db_create_file_dest='/u01/app/oracle/oradata/omf';

系统已更改。

SQL> 显示参数db_create

NAME    ; - ----------- --------------------------------------------
db_create_file_dest string /u01/app/oracle/oradata/omf
db_create_online_log_dest_1字符串
db_create_online_log_dest_2字符串
db_create_online_log_dest_3字符串
db_create_online_log_dest_4字符串
< strong>db_create_online_log_dest_5        string

SQL>

SQL> 创建表空间 test2;

已创建表空间。

SQL> col file_name for a804
SQL> col file_name for a80
SQL> select tablespace_name,file_name from dba_data_files where tablespace_name='TEST2';

TABLESPACE_NAME                                                                                                                                                                                                                                 但是    ------------- --------------- ---------------------------- ------- ------------------------------------------- -------
TEST2         /u01/app/oracle/oradata/omf/DBDB/datafile/o1_mf_test2_f2x469nq_.dbf

SQL> !ls /u01/ app/oracle/oradata/omf/DBDB/datafile
o1_mf_test2_f2x469nq_.dbf

SQL>
SQL>! ls /u01/app/oracle/oradata/omf/DBDB/datafile
o1_mf_test2_f2x469nq_.dbf

SQL>
SQL> drop tablespace test2;

表空间已删除。

SQL> !ls /u01/app/oracle/oradata/omf/DBDB/datafile

SQL>
删除表后检查操作系统space 物理路径下没有该表空间对应的数据文件。
---------------------------------- -------- -- ---- --------------------------

db_create_file_dest String/U01/App/ Oracle/Oracle/OMF
DB_CREATE_ONLINE_LOG_DEST_1 字符串
DB_CREATE_ONLINE_LOG_DESTEST _2 字符串
db_create_online_log_dest_3 字符串
db_create_online_log_dest_4 字符串
db_create_online_log_dest_5 string
SQL>
SQL> 创建表空间 test2 数据文件 '/u01/app/oracle/oradata/DBdb/test2.dbf' 大小 5m ;

已创建表空间。

SQL> select tablespace_name,file_name from dba_data_Files where tablespace_name = 'test2';

tablespace_name file_name
---------------------- ---------------------------- --------------------- ------------------------------------------------------------------------ --------------------------------------------------
TEST2      / u01/app/oracle/oradata/DBdb/test2.dbf

SQL> !ls -lrt /u01/app/oracle/ oradata/omf/DBDB/datafile/< /strong>
总计 0

SQL> !ls-lrt /u01/app/oracle/oradata /DBdb/test2.dbf
-rw-r----- 1 oracle oinstall 5251072 12月11日22:12 /u01/app/ oracle/oradata/DBdb/test2.dbf

SQL>


--关闭OMF:
SQL> alter system set db_create_file_dest='';

系统已更改。

SQL> 显示参数db_create

名称类型值
---------------- -------------------------------- - ---------- ------- -----------------------
db_create_file_dest 字符串
db_create_online_log_dest_1 字符串< /strong>
db_create_online_log_dest_2 字符串
db_create_online_log_dest _3       字符串
db_create_online_log_dest_4       字符串
db_create_online_log_dest_5       字符串
SQL>

9.修改数据文件的可用性
可以通过对数据文件进行在线和离线操作来修改数据文件的可用性。脱机数据文件在恢复到联机状态之前无法被数据库访问。只读表空间中的数据文件也可以是离线或在线的。只读表空间中数据文件的在线或离线状态不会影响表空间本身的状态。无论如何,在表空间没有处于读写状态之前,这些文件是不可写的。
9.1 查看之前更名为sales的表空间的状态:(执行0ffline)
SQL> select s.file_name,s。 tablespace_name, s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='SALES';< br/ >
FILE_NAMEsp; TABLESPACE_NAME SIZE_M ONLINE_ 状态内容
-------------------------------- -- -------------------------- ------------------------ ---- -------- ---------- ------- --------- ---------
/u01/app/oracle/oradata/DBdb/test101.dbf 离线销售永久离线

SQL>
--修改表空间名称:
SQL> alter tablespace SALES rename to test1;
alter tablespace SALES rename to test1
*
第 1 行出现错误:
ORA-01135:为 DML/查询访问的文件 6 已脱机< /strong>
ORA-01110: 数据文件 6: '/u01/app/oracle/oradata/DBdb/test101.dbf'


SQL> alter tablespace sales online;

表空间已更改。

SQL> alter tablespace SALES 重命名为test1;

表空间已更改。

SQL> select s.file_name,s .tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.contents from dba_data_files s,dba_tablespaces d 其中 s.TABLESPACE_NAME=d。 TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME                                                                    p; ---------------------------- ---------------------- ------ -------- ---------- ------- --------- ---------< /strong>
/u01/app/oracle/oradata/DBdb/test101.dbf                                                                                                                                                                                                                                                                          />
9.2 存档模式下数据文件离线
SQL> alter tablespace TEST1 online;strong>

表空间已更改。

SQL> 归档日志列表;< /strong>
数据库日志模式存档模式
自动存档已启用
存档目标USE_DB_RECOVERY_FILE_DEST
最旧的联机日志序列488
下一个要归档的日志序列 490
当前日志序列 490
SQL>
SQL> 更改数据库数据文件 '/u01/app/oracle/oradata/DBdb/test101.dbf' 离线;

数据库已更改。

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.contents from dba_data_files s,dba_tablespaces d其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME                                                                                                                                                                  ' s s s s s s ‐ ‐ ‐‐TABLESPACE_NAME------------------------------------------------------------------ -- ------------- ---------- ------- --------- ---------
/u01/app/oracle/oradata/DBdb/test101.dbf                                       bsp; TEST1 TEST1 在线永久恢复

SQL> 在线更改数据库数据文件 '/u01/app/oracle/oradata/DBdb/test101.dbf'; />在线更改数据库数据文件'/u01/app/oracle/oradata/DBdb/test101.dbf'
*
错误位于第 1 行:
ORA-01113:文件 6 需要介质恢复
ORA-01110:数据文件 6:'/u01/app/oracle/ oradata/DBdb/test101.dbf'

验证,离线数据文件再次上线时,需要恢复数据文件,离线表空间才能执行online,如下恢复并在线数据文件;

SQL>恢复数据文件6;
Media恢复完成。
SQL>
SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS ,d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s。 TABLESPACE_NAME='TEST1';

FILE_NAME                                              内容
---------------- ----- ---------------------------------------- -- --- ------------------------ ---------- ------- ----- --- - ---------
/u01/app/oracle/oradata/DBdb/test101.dbf &TEST1 /test101.dbf'在线;

数据库已更改。
SQL> select s.file_name,s.tablespace_name ,s.bytes/1024/1024 size_m,s.ONLINE_STATUS, d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAMEp; ---------------------------- ---------------------- ------ -------- ---------- ------- --------- ---------< /strong>
/u01/app/oracle/oradata/DBdb/test101.dbf                                                                                                                                                                                                                                                                          />

9.2.非归档模式下的数据文件处于离线状态
使用alterdatabase...offlinefordrop语句使非归档模式下的数据文件离线。 Offline关键字将数据文件标记为离线状态,无论其是否损坏,因此数据库可以打开; for drop关键字标记该数据文件随后被删除(只是标记,物理文件还在),并且该数据文件无法再次恢复到在线状态。 (其实还是可以恢复在线日志gr切换前的oup)

9.2.1 在线日志组切换前首先模拟离线状态。 for drop;
SQL> 立即关闭;
数据库已关闭。
数据库已卸载。
ORACLE实例关闭。
SQL>
SQL>启动挂载;
ORACLE 实例已启动。

系统全局区域总计 835104768 字节
固定大小 2257840 字节
变量大小                    549456976 字节                                                                                                                                                                                   ytes
重做缓冲区       2371584 字节
数据库已安装。
SQL >
SQL> alter database noarchivelog;

Database 已更改。

SQL> alter database open;

数据库已更改。

SQL>归档日志列表;
数据库日志模式无归档模式
自动归档禁用
归档目标 USE_DB_RECOVERY_FILE_DEST
最旧的在线日志序列 488
当前日志序列   490
SQL>

--查询当前日志日志组:
SQL> select GROUP#,BYTES/1024/1024 size_m,来自 v$log 的成员、已归档、状态;

组# SIZE_M 成员 ARC 状态
-------- -- ---------- ---------- --- ---------- ----
1 50 1 无电流
2 50 1 是不活动
3 50 1 是不活动

< strong>--离线执行删除操作:

SQL> alter database datafile 6离线放置;

数据库已更改。

SQL> !ls /u01/app/oracle/oradata/ DBdb/test101.dbf
/u01 /app/oracle/oradata/DBdb/test101.dbf

SQL> 选择 GROUP# ,BYTES/1024/1024 size_m,MEMBERS,ARCHIVED,STATUS 来自 v$log;

群组# SIZE_M 成员 ARC 状态
---------- -------- -- ---------- -------------------
1 50 1 无电流
2 50 1 是非活动
3 50 1 是非活动

SQL> select s.file_name ,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS ,d.status,d.dba_data_files s,dba_tablespaces d 的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME TABLESPACE_NAME SIZE_M ONLINE_状态内容
-------------------- ---------------------------------------------------- ---------- ------------------ ---------- ------- --------- ----- -----
< strong> /U01/App/oraCle/oradata/dbdb/test101.dbf test1 恢复在线


-查询在线日志没有被切换,可以恢复; strong>
SQL> 恢复数据文件 6;
介质恢复完成。
SQL>
SQL> 在线更改数据库数据文件 6;

数据库已更改。

SQL> 选择 s。 file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';< /strong>

FILE_NAME TABLESPACE_NAME SIZE_M ONLINE_状态内容
------------------- -------------------------------------------------------- ----- ----- ------------------------------------------ ---------- - --- ---- --------- ---------
/u01/app/oracle/oradata/DBdb/teST101。 dbf                                                                                     p; />
群组# SIZE_M 成员 ARC 状态
---------- ---------- ---- ------ -------------------
1 50 1 无电流
< strong> 2 50 1 YES INACTIVE

3 3   50   1 YES INACTIVE

9.2.2 模拟上线后drop执行离线日志组已切换,日志已被覆盖;
SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status ,d.来自 dba_data_files 的内容 s,dba_tablespaces d 其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s。 TABLESPACE_NAME='TEST1';

FILE_NAME                                              内容
---------------- ----- --------------------------------------------------------- ------------------------------- ---------- --- ---- --------- ---------
/u01/app/oracle/oradata/DBdb/test101.dbf                                                                                                     在线永久

SQL> select GROUP#,BYTES/1024/第 1024 部分----- ---------- -------- -- ----------------------------------
1 50 1 没有当前
2 50 1 没有不活动
3 50 1 没有不活动

SQL> 更改数据库数据文件 6 离线删除;

数据库已更改。

SQL> 更改系统切换日志文件;

系统已更改。

SQL> /

系统已更改。

SQL> select GROUP#,BYTES/1024/1024 size_m,MEMBERS,ARCHIVED,STATUS from v$log;

群组# SIZE_M 名成员ARC 状态
--------- ---------- ------ ---- --- ----- -----------
1 50 1 无活动
2 50 1 无活动
3 50 1 NO CURRENT

SQL> alter system switch logfile;

系统已更改。< /strong>

SQL> 从 v$log 中选择 GROUP#,BYTES/1024/1024 size_m,MEMBERS,ARCHIVED,STATUS;

< strong> 群组# SIZE_M 成员 ARC 状态

---------- ---------- --------- - - ------------------
1 50 1 无电流
2 50 1 无不活动
3 50       1 无非活动

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m ,s.ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME      tablespace_name size_m Online_ Stat我们的内容
----------------------------------------- -------- -------------------- ---------------------------------------- -- ------ ---------- ---------- --------- ---------
> !ls /u01/app/oracle/oradata/DBdb/test101.dbf

/u01/app/oracle/oradata/DBdb/test101.dbf
< br/>SQL> 在线更改数据库数据文件 6;
在线更改数据库数据文件 6
*
第 1 行出现错误:
ORA-01113:文件 6 需要介质恢复
ORA-01110:数据文件 6:' /u01 /app/oracle/oradata/DBdb/test101.dbf'


SQL>恢复数据文件6;
ORA -00279:线程 1 需要在 12/12/2017 00:06:18 生成更改 5518174
ORA-00289:建议:/u01/app/oracle/fast_recovery_area/DBDB /newback /DBDB/archivelog/2017_12_12/o1_mf_1_496_%u_.arc
ORA-00280:线程 1 的更改 5518174 是连续的ce #496


指定日志:{=建议|文件名 |自动 |取消}
自动
ORA-00308:无法打开存档日志'/u01/app/oracle/fast_recovery_area/DBDB/newback/DBDB/archivelog /2017_12_12/o1_mf_1_496_%u_.arc'
ORA-27037: 无法获取文件状态
Linux-x86_64 错误: 2: 没有这样的文件或目录
附加信息:3


ORA-00308:无法打开存档日志'/u01/app/ oracle/fast_recovery_area/DBDB/newback/DBDB/archivelog/2017_12_12/o1_mf_1_496_%u_.arc'
ORA-27037:无法获取文件状态
Linux-x86_64错误:2:没有这样的文件或目录
附加信息:3

没有可以的存档文件用于恢复数据文件6,因此文件6无法使用。

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/第1024章 dba_data_files s、dba_tablespaces d 中的 size_m、s.ONLINE_STATUS、d.status、d.contents,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

<强>FILE_NAME ---------------------------------------- ------- ---------- -------- ---------- ------- --------- ------- --

/u01/app/oracle/oradata/DBdb/test101.dbf            TEST1                              p;在线永久恢复

SQL> alter tablespace test1 add datafile '/u01/app/oracle/oradata/DBdb/test102.dbf' size 10m;

表空间已更改。

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s .ONLINE_STATUS ,d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME     TABLESPACE_NAME SIZE_M ONLINE_状态内容
---------------------------------------------------------------------------------------------------------------- ------------------------ ---- ---------- ------- ----- ---- ---------
/u01/app/oracle/oradata/DBdb/test101.dbf                                                                                                                                                                                                                                                                              /test102.dbf TEST1 TEST1                                              nbsp; 10在线在线永久

SQL>

10。重命名(修改存储位置)数据文件
步骤如下:
方法一
1 。更改包含数据文件的表空间或者只是某些数据文件脱机。
2.使用操作系统命令修改数据文件名。
3.使用alter数据库...重命名文件''t哦'';语句更改数据库中数据文件的名称。
4.备份数据库。

方法二:
1.启动数据库shutdown到挂载
2.使用操作系统命令修改数据文件名。
3.使用alter database ...将文件''重命名为'';语句更改数据库中数据文件的名称。
4.打开数据库并备份。

方法一:
SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s .ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME ; ---------------------------- ---------------------- ------ -------- ---------- ------- --------- ---------< /strong>
/u01/app/oracle/oradata/DBdb/test101.dbf             TEST1                                    p;恢复在线永久
/u01/app/oracle/oradata/DBdb/test102.dbf TEST1 10 ONLINE 在线永久

SQL>
SQL>
SQL> alter tablespace TEST1 将数据文件 '/u01/app/oracle/oradata/DBdb/test102.dbf' 重命名为 '/ u01/app/oracle/oradata/DBdb/test103.dbf';
更改表空间TEST1将数据文件'/u01/app/oracle/oradata/DBdb/test102.dbf'重命名为'/ u01/app/oracle/oradata/DBdb/test103.dbf'
*
第 1 行出现错误:
ORA-01525:重命名数据文件时出错
ORA-01121:无法重命名数据库文件 8 - 文件正在使用或恢复
ORA-01110: 数据文件 8: ' /u01/app/oracle/oradata/DBdb/test102.dbf'

[oracle@wang 2017_12_12]$ oerr ora 01145< /strong>
01145, 00000,“除非启用媒体恢复,否则不允许立即脱机”
// *原因:ALTER TABLESPACE ... OFFLINE IMMEDIATE 或 ALTER DATABASE DATAFILE
//        ...仅当数据库位于 ARCHIVELOG 中时才允许 OFFLINE模式。
// *操作:使表空间正常脱机或关闭中止。重新考虑您的
//         备份策略。如果您正在归档日志,则可以执行此操作。
[oracle@wang 2017_12_12]$

打开归档:
SQL> 立即关闭;
数据库已关闭。
数据库已卸载。
< strong>ORACLE 实例关闭。

SQL> 启动挂载;
ORACLE 实例启动。

系统全局区域总计 835104768 字节
固定大小 2257840 字节
可变大小 549456976 字节
数据库缓冲区 281018368 字节
重做缓冲区 2371584字节
已安装数据库。
SQL> alter database archivelog;

数据库已更改。

SQL> 更改数据库打开;

数据库已更改。

SQL>

离线尝试:
SQL> alter database datafile '/u01/app/oracle/oradata/ DBdb/test102.dbf' 离线;

数据库已更改。

SQL>

使用rename更改数据文件的名称;
--Physics优先 磁盘创建对应的名称;
[oracle@wang 2017_12_12]$ cd /u01/app/oracle/oradata/ DBdb/
[oracle@wang DBdb]$ cp test102.dbf test1022222.dbf
[oracle@wang DBdb]$ ls -lrt test*
-rw-r-- --- 1 oracle oinstall 10493952 12月12日00:10 test101.dbf
-rw-r--- -- 1 oracle oinstall 5251072 十二月12 00:32 test2.dbf
-rw-r----- 1 oracle oinstall 10493952 12月12日00:32 test102.dbf
-rw-r----- 1 oracle oinstall 10493952 12月12日00:39 test1022222.dbf
[oracle@wang DBdb]$

--正式操作:
SQL> alter database rename file '/u01/app/oracle/oradata/DBdb/test102.dbf' to '/u01/app/oracle /oradata/DBdb/test1022222.dbf';

数据库已更改。

SQL> select s.file_name, s .tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.dba_data_files 中的内容 s,dba_tablespaces d 其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';
帐篷

-------------------------------- ------- ----------------------------------- -------------------- -------- -- ---------- ------- --------- ---------< br/>/u01 /app/oracle/oradata/DBdb/test101.dbf22222.dbf TEST1 TEST1 RECOVER ONLINE PERMANENT

SQL>

在线新建数据文件;< br/> SQL> 在线修改数据库数据文件 '/u01/app/oracle/oradata/DBdb/test1022222.dbf';
修改数据库数据文件 '/u01/app/oracle /oradata/DBdb/test1022222 .dbf' 在线
*
第 1 行出现错误:
ORA -01113:文件 8 需要介质恢复
ORA-01110:数据文件 8:'/u01/app/oracle/oradata/DBdb/test1022222.dbf'

--恢复;
SQL> 恢复数据文件 8;
介质恢复完成。
SQL >
SQL> 更改数据库数据文件 '/u01/app/oracle/oradata/DBdb/test1022222.dbf' 在线;

数据库已更改。

SQL> select s.file_name, s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME        TABLESPACE_NAME SIZE_M ONLINE_状态内容
--------------------- ------------------------ -------------------------- -------------------------- ------ ------- --------- -- -------
/u01/app/oracle/oradata /DBdb/test101.dbf        TEST1   10在线在线永久

< strong> SQL>



方法二:
SQL>立即关闭;
数据库已关闭。
数据库已卸载。
ORACLE 实例已关闭。
SQL> < /strong >
SQL> 启动挂载;
ORACLE 实例已启动。

系统全局区域总计 835104768 字节
固定大小 2257840 字节
可变尺寸                                                                                                                                                                                                                               可能性不大一直一直一直一直一直一直一直。 .
SQL>

重命名数据文件:
SQL> alter database rename file '/u01/app/oracle/oradata/DBdb/test1022222.dbf' 为 '/u01/app/oracle/oradata/DBdb/test3333.dbf' ;
更改数据库重命名文件 ' /u01/app/oracle/oradata/DBdb/test1022222.dbf' 到 '/u01/app/oracle/oradata/DBdb/test3333.dbf'
*
第 1 行出现错误:
ORA-01511:重命名日志/数据时出错文件
ORA-01141:重命名数据文件 8 时出错 - 未找到新文件“/u01/app/oracle/oradata/ DBdb/test3333.dbf”
ORA-01110: 数据文件 8: '/u01/app/oracle/oradata/DBdb/test1022222.dbf'
ORA-27037: 无法获取文件状态
Linux-x86_64错误:2:没有这样的文件或目录
其他信息:3
/u01/app找不到/oracle/oradata/DBdb/test3333.dbf,请创建它:

[oracle@wang DBdb]$ pwd
/u01/app/oracle/oradata/DBdb
[oracle@wang DBdb]$
[oracle@wang DBdb]$ cp test1022222。 dbf test3333.dbf
[oracle@wang DBdb]$

再次执行:
SQL> alter 数据库重命名文件 '/u01/app/oracle/oradata/DBdb/test1022222.dbf' 为 '/u01/app/oracle/oradata/DBdb/test3333.dbf' ;
< br/> 数据库已更改。

SQL> alter database open;

数据库已更改。

SQL> select s .file_name、s.tablespace_name、s.bytes/1024/1024 size_m、s.ONLINE_STATUS、d.status、d.dba_data_files 中的内容 s、dba_tablespaces d 其中 s。 TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME                                            SIZE_M ONLINE_ 状态内容
----- ---------------------------- ---------------------- ------ ---------------------------- ------- --------- - ------- --------- ---------
/u01/app/oracle/oradata/DBdb/test101. dbf                                                                                                                                                                                                                                                                    DBdb/test3333.dbf公共服务提供商; 10 ONLINE ONLINE PERMANENT

SQL>
SQL> select s.file_name,s.tablespace_name,s.bytes/1024 /1024 size_m,s.ONLINE_STATUS,d.status,d.dba_data_files s,dba_tablespaces d 中的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME;

FILE_NAME TABLESPACE_NAME SIZE_M ONLINE_ STATUS CONTENTS< /strong>
---------------------------------------------------- ----------------------- --------------------------- - ------------ ------- --------- ---------
/ u01/app /oracle/oradata/DBdb/users01.dbf 用户 用户 3466.25 在线 在线 永久
/u01/app/oracle/oradata/DBdb/undotbs01 .dbf到 br/>/u01/app/oracle/oradata/DBdb/sysaux01​​.dbf      SYSAUX 740 在线永久在线
/u01/app/oracle/oradata/DBdb/system01。 dbf SYSTEM 2800 系统永久在线
/u01/ app/oracle/oradata/DBdb/example01.dbf                                                                                                                                  nbsp; 338.75 ONLINE 在线永久
/u01/app/oracle/oradata/DBdb/test101.dbf 恢复在线永久
/u01/app /oracle/ oradata/DBdb/test2.dbf                                                                                                                                                                                                                                                rong>/u 01/app/oracle/oradata/DBdb/test3333.dbf TEST1 TEST1 10 ONLINE ONLINE PERMANENT

选择了 8 行。
选择了 8 行。强>

SQL>

11.删除数据文件
从表空间删除数据文件:语法strong>
alter tablespace tablespace_name { ADD { DATAFILE | } TEMPFILE }                                                                                                                                 p; >
                                                                                                   TEMPFILE file_number } [KEEP size_clause]
                                                          nbsp; |重命名数据文件“文件名”[,“文件名”]...
                                                                                                           强>                                                                                                                                       sp;

SQL> alter tablespace test1 drop datafile '/u01/app/oracle/oradata/DBdb/test3333. dbf';

表空间已更改。

成功! ! ! ! ! !
SQL> alter tablespace test1 drop datafile '/u01/app/oracle/oradata/DBdb/test101.dbf';
alter tablespace test1 drop数据文件'/u01/app/oracle/oradata/DBdb/test101.dbf'
*
第1行出现错误:< br/>ORA-03261: 表空间 TEST1 只有一个文件

错误信息表明该表空间只包含一个数据文件,且该数据文件无法被删除。已删除。 。

SQL> alter tablespace test1 add datafile '/u01/app/oracle/oradata/DBdb/test101bak.dbf' size 5m;
< br/>表空间已更改。

SQL> select s.file_name,s.tablespace_name,s.bytes/1024/1024 size_m,s.ONLINE_STATUS,d。斯塔tus,d.来自 dba_data_files s,dba_tablespaces d 的内容,其中 s.TABLESPACE_NAME=d.TABLESPACE_NAME 和 s.TABLESPACE_NAME='TEST1';

FILE_NAME                           TABLESPACE_NAME SIZE_M ONLINE_ STATUS CON帐篷< /strong>
-------------------------------- -------- -------------------------------------------------------- ------ ---------- ------- --------- ---------
/u01/app /oracle/oradata/DBdb/test101.dbf TEST1 db/test101bak.dbf      TEST1   5 在线在线永久

SQL> ALTER TABLESPACE TEST1 Drop DataFile '/U01/APP/oradata /dbdb/test1.dbf' ;
alter tablespace test1 drop datafile '/u01/app/oracle/oradata/DBdb/test101.dbf'
< strong>*

第 1 行出现错误:
ORA-03263: 无法删除表空间 TEST1 的第一个文件

[oracle@wang DBdb]$ oerr ora 03263
03263, 00000, "无法删除第一个文件 of tablespace %s"
// *原因:尝试删除创建 ts 的第一个数据文件
// *操作:无法删除创建 ts 的第一个数据文件
[oracle@wang DBdb]$

该错误表明第一个数据文件表空间无法删除

注意:
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'
*
第 1 行出现错误:
ORA-03264:无法删除本地管理表空间的脱机数据文件
4.如果表空间仅包含一个数据文件,则该数据文件无法删除。
SQL> alter tablespace test_tbs drop datafile '/u01/app/oracle/oradata/stdb/test3.dbf';
alter tablespace test_tbs drop数据文件'/u01/app/oracle/oradata/stdb/test3.dbf'
*
第1行出现错误:< br/>ORA-03261: 表空间 TEST_TBS 只有一个文件
5.如果数据文件不为空,则无法删除该数据文件。
6.删除数据文件时,必须保证数据块是打开的。
7.表空间下创建的第一个数据文件无法删除:
SQL> alter tablespace test1 drop datafile '/u01/app /oracle/oradata/DBdb/test101.dbf';
一个过滤表空间 test1 删除数据文件 '/u01/app/oracle/oradata/DBdb/test101.dbf'
*
第 1 行出现错误:< /strong>
ORA-03263: 无法删除表空间 TEST1 的第一个文件< br/>

至此结束“如何删除表空间 TEST1 的第一个文件”的研究使用数据文件的创建/离线/删除/重命名方法”。希望能够解答大家的疑惑。理论与实践相结合,能够更好的帮助大家学习,去尝试吧!如果您想继续了解更多相关知识,请继续关注网站。小编会继续努力,给大家带来更多实用的文章!

1. 本站所有资源来源于用户上传或网络,仅作为参考研究使用,如有侵权请邮件联系站长!
2. 本站积分货币获取途径以及用途的解读,想在本站混的好,请务必认真阅读!
3. 本站强烈打击盗版/破解等有损他人权益和违法作为,请各位会员支持正版!
4. 编程技术 > 如何使用数据文件的创建/离线/删除/重命名方法

用户评论