表空間擴容-ADD_TBS()

一. 開發背景#

文件系統管理的數據卷,最大限制爲2T,每一個卷最多存放 60個數據文件.爲了不同窗們在加數據文件時誤操做違反該規定,同時爲了簡化操做開發了本功能.

本程序爲了通用性,同時兼顧了ASM存儲與老架構的文件系統,使用時注意參數的代入.

本程序同時適用於新建表空間.

二. 流程圖#

三. 參數說明#

1. 函數頭#

function add_tbs(tablespace_name       varchar2,                    add_size_M          number,                    force               varchar2 default 'false',                    max_size_M_per_file number   default 0,                    auto_extend         varchar2 default 'true',                    next_size_M         number   default 100)     return t_one_col_result_tab     pipelined;

2. 參數#

須要 增長或者 新建的表空間名, 大小寫都可.
表空間須要增長的大小, 單位是M.
新舊文件系統規範的開關,注意參數類型是varchar2,大小寫不敏感.
當參數值爲'false'時,嚴格遵照每一個數據卷只能有60個數據文件的約定,若是全部卷的數據文件個數已經達到60個,請向存儲組提交新建卷的申請。該取值爲參數默認值。
當參數值爲'true'時,忽略每一個卷60個文件的限制,只考慮存儲空間。該取值 只能在老架構的數據庫上使用。
指定新增數據文件的最大大小,單位是M.
默認值爲0,不指定文件大小,使用Oracle自身對文件大小限制。數據庫參數block_size爲8k的數據庫,單個數據文件最大爲32G,同理,16k的數據庫,最大爲64G。
當參數值大於0時(小於0的值按0處理),添加數據文件時會以該值限制每一個數據文件的最大大小。當值大於數據庫自己限制,已數據庫限制爲上限。
當參數auto_extend取值爲'false'時,max_size_M_per_file決定了每一個數據文件的初始大小,請務必當心。
數據文件自動擴展開關,參數類型是varchar2,大小寫不敏感. 默認值'true',開啓數據文件的自動擴展,而且每一個數據文件初始大小爲100M。
當參數值爲'false'時,關閉數據文件的自動擴展。 每一個數據文件的初始大小會根據max_size_M_per_file參數的大小肯定。請務必當心使用。
對自動擴展的數據文件有效,指定表空間每次擴展的大小,單位是M,默認值爲100M .

四 舉例 #

一、不帶force參數,超過60個文件是不能添加數據文件的。#

SQL> select * from table(dbmgr.autodb.add_tbs('lifedata',10)); OUTPUT ------------------------------------------------------------------------------------------------------------------------------------ 文件系統數據庫 `     *************************************************     *   請使用「col output for a132」獲取最佳顯示效果    *     *   請使用   「set pages 200」   獲取最佳顯示效果    *     ************************************************* ==================================================================================================================================== ` ` 卷信息: (**卷數據文件數不計算redo log以及temp文件**) ------------------------------------------------------------------------------------------------------------------------ |卷名                                              |卷數據文件數 |   卷大小(G)  |   已使用(G)  |  剩餘(G)  |使用率% |剩餘率% | ------------------------------------------------------------------------------------------------------------------------ |/paic/bj/lbs/data                                |        152 |        2696 |        1942 |       754 | 72.03 | 27.97 | |/paic/bj/lbs/data2                               |         76 |        1951 |        1222 |       729 | 62.63 | 37.37 | ------------------------------------------------------------------------------------------------------------------------ ==================================================================================================================================== ` ` 本次操做增長數據文件以下: OUTPUT ---------------------------------------------------------------------------------------------------------------------------- |數據文件                                                                   | 初始大小(M) |自動擴展|最大可擴展到(M)| 每次擴展(M) | ---------------------------------------------------------------------------------------------------------------------------- ==================================================================================================================================== 添加數據文件遇到異常:     ERROR: 沒有找到合適的DATA卷,請向存儲組申請增長額外的DATA卷。     **Hint: 若是是未改造的舊存儲架構,能夠代入參數"force=>true"後從新執行過程。 ---------------------------------------------------------------------------------------------------------------------------------- ==================================================================================================================================== ` ` 表空間 <LIFEDATA> 概況 : ------------------------------------------------------------------------------- | 當前大小(M)  | 已使用(M)  |  剩餘(M)  | 最大可擴展到(M) |當前剩餘率% |最大剩餘率% | ------------------------------------------------------------------------------- |     1019100 |   1018134 |       966 |       1536000 |         0 |        34 | -------------------------------------------------------------------------------

二、帶force參數能夠忽略60個文件的限制#

SQL> select * from table(dbmgr.autodb.add_tbs('lifedata',10,'true')); OUTPUT ------------------------------------------------------------------------------------------------------------------------------------ 文件系統數據庫 `     *****************************************************     *   請使用「col output for a132」獲取最佳顯示效果   *     *   請使用   「set pages 200」   獲取最佳顯示效果   *     ***************************************************** ==================================================================================================================================== ` ` 卷信息: (**卷數據文件數不計算redo log以及temp文件**) ------------------------------------------------------------------------------------------------------------------------ |卷名                                              |卷數據文件數 |   卷大小(G)  |   已使用(G)  |   剩餘(G) |使用率% |剩餘率% | ------------------------------------------------------------------------------------------------------------------------ |/paic/bj/lbs/data                                |        152 |        2696 |        1942 |       754 | 72.03 | 27.97 | |/paic/bj/lbs/data2                               |         76 |        1951 |        1222 |       729 | 62.63 | 37.37 | ------------------------------------------------------------------------------------------------------------------------ ==================================================================================================================================== ` ` 本次操做增長數據文件以下: OUTPUT ----------------------------------------------------------------------------------------------------------------------- |數據文件                                                              | 初始大小(M) |自動擴展|最大可擴展到(M)| 每次擴展(M) | ----------------------------------------------------------------------------------------------------------------------- |/paic/bj/lbs/data2/oradata/lubj0/lifedata049.dbf                     |        100 |   是  |         32767|         100| ----------------------------------------------------------------------------------------------------------------------- ==================================================================================================================================== ` ` 表空間 <LIFEDATA> 概況 : ------------------------------------------------------------------------------- | 當前大小(M)  | 已使用(M)  |  剩餘(M)  | 最大可擴展到(M) |當前剩餘率% |最大剩餘率% | ------------------------------------------------------------------------------- |     1019200 |   1018134 |      1066 |       1568767 |         0 |        35 | 
相關文章
相關標籤/搜索