91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何理解Oracle 數據文件中的reuse屬性

發布時間:2021-11-06 09:58:15 來源:億速云 閱讀:489 作者:柒染 欄目:建站服務器

如何理解Oracle 數據文件中的reuse屬性,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

Oracle 表空間創建參數

當我們對表空間添加數據文件的時候,有一個reuse 屬性。 10g的官網對這個參數的說明如下:

REUSE

Specify REUSE to allow Oracle to reuse an existing file.

      (1)If the file already exists, then Oracle reuses the filename and applies the new size (if you specify SIZE) or retains the original size.

      --如果file 已經存在,并且在創建時指定了file size,那么就重用原文件,并應用新的size,如果沒有指定file size,則保留原有的大小。

      (2)If the file does not exist, then Oracle ignores this clause and creates the file.

      -- 如果file 不存在,oracle 將忽略該參數。

Restriction on the REUSE Clause

      You cannot specify REUSE unless you have specified filename.

Whenever Oracle uses an existing file, the previous contents of the file are lost.

-- 如果Oracle 使用了已經存在的file,那么之前file里的數據將全部丟失。

在Oracle 11g的官方文檔里沒有搜到相關的信息。 因為手頭還沒有11g的庫,所以也不好測試。 這篇blog里測試的是基于Oracle 10g環境。

下面我們來做一些測試:

1. 創建一個表空間Dave

SQL> show user;

USER is "SYS"

SQL> create tablespace dave datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 100M;

Tablespace created.

2. 創建表anqing,并指定存儲表空間dave

SQL> create table anqing tablespace dave as select * from dba_objects;

Table created.

SQL> commit;

Commit complete.

SQL> select count(*) from anqing;

 COUNT(*)

----------

    50391

SQL> set wrap off;

SQL> select owner,table_name,tablespace_name from dba_tables where table_name='ANQING';

OWNER            TABLE_NAME           TABLESPACE_NAME

------------------------------ ------------------------------ ------------------

SYS               ANQING                         DAVE

3. 對表空間dave 添加一個新的數據文件,并使用reuse

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' reuse

*

ERROR at line 1:

ORA-01119: error in creating database file '/u01/app/oracle/oradata/dave2/dave02.dbf'

ORA-17610: file '/u01/app/oracle/oradata/dave2/dave02.dbf' does not exist and no size specified ORA-27037: unable to obtain file status Linux Error: 2: No such file or directory Additional information: 3

-- 這種情況下,如果文件存在,會使用原始文件的大小。但dave02.dbf 不存在,我們又沒有指定文件大小,所以無法創建。我們指定size 就可以創建了。

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave02.dbf' size 50M reuse;

Tablespace altered.

SQL>

4. 保持表空間的狀態,然后使用reuse 來添加數據文件

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse

*

ERROR at line 1:

ORA-01537: cannot add file '/u01/app/oracle/oradata/dave2/dave01.dbf' - file already part of database

      --報錯,所以即使我們需要使用reuse,前提也是該數據文件已經不存在該表空間了。

5. 先將datafile offline drop,在reuse

      offline drop 并不會drop datafile,僅僅是將datafile 標記為offline,我們online 之后還可以recover回來。 具體參考:

      alter database datafile offline drop 與 alter tablespace drop datafile 區別

      http://blog.csdn.net/tianlesoftware/archive/2011/04/06/6305600.aspx

SQL> alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' offline drop;

Database altered.

SQL> alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

alter tablespace dave add datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse

*

ERROR at line 1:

ORA-01537: cannot add file '/u01/app/oracle/oradata/dave2/dave01.dbf' - file already part of database

-- 依舊報錯,因為此時數據文件dave01.dbf 的信息還記錄在數據字典里。

-- 將數據文件還原回來

SQL> alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' online;

alter database datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' online

*

ERROR at line 1:

ORA-01113: file 6 needs media recovery

ORA-01110: data file 6: '/u01/app/oracle/oradata/dave2/dave01.dbf'

SQL> recover datafile 6;

Media recovery complete.

6. 使用alter tablespace dave drop datafile 命令

該命令在刪除控制文件和物理文件,所以沒有可用的意義。

SQL> alter tablespace dave drop datafile  '/u01/app/oracle/oradata/dave2/dave02.dbf';

Tablespace altered.

[oracle@db2 dave2]$ pwd

/u01/app/oracle/oradata/dave2

[oracle@db2 dave2]$ ls

control01.ctl  control03.ctl  example01.dbf   redo01.log  redo03.log    system01.dbf  undotbs01.dbf

control02.ctl  dave01.dbf     huaining01.dbf  redo02.log  sysaux01.dbf  temp01.dbf    users01.dbf

-- 文件已經不存在

7. 刪除表空間后,在reuse

命令如下:

      SQL>drop tablespace dave including contents and datafiles;

      該命令也可以指定同時刪除物理文件,但那樣我們的測試就沒辦法完成,所以我們不刪除datafile,僅從控制文件里刪除表空間。

SQL> drop tablespace dave including contents;

Tablespace dropped.

SQL> create tablespace dave2 datafile '/u01/app/oracle/oradata/dave2/dave01.dbf' size 50M reuse;

Tablespace created.

-- 重用成功

看一下數據文件大小:

[oracle@db2 dave2]$ ll -h dave01.dbf

-rw-r----- 1 oracle oinstall 51M Jun  3 04:31 dave01.dbf

我們之前是100M,現在變成50M了。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

阜康市| 武汉市| 滨州市| 邢台市| 怀安县| 肇州县| 邯郸县| 安宁市| 驻马店市| 左权县| 庆城县| 赤壁市| 任丘市| 巴东县| 朝阳县| 元阳县| 海城市| 长沙市| 巴塘县| 玉树县| 七台河市| 崇州市| 宝兴县| 伊宁县| 温泉县| 浑源县| 山东| 岫岩| 永清县| 襄垣县| 云龙县| 桂阳县| 安泽县| 沿河| 三台县| 章丘市| 乌拉特中旗| 黄浦区| 南通市| 大足县| 胶南市|