当前位置:数据库 > Oracle >>

oracle数据文件的操作

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 -- 
 
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,