如何移数据库文件
2024-07-21 02:36:23
供稿:网友
如何移数据库文件?
软件环境:
1、windows 2000+Oracle 8.1.6
2、ORACLE安装路径为:C:/ORACLE
实现方法:
有两种移动数据库文件的方法:
alter database或alter tablespace,
后者仅用于不包括 SYSTEM 的表空间、回滚段或临时段的数据文件
前者可用于所有数据文件
alter database方法:
1、创建实验表空间
SQL> create tablespace test datafile
2 'e:/test.dbf' size 5M
3 default storage (initial 1M next 1M pctincrease 0)
4 /
SQL>
表空间已创建。
e:为硬盘上的一个逻辑分区,现要把test.dbf文件移到d:盘
可使用以下语句查看一下数据文件状态
SQL> select file_name,file_id,tablespace_name,bytes,status from dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME BYTES STATUS
---------------------------------------- ---------- -------------------- ---------- ---------
C:/ORACLE/ORADATA/ORADB/SYSTEM01.DBF 1 SYSTEM 273154048 AVAILABLE
C:/ORACLE/ORADATA/ORADB/RBS01.DBF 2 RBS 73400320 AVAILABLE
C:/ORACLE/ORADATA/ORADB/USERS01.DBF 3 USERS 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/TEMP01.DBF 4 TEMP 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/TOOLS01.DBF 5 TOOLS 10485760 AVAILABLE
C:/ORACLE/ORADATA/ORADB/INDX01.DBF 6 INDX 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/DR01.DBF 7 DRSYS 20971520 AVAILABLE
E:/TEST.ORA 8 TEST 5242880 AVAILABLE
2、使用SERVER MANAGER关闭实例
c:/> svrmgrl
SVRMGR> connect internal
SVRMGR> shutdown;
SVRMGR> exit;
也可以在治理工具中用“服务”工具来关闭OracleServiceORCL,
不用关闭OracleOraHome81TNSListener
3、使用操作系统命令来移动数据库文件位置(不关闭,移动不了文件)
c:/>move e:/test.dbf d:/test.dbf
或在资源治理器中用鼠标“剪切”“粘贴”来完成
4、装载数据库并用alter database命令来改变数据库中的文件名
也可以在治理工具中用“服务”工具来启动OracleServiceORCL
不过,这时,表面上看OracleServiceORCL服务是启动了,但数据库并没有打开,
显示
ERROR:
ORA-01033: ORACLE initialization or shutdown in PRogress
这时,也可用internal/oracle连入SQL*Plus
SVRMGR> connect internal
SVRMGR> shartup mount ORCL;
SVRMGR> alter database rename file
> 'e:/test.dbf' to
> 'd:/test.dbf';
注重:一定要加单引号'
完成这个步骤后,保留数据库日志,并执行步骤5
5、启动实例
SVRMGR> connect internal
SVRMGR> alter database open;
这时,数据库真正打开,可以执行各种操作
6、查看一下数据文件状态
SQL> select file_name,file_id,tablespace_name,bytes,status from dba_data_files;
FILE_NAME FILE_ID TABLESPACE_NAME BYTES STATUS
---------------------------------------- ---------- -------------------- ---------- ---------
C:/ORACLE/ORADATA/ORADB/SYSTEM01.DBF 1 SYSTEM 273154048 AVAILABLE
C:/ORACLE/ORADATA/ORADB/RBS01.DBF 2 RBS 73400320 AVAILABLE
C:/ORACLE/ORADATA/ORADB/USERS01.DBF 3 USERS 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/TEMP01.DBF 4 TEMP 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/TOOLS01.DBF 5 TOOLS 10485760 AVAILABLE
C:/ORACLE/ORADATA/ORADB/INDX01.DBF 6 INDX 20971520 AVAILABLE
C:/ORACLE/ORADATA/ORADB/DR01.DBF 7 DRSYS 20971520 AVAILABLE
D:/TEST.ORA 8 TEST 5242880 AVAILABLE