分享

利用已有的建立好的数据库,直接改相关配置文件到新的盘符

 zkl_jk 2012-09-19

本方式是利用已有的建立好的数据库,直接改相关配置文件到新的盘符。
前提,数据库已正常运行。
可以考虑:用不同的sid在d盘建好库。
以下内容弄明白了以后可以直接制作sql文件,用sqlplus直接调用

一、连接数据库
sqlplus /nolog
SQL>connect /as sysdba

二、create pfile from spfile;
备注:这是会生成一个文件,在$oracle_home/dbs中,文件名称是init<SID>.ora

三、查询相关要复制的文件
SQL> select name from v$datafile;
SQL> select name from v$tempfile;
SQL> select name from v$controlfile;
SQL> select member from v$logfile;

(1)SQL> select name from v$datafile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/system01.dbf
/u01/app/oracle/oradata/orcl/undotbs01.dbf
/u01/app/oracle/oradata/orcl/sysaux01.dbf
/u01/app/oracle/oradata/orcl/users01.dbf
/u01/app/oracle/oradata/orcl/example01.dbf
/u01/app/oracle/oradata/orcl/BEIWAIONLINEV4.dbf

6 rows selected.

(2)SQL> select name from v$tempfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/temp01.dbf

(3)SQL> select name from v$controlfile;

NAME
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/oradata/orcl/control02.ctl
/u01/app/oracle/oradata/orcl/control03.ctl

(4)SQL> select member from v$logfile;

MEMBER
--------------------------------------------------------------------------------
/u01/app/oracle/oradata/orcl/redo03.log
/u01/app/oracle/oradata/orcl/redo02.log
/u01/app/oracle/oradata/orcl/redo01.log


四、关闭数据库

shutdown immediate

五、拷贝第三步运行结果中的所有文件到你的新目录中,这里假设新目录是:/u02/oradata/
备注:这里所指的所有文件是第三步运行那几个命令列出来的文件。

六、修改第二步生成的那个init<SID>.ora文件,在$oracle_home/dbs中。把在三步中用select name from v$controlfile;查出来的文件路径都改为新的路径。这里假设的路径是/u02/oradata/$controlfile.

七、按照下面操作启动数据库
SQL>startup mount pfile=<file name>

命令:SQL>startup mount pfile=$oracle_home/dbs/init<SID>.ora(备注:就是第二步生成的那个文件名和文件路径。)

八、更新文件系统
I:\DBFAS\DATA\SYSTEM01.DBF
I:\DBFAS\DATA\SYSAUX01.DBF
I:\DBFAS\DATA\UNDOTBS01.DBF
I:\DBFAS\DATA\USERS01.DBF
I:\DBFAS\DATA\INDX01.DBF

alter database rename file 'H:\DBFAS\DATA\SYSTEM01.DBF' to 'D:\DBFAS\DATA\SYSTEM01.DBF';
alter database rename file 'H:\DBFAS\DATA\SYSAUX01.DBF' to 'D:\DBFAS\DATA\SYSAUX01.DBF';
alter database rename file 'H:\DBFAS\DATA\UNDOTBS01.DBF' to 'D:\DBFAS\DATA\UNDOTBS01.DBF';
alter database rename file 'H:\DBFAS\DATA\USERS01.DBF' to 'D:\DBFAS\DATA\USERS01.DBF';
alter database rename file 'H:\DBFAS\DATA\INDX01.DBF' to 'D:\DBFAS\DATA\INDX01.DBF';
#SQL>alter database rename file 'I:\DBFAS\DATA\TEMP01.DBF' to 'D:\DBFAS\DATA\TEMP01.DBF';
#SQL>alter database rename file '/u01/app/oracle/oradata/orcl/temp01.dbf' to '/u02/oradata/temp01.dbf';
alter database rename file 'I:\DBFAS\LOG\REDO01.LOG' to 'D:\DBFAS\LOG\REDO01.LOG';
alter database rename file 'I:\DBFAS\LOG\REDO02.LOG' to 'D:\DBFAS\LOG\REDO02.LOG';
alter database rename file 'I:\DBFAS\LOG\REDO03.LOG' to 'D:\DBFAS\LOG\REDO03.LOG';
#SQL>alter database rename file '/u01/app/oracle/oradata/orcl/redo01.log' to '/u02/oradata/redo01.log';
#SQL>alter database rename file '/u01/app/oracle/oradata/orcl/redo02.log' to '/u02/oradata/redo02.log';
#SQL>alter database rename file '/u01/app/oracle/oradata/orcl/redo03.log' to '/u02/oradata/redo03.log';
备注:这里是更新第三步查询出来的所有文件,但是select name from v$controlfile;查询出来的文件不用命令更新。

九、查看文件是否更新成功

SQL> select name from v$datafile;
SQL> select name from v$tempfile;
SQL> select name from v$controlfile;
SQL> select member from v$logfile;


 select name from v$datafile;
 select name from v$tempfile;
select name from v$controlfile;
 select member from v$logfile;
运行结果所有指向了/u02/oradata/的话,证明更新成功

十、打开数据库

SQL> alter database open;

十一、创建一个新的spfile,运行下面命令

SQL> create spfile from pfile;

注释:如果不放心可以把原来路径下的文件换到别的目录,或者删除。关闭数据库后重新启动一次数据库查询一下看看........

 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多