Decode360's Blog

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

            BlogJava :: 首頁(yè) :: 新隨筆 :: 聯(lián)系 ::  :: 管理 ::
            302 隨筆 :: 26 文章 :: 82 評(píng)論 :: 0 Trackbacks
          一、TableSpace的存儲(chǔ)參數(shù)
          ?
          1、本地管理TableSpace的存儲(chǔ)參數(shù)
          ?
          ??? 需要注意:本地管理TableSpace不能指定默認(rèn)存儲(chǔ)參數(shù),也不能指定MINIMUM_EXTENT
          ?
          ??? AUTOALLOCATE使用最小盤(pán)區(qū)為64K的系統(tǒng)管理。
          ??? UNIFORM SIZE則為指定SIZE的統(tǒng)一大小盤(pán)區(qū),默認(rèn)值為1M
          ?
          2、字典管理TableSpace的存儲(chǔ)參數(shù)
          ?
          ??? INITIAL????? 定義該段中第一個(gè)盤(pán)區(qū)以字節(jié)計(jì)(KorM)的大小
          ??? NEXT???????? 定義第二個(gè)盤(pán)區(qū)以字節(jié)計(jì)的大小(KorM)
          ??? PCTINCREASE? 指定第二個(gè)(NEXT)盤(pán)區(qū)以后的每個(gè)盤(pán)區(qū)增長(zhǎng)百分比
          ??? MINEXTENTS?? 指定在表空間中第一次創(chuàng)建一個(gè)段時(shí)所分配的盤(pán)區(qū)數(shù)
          ??? MAXEXTENTS?? 確定一個(gè)段可以擁有的最大盤(pán)區(qū)數(shù)(可以是UNLIMITED)
          ?
          ??? 修改語(yǔ)句如下:
          ??? ALTER TABLESPACE users
          ??? DEFAULT STORAGE (
          ??? NEXT 100K
          ??? MAXEXTENTS 20
          ??? PCTINCREASE 0);
          ?
          ??? 注1:不能在一條ALTER語(yǔ)句中同時(shí)指定INITIAL、MINEXTENTS的值
          ??? 注2:表空間默認(rèn)存儲(chǔ)參數(shù)修改之后只影響未來(lái)數(shù)據(jù),對(duì)已有不做變更
          ?
          3、合并字典管理TableSpace的空閑空間
          ?
          ??? 當(dāng)Oracle的TableSpace中的段被取消時(shí),會(huì)重新將盤(pán)區(qū)標(biāo)記為空閑,但是任何相鄰的空閑盤(pán)區(qū)并不能重組為更大的空閑盤(pán)區(qū),這樣就形成了碎片,從而使得分配更大的空閑盤(pán)區(qū)更加困難。
          ?
          ??? 有一下幾種方法進(jìn)行合并:
          ?
          ??? 1. 當(dāng)為一個(gè)段分配新盤(pán)區(qū)時(shí)Oracle無(wú)法找到足夠大的空閑盤(pán)區(qū)時(shí),會(huì)自動(dòng)合并相鄰空閑盤(pán)區(qū)并再次查找;
          ??? 2. 表空間的PCTINCREASE值不為0時(shí),SMON后臺(tái)進(jìn)程定期合并相鄰空閑盤(pán)區(qū);
          ??? 3. 一個(gè)PCTINCREASE值不為0的段被取消或截?cái)鄷r(shí),會(huì)執(zhí)行限制形式的合并,即使包含該段的TableSpace的PCTINCREASE=0
          ??? 4. 使用ALTER TABLESPACE ... COALESCE語(yǔ)句手動(dòng)合并相鄰空閑盤(pán)區(qū)
          ?
          ??? 注:本地管理的TableSpace會(huì)由位圖自動(dòng)跟蹤相鄰空閑空間,因而不必考慮合并。
          ?
          4、監(jiān)控空閑空間
          ?
          ??? SQL> select block_id,bytes,blocks
          ??? 2? from dba_free_space
          ??? 3? where tablespace_name = 'WXQ_TBS'
          ??? 4? order by block_id;
          ?
          ????? BLOCK_ID????? BYTES???? BLOCKS
          ??? ---------- ---------- ----------
          ???????????? 9????? 65536????????? 8
          ??????????? 17????? 65536????????? 8
          ??????????? 25????? 65536????????? 8
          ??????????? 33????? 65536????????? 8
          ??? ....
          ?
          ??? 上面的查詢說(shuō)明最先幾個(gè)就是未合并的空閑空間
          ??? 在執(zhí)行 ALTER TABLESPACE wxq_tbs COALESCE; 后,再執(zhí)行以上查詢則
          ?
          ????? BLOCK_ID????? BYTES???? BLOCKS
          ??? ---------- ---------- ----------
          ???????????? 9????? 65536?????????32
          ??? ....
          ?
          ?
          ?
          二、修改表空間可用性
          ?
          1、表空間脫機(jī)
          ?
          ??? 使表空間脫機(jī)主要是用于以下幾種情況:
          ??? * 使數(shù)據(jù)庫(kù)一部分不可用,而同時(shí)允許正常訪問(wèn)數(shù)據(jù)庫(kù)的剩余部分
          ??? * 執(zhí)行一次脫機(jī)表空間的備份
          ??? * 更新、維護(hù)一個(gè)應(yīng)用時(shí),使得該應(yīng)用和它的表組不可用
          ?
          ??? ALTER 語(yǔ)句中的可選項(xiàng):
          ?
          ??? NORMAL(default):正常脫機(jī),若有寫(xiě)錯(cuò)誤的結(jié)果時(shí),該表空間中沒(méi)有數(shù)據(jù)文件可以被當(dāng)前脫機(jī)。Oracle會(huì)設(shè)置檢查點(diǎn);
          ??? TEMPORARY:暫時(shí)脫機(jī),即使表空間中有文件錯(cuò)誤狀態(tài)也依然脫機(jī),同時(shí)設(shè)置檢查點(diǎn)。聯(lián)機(jī)時(shí)無(wú)需介質(zhì)恢復(fù);
          ??? IMMEDIATE:立即脫機(jī),不設(shè)置檢查點(diǎn)。重新聯(lián)機(jī)時(shí)需要介質(zhì)恢復(fù)。NOARCHIVELOG模式中不可使用
          ??? FOR RECOVER:使在恢復(fù)中的數(shù)據(jù)庫(kù)表空間為表空間point-in-time恢復(fù)設(shè)置為脫機(jī)
          ?
          ??? 注:最好使用NORMAL脫機(jī),這樣重新聯(lián)機(jī)時(shí)無(wú)需恢復(fù),即使RESETLOGS也無(wú)需恢復(fù)。無(wú)法正常脫機(jī)才使用TEMPORARY選項(xiàng)。
          ?
          ??? 在使表空間脫機(jī)前需要確認(rèn)以下幾點(diǎn):
          ?
          ??? * 表空間沒(méi)有活動(dòng)的回滾段,否則無(wú)法脫機(jī)
          ??? * 脫機(jī)前修改表空間的分配,因?yàn)槊摍C(jī)后無(wú)法訪問(wèn)其中的對(duì)象或排序區(qū)域
          ?
          ??? 舉例:
          ??? ALTER TABLESPACE users OFFLINE NORMAL;
          ?
          2、表空間聯(lián)機(jī)
          ?
          ??? ALTER TABLESPACE users ONLINE;
          ?
          ??? 可以單獨(dú)改變TableSpace中的文件的聯(lián)機(jī)/脫機(jī)狀態(tài):
          ?
          ??? ALTER TABLESPACE?... DATAFILE?{ONLINE|OFFLINE};
          ??? ALTER TABLESPACE?... TEMPFILE?{ONLINE|OFFLINE}; --不用列出具體文件地址
          ?
          ??? 當(dāng)使用該命令時(shí),表空間本身的聯(lián)機(jī)狀態(tài)并沒(méi)有改變,只是改變了數(shù)據(jù)文件的狀態(tài)。
          ?
          ??? 也可以使用以下語(yǔ)句來(lái)改變數(shù)據(jù)文件的聯(lián)機(jī)狀態(tài),但是要輸入文件名:
          ?
          ??? ALTER DATABASE DATAFILE?... {ONLINE|OFFLINE};
          ??? ALTER DATABASE TEMPFILE?... {ONLINE|OFFLINE};
          ?
          ?
          ?
          三、使用只讀表空間
          ?
          ??? 只讀表空間的作用:
          ?
          ??? * 消除執(zhí)行數(shù)據(jù)庫(kù)大量的靜態(tài)部分的備份和恢復(fù)需要
          ??? * 提供一種完全保護(hù)歷史數(shù)據(jù)的方法
          ??? * 防止任何用戶對(duì)該空間的所有表進(jìn)行更新
          ?
          ??? 注:可以從只讀表空間中取消項(xiàng),但是不能創(chuàng)建可修改。
          ?
          1、使表空間只讀
          ?
          ??? ALTER TABLESPACE ... READ ONLY;
          ?
          ??? 在執(zhí)行該操作前需要滿足以下條件:
          ?
          ??? * 該表空間必須是聯(lián)機(jī)的
          ??? * 該表空間必須沒(méi)有包含任何活動(dòng)的回滾段
          ??? * 不可以對(duì)SYSTEM表空間進(jìn)行該操作
          ??? * 該表空間當(dāng)前必須沒(méi)有涉及聯(lián)機(jī)備份
          ?
          ??? 注:該操作不必等待事務(wù)完成,操作后當(dāng)前事務(wù)仍可以提交或回滾,所有事務(wù)完成后成為只讀。
          ?
          2、查找阻止只讀操作的事務(wù)
          ?
          ??? 若發(fā)現(xiàn)表空間停頓很長(zhǎng)的時(shí)間,需要識(shí)別阻止只讀操作的事務(wù)
          ?
          ??? SELECT SQL_TEXT, SADDR
          ????? FROM V$SQLAREA, V$SESSION
          ?????WHERE V$SQLAREA.ADDRESS = V$SESSION.SQL_ADDRESS
          ?????? AND SQL_TEXT LIKE 'alter tablespace%'; --查找該SQL的會(huì)話地址(SADDR)
          ?
          ?
          ??? SELECT SES_ADDR, START_SCNB?
          ????? FROM V$TRABSACTION?
          ?????ORDER BY START_SCNB; --找到查找到的SADDR之前SCN的事務(wù),即為阻止事務(wù)
          ?
          ??? 在完成READ ONLY操作后,立即對(duì)其備份。以后就不必再備份了。
          ?
          3、使只讀表空間可寫(xiě)
          ?
          ??? ALTER TABLESPACE ... READ WRITE;
          ?
          ??? 需要滿足的條件是表空間以及該表空間的所有數(shù)據(jù)文件都必須是聯(lián)機(jī)的。
          ??? 具體可以在DBA_TABLESPACESDBA_DATA_FILES中查詢其狀態(tài)
          ?
          4、在WORM設(shè)備上創(chuàng)建只讀表空間
          ?
          ??? ① 在其他設(shè)備上創(chuàng)建一個(gè)可寫(xiě)的表空間,并創(chuàng)建對(duì)象、插入數(shù)據(jù)
          ??? ② 修改該表空間以使它只讀
          ??? ③ 將該表空間的數(shù)據(jù)文件復(fù)制到WROM設(shè)備上
          ??? ④ 使該表空間脫機(jī)
          ??? ⑤ 用ALTER TABLESPACE ... RENAME DATAFILE重命名數(shù)據(jù)文件,使其與WORM上的數(shù)據(jù)文件名稱一致
          ??? ⑥ 修改控制文件
          ??? ⑦ 使該表空間重新聯(lián)機(jī)
          ?
          5、延遲只讀表空間中數(shù)據(jù)文件的打開(kāi)
          ?
          ??? 設(shè)置初始化參數(shù) READ_ONLY_OPEN_DELAYED = TRUE
          ??? 該設(shè)置會(huì)在需要讀取存儲(chǔ)在表空間中的數(shù)據(jù)時(shí),使表空間的數(shù)據(jù)文件只在第一次被訪問(wèn)。
          ?
          ??? 這個(gè)操作會(huì)帶來(lái)的副作用:
          ?
          ??? * 打開(kāi)時(shí)檢測(cè)不到缺少的或損壞的只讀文件(訪問(wèn)時(shí)才被發(fā)現(xiàn))
          ??? * ALTER DATABASE CHECK DATAFILES不檢查只讀文件
          ??? * ALTER TABLESPACE ONLINE不檢查只讀文件,只在第一次訪問(wèn)上被檢查
          ??? * V$RECOVER_FILE、V$BACKUP、V$DATAFILE_HEADER不訪問(wèn)只讀文件
          ??? * V$DATAFILE不訪問(wèn)只讀文件,只讀文件以“0”大小列出
          ??? * V$RECOVER_LOG不訪問(wèn)只讀文件,需要的用于恢復(fù)的日志沒(méi)有被添加到列表中
          ??? * ALTER DATABASE NOARCHIVELOG不訪問(wèn)只讀文件,即使有需要恢復(fù)的只讀文件也繼續(xù)進(jìn)行
          ?
          ??? 注:RECOVER DATABASE和ALTER DATABASE OPEN RESETLOGS會(huì)訪問(wèn)只讀文件而不管參數(shù)。
          ?
          ?
          ?
          四、取消表空間
          ?
          ??? 除SYSTEM外的表空間均可被取消
          ?
          ??? 表空間取消后無(wú)法恢復(fù),所以最好在撤銷表空間前后都進(jìn)行一次完全備份。
          ?
          ?
          ??? DROP TABLESPACE users INCLUDING CONTENTS; --包括表空間中的段
          ?
          ??? DROP TABLESPACE users INCLUDING CONTENTS AND DATAFILES; --包括數(shù)據(jù)文件
          ?
          ?




          -The End-

          posted on 2009-02-02 21:29 decode360-3 閱讀(552) 評(píng)論(0)  編輯  收藏 所屬分類: DBA
          主站蜘蛛池模板: 德阳市| 崇阳县| 嘉善县| 长垣县| 巴中市| 南平市| 奉新县| 永嘉县| 县级市| 江西省| 醴陵市| 山丹县| 遂川县| 丽江市| 新建县| 淄博市| 康马县| 芒康县| 东阳市| 芜湖市| 扎囊县| 富源县| 桃源县| 胶州市| 呼玛县| 镶黄旗| 竹山县| 宁远县| 阳原县| 延安市| 钟祥市| 密山市| 海原县| 双流县| 临海市| 浦县| 宣城市| 虎林市| 石狮市| 喀什市| 富裕县|