- 論壇徽章:
- 0
|
因更換服務(wù)器需要將Oracle數(shù)據(jù)庫(kù)轉(zhuǎn)移到另外臺(tái)Oracle中。 說(shuō)明: 1、測(cè)試環(huán)境為:windows server2003 和 oracle 10g. 2、2臺(tái)服務(wù)器安裝的程序目錄一樣,數(shù)據(jù)目錄不一樣。 特別借簽了Afshen兄弟發(fā)的實(shí)踐將oracle冷備份恢復(fù)到另外一個(gè)數(shù)據(jù)庫(kù)實(shí)例中操作文章。但是對(duì)于新手來(lái)說(shuō)沒(méi)有詳細(xì)說(shuō)明,且我的操作有點(diǎn)點(diǎn)差異。另外我是新手,只知道工作完成,但是不知道是否此操作是否對(duì)于數(shù)據(jù)庫(kù)使用存在何影響,還需要后期開發(fā)使用在知道,希望能給大家提供對(duì)比作為操作中的參考。(因時(shí)間倉(cāng)促未俯圖)
1)在A數(shù)據(jù)庫(kù)服務(wù)器操作: 將需要轉(zhuǎn)移的數(shù)據(jù)庫(kù)A冷備份,冷備份,我很簡(jiǎn)單。 開始->運(yùn)行:sqlplus sqlplus>conn SourDB sys as sysdba sqlplus>shutdown immediate \\關(guān)閉數(shù)據(jù)庫(kù)實(shí)例 在提示后ORACLE 例程已經(jīng)關(guān)閉后,將對(duì)應(yīng)A數(shù)據(jù)庫(kù)中的e:\Oracle\oradata\SourDB數(shù)據(jù)庫(kù)目錄全部拷貝出來(lái)。
我的數(shù)據(jù)庫(kù)目錄內(nèi)含REDO01.LOG 、REDO02.LOG、REDO03.LOG,SYSAUX01.DBF,SYSTEM01.DBF,TEMP01.DBF,UNDOTBS01.DBF,USERS01.DBF,ZJTEST.DBF CONTROL01.CTL,CONTROL02.CTL,CONTROL03.CTL 疑惑:這3個(gè)控制文件后面發(fā)現(xiàn)沒(méi)用上,新數(shù)據(jù)庫(kù)重新生成控制文件就行了。因新接觸不了解,哪位同學(xué)知道的,解疑下。
2)在B數(shù)據(jù)庫(kù)(實(shí)例DestDB) 我的程序安裝在x:\oracle\product\10.1.0\db_1\ 數(shù)據(jù)目錄在x:\oracle\database\DestDB(無(wú)子目錄) a、備份數(shù)據(jù)庫(kù)B的控制文件 開始->運(yùn)行:sqlplus sqlplus>conn DetDB sys as sysdba
sqlplus>alter database backup controlfile to trace sqlplus>show parameter spfile; //顯示spfile路徑 sqlplus>create pfile from spfile; //備份數(shù)據(jù)庫(kù)B的控制文件,生成的文件在x:\oracle\product\10.1.0\db_1\database\下的INITDestDB.ORA,備份吧。
b、sqlplus>shutdown immediate \\關(guān)閉數(shù)據(jù)庫(kù)實(shí)例
刪除數(shù)據(jù)目錄在x:\oracle\database\DestDB的目錄下的數(shù)據(jù)文件、控制文件和日志文件,反正我是目錄下的都刪除了。將數(shù)據(jù)庫(kù)A備份的sourDB的*.log、*.DBF復(fù)制進(jìn)去。
刪除數(shù)據(jù)庫(kù)B中的,x:\oracle\product\10.1.0\db_1\database\SPFILEDestDB.ORA控制文件
修改INITDestDB.ORA文件,刪除*.control_files對(duì)應(yīng)的字串
c、啟動(dòng)數(shù)據(jù)庫(kù)B到nomount狀態(tài) 開始->運(yùn)行:sqlplus /nolog sql>conn DestDB as sysdba sql>startup nomount ORACLE 例程已經(jīng)啟動(dòng)。 Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 144964076 bytes Database Buffers 25165824 bytes Redo Buffers 1048576 bytes
\\使用下面的語(yǔ)句生成數(shù)據(jù)庫(kù)B的新的控制文件,將DestDB改掉目錄的數(shù)據(jù)庫(kù)名就行了。 sql>CREATE CONTROLFILE SET DATABASE "DestDB" RESETLOGS ARCHIVELOG MAXLOGFILES 16 MAXLOGMEMBERS 3 MAXDATAFILES 100 MAXINSTANCES 8 MAXLOGHISTORY 454 LOGFILE GROUP 1 'x:\oracle\database\DestDB\REDO01.LOG' SIZE 10M, GROUP 2 'x:\oracle\database\DestDB\REDO02.LOG' SIZE 10M, GROUP 3 'x:\oracle\database\DestDB\REDO03.LOG' SIZE 10M DATAFILE 'x:\oracle\database\DestDB\SYSTEM01.DBF', 'x:\oracle\database\DestDB\UNDOTBS01.DBF', 'x:\oracle\database\DestDB\SYSAUX01.DBF', 'x:\oracle\database\DestDB\USERS01.DBF', 'x:\oracle\database\DestDB\ZJTEST.DBF' CHARACTER SET ZHS16GBK;
關(guān)閉數(shù)據(jù)庫(kù) sql>shutdown immediate
d、添加(參考備份的initsourDB.ORA) *.control_files='x:\oracle\database\DestDB\control01.ctl','x:\oracle\database\DestDB\control02.ctl','x:\oracle\database\DestDB\control03.ctl' 新的控制文件,生成到目錄x:\oracle\database\DestDB,修改x:\oracle\product\10.1.0\db_1\database\下的initsourDB.ORA,我看到我的目錄內(nèi)生成了3個(gè)控制文件,所以加了3個(gè)。
e、指定pfile參數(shù)啟動(dòng),并生成spfile,完成恢復(fù)工作。 sql>startup pfile="x:\oracle\product\10.1.0\db_1\database\initsourDB.ORA"; ORACLE 例程已經(jīng)啟動(dòng)。 Total System Global Area 171966464 bytes Fixed Size 787988 bytes Variable Size 144964076 bytes Database Buffers 25165824 bytes Redo Buffers 1048576 bytes 數(shù)據(jù)庫(kù)裝載完畢。 ORA-01589: 要打開數(shù)據(jù)庫(kù)則必須使用 RESETLOGS 或 NORESETLOGS 選項(xiàng)
SQL> alter database open resetlogs; 數(shù)據(jù)庫(kù)已更改。
SQL> create spfile from pfile; 文件已創(chuàng)建。
SQL> select count(*) from dba_users; COUNT(*) ---------- 30 SQL> select count(*) from dba_users where username='test'; COUNT(*) ---------- 1
|
|