




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
數(shù)據(jù)驅動成就未來密級:商密云和恩墨(北京)信息技術有限公司版權所有,嚴禁翻印3/4Oracle數(shù)據(jù)遷移增量備份的XTTSXTTSwithCrossPlatformIncrementalBackups
目錄1. 概述 51.1.傳統(tǒng)的跨平臺傳輸表空間 51.2.跨平臺增量備份傳輸表空間 51.3.跨平臺增量備份支持腳本 61.4.限制 62. 遷移前準備 62.1.源數(shù)據(jù)庫檢查 102.2.數(shù)據(jù)庫目標端補丁情況檢查。 102.3.對比新舊環(huán)境用戶 102.4.目標數(shù)據(jù)庫表空間檢查 112.5.對象的檢查 112.6.檢查時區(qū) 142.7.字符集的檢查 152.8.檢查目標端補丁情況 162.9.組件安裝情況檢查 172.10.IOT檢查是否使用了KeyCompression的索引組織表 172.11.檢查源端是否有Cluster對象 172.12.檢查RMAN 182.13.檢查源端Compatible參數(shù) 182.14.檢查表有沒有空段 182.15.失效對象檢查。 182.16.基于XMLSchema的HMLType對象檢查。 192.17.目標端創(chuàng)建檢查用DBlink。 192.18.檢查源數(shù)據(jù)庫的目標庫具有重復名稱的表空間。 192.19.檢查是否存在應用用戶建在system、sysaux、users上的情況。 192.20.SYS、SYSTEM用戶是否有對象存在于業(yè)務表空間 192.21.表空間自包含的檢查 192.22.檢查BCT(BlockChangeTracking)功能 202.23.檢查目標端的DB_FILES參數(shù) 202.24.確認生產庫的recyclebin功能是關閉,并手工清空回收站 202.25.數(shù)據(jù)文件狀態(tài)檢查 202.26.關閉統(tǒng)計信息 212.27.調整job參數(shù)(目標端) 212.28.用戶測試數(shù)據(jù)(用戶元數(shù)據(jù)) 212.29.軟件包上傳 223. 遷移準備 223.1.避免每次恢復都需要重啟 223.2.元數(shù)據(jù)導入提速 233.3.遷移建議:減少批次, 233.4.配置文件說明:xttdriver.pl 233.5.perties 243.6.xttdriver.plOptions 263.7.調試模式 273.8.執(zhí)行報錯 273.9.參考可能的相關BUG 274. 遷移V3(11g從單機遷移到RAC) 274.1.階段1-初始化設置 274.1.1.安裝目標數(shù)據(jù)庫軟件和目標數(shù)據(jù)庫 284.1.2.增量轉換實例(根據(jù)需要) 284.1.3.標識要傳輸?shù)谋砜臻g 284.1.4.配置Directory和DBLINK(DFT) 284.1.5.創(chuàng)建臨時區(qū)域(RMAN) 294.1.6.在源系統(tǒng)上安裝xttconvert
轉換腳本 294.1.7.在源系統(tǒng)上配置參數(shù)perties 294.1.8.復制配置xtt的轉換腳本和perties到目標系統(tǒng) 294.1.9.設置臨時目錄 304.2.階段2-準備階段RMAN(RecoveryManager) 304.2.1.在源系統(tǒng)上運行準備步驟 304.2.2.傳輸源系統(tǒng)上的副本到目標系統(tǒng) 314.2.3.在目標系統(tǒng)轉換數(shù)據(jù)文件 324.3.階段2-(推薦)準備階段DFT(dbms_file_transfer) 324.3.1.在源系統(tǒng)上運行準備步驟 334.3.2.傳輸數(shù)據(jù)文件到目標系統(tǒng) 334.4.階段3-增量階段(RollForwardPhase) 344.4.1.為源系統(tǒng)上傳輸?shù)谋砜臻g創(chuàng)建增量備份 344.4.2.將增量備份傳輸?shù)侥繕讼到y(tǒng) 354.4.3.轉換增量備份并應用到目標系統(tǒng)上的數(shù)據(jù)文件副本 354.4.4.確定下一次增量備份的起始備份號 364.4.5.重復前滾階段(階段3)或進入運輸階段(階段4) 364.5.階段4-轉換階段(TransportPhase) 374.5.1.使源數(shù)據(jù)庫中的源表空間為只讀 374.5.2.創(chuàng)建最終增量備份、傳輸、轉換并將其應用到目標數(shù)據(jù)文件 374.5.3.將對象元數(shù)據(jù)導入目標數(shù)據(jù)庫 374.5.4.使表空間在目標數(shù)據(jù)庫中讀寫 394.5.5.驗證傳輸?shù)臄?shù)據(jù) 394.6.階段5-清理(Cleanup) 404.7.目標數(shù)據(jù)庫最后檢查調整 404.7.1.恢復自動統(tǒng)計信息收集 404.7.2.恢復job調度任務 414.7.3.恢復用戶默認表空間 414.7.4.檢查臨時表空間、UNDO表空間 414.7.5.導出、導入、檢查用戶元數(shù)據(jù) 414.7.6.檢查Profile 424.7.7.檢查無效對象 435. 手工XTTS遷移(從11204單機遷移到PDB) 435.1.前期準備(重要) 435.1.1.字符集檢查 435.1.2.時區(qū)檢查 435.1.3.db_files參數(shù)檢查 435.1.4.rman配置檢查 435.1.5.平臺檢查 445.1.6.表空間datafile檢查 445.1.7.識別遷移用戶 445.1.8.將非系統(tǒng)對象移除system,sysaux表空間 445.1.9.處理系統(tǒng)對象存在于業(yè)務表空間 445.1.10.表空間信息采集 445.1.11.temp表空間信息采集 445.1.12.修改BCT加快增量備份 445.1.13.調整job參數(shù)(目標端) 445.1.14.清理users表空間(目標端) 445.1.15.創(chuàng)建用戶 445.1.16.IOT表檢查 455.1.17.dbms_backup_restore.backupBackupPiece包體函數(shù) 455.1.18.dbms_backup_restore.applyDatafileTo 495.1.19.dbms_backup_restore.restoreSetPiece 525.2.RMAN備份 525.2.1.查詢開始的scn 525.2.2.源端備份數(shù)據(jù)文件backupcopy 525.2.3.目標端轉換數(shù)據(jù)文件rmanconvert 535.2.4.源端記錄scn 545.2.5.源端備份增量備份 555.2.6.目標端增量轉換convert 565.2.7.目標端應用convert后的增量備份 575.2.8.可多次重復4,5,6,7步 595.3.正式遷移 595.3.1.源端關閉監(jiān)聽,kill會話,禁用job 595.3.2.表空間只讀 595.3.3.檢查分布式事物,檢查表空間只讀 595.3.4.清空回收站 595.3.5.重復RMAN備份4,5,6,7 595.3.6.導出元數(shù)據(jù) 595.3.7.導入前創(chuàng)建還原點(12.2可pdb閃回) 615.3.8.導入元數(shù)據(jù)到PDB 615.3.9.表空間讀寫 625.3.10.導入用戶元數(shù)據(jù) 625.3.11.public對象單獨導出導入 635.3.12.修改用戶默認的表空間 635.3.13.刪除閃回點 63
XTTS操作手冊概述KnownIssuesforCrossPlatformTransportableTablespacesXTTS(DocID2311677.1)V4ReduceTransportableTablespaceDowntimeusingCrossPlatformIncrementalBackup(DocID2471245.1)11G-ReduceTransportableTablespaceDowntimeusingCrossPlatformIncrementalBackup(Note1389592.1)12C-ReduceTransportableTablespaceDowntimeusingCrossPlatformIncrementalBackup(Note2005729.1)‘’傳統(tǒng)的跨平臺傳輸表空間TraditionalCrossPlatformTransportableTablespacesThehigh-levelstepsinatypicalXTTSscenarioarethefollowing:1MaketablespacesinsourcedatabaseREADONLY2Transferdatafilestodestinationsystem3Convertdatafilestodestinationsystemendianformat4ExportmetadataofobjectsinthetablespacesfromsourcedatabaseusingDataPump5ImportmetadataofobjectsinthetablespacesintodestinationdatabaseusingDataPump6MaketablespacesindestinationdatabaseREADWRITE傳統(tǒng)的跨平臺傳輸表空間的停時時間和數(shù)據(jù)量成正比,如果數(shù)據(jù)量大,數(shù)據(jù)文件傳輸和轉換的時間會很長。具有大量元數(shù)據(jù)庫的數(shù)據(jù)從跨平臺增量備份中獲益有限;遷移時間由元數(shù)據(jù)操作決定,而不是數(shù)據(jù)文件和傳輸只有那些物理上位于被傳輸?shù)谋砜臻g中的數(shù)據(jù)庫對象才會被復制到目標系統(tǒng)??缙脚_增量備份傳輸表空間Thehigh-levelstepsusingthecrossplatformincrementalbackupcapabilityarethefollowing:1.Preparephase(sourcedataremainsonline)1.1Transferdatafilestodestinationsystem1.2Convertdatafiles,ifnecessary,todestinationsystemendianformat2.RollForwardphase(sourcedataremainsonline-Repeatthisphaseasmanytimesasnecessarytocatchdestinationdatafilecopiesuptosourcedatabase)2.1Createincrementalbackuponsourcesystem2.2Transferincrementalbackuptodestinationsystem2.3Convertincrementalbackuptodestinationsystemendianformatandapplythebackuptothedestinationdatafilecopies3.Transportphase(sourcedataisREADONLY)3.1MaketablespacesinsourcedatabaseREADONLY3.2RepeattheRollForwardphaseonefinaltimeThisstepmakesdestinationdatafilecopiesconsistentwithsourcedatabase.TimeforthisstepissignificantlyshorterthantraditionalXTTSmethodwhendealingwithlargedatabecausetheincrementalbackupsizeissmaller.3.5ExportmetadataofobjectsinthetablespacesfromsourcedatabaseusingDataPump3.6ImportmetadataofobjectsinthetablespacesintodestinationdatabaseusingDataPump3.7MaketablespacesindestinationdatabaseREADWRITE其它對象傳輸,函數(shù),存儲過程,視圖,臨時表定義,PL/SQL對象?跨平臺增量備份支持腳本perties配置文件xttdriver.pl執(zhí)行XTTS跨平臺增量備份過程的主要步驟限制1必須遵循可傳輸表空間的限制和注意事項。/cd/E11882_01/server.112/e25494/tspaces.htm#i1007169/cd/E11882_01/server.112/e22490/dp_export.htm#i10075242不支持Windows版本3源數(shù)據(jù)庫必須是或更高版本4源數(shù)據(jù)庫的兼容參數(shù)必須設置為10.2.0或更高版本。5源數(shù)據(jù)庫的COMPATIBLE參數(shù)不能大于目標數(shù)據(jù)庫的COMPATIBLE參數(shù)。6源數(shù)據(jù)庫必須處于ARCHIVELOG模式。7目標數(shù)據(jù)庫必須運行或更高版本。8目標系統(tǒng)是Linux系統(tǒng)或者Unix系統(tǒng)9源的Oracle版本必須低于或等于目標。可以作為升級方法使用10RMAN的默認設備類型應配置為磁盤11源系統(tǒng)上的RMAN不能將設備類型磁盤配置為“壓縮”。如果是這樣,過程可能會返回:ORA-19994:跨平臺備份壓縮備份的不同端性。12要移動的表空間集必須全部聯(lián)機,并且不包含脫機數(shù)據(jù)文件。表空間必須是讀寫的。只讀的表空間可以用普通的XTTS方法移動。不需要合并跨平臺增量備份來移動始終為只讀的表空間。13不支持對備用數(shù)據(jù)庫或快照備用數(shù)據(jù)庫執(zhí)行此過程。14如果目標數(shù)據(jù)庫版本為或更低版本,則需要在目標系統(tǒng)上運行實例的包含的單獨數(shù)據(jù)庫主目錄才能執(zhí)行增量備份轉換。15如果將ASM用于ConvertHome,則ASM必須位于上,否則將引發(fā)錯誤ORA-15295(例如,ORA-15295:ASM實例軟件版本.0低于客戶端版本.0)遷移前準備遷移檢查表配置類型源庫source目標庫dest說明操作系統(tǒng)1313selectPLATFORM_ID,PLATFORM_NAMEfromv$database;
XTTS不支持Windows版本操作系統(tǒng)版本CentOS7.4OracleLinux6.10cat/etc/*-release
目標系統(tǒng)是Linux系統(tǒng)或者Unix系統(tǒng)/etc/hosts檢查1dest
1source1dest
1source配置sourcedest主機名,可以使用主機名解析IP數(shù)據(jù)庫補丁版本.0.0opatchlspatches
select'opatch',commentsfromdba_registry_history;
源數(shù)據(jù)庫必須是或更高版本,目標數(shù)據(jù)庫必須是或更高版本。
源的Oracle版本必須低于或等于目標。
DFT方法建議安裝Patch19023822修復目標端使用DBMS_FILE_TRANSFER.GET_FILE包獲取源端數(shù)據(jù)文件出現(xiàn)ORA-03106的情況。Patch22171097:MERGEREQUESTONTOPOFDATABASEPSU.6FORBUGS1753436519023822補丁opatch版本.25.25opatchversion兼容參數(shù)檢查.0.0showparametercompatible
源數(shù)據(jù)庫的兼容參數(shù)必須設置為10.2.0或更高版本。源數(shù)據(jù)庫的不能大于目標數(shù)據(jù)庫的。歸檔模式檢查YESYESarchiveloglist;
源數(shù)據(jù)庫必須處于ARCHIVELOG模式。組件檢查通過通過selectcomp_namefromdba_registry;
對于不一樣的組件,需要有所標記數(shù)據(jù)庫名稱orclorclORACLE_SID數(shù)據(jù)庫字符集AMERICAN_AMERICA.AL32UTF8AMERICAN_AMERICA.AL32UTF8select*fromnls_database_parameterswhereparameterlike'%CHARACTERSET%';國家字符集UTF-8UTF-8(NATIONALCHARACTER)影響NCHARNVARCHARNLOBNCLOB時區(qū)檢查+08:00+08:00selectsessiontimezone,dbtimezonefromdual;數(shù)據(jù)庫節(jié)點單實例RAC1節(jié)點DB_FILES參數(shù)302000showparameterdb_files
目標端不能小于源端BCT檢查未開啟(通過)-在源端數(shù)據(jù)量較大,或者數(shù)據(jù)改變較大時啟用,需要在源庫安裝補丁Bug16850197,但是目前該補丁只在.8上有提供。經過測試,其余版本沒有觸發(fā)bug。
注意:塊跟蹤設置的目錄大小,避免因塊跟蹤目錄滿而導致源數(shù)據(jù)庫hang。
注意:RAC需要放在共享存儲上,否則會導致DFSLOCKHANDLE,導致實例異常。select*fromv$BLOCK_CHANGE_TRACKING;ALTERDATABASEENABLEBLOCKCHANGETRACKINGUSINGFILE'/XXX/bct.trace';select*fromv$BLOCK_CHANGE_TRACKING;altersystemset"_bct_bitmaps_per_file"=100sid='*'遷移用戶GZGZ9COG創(chuàng)建用戶并授權(已創(chuàng)建)setline190pages900
selectusername,account_status,profile,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACEfromdba_userswhereACCOUNT_STATUSnotin('EXPIRED'||chr(38)||'LOCKED','LOCKED');遷移表空間GZ1遷移的表空間
在目標數(shù)據(jù)庫不能存在withtas(selectOWNER,SEGMENT_TYPE,TABLESPACE_NAMEtbs_name,count(1)cnt,round(sum(BYTES/1024/1024),2)sizeMB
fromdba_segmentswhereOWNERin(selectusernamefromsys.t_user)
groupbyOWNER,TABLESPACE_NAME,SEGMENT_TYPE
)selectdistincttbs_namefromt表空間
自包含檢查通過-execdbms_tts.transport_set_check('GZ2,GZ1',TRUE,TRUE);
execdbms_tts.transport_set_check('GZ1',TRUE,TRUE);
select*fromtransport_set_violations;表空間
聯(lián)機檢查通過-selectdistinctstatusfromgv$datafile;
selectdistinctc.statusfile_status,d.STATUStbs_statusfromgv$datafilec,v$tablespacea,sys.t_tbsb,dba_tablespacesdwhere=b.tbs_nameandc.ts#=a.ts#andb.tbs_name=d.TABLESPACE_NAME;
要移動的表空間集必須全部聯(lián)機,并且不包含脫機數(shù)據(jù)文件。表空間必須是讀寫的。RMAN檢查DISKDISKRMAN的默認設備類型應配置為磁盤,源系統(tǒng)上不能將設備類型磁盤配置為“壓縮”。統(tǒng)計信息-提前關閉execDBMS_AUTO_TASK_ADMIN.DISABLE(client_name=>'autooptimizerstatscollection',operation=>NULL,window_name=>NULL);JOB參數(shù)-提前關閉altersystemsetjob_queue_processes=0sid='*';
防止job調度任務,修改遷移后的數(shù)據(jù)。默認1000回收站檢查關閉回收站-showparameterrecyclebin;
purgedba_recyclebin;
altersystemsetrecyclebin=offscope=spfilesid='*';
確認生產庫的recyclebin功能是關閉,并手工清空回收站失效對象檢查無失效對象-檢查源庫失效對象,遷移前后對比Cluster對象無cluster對象-selectowner,CLUSTER_NAME,TABLESPACE_NAMEfromDBA_CLUSTERSwhereownerin(selectusernamefromsys.t_user);
源庫有CLUSTER對象需要安裝補丁17866999,or重建cluster對象IOT壓縮檢查無壓縮IOT-selectindex_name,table_namefromdba_indexeswherecompression='ENABLED'
andOWNERin(selectusernamefromsys.t_user);
selectowner,table_namefromdba_tableswhereiot_typeisnotnull
andOWNERin(selectusernamefromsys.t_user);
如果存在,目標數(shù)據(jù)庫需要安裝Patch14835322,否則索引組織表的對象無法導入到目標端。臨時目錄TMPDIR/home/oracle/xtt/home/oracle/xttecho"exportTMPDIR=/home/oracle/xtt">>~/.bash_profile;source~/.bash_profile
TMPDIR為支持腳本所在的路徑,使用shell運行perl腳本xttdriver.pl,如果未設置TMPDIR,輸出文件和輸入文件都創(chuàng)建中/tmp中創(chuàng)建臨時區(qū)域backupformat=/u01/stage_sourcebackupondest=/u02/rman_incrbackupformat--源系統(tǒng)上增量備份目錄
backupondest--目錄系統(tǒng)增量轉換目錄
配置perties準備階段-DFTcreateorreplacedirectorySRCas'/u11/app/oracle/oradata/ORCL/datafile';createdirectoryDSTas'+DATA/ORCL/datafile';select*fromdba_directories;
配置Directory和DBLINK準備階段-DFT-創(chuàng)建DBLinkcreatepublicdatabaselinkttslink
connecttosystemidentifiedby"oracle"using
'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=1)(PORT=1521))(CONNECT_DATA=(SERVER=DEDICATED)(SERVICE_NAME=orcl)))';
select*fromdual@ttslink;準備階段-RMANdfcopydir=/u01/stage_sourcestageondest=/u02/stage_destdfcopydir--源系統(tǒng)上RMAN-p階段生成文件目錄
stageondest--目標系統(tǒng)目錄,MRAN手動從源系統(tǒng)上傳輸文件
配置pertie暫存區(qū)安裝xttconvert源系統(tǒng)上安裝配置好之后copy到目錄系統(tǒng)unziprman_xttconvert_pertie配置
-RMANtablespaces=GZ1
platformid=13
dfcopydir=/u01/stage_source
backupformat=/u01/stage_source
stageondest=/u02/stage_dest
storageondest=+DATA/ORCL/DATAFILE
backupondest=/u02/rman_incrtablespaces=GZ1
platformid=13
srcdir=SRC
dstdir=DST
srclink=TTSLINK
dfcopydir=/u01/stage_source
backupformat=/u01/stage_source
stageondest=/u02/stage_dest
storageondest=+DATA/ORCL/DATAFILE
backupondest=/u02/rman_incrcatperties|grep-Ev"^$|^#"
scp-r/home/oracle/xttoracle@dest:/home/oracle源數(shù)據(jù)庫檢查2不支持Windows版本3源數(shù)據(jù)庫必須是或更高版本4源數(shù)據(jù)庫的兼容參數(shù)必須設置為10.2.0或更高版本。5源數(shù)據(jù)庫的COMPATIBLE參數(shù)不能大于目標數(shù)據(jù)庫的COMPATIBLE參數(shù)。6源數(shù)據(jù)庫必須處于ARCHIVELOG模式。showparametercomparchiveloglist;數(shù)據(jù)庫目標端補丁情況檢查。select'opatch',commentsfromdba_registry_history對比新舊環(huán)境用戶@show_create_profile@show_create_user對比role,對比新舊環(huán)境profile,在新環(huán)境當中對比并創(chuàng)建用戶創(chuàng)建非默認的temp表空間在目錄端創(chuàng)建用戶,并授權目標數(shù)據(jù)庫表空間檢查如果存在空格或者換行符數(shù)據(jù)文件,需要將該數(shù)據(jù)文件rename,否則在傳輸過程中會報錯終止。如果存在同名表空間,而且該表空間中的對象需要傳輸,建議將目標端中的表空間rename,以避免沖突。檢查相同表空間下是否存在不同目錄下的同名數(shù)據(jù)文件。使用dbms_file_transfer方式進行XTTS數(shù)據(jù)遷移,需要通過修改準備階段的getfile.SQL和xttnewdatafile文件來調整數(shù)據(jù)文件生成的路徑。select
substr(file_name,-6,2)
from
dba_data_files
where
tablespace_name='TBS_NAME'
order
by
1;
如果目標端有多個目錄,指定數(shù)據(jù)文件生成在不同的目錄,可以避免沖突。如果準備階段使用rman方式進行同步,則所有的數(shù)據(jù)文件會轉換為xtf結尾的文件,文件名會重新命名,所以不需要提前修改。對象的檢查對象的統(tǒng)計,跟業(yè)務確認需要傳輸哪一些數(shù)據(jù),哪一些表空間是遷移的對象創(chuàng)建模式用戶檢查1傳輸?shù)谋砜臻g只包含要傳輸?shù)挠脩舻膶ο?,傳輸?shù)谋砜臻g不包含其它用戶的對象檢查2目標數(shù)據(jù)庫中存在表空間傳輸所需的模式用戶及表空間名稱。#確定用戶及表空間自包含--確定要遷移的用戶和表空間在目錄端創(chuàng)建用戶并授權setline190pages900selectusername,account_status,profile,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACEfromdba_userswhereACCOUNT_STATUSnotin('EXPIRED'||chr(38)||'LOCKED','LOCKED');--1.1查看當前使用的用戶--createtablesys.t_userasselectusername,account_status,profile,DEFAULT_TABLESPACE,TEMPORARY_TABLESPACEfromdba_userswhereACCOUNT_STATUSnotin('EXPIRED'||chr(38)||'LOCKED','LOCKED')andusernamenotin('SYS','SYSTEM');--1.2查看當前用戶使用的默認表空間(如果使用了SYSTEM,SYSAUX表空間,需要遷移到其它表空間)--目錄表空間--createtablesys.t_tbsaswithtas(selectOWNER,SEGMENT_TYPE,TABLESPACE_NAMEtbs_name,count(1)cnt,round(sum(BYTES/1024/1024),2)sizeMBfromdba_segmentswhereOWNERin(selectusernamefromsys.t_user)groupbyOWNER,TABLESPACE_NAME,SEGMENT_TYPE)selectdistincttbs_namefromt--wheretbs_namein('GZ1');select*fromsys.t_tbs;--修改USERS表空間為gz1表空間(如果使用到了USERS表空間,判斷是否需要修改)altertablespaceusersrenametogz2;--重新新建USERS表空間createtablespaceUSERSdatafilesize10Mautoextendonnext5Mmaxsize30G;--修改默認用戶表空間以及用戶表空間(使用要遷移的表空間作為默認表空間的其它用戶)alterdatabasedefaulttablespaceusers;--檢查是否有使用了要遷移的表空間用為默認表空間的其它用戶(如果存在,需要調整為其它表空間)select'alteruser'||username||'defaulttablespaceUSERS;'alert_sqlfromdba_userswhereusernamenotin(selectusernamefromsys.t_user)andDEFAULT_TABLESPACEin(selecttbs_namefromsys.t_tbs);--2遷移在其它表空間的用戶的表,到遷移的表空間--判斷是否需要遷移表數(shù)據(jù)--2.1查看用戶使用了其它表空間(SYSTEM,SYSAUX)的對象明細–指定表空間selectOWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,round(BYTES/1024/1024,2)sizeMBfromdba_segmentswhereOWNERin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs);--altertablegz9.t1movetablespacegz1;--2.11把處于SYSTEM,SYSAUS表空間的對象遷稱到用戶表空間select'alter'||SEGMENT_TYPE||''||OWNER||'.'||SEGMENT_NAME||''||decode(SEGMENT_TYPE,'TABLE','move','rebuild')||'tablespace&usrtbs;'alert_sqlfromdba_segmentswhereOWNERin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs)andSEGMENT_TYPEin('TABLE','INDEX');#2.2查看LOB對象selectowner,TABLE_NAME,COLUMN_NAME,SEGMENT_NAME,TABLESPACE_NAME,INDEX_NAMEfromDBA_LOBSwhereOWNERin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs);#2.21遷移(遷入)LOB對象select'altertable'||OWNER||'.'||TABLE_NAME||'movelob('||COLUMN_NAME||')storeas(tablespace&usrtbs);'alert_sqlfromDBA_LOBSwhereOWNERin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs);#3.1查看其它用戶在使用了需要遷移的用戶表空間的其它用戶對象selectOWNER,TABLESPACE_NAME,SEGMENT_TYPE,count(1),round(sum(BYTES/1024/1024),2)sizeMBfromdba_segmentswhereOWNERnotin(selectusernamefromsys.t_user)andTABLESPACE_NAMEin(selectdistincttbs_namefromsys.t_tbs)groupbyOWNER,TABLESPACE_NAME,SEGMENT_TYPE;#3.11在用戶表空間的其它用戶對象明細selectOWNER,TABLESPACE_NAME,SEGMENT_TYPE,SEGMENT_NAME,round(BYTES/1024/1024,2)sizeMBfromdba_segmentswhereOWNERnotin(selectusernamefromsys.t_user)andTABLESPACE_NAMEin(selectdistincttbs_namefromsys.t_tbs);#3.12遷移(遷出)表空間select'alter'||SEGMENT_TYPE||''||OWNER||'.'||SEGMENT_NAME||''||decode(SEGMENT_TYPE,'TABLE','move','rebuild')||'tablespace&&othtbs;'alert_sqlfromdba_segmentswhereOWNERnotin(selectusernamefromsys.t_user)andTABLESPACE_NAMEin(selectdistincttbs_namefromsys.t_tbs)andSEGMENT_TYPEin('TABLE','INDEX');其它表空間的LOB對象遷移處理,#3.21查看LOB對象selectowner,TABLE_NAME,COLUMN_NAME,SEGMENT_NAME,TABLESPACE_NAME,INDEX_NAMEfromDBA_LOBSwhereOWNERnotin(selectusernamefromsys.t_user)andTABLESPACE_NAMEin(selectdistincttbs_namefromsys.t_tbs);#3.22遷移(遷出)LOB對象select'altertable'||OWNER||'.'||TABLE_NAME||'movelob('||COLUMN_NAME||')storeas(tablespace&&othtbs);'alert_sqlfromDBA_LOBSwhereOWNERnotin(selectusernamefromsys.t_user)andTABLESPACE_NAMEin(selectdistincttbs_namefromsys.t_tbs);--刪除臨時表droptablesys.t_userpurge;droptablesys.t_tbspurge分區(qū)LOB遷移處理--查看segment類型selectOWNER,SEGMENT_NAME,SEGMENT_TYPE,TABLESPACE_NAME,round(BYTES/1024/1024,2)sizeMBfromdba_segmentswhereOWNERin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs);--LOB分區(qū)DBA_LOB_PARTITIONSselecttable_owner||'.'||table_nametable_name,column_name,lob_name,partition_name,lob_partition_name,tablespace_namefromDBA_LOB_PARTITIONSwheretable_ownerin(selectusernamefromsys.t_user)andTABLESPACE_NAMEnotin(selecttbs_namefromsys.t_tbs);--鎖定表locktablecog.test_rangeinexclusivemode;--普通的方式插入數(shù)據(jù)insertintocog.test_range2Aselect*fromcog.test_rangeB;--在并發(fā)INSERT的時候,數(shù)據(jù)是被使用APPEND方式插入到表中,如果需要常規(guī)方式插入,需要加上noappend提示.ALTERSESSIONENABLEPARALLELDML;ALTERSESSIONDISABLEPARALLELDML;insertinto/*+parallel(A,3)*/cog.test_range2ASELECT/*+parallel(B,3)*/*FROMcog.test_rangeB;--驗證數(shù)據(jù)selectcount(1)fromcog.test_range2;--修改表名altertablecog.test_rangerenametotest_range3;altertablecog.test_range2renametotest_range;droptablecog.test_range3purge;altertable"COG".test_rangemovetablespacegz1;altertable"COG".test_rangemovePARTITION"P0"tablespacegz2;altertable"COG".test_rangemovepartition"P0"tablespacegz1lob(RANDOM_STRING2)storeasBASICFILE(tablespaceGZ1);altertable"COG".test_rangemovepartition"P0"LOB("RANDOM_STRING2")STOREASBASICFILE(TABLESPACE"GZ1");altertablecog.test_rangemodifydefaultattributestablespacegz1;--創(chuàng)建HASH分區(qū)表修改調表空間createtablecog.hash(idint,random_string1varchar2(100),msgclob)partitionbyhash(id)(partitionp1,partitionp2,partitionp3,partitionp4);--插入數(shù)據(jù)insertintocog.hashselectrownum,'123','abc'fromdualconnectbyrownum<=500;--查看分配置的空間undefinetable_namewithtas(selecta.*,rank()over(partitionbysegment_nameorderbyextent_iddesc)numfromdba_extentsawhereOWNER=upper('&&owner')andSEGMENT_NAMEin(selectSEGMENT_NAMEfromDBA_LOBSwhereOWNER=upper('&&owner')andTABLE_NAME=upper('&&table_name')unionselectindex_namefromdba_indexeswhereTABLE_OWNER=upper('&&owner')andtable_name=upper('&&table_name')unionselectupper('&&table_name')fromdual))selectOWNER,SEGMENT_NAME,PARTITION_NAME,SEGMENT_TYPE,TABLESPACE_NAME,EXTENT_ID,FILE_ID,BLOCK_ID,BYTES,BLOCKS,RELATIVE_FNOfromtwherenum<=50/--修改分區(qū)表(HASH)的表空間altertablecog.hashmovetablespacegz1;--分區(qū)表不能這樣直接修改定義的默認表空間altertablecog.hashmodifydefaultattributestablespacegz1;--要這樣altertablecog.hashmovePARTITIONP4tablespacegz1;altertablecog.hashmovepartitionP1lob(msg)STOREASBASICFILE(tablespaceGZ1);--HASH分區(qū)不支持BASICFILEaltertablecog.hashmovepartitionP1lob(msg)STOREASSECUREFILE(tablespaceGZ1);--HASH分區(qū)可以使用SECUREFILEaltertablecog.hashmovepartitionP1lob(msg)storeas(tablespacegz1);altertablecog.hashmovepartitionP1tablespacegz1lob(msg)storeas(tablespacegz1);altertablecog.hashdeallocateunused;altertablecog.hashmodifypartitionp4lob(msg)(deallocateunusedkeep8K);altertablecog.hashmovepartitionP1lob(msg)storeas(tablespacegz1);檢查時區(qū)確保目標數(shù)據(jù)庫和時間一致,--源端時區(qū),字符集的檢查selectsessiontimezone,dbtimezonefromdual;--會話時區(qū),世界時區(qū)selectdbtimezonefromdual;--數(shù)據(jù)庫時區(qū)--修改時區(qū)ALTERDATABASESETTIME_ZONE='+08:00';--修改好了之后需要重啟修改好后需要重啟pdb--檢查數(shù)據(jù)庫是否有這樣的字段類型TIMESTAMPWITHLOCALTIMEZONE--如果有需要轉換成timestamp--createtablegz1.tm1(idnumber(10),dtTIMESTAMPWITHLOCALTIMEZONE);--insertallintogz1.tm1values(3,sysdate)intogz1.tm1values(4,sysdate)select1fromdual;selectc.owner||'.'||c.table_name||'('||c.column_name||')-'||c.data_type||''colfromdba_tab_colsc,dba_objectsowherec.data_typelike'%WITHLOCALTIMEZONE'andc.owner=o.ownerandc.table_name=o.object_nameando.object_type='TABLE'orderbycol/--查看時區(qū)依賴的表(根據(jù)對象ID)select||'.'||||'.'||TSLTZcolumnfromsys.obj$o,sys.col$c,sys.user$uwherec.type#=231ando.obj#=c.obj#andu.user#=o.owner#;--查看時區(qū)依賴表結構descgz1.tm1;--###處理時區(qū)依賴表也可以使用重建整個表CTAS,orcreateandinsertselectcreatetablegz1.tm1_tmp(idnumber(10)primarykey,dttimestamp);locktablegz1.tm1inexclusivemodenowait;--鎖整個表insertintogz1.tm1_tmpselectid,dtfromgz1.tm1;commit;altertablegz1.tm1dropcolumndt;altertablegz1.tm1addid2number(10);altertablegz1.tm1adddttimestamp;mergeintogz1.tm1gusinggz1.tm1_tmpton(g.id=t.id)WHENMATCHEDTHENupdatesetg.dt=t.dt;droptablegz1.tm1_tmppurge;#修改表中的ID順序(若無必要,不必修改)需要重啟數(shù)據(jù)庫#查看表對應的idselectobject_idfromdba_objectswhereowner=upper('&&owner')andobject_name=upper('&&table_name');#查看表中各字段的順序:#填上剛剛查到的表idselectobj#,col#,namefromsys.col$whereobj#=&&obj_idorderbycol#;#修改順序undefinenew_numundefinecolumn_nameupdatesys.col$setcol#=&&new_numwherename=upper('&&column_name')andobj#=&&obj_id;updatesys.col$setcol#=col#+1wherename<>upper('&&column_name')andobj#=&&obj_idandcol#>=&&new_num;selectobj#,col#,namefromsys.col$whereobj#=&&obj_idorderbycol#;#值得注意的一點是,更新完字段順序后,若直接插入數(shù)據(jù),還是按舊的字段順序插入的,需要指定插入的字段或者重啟oracle。(需要根據(jù)情況驗證)字符集的檢查若無必要,目標端字符集和源數(shù)據(jù)庫字符集應當一致#為什么不用gbk的字符集:因為有些漢字gbk中沒有編碼,而utf8包容性最大--檢測當前前字符序COLUMNPLATFORM_NAMEFORMATA36SELECT*FROMV$TRANSPORTABLE_PLATFORMORDERBYPLATFORM_NAME;selectPLATFORM_ID,PLATFORM_NAMEfromv$database;--檢測當前字符集select*fromnls_database_parameterswhereparameterlike'%CHARACTERSET%';#客戶端字符集!env|grep-ilangNLS_LANG=AMERICAN_AMERICA.AL32UTF8NLS_LANG="SIMPLIFIEDCHINESE_CHINA.ZHS16GBK"LANG=en_US.UTF-8--操作系統(tǒng)--檢查字符集設置select*fromnls_database_parameterswhereparameterlike'%CHARACTERSET%';select*fromv$nls_parameterswhereparameterlike'%CHARACTERSET%';PARAMETERVALUENLS_CHARACTERSETAL32UTF8NLS_NCHAR_CHARACTERSETUTF8--server端字符集AMERICAN_AMERICA.AL32UTF8selectuserenv('language')fromdual;--client端字符集!echo$NLS_LANG--評估一下是否要做字符集更改將數(shù)據(jù)庫啟動到RESTRICTED模式下做字符集更改startupmountforceALTERSYSTEMENABLERESTRICTEDSESSION;ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;ALTERSYSTEMSETAQ_TM_PROCESSES=0;alterdatabaseopen;ALTERDATABASECHARACTERSETZHS16GBK;--修改時可能會遇到以下錯誤ORA-12712:newcharactersetmustbeasupersetofoldcharacterset--這時我們可以跳過超集的檢查做更改--修改字符集ZHS16GBKAL32UTF8ALTERDATABASEcharactersetINTERNAL_USEAL32UTF8;--修改國家字符集ALTERDATABASENATIONALCHARACTERSETINTERNAL_USEUTF8;shutdownimmediate--啟動數(shù)據(jù)庫,修改參數(shù)為原來的值startupALTERSYSTEMSETJOB_QUEUE_PROCESSES=1000;ALTERSYSTEMSETAQ_TM_PROCESSES=4;select*fromv$nls_parameters;修改國家字符集-步驟:1.在SQL*PLUS中,以DBA登錄conn用戶名assysdba2.執(zhí)行轉換語句:altersystemsetcluster_database=FALSEscope=spfilesid='*';SHUTDOWNIMMEDIATE;STARTUPMOUNTEXCLUSIV;ALTERSYSTEMENABLERESTRICTEDSESSION;ALTERSYSTEMSETJOB_QUEUE_PROCESSES=0;ALTERSYSTEMSETAQ_TM_PROCESSES=0;ALTERDATABASEOPEN;ALTERDATABASENATIONALCHARACTERSETUTF8;altersystemsetcluster_database=TRUEscope=spfilesid='*';SHUTDOWNimmediate;startup;--修改國家字符集可能會報錯ALTERDATABASENATIONALCHARACTERSETUTF8;ORA-12717:CannotALTERDATABASENATIONALCHARACTERSETwhenNCLOBdataexists--使用INTERNAL_USE的方法ALTERDATABASENATIONALCHARACTERSETINTERNAL_USEUTF8;檢查目標端補丁情況opatchlspatchesselect'opatch',commentsfromdba_registry_history;如果準備階段使用DBMS_FILE_TRANSFER方法,目標端建議安裝的補丁如下:Patch19023822,修復目標端使用DBMS_FILE_TRANSFER.GET_FILE包獲取源端數(shù)據(jù)文件出現(xiàn)ORA-03106的情況。Patch22171097:MERGEREQUESTONTOPOFDATABASEPSU.6FORBUGS1753436519023822如果準備階段使用RMAN方法,目標端沒有小補丁安裝需求。組件安裝情況檢查對于不一樣的組件,需要有所標記selectcomp_namefromdba_registry;IOT檢查是否使用了KeyCompression的索引組織表selectindex_name,table_namefromdba_indexeswherecompression='ENABLED'andOWNERin(selectusernamefromsys.t_user);selectowner,table_namefromdba_tableswhereiot_typeisnotnullandOWNERin(selectusernamefromsys.t_user);如果存在,目標數(shù)據(jù)庫需要安裝Patch14835322,否則索引組織表的對象無法導入到目標端。目前該補丁只在版本下提供,針對其他版本,如果IOT表或者鍵值壓縮索引無法導入時,建議在元數(shù)據(jù)導入完成后,將該類對象傳輸過去。$ORACLE_HOME/OPatch/opatchlsinv|grep14835322IfthesourcedatabasecontainsnestedIOTswithkeycompression,thenthefixfor
Bug14835322
mustbeinstalledinthedestinationdatabasehome(wherethetablespaceplugoperationoccurs).檢查源端是否有Cluster對象selectowner,CLUSTER_NAME,TABLESPACE_NAMEfromDBA_CLUSTERSwhereownerin(selectusernamefromsys.t_user);analyzecluster&cluster_namevalidatestructurecascadeBug17866999
-ORA-1499byAnalyzeClusterFollowingRMANConvert.ClusterInconsistencymayleadtoORA-600[6711]ORA-600[6722]Thisdocumentcanbereferredaswellforknownissues:Note17866999.8&Ifthesourcecontainsclusterobjects,thenrun"analyzecluster&cluster_namevalidatestructurecascade"afterXTTShasbeencompletedinthetargetdatabaseandifitreportsanORA-1499openthetracefileandreviewifithasentrieslike:kdcchk:indexpointstoblock0x01c034f2slot0x1chainlengthis256kdcchk:chaincountwrong0x01c034f2.1chainis1indexsays256lastentry0x01c034f2.1blockcount=1kdavls:kdcchkreturns3whencheckingclusterdba0x01c034a1objn90376Thentorepairthisinconsistencyeither:1.rebuildtheclusterindex.or2.Installfixbug17866999andrundbms_repair.repair_cluster_index_keycountIfafterrepairingtheinconsistencythe"analyzecluster&cluster_namevalidatestructurecascade"stillreportsissuesthenrecreatetheaffectedclusterwhichinvolvesrecreatingitstables.Notethatthefixofbug17866999isaworkaroundfixtorepairtheindexcluster;itwillnotavoidtheproblem.Oracledidnotfindavalidfixforthissituationsoitwillaffectanyrdbmsversions.如果修復Bug之后還是一直報錯,重建cluster對象檢查RMANRMAN的默認設備類型應配置為磁盤源系統(tǒng)上的RMAN不能將設備類型磁盤配置為“壓縮”。如果是這樣,過程可能會返回:ORA-19994:跨平臺備份壓縮備份的不同端性。開啟并行提高性能rmantarget/<<EOFshowall;exit;EOFCONFIGUREDEVICETYPEDISKPARALLELISM1BACKUPTYPETOBACKUPSET;CONFIGUREDEVICETYPEDISKPARALLELISM2BACKUPTYPETOBACKUPSET;配置壓縮會導致以上報錯,Iftherollforwardphase(xttdriver.pl-r)failswiththefollowingerrors,thenverifyRMANDEVICETYPEDISKis
not
configuredCOMPRESSED.EnteringRollForward
AfterapplySetDataFile
Done:applyDataFileTo
Done:RestoreSetPiece
DECLARE
*
ERRORatline1:
ORA-19624:operationfailed,retrypossible
ORA-19870:errorwhilerestoringbackuppiece
/dbfs_direct/FS1/xtts/incrementals/xtts_incr_backup
ORA-19608:/dbfs_direct/FS1/xtts/incrementals/xtts_incr_backupisnotabackup
piece
ORA-19837:invalidblocksize0inbackuppieceheader
ORA-06512:at"SYS.X$DBMS_BACKUP_RESTORE",line2338
ORA-06512:atline40檢查源端Compatible參數(shù)showparametercompatiblesource端的COMPATIBLE.RDBMS必須大于10.2.0,且不大于目標端COMPATIBLE.RDBMS如果目標端數(shù)據(jù)庫版本是或更低。那么需要在目標端裝并創(chuàng)建實例,然后用來進行備份集轉換。如果中轉實例使用ASM。那么ASM版本也必須是,否則報錯ORA-15295。檢查表有沒有空段失效對象檢查。@chk_inivalid_object@?/rdbms/admin/utlrp基于XMLSchema的HMLType對象檢查。目標端創(chuàng)建檢查用DBlink。檢查源數(shù)據(jù)庫的目標庫具有重復名稱的表空間。目錄數(shù)據(jù)庫應當不存在源庫導出的表空間名稱檢查是否存在應用用戶建在system、sysaux、users上的情況。SYS、SYSTEM用戶是否有對象存在于業(yè)務表空間如數(shù)據(jù)庫用戶
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025遼寧沈陽市遼中區(qū)人民醫(yī)院及遼中區(qū)中醫(yī)院招聘編外人員95人筆試模擬試題及答案解析
- 教育教學質量推進會上校長講話:破局教育困境我校以“四維突破”戰(zhàn)略開辟新航道
- 小學二年級數(shù)學有余數(shù)的除法(2位數(shù)除以1位數(shù))水平測試習題
- 超市員工代表發(fā)言稿
- 三年級數(shù)學幾百幾十加減幾百幾十質量監(jiān)控習題
- 車間員工獎金分配方案(7篇)
- 洗煤廠述職報告
- 起重機械的安全
- 雙節(jié)期間安全教育工作
- 四年級數(shù)學上冊三位數(shù)除兩位數(shù)專項訓練
- QMS審核知識試題附答案
- 創(chuàng)新思維及方法課件
- 建設工程合同糾紛-審判實務分析課件
- (完整word版)高考英語作文練習紙(標準答題卡)
- (完整版)Borg評分量表
- 代付農民工工資委托付款書(模板)
- 哪吒鬧海閱讀訓練題及答案
- 軟件開發(fā)管理辦法(完整版)
- 《等量代換》ppt(基礎教育)
- 自我探索價值觀講課稿
- 職業(yè)駕駛員職業(yè)心理和生理健康
評論
0/150
提交評論