Decode360's Blog

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
          一、表空間的傳輸
          ?
          ??? 表空間的用途有以下幾方面:
          ?
          ??? * 將數(shù)據(jù)從OLTP系統(tǒng)移動(dòng)到數(shù)據(jù)倉(cāng)庫(kù)分級(jí)系統(tǒng)
          ??? * 從分級(jí)系統(tǒng)更新數(shù)據(jù)倉(cāng)庫(kù)和數(shù)據(jù)中心
          ??? * 從中心數(shù)據(jù)倉(cāng)庫(kù)裝載數(shù)據(jù)中心
          ??? * 啟用存檔OLTP和數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)
          ??? * 對(duì)內(nèi)部和外部使用者發(fā)布數(shù)據(jù)
          ??? * 執(zhí)行表空間Point-in-Time恢復(fù)
          ?
          ??? 傳輸表空間比進(jìn)行數(shù)據(jù)導(dǎo)出/導(dǎo)入要快很多,而且可以進(jìn)行索引數(shù)據(jù)異動(dòng),避免了導(dǎo)入數(shù)據(jù)后必須執(zhí)行的索引重建
          ?
          1、約束條件
          ?
          ??? ① 必須在同一數(shù)據(jù)平臺(tái)之間傳輸
          ??? ② 源/目標(biāo)數(shù)據(jù)庫(kù)必須使用相同字符集和本國(guó)字符集
          ??? ③ 不可重名
          ??? ④ 不支持以下內(nèi)容
          ??????? * 物化視圖/復(fù)制
          ??????? * 基于函數(shù)的索引
          ??????? * 規(guī)定范圍的REF
          ??????? * 帶有多個(gè)接受者的高級(jí)查詢(xún)
          ?
          2、具體的操作過(guò)程
          ?
          ??① 選擇一個(gè)自含式表空間集合
          ?
          ??? “自含式”表示沒(méi)有從表空間集合內(nèi)指向表空間外的引用,具體的違反例子有:
          ?
          ??? 1) 一個(gè)該表空間集合內(nèi)部的索引用于一個(gè)該表空間集合外的表。(本集表的索引為集外不違例)
          ??? 2) 分區(qū)表部分包含在該表空間集合外,或包含集外分區(qū)表的某分區(qū)
          ??? 3) 指向一個(gè)表的指示完整性約束條件越過(guò)設(shè)置的界限(當(dāng)選擇傳輸時(shí)包含指示完整性的約束條件)
          ??? 4) 表空間集內(nèi)的表包含集外的LOB列
          ?
          ??? 可以使用DBMS_TTS包中的TRANSPORT_SET_CHECK過(guò)程
          ?
          ??? 注:DBMS_TTS包僅供SYS用戶(hù)使用,即使有DBA權(quán)限的用戶(hù)也無(wú)法使用
          ?
          ??? 具體操作是:EXECUTE dbms_tts.transport_set_check('INDX',TRUE); ?
          ?????????????????? --true表示需要考慮約束條件,空間名稱(chēng)忽略大小寫(xiě)
          ?
          ??? 執(zhí)行完成后查詢(xún):SELECT * FROM transport_set_violations;
          ???????????????????? --會(huì)列出所有的違例條目,但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
          ?
          ?????? 說(shuō)明:
          ??????????? * 只輸出表空間的數(shù)據(jù)字典結(jié)構(gòu)信息,無(wú)實(shí)際數(shù)據(jù)
          ??????????? * 觸發(fā)器內(nèi)輸出(y輸出 n不輸出)
          ??????????? * 指示完整性的約束條件不被輸出
          ??????????? * 授權(quán)不被輸出
          ??????????? * 要?jiǎng)?chuàng)建的結(jié)構(gòu)信息輸出文件名expdat.dmp
          ?
          ? ③ 傳輸該表空間集合
          ?
          ????將表空間數(shù)據(jù)文件和輸出文件傳輸?shù)揭粋€(gè)目標(biāo)數(shù)據(jù)庫(kù)可訪(fǎng)問(wèn)位置即可。
          ?
          ??④ 插入該表空間集合
          ?
          ????若塊大小不同,則需要在目標(biāo)數(shù)據(jù)庫(kù)加入?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)
          ???????
          ????說(shuō)明:
          ?????????* TRANSPORT_TABLESPACE=y 通知Export工具正在傳輸一個(gè)表空間
          ?????????* FILE=exdat.dmp 指名包含元數(shù)據(jù)的輸出文件是exdat.dmp
          ?????????* TTS_OWNERS列出在該表空間集合中擁有數(shù)據(jù)的所有用戶(hù)(與輸出一致)
          ?????????* FROMUSER、TOUSER改變數(shù)據(jù)庫(kù)對(duì)象的所有權(quán)
          ?????????* 可以將語(yǔ)句寫(xiě)入文本,再調(diào)用。 IMP PARFILE='par.f'
          ?
          3、傳輸后不能正常工作的對(duì)象
          ?
          ??? ① ROWID
          ??????? ROWID不再唯一,僅在單獨(dú)表中是唯一的。
          ?
          ??? ② REF
          ????????REF在監(jiān)測(cè)自含式時(shí)不監(jiān)測(cè),當(dāng)非自含時(shí)插入虛懸REF,查詢(xún)時(shí)出錯(cuò)
          ?
          ??? ③ 權(quán)限
          ????????權(quán)限賦予可能會(huì)失敗,例如用戶(hù)不存在等
          ?
          ??? ④ 分區(qū)表
          ??????? 若交換分區(qū)后進(jìn)行傳輸,要交換回分區(qū)時(shí)可能會(huì)出錯(cuò)
          ?
          ??? ⑤ 索引
          ??????? 基于函數(shù)的索引不可被傳輸,必須在傳輸前取消
          ?
          ??? ⑥ 觸發(fā)器
          ??????? 觸發(fā)器在傳輸前也不用檢查,所以可能會(huì)發(fā)生編譯錯(cuò)誤
          ?
          ??? ⑦ 物化視圖/復(fù)制
          ???????
          ?
          ?
          二、使用DBMS_SPACE_ADMIN解決表空間問(wèn)題
          ?
          ??? DBMS_SPACE_ADMIN包為本地管理的表空間提供帶有故障診斷和修復(fù)功能的管理程序。
          ?
          ??? SEGMENT_VERIFY:驗(yàn)證該段盤(pán)區(qū)映射的一致性
          ??? SEGMENT_CORRUPT:標(biāo)注該段為損壞或有效,以便執(zhí)行恰當(dāng)?shù)腻e(cuò)誤恢復(fù)
          ??? SEGMENT_DROP_CORRUPT:取消一個(gè)當(dāng)前標(biāo)注為損壞的段(不回收空間)
          ??? SEGMENT_DUMP:卸下一個(gè)給定段的段頭部和盤(pán)區(qū)映射
          ??? TABLESPACE_VERIFY:驗(yàn)證該表空間中段的位圖和盤(pán)區(qū)映射是否同步
          ??? TABLESPACE_REBUILD_BITMAPS:重建適當(dāng)?shù)奈粓D
          ??? TABLESPACE_FIX_BITMAPS:位圖中標(biāo)注適當(dāng)?shù)臄?shù)據(jù)塊地址范圍(盤(pán)區(qū))為空閑或已用
          ??? TABLESPACE_REBUILD_QUOTAS:為給定的表空間重建權(quán)限
          ??? TABLESPACE_MIGRATE_FROM_LOCAL:將一個(gè)本地管理表空間移植為字典管理的表空間
          ??? TABLESPACE_MOGRATE_TO_LOCAL:將一個(gè)表空間從字典管理的格式移植為本地管理格式
          ??? TABLESPACE_RELOCATE_BITMAPS:將位圖重定位到指定的目的地
          ??? TABLESPACE_FIX_SEGMENT_STATES:修改移植被放棄的表空間中數(shù)據(jù)段的狀態(tài)
          ???
          1、分配的塊標(biāo)注為空閑(沒(méi)有重疊)時(shí)修改位圖
          ?
          ??? SEGMENT_VERIFY過(guò)程發(fā)現(xiàn)一個(gè)段擁有位圖中標(biāo)注為空閑的已分配塊,但沒(méi)有段之間重疊的報(bào)告
          ??? ① 調(diào)用SEGMENT_DUMP過(guò)程卸下管理沖虛分配給該段的區(qū)域
          ??? ② 對(duì)每個(gè)區(qū)域調(diào)用帶有TABLESPACE_EXTENT_MAKE_USED選項(xiàng)的TABLESPACE_FIX_BITMAPS過(guò)程標(biāo)注為已用
          ??? ③ 調(diào)用TABLESPACE_REBUILD_QUOTAS過(guò)程來(lái)確定限額
          ?
          2、取消一個(gè)損壞的段
          ?
          ??? ① 調(diào)用帶有SEGMENT_VERIFY_EXTENTS_GLOBAL選項(xiàng)的SEGMENT_VERIFY過(guò)程,無(wú)重疊報(bào)告則繼續(xù)
          ??? ② 調(diào)用SEGMENT_DUMP過(guò)程卸下分配給該段的DBA區(qū)域
          ??? ③ 對(duì)每個(gè)區(qū)域調(diào)用帶有TABLESPACE_EXTENT_MAKE_FREE選項(xiàng)的TABLESPACE_FIX_BITMAPS過(guò)程標(biāo)注為空閑
          ??? ④ 調(diào)用SEGMENT_DROP_CORRUPT過(guò)程來(lái)取消SEG$入口
          ??? ⑤ 調(diào)用TABLESPACE_REBUILD_QUOTAS過(guò)程來(lái)修改限額
          ?
          3、在報(bào)告重疊處修改位圖
          ?
          ??? TABLESPACE_VERIFY過(guò)程報(bào)告一些重疊現(xiàn)象,一些實(shí)際數(shù)據(jù)因原先內(nèi)部錯(cuò)誤必須被犧牲。
          ??? 選擇將表t1犧牲,則執(zhí)行一下步驟:
          ??? ① 生成一個(gè)t1重疊的所有對(duì)象的列表
          ??? ② 取消表t1.如果必要,通過(guò)調(diào)用SEGMENT_DROP_CORRUPT過(guò)程繼續(xù)進(jìn)行
          ??? ③ 對(duì)t1重疊的所有對(duì)象調(diào)用SEGMENT_VERIFY過(guò)程,若必要,調(diào)用TABLESPACE_FIX_BITMAPS將合適的位圖標(biāo)注為已用
          ??? ④ 返回到TABLESPACE_VERIFY過(guò)程來(lái)驗(yàn)證該位圖是否一致
          ?
          4、糾正位圖塊的介質(zhì)損壞
          ?
          ??? ① 對(duì)所有位圖塊或單個(gè)快,若只有一個(gè)塊則調(diào)用TABLESPACE_REBUILD_BITMAPS
          ??? ② 調(diào)用TABLESPACE_REBUILD_QUOTAS過(guò)程來(lái)重建限額
          ??? ③ 調(diào)用TABLESPACE_VERIFY過(guò)程來(lái)驗(yàn)證該位圖是否一致
          ?
          5、從字典管理移植為本地管理的表空間
          ?
          ??? EXEC DBMS_SPACE_ADMIN.TABLESPACE_MIGRATE_TO_LOCAL;
          ?
          ?
          ?
          三、表空間信息的數(shù)據(jù)字典
          ?
          ??? V$TABLESPACE:來(lái)自控制文件的所有TableSpace的名稱(chēng)和編號(hào)
          ??? DBA_TABLESPACES:所有TableSpace的說(shuō)明(用戶(hù)可訪(fǎng)問(wèn))
          ??? DBA_EXTENTS:所有TableSpace中段的信息(用戶(hù)可訪(fǎng)問(wèn))
          ??? DBA_FREE_SPACE:所有TableSpace中的數(shù)據(jù)盤(pán)區(qū)信息(用戶(hù)可訪(fǎng)問(wèn))
          ??? V$DATAFILE:所有數(shù)據(jù)文件信息,包括所屬TableSpace的ID
          ??? V$TEMPFILE:所有臨時(shí)文件信息,包括所屬TableSpace的ID
          ??? DBA_DATA_FILES:屬于TableSpace的文件(數(shù)據(jù)文件)
          ??? DBA_TEMP_FILES:屬于臨時(shí)TableSpace的文件(臨時(shí)文件)
          ??? V$TEMP_EXTENT_MAP:所有本地管理的臨時(shí)TableSpace中所有盤(pán)區(qū)信息
          ??? V$TEMP_EXTENT_POOL:本地管理的臨時(shí)表空間由每個(gè)實(shí)例緩存和使用的臨時(shí)表空間狀態(tài)
          ??? V$TEMP_SPACE_HEADER:臨時(shí)文件的已用/空閑空間
          ??? DBA_USERS:所有用戶(hù)的默認(rèn)和臨時(shí)的TableSpace
          ??? DBA_TS_QUOTAS:列出所有用戶(hù)的TableSpace限額
          ??? V$SORT_SEGMENT:給定實(shí)例的每個(gè)排序段的信息
          ??? V$SORT_USAGE:用戶(hù)使用的臨時(shí)排序空間信息
          ?
          ?




          -The End-

          posted on 2009-02-03 22:56 decode360-3 閱讀(609) 評(píng)論(0)  編輯  收藏 所屬分類(lèi): DBA
          主站蜘蛛池模板: 孝昌县| 开鲁县| 伊吾县| 安多县| 比如县| 四会市| 滦平县| 抚州市| 疏附县| 湖州市| 永安市| 大竹县| 南涧| 安远县| 常德市| 岐山县| 碌曲县| 无为县| 永定县| 建平县| 北票市| 辽阳市| 镇沅| 蕉岭县| 岳阳市| 万安县| 历史| 哈密市| 犍为县| 清丰县| 黑山县| 台湾省| 揭阳市| 维西| 桂东县| 宜君县| 建昌县| 濮阳县| 平武县| 德江县| 惠安县|