本方式是利用已有的建立好的數(shù)據(jù)庫(kù),直接改相關(guān)配置文件到新的盤符。
前提,數(shù)據(jù)庫(kù)已正常運(yùn)行。
可以考慮:用不同的sid在d盤建好庫(kù)。
以下內(nèi)容弄明白了以后可以直接制作sql文件,用sqlplus直接調(diào)用
一、連接數(shù)據(jù)庫(kù)
sqlplus /nolog
SQL>connect /as sysdba
二、create pfile from spfile;
備注:這是會(huì)生成一個(gè)文件,在$oracle_home/dbs中,文件名稱是init<SID>.ora
三、查詢相關(guān)要復(fù)制的文件
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
四、關(guān)閉數(shù)據(jù)庫(kù)
shutdown immediate
五、拷貝第三步運(yùn)行結(jié)果中的所有文件到你的新目錄中,這里假設(shè)新目錄是:/u02/oradata/
備注:這里所指的所有文件是第三步運(yùn)行那幾個(gè)命令列出來(lái)的文件。
六、修改第二步生成的那個(gè)init<SID>.ora文件,在$oracle_home/dbs中。把在三步中用select name from v$controlfile;查出來(lái)的文件路徑都改為新的路徑。這里假設(shè)的路徑是/u02/oradata/$controlfile.
七、按照下面操作啟動(dòng)數(shù)據(jù)庫(kù)
SQL>startup mount pfile=<file name>
命令:SQL>startup mount pfile=$oracle_home/dbs/init<SID>.ora(備注:就是第二步生成的那個(gè)文件名和文件路徑。)
八、更新文件系統(tǒng)
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';
備注:這里是更新第三步查詢出來(lái)的所有文件,但是select name from v$controlfile;查詢出來(lái)的文件不用命令更新。
九、查看文件是否更新成功
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;
運(yùn)行結(jié)果所有指向了/u02/oradata/的話,證明更新成功
十、打開數(shù)據(jù)庫(kù)
SQL> alter database open;
十一、創(chuàng)建一個(gè)新的spfile,運(yùn)行下面命令
SQL> create spfile from pfile;
注釋:如果不放心可以把原來(lái)路徑下的文件換到別的目錄,或者刪除。關(guān)閉數(shù)據(jù)庫(kù)后重新啟動(dòng)一次數(shù)據(jù)庫(kù)查詢一下看看........
聯(lián)系客服