按照影響程度大小,方案a需要down庫,方案b需要offline tablespace,方案c只需offline datafile即可。綜合來看,下面的testcase_c_2的方法來的最簡單。影響也最小。
方案a:
testcase_a_1: (用asm的cp)
srvctl stop database -d ora11g
asmcmd> cp /tmp/test.dbf test01.dbf
sql> startup mount
sql> alter database rename file '/tmp/test.dbf' to '+data/ora11g/datafile/test01.dbf';
sql> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g
testcase_a_2_a:(用rman的backup as copy)
srvctl stop database -d ora11g
rman> startup mount
rman> backup as copy datafile 7 format '+data';
rman> switch datafile 7 to copy;
sql> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g
testcase_a_2_b:(用rman的copy)
srvctl stop database -d ora11g
rman> startup mount
rman> copy datafile 7 to '+data';
rman> switch datafile 7 to copy;
rman> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g
testcase_a_2_c:(用rman的copy+sqlplus的rename)
srvctl stop database -d ora11g
rman> startup mount
rman> copy datafile 7 to '+data';
sql> alter database rename file '/tmp/test.dbf' to '+data/ora11g/datafile/test.272.921855725';
sql> alter database open;
srvctl stop instance -d ora11g -i ora11g1
srvctl start database -d ora11g
方案b:
testcase_b_1(用asm的cp)
sql> alter tablespace test offline;
asmcmd> cp /tmp/test.dbf test.dbf
sql> alter database rename file '/tmp/test.dbf' to '+data/ora11g/datafile/test.dbf';
sql> alter tablespace test online;
testcase_b_2: (用rman的copy)
sql> alter tablespace test offline;
rman> copy datafile 7 to '+data';
rman> switch datafile 7 to copy;
sql> alter tablespace test online;
方案c:
testcase_c_1:(用create datafile as)
sql> alter database datafile 7 offline;
sql> alter database create datafile '/tmp/test.dbf' as '+data';
sql> recover datafile 7;
auto
sql> alter database datafile 7 online;
testcase_c_2:(用rman的copy)
sql> alter database datafile 7 offline;
rman> copy datafile 7 to '+data';
rman> switch datafile 7 to copy;
rman> recover datafile 7;
sql> alter database datafile 7 online;
(具體的測試日誌,見附件)
另外,郵件中方案c提到的,offline drop的方式,還是不建議採用,因為offline drop只是標記了一下資料檔案,在控制檔案中,還是會看到這個檔案的資訊。除非重建控制檔案或者drop整個tablespace。
另外,recover datafile的時候,不建議使用sql> alter database recover datafile 7。因為會掛住。
sql> alter database recover datafile 7;
alter database recover datafile 7
*error at line 1:
ora-00279: change 4025242 generated at 09/06/2016 15:28:47 needed for thread 1
ora-00289: suggestion :
+fra/ora11g/archivelog/2016_09_06/thread_1_seq_669.669.921857351
ora-00280: change 4025242 for thread 1 is in sequence #669
建議使用:
recover datafile xx,然後指定auto
用rman的recover datafile xx
在sqlplus中set autorecovery on之後,再alter database recover datafile xx
alter database recover automatic datafile ***
移動建立在本地的資料檔案到磁碟中
新為客戶部署了rac環境,但是客戶不懂rac,增加資料檔案的時候把資料檔案建立在了本地,導致某乙個節點不可訪問資料庫的問題,下面就是處理步驟 1,備份資料檔案 rman backup datafile 45 format home oracle example u ramn backup dataf...
mysql 載入本地資料檔案
和資料檔案 create table pet name varchar 20 owner varchar 20 species varchar 20 char 1 birth date,death date hadoop master cat datafile.txt fluffy harold c...
單資料庫rac模式下表空間資料檔案增加
表空間使用情況查詢 set pages 999 set linesize 999 select a.tablespace name 表空間名稱 100 round nvlsql sql 2 b.bytes free,0 a.bytes alloc 100,2 佔用率 round a.bytes al...