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 --