数据文件管理—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复制文件是有限制的,文件大小必须是逻辑块大小的倍数?

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25989950/viewspace-709728/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/25989950/viewspace-709728/

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值