oracle数据文件管理,数据文件管理—oracle管理指南

一、创建数据文件

--创建数据文件时必需指定文件大小SQL> alter tablespace test1

2  add datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' size 20M

3  autoextend on

4  next 128K

5  maxsize 250M;

表空间已更改。

二、调整数据文件大小

SQL> alter database

2  datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF'

3  resize 25M;

数据库已更改。

三、修改数据文件

SQL> alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' offline;

alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' offline

*

第 1 行出现错误:

ORA-01145: 除非启用了介质恢复, 否则不允许立即脱机

--只有归档模式才能使用些命令让文件脱机,当oracle处于非归档模式时不能直接让数据文件脱机,此时可使用offline for drop ,这样数据文件需要恢复才能联机使用。

SQL> alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' offline for drop;

数据库已更改。

SQL> alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' online;

alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' online

*

第 1 行出现错误:

ORA-01113: 文件 10 需要介质恢复

ORA-01110: 数据文件 10: 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF'

SQL>recover datafile 10;完成介质恢复。

SQL> alter database datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' online;

数据库已更改。

三、重命名数据文件

--须先让表空间脱机=>在操作系统上手动更改文件名=>使且命令进行修改=>表空间联机

SQL> alter tablespace test1 offline normal;

表空间已更改。

SQL> alter tablespace test1

2  rename datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' to

3  'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA03.DBF';

表空间已更改。

SQL> alter tablespace test1 online;

表空间已更改。

--对于系统表空间,重做日志表空间,回滚表空间,不能让其脱机,须让数据库处于装载但关闭状态,再使用alter database命令进行重命名。

SQL> shutdown immediate

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> startup mount

ORACLE 例程已经启动。

Total System Global Area  535662592 bytes

Fixed Size                  1334380 bytes

Variable Size             226493332 bytes

Database Buffers          301989888 bytes

Redo Buffers                5844992 bytes

数据库装载完毕。

SQL> alter database

2  rename file 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSTEM01.DBF'

3  to 'D:\APP\YICHUNMEI\ORADATA\ORCL\SYSTEM02.DBF';

数据库已更改。

SQL> alter database open;

数据库已更改。

四、删除数据文件

SQL> alter tablespace test1 drop datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA03.DBF';

表空间已更改。

--当表空间只有一个数据文件时不能删除此文件

SQL> alter tablespace test1 drop datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA01.DBF';

alter tablespace test1 drop datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA01.DBF'

*

第 1 行出现错误:

ORA-03261: 表空间 TEST1 只有一个文件

SQL> alter tablespace test1 add datafile

2  'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF' size 20M

3  autoextend on

4  next 128K

5  maxsize 200M;

表空间已更改。

--当数据文件处于脱机状态下不能删除

SQL> alter database datafile 10 offline for drop;

数据库已更改。

SQL> alter tablespace test1 drop datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF';

alter tablespace test1 drop datafile 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF'

*

第 1 行出现错误:

ORA-03264: 无法删除本地管理的表空间中的脱机数据文件

SQL> alter database datafile 10 online;

alter database datafile 10 online

*

第 1 行出现错误:

ORA-01113: 文件 10 需要介质恢复

ORA-01110: 数据文件 10: 'D:\APP\YICHUNMEI\ORADATA\ORCL\TEST_DATA02.DBF'

SQL> recover datafile 10;

完成介质恢复。

SQL> alter tablespace datafile 10 online;

alter tablespace datafile 10 online

*

第 1 行出现错误:

ORA-02142: ALTER TABLESPACE 选项缺失或无效

SQL> alter database datafile 10 online;

数据库已更改。

五、复制文件

SQL> create directory oracle_home as 'D:\app\yichunmei\product\11.1.0\db_1\database';

目录已创建。

SQL> create directory oracle_dest as 'D:\app\yichunmei\product\11.1.0\db_1\database\bak';

目录已创建。

SQL> BEGIN

2    DBMS_FILE_TRANSFER.COPY_FILE(

3          source_directory_object       =>  'oracle_home',

4          source_file_name              =>  '1026.txt',

5          destination_directory_object  =>  'oracle_dest',

6          destination_file_name         =>  '1026_bak.txt');

7  END;

8  /

BEGIN

*

第 1 行出现错误:

ORA-19505: 无法识别文件"D:\app\yichunmei\product\11.1.0\db_1\database\1026.txt"

ORA-27046: 文件大小不是逻辑块大小的倍数

OSD-04012: 文件大小不匹配

O/S-Error: (OS 4) 系统无法打开文件。

ORA-06512: 在 "SYS.DBMS_FILE_TRANSFER", line 84

ORA-06512: 在 "SYS.DBMS_FILE_TRANSFER", line 193

ORA-06512: 在 line 2

SQL> BEGIN

2    DBMS_FILE_TRANSFER.COPY_FILE(

3          source_directory_object       =>  'oracle_home',

4          source_file_name              =>  'hc_orcl.dat',

5          destination_directory_object  =>  'oracle_dest',

6          destination_file_name         =>  'hc_orcl_bak.dat');

7  END;

8  /

PL/SQL 过程已成功完成。

--由此可知使用oracle复制文件是有限制的,文件大小必须是逻辑块大小的倍数?

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值