<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Decode360's Blog

    業(yè)精于勤而荒于嬉 QQ:150355677 MSN:decode360@hotmail.com

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
      397 隨筆 :: 33 文章 :: 29 評論 :: 0 Trackbacks
    使用DBMS_SPACE_ADMIN包傳輸TableSpace
    ?
    ??? 傳輸表空間這個特性是一個很好用的東西,因為其操作方便,所以在數(shù)據(jù)的傳輸過程中經(jīng)常會用到。另外如果想修改Tablespace的某些屬性(例如名字),但又無法修改時,可以通過表空間傳輸來解決。當(dāng)然表空間傳輸有比較大的局限性,下文詳述。
    ?
    ?
    一、表空間的傳輸
    ?
    ??? 表空間的用途有以下幾方面:
    ?
    ??? * 將數(shù)據(jù)從OLTP系統(tǒng)移動到數(shù)據(jù)倉庫分級系統(tǒng)
    ??? * 從分級系統(tǒng)更新數(shù)據(jù)倉庫和數(shù)據(jù)中心
    ??? * 從中心數(shù)據(jù)倉庫裝載數(shù)據(jù)中心
    ??? * 啟用存檔OLTP和數(shù)據(jù)倉庫系統(tǒng)
    ??? * 對內(nèi)部和外部使用者發(fā)布數(shù)據(jù)
    ??? * 執(zhí)行表空間Point-in-Time恢復(fù)
    ?
    ??? 傳輸表空間比進(jìn)行數(shù)據(jù)導(dǎo)出/導(dǎo)入要快很多,而且可以進(jìn)行索引數(shù)據(jù)異動,避免了導(dǎo)入數(shù)據(jù)后必須執(zhí)行的索引重建
    ?
    1、約束條件
    ?
    ??? ① 必須在同一數(shù)據(jù)平臺之間傳輸
    ??? ② 源/目標(biāo)數(shù)據(jù)庫必須使用相同字符集和本國字符集
    ??? ③ 不可重名
    ??? ④ 不支持以下內(nèi)容
    ??????? * 物化視圖/復(fù)制
    ??????? * 基于函數(shù)的索引
    ??????? * 規(guī)定范圍的REF
    ??????? * 帶有多個接受者的高級查詢
    ?
    2、具體的操作過程
    ?
    ? ① 選擇一個自含式表空間集合
    ?
    ??? “自含式”表示沒有從表空間集合內(nèi)指向表空間外的引用,具體的違反例子有:
    ?
    ??? 1) 一個該表空間集合內(nèi)部的索引用于一個該表空間集合外的表。(本集表的索引為集外不違例)
    ??? 2) 分區(qū)表部分包含在該表空間集合外,或包含集外分區(qū)表的某分區(qū)
    ??? 3) 指向一個表的指示完整性約束條件越過設(shè)置的界限(當(dāng)選擇傳輸時包含指示完整性的約束條件)
    ??? 4) 表空間集內(nèi)的表包含集外的LOB列
    ?
    ??? 可以使用DBMS_TTS包中的TRANSPORT_SET_CHECK過程
    ?
    ??? 注:DBMS_TTS包僅供SYS用戶使用,即使有DBA權(quán)限的用戶也無法使用
    ?
    ??? 具體操作是:EXECUTE dbms_tts.transport_set_check('INDX',TRUE);?
    ??????????????? ?? --true表示需要考慮約束條件,空間名稱忽略大小寫
    ?
    ??? 執(zhí)行完成后查詢:SELECT * FROM transport_set_violations;
    ?????????????????? ? --會列出所有的違例條目,但REF越界不包含其中
    ?
    ? ② 生成可傳輸表空間集合
    ?
    ??? 1) 使正在復(fù)制的集合中所有表空間只讀
    ??????? ALTER TABLESPACE ... READ ONLY;
    ?
    ??? 2) 使用Export工具,并指定哪些表空間在可傳輸集合中
    ??????? EXP TRANSPORT_TABLESPACE=y TABLESPACE=(sales_1,sales_2)
    ??????? TRIGGERS=y CONSTRANTS=n GRANTS=n FILE=expdat.dmp
    ?
    ?????? 說明:
    ??????????? * 只輸出表空間的數(shù)據(jù)字典結(jié)構(gòu)信息,無實際數(shù)據(jù)
    ??????????? * 觸發(fā)器內(nèi)輸出(y輸出 n不輸出)
    ??????????? * 指示完整性的約束條件不被輸出
    ??????????? * 授權(quán)不被輸出
    ??????????? * 要創(chuàng)建的結(jié)構(gòu)信息輸出文件名expdat.dmp
    ?
    ? ③ 傳輸該表空間集合
    ?
    ??? 將表空間數(shù)據(jù)文件和輸出文件傳輸?shù)揭粋€目標(biāo)數(shù)據(jù)庫可訪問位置即可。
    ?
    ? ④ 插入該表空間集合
    ?
    ??? 若塊大小不同,則需要在目標(biāo)數(shù)據(jù)庫加入?yún)?shù)DB_nK_CACHE_SIZE(n為源數(shù)據(jù)塊大小)
    ?
    ??? 使用Import工具插入該表空間和繼承結(jié)構(gòu)信息
    ??? IMP TRANSPORT_TABLESPACE=y FILE=expdat.dmp
    ??? DATAFILES=('/db/sales_jan','/db/sales_feb',...)
    ??? TABLESPACES=(sales_1,sales_2) TTS_OWNERS=(dcranney,jfee)
    ??? FROMUSER=(dcranney,jfee) TOUSER=(smith,williams)
    ???????
    ??? 說明:
    ???????? * TRANSPORT_TABLESPACE=y 通知Export工具正在傳輸一個表空間
    ???????? * FILE=exdat.dmp 指名包含元數(shù)據(jù)的輸出文件是exdat.dmp
    ???????? * TTS_OWNERS列出在該表空間集合中擁有數(shù)據(jù)的所有用戶(與輸出一致)
    ???????? * FROMUSER、TOUSER改變數(shù)據(jù)庫對象的所有權(quán)
    ???????? * 可以將語句寫入文本,再調(diào)用。 IMP PARFILE='par.f'
    ?
    3、傳輸后不能正常工作的對象
    ?
    ??? ① ROWID
    ??????? ROWID不再唯一,僅在單獨表中是唯一的。
    ?
    ??? ② REF
    ??????? REF在監(jiān)測自含式時不監(jiān)測,當(dāng)非自含時插入虛懸REF,查詢時出錯
    ?
    ??? ③ 權(quán)限
    ??????? 權(quán)限賦予可能會失敗,例如用戶不存在等
    ?
    ??? ④ 分區(qū)表
    ??????? 若交換分區(qū)后進(jìn)行傳輸,要交換回分區(qū)時可能會出錯
    ?
    ??? ⑤ 索引
    ??????? 基于函數(shù)的索引不可被傳輸,必須在傳輸前取消
    ?
    ??? ⑥ 觸發(fā)器
    ??????? 觸發(fā)器在傳輸前也不用檢查,所以可能會發(fā)生編譯錯誤
    ?
    ??? ⑦ 物化視圖/復(fù)制
    ???????
    ?
    ?
    二、使用DBMS_SPACE_ADMIN解決表空間問題
    ?
    ??? DBMS_SPACE_ADMIN包為本地管理的表空間提供帶有故障診斷和修復(fù)功能的管理程序。
    ?
    ??? SEGMENT_VERIFY:驗證該段盤區(qū)映射的一致性
    ??? SEGMENT_CORRUPT:標(biāo)注該段為損壞或有效,以便執(zhí)行恰當(dāng)?shù)腻e誤恢復(fù)
    ??? SEGMENT_DROP_CORRUPT:取消一個當(dāng)前標(biāo)注為損壞的段(不回收空間)
    ??? SEGMENT_DUMP:卸下一個給定段的段頭部和盤區(qū)映射
    ??? TABLESPACE_VERIFY:驗證該表空間中段的位圖和盤區(qū)映射是否同步
    ??? TABLESPACE_REBUILD_BITMAPS:重建適當(dāng)?shù)奈粓D
    ??? TABLESPACE_FIX_BITMAPS:位圖中標(biāo)注適當(dāng)?shù)臄?shù)據(jù)塊地址范圍(盤區(qū))為空閑或已用
    ??? TABLESPACE_REBUILD_QUOTAS:為給定的表空間重建權(quán)限
    ??? TABLESPACE_MIGRATE_FROM_LOCAL:將一個本地管理表空間移植為字典管理的表空間
    ??? TABLESPACE_MOGRATE_TO_LOCAL:將一個表空間從字典管理的格式移植為本地管理格式
    ??? TABLESPACE_RELOCATE_BITMAPS:將位圖重定位到指定的目的地
    ??? TABLESPACE_FIX_SEGMENT_STATES:修改移植被放棄的表空間中數(shù)據(jù)段的狀態(tài)
    ???
    1、分配的塊標(biāo)注為空閑(沒有重疊)時修改位圖
    ?
    ??? SEGMENT_VERIFY過程發(fā)現(xiàn)一個段擁有位圖中標(biāo)注為空閑的已分配塊,但沒有段之間重疊的報告
    ??? ① 調(diào)用SEGMENT_DUMP過程卸下管理沖虛分配給該段的區(qū)域
    ??? ② 對每個區(qū)域調(diào)用帶有TABLESPACE_EXTENT_MAKE_USED選項的TABLESPACE_FIX_BITMAPS過程標(biāo)注為已用
    ??? ③ 調(diào)用TABLESPACE_REBUILD_QUOTAS過程來確定限額
    ?
    2、取消一個損壞的段
    ?
    ??? ① 調(diào)用帶有SEGMENT_VERIFY_EXTENTS_GLOBAL選項的SEGMENT_VERIFY過程,無重疊報告則繼續(xù)
    ??? ② 調(diào)用SEGMENT_DUMP過程卸下分配給該段的DBA區(qū)域
    ??? ③ 對每個區(qū)域調(diào)用帶有TABLESPACE_EXTENT_MAKE_FREE選項的TABLESPACE_FIX_BITMAPS過程標(biāo)注為空閑
    ??? ④ 調(diào)用SEGMENT_DROP_CORRUPT過程來取消SEG$入口
    ??? ⑤ 調(diào)用TABLESPACE_REBUILD_QUOTAS過程來修改限額
    ?
    3、在報告重疊處修改位圖
    ?
    ??? TABLESPACE_VERIFY過程報告一些重疊現(xiàn)象,一些實際數(shù)據(jù)因原先內(nèi)部錯誤必須被犧牲。
    ??? 選擇將表t1犧牲,則執(zhí)行一下步驟:
    ??? ① 生成一個t1重疊的所有對象的列表
    ??? ② 取消表t1.如果必要,通過調(diào)用SEGMENT_DROP_CORRUPT過程繼續(xù)進(jìn)行
    ??? ③ 對t1重疊的所有對象調(diào)用SEGMENT_VERIFY過程,若必要,調(diào)用TABLESPACE_FIX_BITMAPS將合適的位圖標(biāo)注為已用
    ??? ④ 返回到TABLESPACE_VERIFY過程來驗證該位圖是否一致
    ?
    4、糾正位圖塊的介質(zhì)損壞
    ?
    ??? ① 對所有位圖塊或單個快,若只有一個塊則調(diào)用TABLESPACE_REBUILD_BITMAPS
    ??? ② 調(diào)用TABLESPACE_REBUILD_QUOTAS過程來重建限額
    ??? ③ 調(diào)用TABLESPACE_VERIFY過程來驗證該位圖是否一致
    ?
    5、從字典管理移植為本地管理的表空間
    ?
    ??? EXEC DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL;
    ?
    ?
    ?
    三、表空間信息的數(shù)據(jù)字典
    ?
    ??? V$TABLESPACE:來自控制文件的所有TableSpace的名稱和編號
    ??? DBA_TABLESPACES:所有TableSpace的說明(用戶可訪問)
    ??? DBA_EXTENTS:所有TableSpace中段的信息(用戶可訪問)
    ??? DBA_FREE_SPACE:所有TableSpace中的數(shù)據(jù)盤區(qū)信息(用戶可訪問)
    ??? V$DATAFILE:所有數(shù)據(jù)文件信息,包括所屬TableSpace的ID
    ??? V$TEMPFILE:所有臨時文件信息,包括所屬TableSpace的ID
    ??? DBA_DATA_FILES:屬于TableSpace的文件(數(shù)據(jù)文件)
    ??? DBA_TEMP_FILES:屬于臨時TableSpace的文件(臨時文件)
    ?? V$TEMP_EXTENT_MAP:所有本地管理的臨時TableSpace中所有盤區(qū)信息
    ??? V$TEMP_EXTENT_POOL:本地管理的臨時表空間由每個實例緩存和使用的臨時表空間狀態(tài)
    ??? V$TEMP_SPACE_HEADER:臨時文件的已用/空閑空間
    ??? DBA_USERS:所有用戶的默認(rèn)和臨時的TableSpace
    ??? DBA_TS_QUOTAS:列出所有用戶的TableSpace限額
    ??? V$SORT_SEGMENT:給定實例的每個排序段的信息
    ??? V$SORT_USAGE:用戶使用的臨時排序空間信息
    ?
    ?
    posted on 2009-02-03 22:56 decode360 閱讀(374) 評論(0)  編輯  收藏 所屬分類: 08.DBA
    主站蜘蛛池模板: 99热在线精品免费全部my| 国产v亚洲v天堂a无| 日韩免费视频播放| 99精品一区二区免费视频| 一进一出60分钟免费视频| 亚洲啪AV永久无码精品放毛片| 亚洲成A∨人片在线观看不卡 | 亚洲人成在线观看| 国产成人亚洲综合无码| 国产精品深夜福利免费观看 | 亚洲VA成无码人在线观看天堂| 免费在线视频一区| 夜夜嘿视频免费看| 欧美最猛性xxxxx免费| 免费视频成人片在线观看| 成全视频高清免费观看电视剧| fc2成年免费共享视频网站| 特级毛片全部免费播放| 亚洲AV无码专区在线观看成人| 亚洲中文字幕无码一去台湾| 亚洲综合图片小说区热久久| 亚洲AV无码欧洲AV无码网站| 亚洲精品无码久久一线| 亚洲线精品一区二区三区 | 一本岛v免费不卡一二三区| 精品韩国亚洲av无码不卡区| 亚洲爆乳AAA无码专区| 亚洲日韩精品无码专区加勒比| 国产成人精品日本亚洲网址| 亚洲一级大黄大色毛片| 亚洲国产成+人+综合| 亚洲国产美女在线观看| 亚洲国产日产无码精品| 亚洲jjzzjjzz在线观看| 亚洲国产熟亚洲女视频| 亚洲日韩亚洲另类激情文学| 成人亚洲国产精品久久| 免费无遮挡无码视频在线观看| 一级毛片一级毛片免费毛片| 国产精品视频全国免费观看| 日韩av无码免费播放|