1.移动数据文件实验
首先使表空间脱机,,复制数据文件到计划的位置,重定义数据文件,使表空间联机,再查看是否已经成功移动数据文件
SQL> alter tablespace test_index offline;
表空间已更改。
SQL> selecttablespace_name,status,contents from dba_tablespaces;
TABLESPACE_NAME STATUS CONTENTS
------------------------------ ------------------
SYSTEM ONLINE PERMANENT
SYSAUX ONLINE PERMANENT
UNDOTBS1 ONLINE UNDO
TEMP ONLINE TEMPORARY
USERS ONLINE PERMANENT
EXAMPLE ONLINE PERMANENT
test ONLINE PERMANENT
TEST_INDEX OFFLINE PERMANENT
TEST_UNDO ONLINE UNDO
TEST_TEMP ONLINE TEMPORARY
SQL> select file#,name,status from v$datafile;
FILE# NAME STATUS
------------------------------------------------------------ -------
1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF SYSTEM
2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ONLINE
3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ONLINE
5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6 D:\DISK2\MOON\TEST01.DBF ONLINE
7 D:\DISK4\MOON\TEST02.DBF ONLINE
8 D:\DISK6\MOON\TEST_INDEX.DBF OFFLINE
9 D:\DISK7\MOON\TEST_UNDO.DBF ONLINE
SQL> host copyd:\disk6\moon\test_index.dbf d:\disk4\moon\test_index.dbf
已复制 1 个文件。
SQL> alter tablespace test_index rename datafile 'd:\disk6\moon\test_index.dbf' to 'd:\disk4\moon\test_index.dbf';
表空间已更改。
SQL> alter tablespace test_index online;
表空间已更改。
SQL> select file#,name,status fromv$datafile;
FILE# NAME STATUS
---------- ---------------------------------------------------------
1 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSTEM01.DBF SYSTEM
2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ONLINE
3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ONLINE
5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6 D:\DISK2\MOON\TEST01.DBF ONLINE
7 D:\DISK4\MOON\TEST02.DBF ONLINE
8 D:\DISK4\MOON\TEST_INDEX.DBF ONLINE
9 D:\DISK7\MOON\TEST_UNDO.DBF ONLINE
#########################################################################
2.移动系统表空间数据文件
首先将数据库启动到MOUNT状态 ,复制数据文件到指定位置,然后重定向数据文件,成功以后打开数据库,检查是否已经更改。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 318768272 bytes
Database Buffers 104857600 bytes
Redo Buffers 6037504 bytes
数据库装载完毕。
SQL> host copy C:\ORCL\SYSTEM01.DBF e:\disk1\
已复制 1 个文件。
SQL> alter database rename file 'C:\ORCL\SYSTEM01.DBF' to 'e:\disk1\system01.dbf';
数据库已更改。
SQL> alter database open;
SQL> select file#,name,status fromv$datafile;
FILE# NAME STATUS
------------------------------------------------------------ -------
1 E:\DISK1\SYSTEM01.DBF SYSTEM
2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ONLINE
3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ONLINE
5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
6 D:\DISK2\MOON\TEST01.DBF ONLINE
7 D:\DISK4\MOON\TEST02.DBF ONLINE
8 D:\DISK4\MOON\TEST_INDEX.DBF ONLINE
9 D:\DISK7\MOON\TEST_UNDO.DBF ONLINE
#######################################################################
3.删除表空间及数据文件
可以同时删除表空间和数据文件 "test"是因为建表空间时名字加了双引号为小写test, 默认为大写
删除表空间,不操作系统层面删除数据文件:
SQL> drop tablespace "test";
表空间已删除。
SQL> select file#,name,status fromv$datafile;
FILE# NAME STATUS
---------- ---------------------------------------------------------
1 E:\DISK1\SYSTEM01.DBF SYSTEM
2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ONLINE
3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ONLINE
5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
8 D:\DISK4\MOON\TEST_INDEX.DBF ONLINE
9 D:\DISK7\MOON\TEST_UNDO.DBF ONLINE
删除表空间同时删除数据文件:
SQL> drop tablespace test_index including contents and datafiles;
表空间已删除。
SQL> select file#,name,status fromv$datafile;
FILE# NAME STATUS
---------- ---------------------------------------------------------
1 E:\DISK1\SYSTEM01.DBF SYSTEM
2 C:\APP\ADMINISTRATOR\ORADATA\ORCL\SYSAUX01.DBF ONLINE
3 C:\APP\ADMINISTRATOR\ORADATA\ORCL\UNDOTBS01.DBF ONLINE
4 C:\APP\ADMINISTRATOR\ORADATA\ORCL\USERS01.DBF ONLINE
5 C:\APP\ADMINISTRATOR\ORADATA\ORCL\EXAMPLE01.DBF ONLINE
9 D:\DISK7\MOON\TEST_UNDO.DBF ONLINE
#######################################################################################
4.移动临时表空间及数据文件:
这个其实没必要这样做,可以直接新建一个临时表空间,然后把切换到新建的临时表空间上。参照新建并切换UNDO表空间的操作。
SQL> shutdown immediate;
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> startup mount;
ORACLE 例程已经启动。
Total System Global Area 431038464 bytes
Fixed Size 1375088 bytes
Variable Size 331351184 bytes
Database Buffers 92274688 bytes
Redo Buffers 6037504 bytes
数据库装载完毕。
SQL> alter database rename file'c:\ORCL\TEMP01.DBF' to 'e:\sysoradata\temp01.dbf';
数据库已更改。
SQL> host copy c:\orcl\temp01.dbfe:\sysoradata\temp01.dbf
已复制 1 个文件。
SQL> alter database open;
数据库已更改。
SQL> select name,status from v$tempfile;
NAME STATUS
------------------------------ -------
E:\SYSORADATA\TEMP01.DBF ONLINE