<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 評(píng)論 :: 0 Trackbacks
    [Oracle10G新特性]_03.表空間管理
    ?
    ??? 10g中tablespace的兩個(gè)新增特性真是太有用了。數(shù)據(jù)庫(kù)的默認(rèn)表空間可以防止創(chuàng)建錯(cuò)誤位置的table,以避免在不注意的情況下將SYSTEM撐大。而rename更加實(shí)用,在實(shí)際的操作和管理中,會(huì)有很多地方需要修改tablespace的名稱,而最關(guān)鍵的就是這個(gè)特性使用非常得簡(jiǎn)單,不需要將tablespace offline就可以直接修改,而且馬上生效,比修改datafile要方便很多。
    ?
    ??? 最近就遇到了一個(gè)情況,就是使用exp和imp來導(dǎo)入數(shù)據(jù)的時(shí)候,兩邊的tablespace名稱不同。在以前需要首先在新庫(kù)中創(chuàng)建table,然后在imp的時(shí)候使用ignore=y來導(dǎo)入,而且在object很多時(shí),會(huì)是一件相當(dāng)痛苦的事情。如果要?jiǎng)?chuàng)建同名的tablespace,又需要兩個(gè)表空間傳導(dǎo),其中還可能會(huì)不支持一些類型。而在10g中只需要使用兩次rename命令就能夠全部搞定,即便tablespace已經(jīng)存在,也可以修改掉名字,然后創(chuàng)建新的tablespace,再導(dǎo)入,修改回兩個(gè)tablespace各自的名字就OK了,非常方便。
    ?
    ??? 所以,關(guān)于一些相關(guān)的邊界特性,還是需要在這篇文章中好好得學(xué)習(xí)學(xué)習(xí)的。非常不錯(cuò)!
    ?
    ------------------------------------------------------------------------------
    ?
    名字中包含了什么?:改善的表空間管理
    ?
    表空間管理得到了重大的改進(jìn),這可以歸因于一個(gè) sparser SYSTEM、為用戶定義一個(gè)默認(rèn)表空間的支持、新的 SYSAUX、甚至重命名
    ?
    ??? 您曾經(jīng)多少次因用戶在 SYSTEM 表空間中創(chuàng)建了非 SYS 和 SYSTEM 的段而傷透腦筋?
    ?
    ??? 在 Oracle9i Database 之前,如果在創(chuàng)建用戶時(shí)沒有指定默認(rèn)表空間,那么它將默認(rèn)為 SYSTEM 表空間。如果用戶在創(chuàng)建一個(gè)段時(shí)沒有顯式地指定一個(gè)表空間,那么這個(gè)段將在 SYSTEM 中創(chuàng)建——前提是用戶在 SYSTEM 表空間中擁有配額(要么顯式地授予,要么通過系統(tǒng)權(quán)限 UNLIMITED TABLESPACE 來授予)。Oracle9i 允許 DBA 為所有未用顯式的臨時(shí)表空間子句創(chuàng)建的用戶指定一個(gè)默認(rèn)的臨時(shí)表空間,從而減少了這個(gè)問題。
    ?
    ??? 在 Oracle Database 10g 中,您可以類似地為用戶指定一個(gè)默認(rèn)表空間。在數(shù)據(jù)庫(kù)創(chuàng)建期間,CREATE DATABASE 命令可以包含子句 DEFAULT TABLESPACE 。在創(chuàng)建之后,您可以通過發(fā)出以下命令來使一個(gè)表空間變成默認(rèn)表空間

    ALTER DATABASE DEFAULT TABLESPACE <tsname>;

    ??? 未用 DEFAULT TABLESPACE 子句創(chuàng)建的所有用戶將以<tsname>作為它們的默認(rèn)表空間。您可以在任何時(shí)候通過這個(gè) ALTER 命令來改變默認(rèn)表空間,從而允許您在不同的節(jié)點(diǎn)上將不同的表空間指定為默認(rèn)表空間。
    ?
    ??? 重要注意事項(xiàng)擁有舊的表空間的所有用戶的默認(rèn)表空間都被修改為 ,即使有些表空間是為某些用戶顯式指定的。例如,假定用戶 USER1 和 USER2 的表空間分別是 TS1 和 TS2 —— 它們是在用戶創(chuàng)建期間顯式指定的。數(shù)據(jù)庫(kù)當(dāng)前的默認(rèn)表空間是 TS2,但之后,數(shù)據(jù)庫(kù)的默認(rèn)表空間變?yōu)?TS1。即使 USER2 的默認(rèn)表空間是顯式指定為 TS2 的,它也將變?yōu)?TS1。小心這種邊界效應(yīng)!
    ?
    ??? 如果在數(shù)據(jù)庫(kù)創(chuàng)建期間沒有指定默認(rèn)表空間,它將默認(rèn)為 SYSTEM。但您如何才能知道現(xiàn)有的數(shù)據(jù)庫(kù)的默認(rèn)表空間是哪一個(gè)?發(fā)出以下查詢:

    SELECT PROPERTY_VALUE
    FROM DATABASE_PROPERTIES
    WHERE PROPERTY_NAME = 'DEFAULT_PERMANENT_TABLESPACE';

    ??? DATABASE_PROPERTIES 視圖顯示默認(rèn)表空間之外,還顯示一些非常重要的信息 —— 例如默認(rèn)臨時(shí)表空間、全局?jǐn)?shù)據(jù)庫(kù)名、時(shí)區(qū)等。
    ?
    ?
    非必要模式的默認(rèn)表空間
    ?
    ??? 幾種模式(如智能代理用戶 DBSNMP、數(shù)據(jù)挖掘用戶 ODM) 與用戶操作不直接相關(guān),但對(duì)數(shù)據(jù)庫(kù)完整性仍很重要。這些模式中的一些曾經(jīng)用 SYSTEM 作為它們的默認(rèn)表空間 —— 這是在 SYSTEM 表空間內(nèi)對(duì)象增殖的又一個(gè)原因。
    ?
    ??? Oracle Database 10g 引進(jìn)了一個(gè)新的稱為 SYSAUX 的表空間,它用來保存這些模式的對(duì)象。這個(gè)表空間是在數(shù)據(jù)庫(kù)創(chuàng)建期間自動(dòng)創(chuàng)建的,并在本地進(jìn)行管理。唯一允許修改的是數(shù)據(jù)文件的名稱。
    ?
    ??? 這種方法在 SYSTEM 損壞需要完整的數(shù)據(jù)庫(kù)恢復(fù)時(shí),為恢復(fù)提供支持。SYSAUX 中的對(duì)象可以被恢復(fù)為任意正常的用戶對(duì)象,同時(shí)數(shù)據(jù)庫(kù)本身保持運(yùn)行。
    ?
    ??? 但如果您想將 SYSAUX 中的這些模式中的一些轉(zhuǎn)移到一個(gè)不同的表空間中時(shí),該怎么辦?例如,考慮 LogMiner 使用的對(duì)象,這些對(duì)象的大小經(jīng)常增長(zhǎng),直到最終填滿表空間。出于可管理性的原因,您可能考慮將它們轉(zhuǎn)移到它們自己的表空間中。但實(shí)現(xiàn)這一目的的最好的方法是什么?
    ?
    ??? 作為一個(gè)數(shù)據(jù)庫(kù)管理員,了解轉(zhuǎn)移這些特殊對(duì)象的正確過程對(duì)您而言是很重要的。幸運(yùn)的是,Oracle Database 10g 提供了一個(gè)新的視圖使要憑猜測(cè)來做的工作形象化。這個(gè)視圖,V$SYSAUX_OCCUPANTS,列出了表空間 SYSAUX 中的模式的名稱、它們的說明、當(dāng)前使用的空間,以及如何轉(zhuǎn)移它們。(參見表1)
    ?
    Table 1. Contents V$SYSAUX_OCCUPANTS.
    OCCUPANT_NAME OCCUPANT_DESC SCHEMA_NAME MOVE_PROCEDURE MOVE_PROCEDURE_DESC SPACE_USAGE_KBYTES
    LOGMNR LogMiner SYSTEM SYS.DBMS_LOGMNR_D.SET_TABLESPACE Move Procedure for LogMiner 7488
    LOGSTDBY Logical Standby SYSTEM SYS.DBMS_LOGSTDBY.SET_TABLESPACE Move Procedure for Logical Standby 0
    STREAMS Oracle Streams SYS   *** MOVE PROCEDURE NOT APPLICABLE *** 192
    AO Analytical Workspace Object Table SYS DBMS_AW.MOVE_AWMETA Move Procedure for Analytical Workspace Object Table 960
    XSOQHIST OLAP API History Tables SYS DBMS_XSOQ.OlapiMoveProc Move Procedure for OLAP API History Tables 960
    SMC Server Manageability Components SYS   *** MOVE PROCEDURE NOT APPLICABLE *** 299456
    STATSPACK Statspack Repository PERFSTAT ?? Use export/import (see export parameter file spuexp.par)? 0
    ODM Oracle Data Mining DMSYS MOVE_ODM Move Procedure for Oracle Data Mining 5504
    SDO Oracle Spatial MDSYS MDSYS.MOVE_SDO Move Procedure for Oracle Spatial 6016
    WM Workspace Manager WMSYS DBMS_WM.move_proc Move Procedure for Workspace Manager 6592
    ORDIM Oracle interMedia ORDSYS Components ORDSYS ?? *** MOVE PROCEDURE NOT APPLICABLE *** 512
    ORDIM/PLUGINS Oracle interMedia ORDPLUGINS Components ORDPLUGINS ?? *** MOVE PROCEDURE NOT APPLICABLE *** 0
    ORDIM/SQLMM Oracle interMedia SI_INFORMTN_SCHEMA Components SI_INFORMTN_SCHEMA ?? *** MOVE PROCEDURE NOT APPLICABLE *** 0
    EM Enterprise Manager Repository SYSMAN emd_maintenance.move_em_tblspc Move Procedure for Enterprise Manager Repository 0
    TEXT Oracle Text CTXSYS DRI_MOVE_CTXSYS Move Procedure for Oracle Text 4864
    ULTRASEARCH Oracle Ultra Search WKSYS MOVE_WK Move Procedure for Oracle Ultra Search 6080
    JOB_SCHEDULER Unified Job Scheduler SYS ?? *** MOVE PROCEDURE NOT APPLICABLE *** 4800
    ?
    ??? 注意 LogMiner 如何被清楚地顯示為占用 7,488 KB 的空間。它歸模式 SYSTEM 所有,而要轉(zhuǎn)移對(duì)象,您需要執(zhí)行打包的過程 SYS.DBMS_LOGMNR_D.SET_TABLESPACE。不過,對(duì)于 STATSPACK 對(duì)象,這個(gè)視圖推薦使用導(dǎo)入/導(dǎo)出方法;而對(duì)于流,沒有轉(zhuǎn)移過程 — 因而您不能容易地將它們從 SYSAUX 表空間中轉(zhuǎn)移出來。列 MOVE_PROCEDURE 默認(rèn)顯示 SYSAUX 中存在的幾乎所有工具的正確的轉(zhuǎn)移過程。也可以逆向使用轉(zhuǎn)移過程來使對(duì)象回到 SYSAUX 表空間中。
    ?
    ?
    重命名一個(gè)表空間
    ?
    ??? 在數(shù)據(jù)倉(cāng)庫(kù)環(huán)境中(典型地,對(duì)于數(shù)據(jù)中心體系結(jié)構(gòu)),在數(shù)據(jù)庫(kù)之間傳輸表空間是很常見的。但源數(shù)據(jù)庫(kù)和目標(biāo)數(shù)據(jù)庫(kù)必須不存在擁有相同名稱的表空間。如果存在兩個(gè)擁有相同名稱的表空間,則目標(biāo)表空間中的段必須轉(zhuǎn)移到一個(gè)不同的表空間中,然后重新創(chuàng)建這個(gè)表空間— 這個(gè)任務(wù)說起來容易做起來難。
    ?
    ??? Oracle Database 10g 提供了一個(gè)方便的解決方案:您可以用以下命令來簡(jiǎn)單地重命名一個(gè)現(xiàn)有的表空間(SYSTEM 和 SYSAUX 除外) — 無論是永久表空間還是臨時(shí)表空間:

    ALTER TABLESPACE <oldname> RENAME TO <newname>;

    ??? 這個(gè)功能還將應(yīng)用在存檔過程中。假定您有一個(gè)按范圍分區(qū)的表,用于記錄銷售歷史數(shù)據(jù),每個(gè)月的這個(gè)分區(qū)位于按這個(gè)月份命名的一個(gè)表空間中 — 例如,1 月份的分區(qū)命名為 JAN,并位于一個(gè)名稱為 JAN 的表空間中。這樣您就擁有了一個(gè)將信息保留 12 個(gè)月的策略。在 2004 年 1 月,您將能夠存檔 2003 年 1 月的數(shù)據(jù)。大致的操作流程類似于以下操作:

    ??? 1、利用 ALTER TABLE EXCHANGE PARTITION 從分區(qū) JAN 中創(chuàng)建一個(gè)獨(dú)立的表 JAN03。
    ??? 2、將表空間重命名為 JAN03。
    ??? 3、為表空間 JAN03 創(chuàng)建一個(gè)可傳輸表空間集。
    ??? 4、將表空間 JAN03 重新命名為 JAN。
    ??? 5、將空的分區(qū)交換回表中。
    ?
    ??? 第 1、2、4 和 5 步很簡(jiǎn)單,并且不會(huì)過度地消耗資源(如重做和撤消空間)。第 3 步只是拷貝文件并只為 JAN03 輸出數(shù)據(jù)字典信息,這也是個(gè)非常輕松的過程。如果您需要恢復(fù)之前存檔的分區(qū),這個(gè)過程也非常簡(jiǎn)單,您只需要將相同的過程反過來就行了。
    ?
    ??? Oracle Database 10g 在處理這些重命名的方式上相當(dāng)智能化。如果您重命名作為 UNDO 或默認(rèn)臨時(shí)表空間的表空間,這可能產(chǎn)生混淆。但數(shù)據(jù)庫(kù)將自動(dòng)調(diào)整必要的記錄來反映這種變化。例如,將默認(rèn)表空間的名稱從 USERS 修改為 USER_DATA 將自動(dòng)修改視圖 DATABASE_PROPERTIES。在修改之前,查詢:

    select property_value from database_properties
    where property_name = 'DEFAULT_PERMANENT_TABLESPACE';

    ??? 返回 USERS。在運(yùn)行下面的語句之后

    alter tablespace users rename to user_data;

    ??? 上述查詢返回 USER_DATA,因?yàn)樗袑?duì) USERS 的引用都被修改為到 USER_DATA。
    ?
    ??? 修改默認(rèn)臨時(shí)表空間的情況一樣。甚至修改 UNDO 表空間的名稱也將觸發(fā) SPFILE 中的變化,如下所示:

    SQL> select value from v$spparameter where name = 'undo_tablespace';
    ?
    VALUE
    --------
    UNDOTBS1
    ?
    SQL> alter tablespace undotbs1 rename to undotbs;
    ?
    Tablespace altered.
    ?
    SQL> select value from v$spparameter where name = 'undo_tablespace';
    ?
    VALUE
    --------
    UNDOTBS
    ?

    結(jié)論
    ?
    在最近的幾個(gè) Oracle 版本演變的過程中,對(duì)象處理得到了穩(wěn)定的增強(qiáng)。Oracle8i 引進(jìn)了表從一個(gè)表空間到另一個(gè)表空間的轉(zhuǎn)移,Oracle 9i Database R2 引進(jìn)了列重命名,現(xiàn)在 — 在最新的版本中 — 表空間自身的重命名成為可能。這些增強(qiáng)顯著地減輕了數(shù)據(jù)庫(kù)管理員的任務(wù) — 特別是在數(shù)據(jù)倉(cāng)庫(kù)或數(shù)據(jù)中心環(huán)境中。
    ?
    ?
    ?
    ?
    posted on 2009-08-04 21:18 decode360 閱讀(558) 評(píng)論(0)  編輯  收藏 所屬分類: 08.DBA
    主站蜘蛛池模板: 亚洲日本一线产区和二线产区对比| 亚洲国产精品成人精品无码区| 亚洲精品网站在线观看不卡无广告 | 亚洲av综合日韩| 色妞www精品视频免费看| 国产无遮挡色视频免费观看性色| 最近免费mv在线观看动漫| 99蜜桃在线观看免费视频网站| 亚洲性线免费观看视频成熟| 国产成人精品免费视频大全五级| 亚洲免费在线观看| 老司机亚洲精品影院无码| 亚洲天堂2017无码中文| 成人免费视频一区二区| 98精品全国免费观看视频| 无码专区永久免费AV网站| 免费人成年激情视频在线观看| 久久久久久久综合日本亚洲| 亚洲国产精品综合福利专区| 国产精品亚洲一区二区在线观看| 国产免费黄色无码视频| 亚洲毛片免费视频| 男人的天堂亚洲一区二区三区| 国产精品xxxx国产喷水亚洲国产精品无码久久一区 | 91免费福利视频| 最近免费中文字幕大全视频| 亚洲视频在线免费| 亚洲丝袜中文字幕| 特级毛片在线大全免费播放| 一级毛片aaaaaa免费看| 四虎影库久免费视频| 亚洲高清免费在线观看| 在线观看亚洲专区| 99re免费视频| 亚洲免费一区二区| 99久久国产亚洲综合精品| 精品一区二区三区免费| 国产在线观看免费视频播放器 | 国产亚洲精品国看不卡| 亚洲人成免费网站| a毛片久久免费观看|