oracle 数据文件的操作

1.查看数据文件以及表空间

 SQL>SELECT * FROM V$DATAFILE;

 SQL>SELECT * FROM DBA_DATA_FILES;

 SQL>SELECT * FROM V$TABLESPACES;

 可以得到数据文件的分布情况和表空间的名称等等。

2.移动数据文件(非系统表空间)

(1)移动之前首先使要移动数据文件处于offline的状态

 SQL>ALTER TABLESPACE TABLESPACE_NAME OFFILNE ;

    (TABLESPACE_NAME为你要移动的表空间名称)

(2)检查一下该表空间的状态是否修改成功

  SQL>SELECT TABLESPACE_NAME,STSTUS FROM DBA_TABLESPACES;

(3)复制数据文件

  SQL> HOST COPY D:\ORACLE\ORADATA\DATA\TABLESPACE_NAME.DBF D:\DISK1\DATA;

  运行之后就将该表空间文件复制到了D:\DISK1\DATA下面

(4)重新命名表空间所对应的数据文件名

  SQL> ALTER TABLESPACE TABLESPACE_NAME RENAME

   2  DATAFILE 'D:\ORACLE\ORADATA\DATA\TABLESPACE_NAME.DBF'

   3  TO 'D:\DISK1\DATA\TABLESPACE_NAME.DBF';

(5)然后将该表空间修改为联机(online)状态

  SQL>ALTER TABLESPACE TABLESPSCE_NAME ONLINE;

  通过查看DBA_DATA_FILES,V$TABLESPACES检查一下状态是否更改,地址是否指向了新的表空间

(6)删除没用的数据文件

3.移动数据文件(系统表空间)

(1)系统表空间必须在mount下面移动

  首先用dba身份登录数据库,然后关闭数据库

  SQL> SHUTDOWN IMMEDIATE;

(2)当数据库关闭之后,启动实例并使数据库处于加载状态

  SQL> STARTUP MOUNT;

(3)复制数据文件

  SQL> HOST COPY D:\ORACLE\ORADATA\DATA\SYSTEM01.DBF D:\DISK1\DATA;

(4)重新命名表空间所对应的数据文件名

  SQL> ALTER TABLESPACE TABLESPACE_NAME RENAME

    2  DATAFILE 'D:\ORACLE\ORADATA\DATA\TABLESPACE_NAME.DBF'

    3  TO 'D:\DISK1\DATA\TABLESPACE_NAME.DBF';

(5)打开数据库

  SQL>ALTER DATABASE OPEN; 

4.增加数据文件

(1)为表空间增加一个数据文件

  SQL> ALTER TABLESPACE TABLESPACE_NAME ADD DATAFILE 'D:\ORADATA\DATA\TABLESPACE_NAME.DBF' SIZE  

    2  100M;

(2)重新调整数据文件的大小

  SQL>ALTER DATABASE DATAFILE 'D:\ORADATA\DATA\TABLESPACE_NAME.DBF' RESIZE 120M; 

oracle設置數據文件自動擴展(autoextend的方法與利弊分析)

1.数据文件自动扩展的好处
1)不会出现因为没有剩余空间可以利用到数据无法写入
2)尽量减少人为的维护
3)可以用于重要级别不是很大的数据库中,如测试数据库等

2.数据文件自动扩展的弊端
1)如果任其扩大,在数据量不断变大的过程中会导致某个数据文件异常的大
2)没有人管理的数据库是非常危险的3.查询当前数据库中所有数据文件是否为自动扩展
> select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'SEC_D';TABLESPACE_NAME   FILE_NAME                                 AUT
----------------- ----------------------------------------- ---
SEC_D             /data/oracle/dbfile.dbf  NO4.通过修改SEC_D的数据文件为自动扩展达到表空间SEC_D为自动扩展的目的
> alter database datafile '/data/oracle/dbfile.dbf' autoextend on;Database altered.5.确认是否已经修改成功
> select tablespace_name,file_name,autoextensible from dba_data_files where tablespace_name = 'SEC_D';TABLESPACE_NAME   FILE_NAME                                 AUT
----------------- ----------------------------------------- ---
SEC_D             /data/oracle/dbfile.dbf  YES6.总结修改语句语法
开启自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend on;
关闭自动扩展功能语法:
alter database datafile '对应的数据文件路径信息' autoextend off;-- The End -- 

猜你喜欢

转载自jayyanzhang2010.iteye.com/blog/1861239