記一次windows下oracle的整庫移動

來源:互聯網
上載者:User

按客戶的要求,需要把oracle庫控制檔案、資料檔案、以及聯機記錄檔從本地磁碟移到儲存上,為後續cluster工作做準備,為此,準備兩套方案,類比記錄如下

方案一步驟如下:

1shutdownimmediate資料庫
2copydatafiles、logfiles、controlfiles、tempfiles到新的目錄
3startupnomount資料庫
4用命令altersystemsetcontrol_files指定控制檔案新位置
5startupforcemount資料庫
6指定datafiles、tempfiles新位置
7指定redo記錄檔新位置
8alterdatabaseopen資料庫

方案二步驟如下:

1產生重建控制檔案的語句
2shutdownimmediate資料庫
3copydatafiles、logfiles、tempfiles、到新的位置
4用命令altersystemsetcontrol_files更改spfile檔案中控制檔案的指向
5重建控制檔案
6為temp資料表空間的添加資料檔案


方案1執行過程如下:


1查詢當前資料檔案和記錄檔如下:

SQL>selectnamefromv$datafile;

NAME
--------------------------------------------------
G:\DATA\ERP\SYSTEM01.DBF
G:\DATA\ERP\SYSAUX01.DBF
G:\DATA\ERP\UNDOTBS01.DBF
G:\DATA\ERP\USERS01.DBF

SQL>selectgroup#,memberfromv$logfile;

GROUP#MEMBER
------------------------------------------------------------
2G:\DATA\ERP\REDO02.LOG
1G:\DATA\ERP\REDO01.LOG
3G:\DATA\ERP\REDO03.LOG


2一致性關閉資料庫:

SQL>shutdownimmediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE常式已經關閉。
SQL>

3拷貝資料檔案、記錄檔、臨時資料檔案、控制檔案到儲存目錄下:

C:\Users\Administrator.ZX>copyG:\DATA\ERP\*.*E:\DATA\ERP\
G:\DATA\ERP\CONTROL01.CTL
G:\DATA\ERP\CONTROL02.CTL
G:\DATA\ERP\REDO01.LOG
G:\DATA\ERP\REDO02.LOG
G:\DATA\ERP\REDO03.LOG
G:\DATA\ERP\SYSAUX01.DBF
G:\DATA\ERP\SYSTEM01.DBF
G:\DATA\ERP\TEMP01.DBF
G:\DATA\ERP\UNDOTBS01.DBF
G:\DATA\ERP\USERS01.DBF
已複製10個檔案。

4用命令altersystemsetcontrol_files指定控制檔案新位置

C:\Users\Administrator.ZX>sqlplus/assysdba

SQL*Plus:Release11.2.0.1.0Productionon星期五9月2017:29:492013

Copyright(c)1982,2010,Oracle.Allrightsreserved.

已串連到空閑常式。

SQL>startupnomount;
ORACLE常式已經啟動。

TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize301992512bytes
DatabaseBuffers117440512bytes
RedoBuffers8466432bytes

SQL>showparametercontrol_files;

NAMETYPEVALUE
----------------------------------------------------------------------------------------
control_filesstringG:\DATA\ERP\CONTROL01.CTL,G:\
DATA\ERP\CONTROL02.CTL

SQL>altersystemsetcontrol_files='E:\DATA\ERP\CONTROL01.CTL','E:\DATA\ERP\CONTROL02.CTL'scope=spfile;

系統已更改。

SQL>startupforcemount;
ORACLE常式已經啟動。

TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize301992512bytes
DatabaseBuffers117440512bytes
RedoBuffers8466432bytes
資料庫裝載完畢。
SQL>showparametercontrol_files;

NAMETYPEVALUE
-----------------------------------------------------------------------------
control_filesstringE:\DATA\ERP\CONTROL01.CTL,E:\
DATA\ERP\CONTROL02.CTL
SQL>


5指定資料檔案和臨時資料檔案新位置


SQL>alterdatabaserenamefile'G:\DATA\ERP\SYSAUX01.DBF',
2'G:\DATA\ERP\SYSTEM01.DBF',
3'G:\DATA\ERP\UNDOTBS01.DBF',
4'G:\DATA\ERP\USERS01.DBF',
5'G:\DATA\ERP\TEMP01.DBF'
6to'E:\DATA\ERP\SYSAUX01.DBF',
7'E:\DATA\ERP\SYSTEM01.DBF',
8'E:\DATA\ERP\UNDOTBS01.DBF',
9'E:\DATA\ERP\USERS01.DBF',
10'E:\DATA\ERP\TEMP01.DBF';

資料庫已更改。


6指定記錄檔新位置:


SQL>alterdatabaserenamefile'G:\DATA\ERP\REDO01.LOG',
2'G:\DATA\ERP\REDO02.LOG',
3'G:\DATA\ERP\REDO03.LOG'
4to'E:\DATA\ERP\REDO01.LOG',
5'E:\DATA\ERP\REDO02.LOG',
6'E:\DATA\ERP\REDO03.LOG';

資料庫已更改。

SQL>selectfile#,name,statusfromv$datafile;

FILE#NAMESTATUS
-----------------------------------------------------------------------------
1E:\DATA\ERP\SYSTEM01.DBFSYSTEM
2E:\DATA\ERP\SYSAUX01.DBFONLINE
3E:\DATA\ERP\UNDOTBS01.DBFONLINE
4E:\DATA\ERP\USERS01.DBFONLINE

SQL>selectgroup#,memberfromv$logfile;

GROUP#MEMBER
------------------------------------------------------------
2E:\DATA\ERP\REDO02.LOG
1E:\DATA\ERP\REDO01.LOG
3E:\DATA\ERP\REDO03.LOG

SQL>selectname,statusfromv$tempfile;

NAMESTATUS
-------------------------------------------------------------------
E:\DATA\ERP\TEMP01.DBFONLINE

第二種方案移庫過程如下:

1產生重建控制檔案的語句:

SQL>selectopen_modefromv$database;

OPEN_MODE
--------------------
READWRITE


SQL>alterdatabasebackupcontrolfiletotrace;

資料庫已更改。

SQL>oradebugsetmypid
已處理的語句
SQL>oradebugtracefile_name
c:\app\diag\rdbms\erp\erp\trace\erp_ora_2724.trc

SQL>exit
從OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions斷開

C:\Users\Administrator.ZX>startc:\app\diag\rdbms\erp\erp\trace\erp_ora_2724.trc
開啟該trace檔案找到如下控制檔案重建語句並儲存到control.sql檔案中

C:\Users\Administrator.ZX>e:

E:\>typecontrol.sql
STARTUPNOMOUNT
CREATECONTROLFILEREUSEDATABASE"ERP"NORESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY292
LOGFILE
GROUP1'E:\DATA\ERP\REDO01.LOG'SIZE200MBLOCKSIZE512,
GROUP2'E:\DATA\ERP\REDO02.LOG'SIZE200MBLOCKSIZE512,
GROUP3'E:\DATA\ERP\REDO03.LOG'SIZE200MBLOCKSIZE512
--STANDBYLOGFILE
DATAFILE
'E:\DATA\ERP\SYSTEM01.DBF',
'E:\DATA\ERP\SYSAUX01.DBF',
'E:\DATA\ERP\UNDOTBS01.DBF',
'E:\DATA\ERP\USERS01.DBF'
CHARACTERSETZHS16GBK
;

2一致性關閉資料庫:

E:\>sqlplus/assysdba

SQL*Plus:Release11.2.0.1.0Productionon星期五9月2018:52:192013

Copyright(c)1982,2010,Oracle.Allrightsreserved.


串連到:
OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions

SQL>shutdownimmediate;
資料庫已經關閉。
已經卸載資料庫。
ORACLE常式已經關閉。


3copydatafiles、logfiles、tempfiles到新的位置

SQL>exit
從OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0-64bitProduction
WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions斷開

E:\>copyE:\data\erp\*.*G:\data\erp\
E:\data\erp\CONTROL01.CTL
E:\data\erp\CONTROL02.CTL
E:\data\erp\REDO01.LOG
E:\data\erp\REDO02.LOG
E:\data\erp\REDO03.LOG
E:\data\erp\SYSAUX01.DBF
E:\data\erp\SYSTEM01.DBF
E:\data\erp\TEMP01.DBF
E:\data\erp\UNDOTBS01.DBF
E:\data\erp\USERS01.DBF
已複製10個檔案。

4用命令altersystemsetcontrol_files更改spfile檔案中控制檔案的指向

E:\>sqlplus/assysdba

SQL*Plus:Release11.2.0.1.0Productionon星期五9月2019:05:312013

Copyright(c)1982,2010,Oracle.Allrightsreserved.

已串連到空閑常式。

SQL>startupnomount;
ORACLE常式已經啟動。

TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize289409600bytes
DatabaseBuffers130023424bytes
RedoBuffers8466432bytes
SQL>showparametercontrol_files;

NAMETYPEVALUE
----------------------------------------------------------------------------------------
control_filesstringE:\DATA\ERP\CONTROL01.CTL,E:\
DATA\ERP\CONTROL02.CTL

SQL>altersystemsetcontrol_files='G:\DATA\ERP\CONTROL01.CTL','G:\DATA\ERP\CONTROL02.CTL'scope=spfile;

系統已更改。

5重建控制檔案

SQL>shutdownabort;
ORACLE常式已經關閉。
SQL>hosttypee:\control.sql
STARTUPNOMOUNT
CREATECONTROLFILEREUSEDATABASE"ERP"NORESETLOGSARCHIVELOG
MAXLOGFILES16
MAXLOGMEMBERS3
MAXDATAFILES100
MAXINSTANCES8
MAXLOGHISTORY292
LOGFILE
GROUP1'E:\DATA\ERP\REDO01.LOG'SIZE200MBLOCKSIZE512,
GROUP2'E:\DATA\ERP\REDO02.LOG'SIZE200MBLOCKSIZE512,
GROUP3'E:\DATA\ERP\REDO03.LOG'SIZE200MBLOCKSIZE512
--STANDBYLOGFILE
DATAFILE
'E:\DATA\ERP\SYSTEM01.DBF',
'E:\DATA\ERP\SYSAUX01.DBF',
'E:\DATA\ERP\UNDOTBS01.DBF',
'E:\DATA\ERP\USERS01.DBF'
CHARACTERSETZHS16GBK
;
SQL>@e:\control.sql
ORACLE常式已經啟動。

TotalSystemGlobalArea430075904bytes
FixedSize2176448bytes
VariableSize289409600bytes
DatabaseBuffers130023424bytes
RedoBuffers8466432bytes

控制檔案已建立。

SQL>selectopen_modefromv$database;

OPEN_MODE
--------------------
MOUNTED

SQL>colnamefora50
SQL>selectnamefromv$datafile;

NAME
--------------------------------------------------
E:\DATA\ERP\SYSTEM01.DBF
E:\DATA\ERP\SYSAUX01.DBF
E:\DATA\ERP\UNDOTBS01.DBF
E:\DATA\ERP\USERS01.DBF

SQL>colmemberfora50
SQL>selectmemberfromv$logfile;

MEMBER
--------------------------------------------------
E:\DATA\ERP\REDO01.LOG
E:\DATA\ERP\REDO03.LOG
E:\DATA\ERP\REDO02.LOG

SQL>selectnamefromv$tempfile;

未選定行

SQL>selectnamefromv$controlfile;

NAME
--------------------------------------------------
G:\DATA\ERP\CONTROL01.CTL
G:\DATA\ERP\CONTROL02.CTL

6給temp資料表空間添加資料檔案temp01


SQL>alterdatabaseopen;

資料庫已更改。

SQL>hostdirG:\DATA\ERP
磁碟機G中的卷是erp
卷的序號是F048-8EE6

G:\DATA\ERP的目錄

2013/09/2018:56<DIR>.
2013/09/2018:56<DIR>..
2013/09/2019:1410,076,160CONTROL01.CTL
2013/09/2019:1410,076,160CONTROL02.CTL
2013/09/2018:52209,715,712REDO01.LOG
2013/09/2018:52209,715,712REDO02.LOG
2013/09/2018:52209,715,712REDO03.LOG
2013/09/2018:52503,324,672SYSAUX01.DBF
2013/09/2018:52713,039,872SYSTEM01.DBF
2013/09/2017:1830,416,896TEMP01.DBF
2013/09/2018:5273,408,512UNDOTBS01.DBF
2013/09/2018:525,251,072USERS01.DBF
10個檔案1,974,740,480位元組
2個目錄7,482,286,080可用位元組

SQL>altertablespacetempaddtempfile'G:\DATA\ERP\TEMP01.DBF';

資料表空間已更改。

SQL>selectnamefromv$tempfile;

NAME
--------------------------------------------------
G:\DATA\ERP\TEMP01.DBF

注意:在關閉資料移庫前,檢查下資料表空間、資料檔案、記錄檔的狀態是否正常


本文出自 “myblog” 部落格,請務必保留此出處http://jiujian.blog.51cto.com/444665/1301425

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.