『DBA日志』数据库的迁移过程

来源:互联网 发布:淘宝账号申诉处理中心 编辑:程序博客网 时间:2024/06/16 05:56

 1.获取数据库相关信息

  

首先要查看一下数据库的文件内容和位置:

1) 数据文件: SQL> select name as datafile from v$datafile;

datafile --------------------------------------------------------------------------------

D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/SYSTEM01.DBF D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/UNDOTBS01.DBF D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/SYSAUX01.DBF D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/USERS01.DBF 2) 临时文件: SQL> select name as tempfile from v$tempfile;

 tempfile --------------------------------------------------------------------------------

D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/TEMP01.DBF

3) 控制文件: SQL> select name as ctlfiles from v$controlfile;

CTLFILES --------------------------------------------------------------------------------

D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/CONTROL01.CTL D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/CONTROL02.CTL D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/CONTROL03.CTL

4) 重做日志文件: SQL> select member from v$logfile;

MEMBER --------------------------------------------------------------------------------

D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO03.LOG D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO02.LOG D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO01.LOG

 

 2.移动应用数据文件,临时文件,重做日志文件

 

1) 关闭数据库 SQL> conn sys/admin@mydb as sysdba 已连接。

SQL> shutdown immediate;

数据库已经关闭。

已经卸载数据库。

ORACLE 例程已经关闭。

SQL> 2) 移动数据文件 复制文件到目标文件夹,本文为 F:/oradata/mydb/datafiles/sys/  

3)、修改数据库文件的位置  启动MOUNT模式  

SQL> startup mount;  

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/SYSTEM01.DBF' to 'F:/oradata/mydb/datafiles/sys/SYSTEM01.DBF';  

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/UNDOTBS01.DBF' to 'F:/oradata/mydb/datafiles/sys/UNDOTBS01.DBF';

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/SYSAUX01.DBF' to 'F:/oradata/mydb/datafiles/sys/SYSAUX01.DBF';   SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/USERS01.DBF' to 'F:/oradata/mydb/datafiles/sys/USERS01.DBF';   

 临时文件: 

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/Temp01.DBF' to 'F:/oradata/mydb/datafiles/sys/Temp01.DBF';

重做日志组: 

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO01.LOG' to 'F:/oradata/mydb/logfiles/REDO01.LOG';  

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO02.LOG' to 'F:/oradata/mydb/logfiles/REDO02.LOG';  

SQL> alter database rename file 'D:/ORACLE/PRODUCT/10.2.0/ORADATA/MYDB/REDO03.LOG' to 'F:/oradata/mydb/logfiles/REDO03.LOG';

 

注意9i前只能进行更改移动的数据库文件,不包括日志文件,TEMP文件(这两种文件需要drop然后重建),9i以后版本这两种文件也是可以的。

 

3.移动应用控制文件

 

1).备份SPFILE中的内容:   

再重新启动数据库:   startup;   

create pfile=’c:/init.ora’ from spfile;  

 

2)修改init.ora文件中的内容:   *.control_files='/oradata/ocp/control01.ctl','/oradata/ocp/control02.ctl','/oradata/ocp/control03.ctl'   进行更改已经复制的目录位置。   

 

Shutdown 数据库  

 

3)将控制文件复制过去   

将三个控制文件移动到上面所修改的的目录下。

 

4)倒入参数文件   

 

以init.ora参数方式启动:   startup pfile=’/oracle/init.ora’;   

create spfile from pfile=’/oracle/init.ora’;   

shutdown immediate;   

startup; 从spfile中进行启动。  

 

这样控制文件移动工作就结束了。

 

 附、重建系统监时(temp)文件系统做法   

在移动数据表空间时,TEMP文件是不能被移动的,这里要求可以进行重建一个TEMP表空间,并设置为系统默认的TEMP文件系统。   

然后再册除原来的TEMP表空间,达到移动表空间的过程。   

迁移临时表空间   

◆1.startup --启动数据库   

◆2. create temporary tablespace "temp02" tempfile 'd:/oradata/weboa/temp02.dbf' size 500m extent management local uniform size 10m; --创建中转临时表空间   

◆3.alter database default temporary tablespace temp2; --改变缺省临时表空间 为刚刚创建的新临时表空间temp2   

◆4.drop tablespace temp including contents and datafiles;--删除原来临时表空间   

◆5 然后再删除原来的TEMP文件就可以了。

原创粉丝点击