SELECTfile_name,tablespace_nameFROMdba_data_files;FILE_NAMETABLESPACE--------------------------------------------------------" />

日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

oracle表空間更名

系統 2092 0

在 Oracle 10g 以前的版本,更改表空間名字是幾乎不可能的事情,除非刪除,重新創建,大費周章。
Oracle 10g 新添加了一項更改表空間名字的功能,使得更改表空間名字瞬間即可完成。是個較為人性化的功能。

SQL> SELECT file_name, tablespace_name FROM dba_data_files;
FILE_NAME????????????????????????????????????????????????????????????? TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf?????????? USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf????????? SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf???????? UNDOTBS1
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf????????? SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf???????? EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf????????????? FOO
1.該命令的語法很簡單:
ALTER TABLESPACE tablespacename RENAME TO newtablespacename;
tablespacename 和newtablespacename 分別對應原來的表空間名字和更改后的表空間名字:

2.實戰演練
注意:在操作前后都請做好控制文件的備份工作
SQL>ALTER TABLESPACE foo RENAME TO test;
Tablespace altered.
SQL> SELECT file_name, tablespace_name FROM dba_data_files;
FILE_NAME????????????????????????????????????????????????????????????? TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf?????????? USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf????????? SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf???????? UNDOTBS1
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf????????? SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf???????? EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf????????????? TEST

3.因為 system 和 sysaux 這兩個表空間的特殊性,是不可以更名的:
SQL> ALTER TABLESPACE system RENAME TO mysystem;
ORA-00712: cannot rename system tablespace
SQL> ALTER TABLESPACE sysaux RENAME TO mysysaux;
ORA-13502: Cannot rename SYSAUX tablespace

4.可以對 undo tablespace 重新命名,如果使用的是 spfile ,而不是 pfile, Oracle 會自動對 spfile 中的 undo_tablespace 進行更改(不過要在數據庫重新啟動之后才可以觀察到), 如果使用的是 pfile ,要對其進行手工更改。我們看看 spfile 的變化情況:
SQL> ALTER tablespace undotbs1 RENAME TO undotbs;
Tablespace altered.
SQL>
SQL> show parameter pfile
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
spfile?????????????????????????????? string????? /u01/app/oracle/product/10.1.0
???????????????????????????????????????????????? /db_1/dbs/spfileTEST.ora
SQL> show parameters undo
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
undo_management????????????????????? string????? AUTO
undo_retention?????????????????????? integer???? 900
undo_tablespace????????????????????? string????? UNDOTBS1
SQL> shutdown immediate;
SQL> startup
SQL> show parameters undo
NAME???????????????????????????????? TYPE??????? VALUE
------------------------------------ ----------- ------------------------------
undo_management????????????????????? string????? AUTO
undo_retention?????????????????????? integer???? 900
undo_tablespace????????????????????? string????? UNDOTBS

5.對脫機表空間的更名是不允許的:
SQL> ALTER TABLESPACE TEST OFFLINE;
Tablespace altered.
SQL> ALTER TABLESPACE test RENAME TO testoffline;?????????????
ORA-01135: file 6 accessed for DML/query is offline
ORA-01110: data file 6:'/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf'
給出的提示信息很有參考價值:更名操作是要對表空間進行 DML/query 操作的,表空間offline的話,則不可以。
6.那么如果表空間是只讀的會怎么樣呢?
SQL> ALTER TABLESPACE TEST ONLINE;
Tablespace altered.
SQL> ALTER TABLESPACE TEST READ ONLY;
Tablespace altered.
SQL> ALTER TABLESPACE test RENAME TO testreadonly;
Tablespace altered.
SQL> list
? 1* SELECT file_name, tablespace_name FROM dba_data_files
SQL> /
FILE_NAME????????????????????????????????????????????????????????????? TABLESPACE
---------------------------------------------------------------------- ----------
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbf?????????? USERS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbf????????? SYSAUX
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbf???????? UNDOTBS
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbf????????? SYSTEM
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbf???????? EXAMPLE
/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf????????????? TESTREADONLY


7.看來數據字典已經更新,不過Oracle會向alert_SID.log 中寫入類似如下的日志:
ALTER TABLESPACE test RENAME TO testreadonly????????????????????????????????????????????????
Sat Nov 13 16:15:21 2004????????????????????????????????????????????????????????????????????
Tablespace 'TEST' is renamed to 'TESTREADONLY'.?????????????????????????????????????????????
Tablespace name change is not propagated to file headersbecause the tablespace is read only.
Completed: ALTER TABLESPACE test RENAME TO testreadonly
注意Log里有個細微的小Bug:headersbecause。這是兩個詞,應該空開的 :-)
8.更名對 Bigfile 表空間一樣有效。

9.限制條件
應用這個特性有個主要的限制條件:COMPATIBLE 初始化參數要求為 10.0 或者更高才可以
10.參考信息
Oracle Database Administrator's Guide 10g Release 1 (10.1) Part Number B10739-01 ( Note 62294.1 )

oracle表空間更名


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 常宁市| 云安县| 无为县| 电白县| 应城市| 米泉市| 五台县| 洪洞县| 右玉县| 玛纳斯县| 防城港市| 佛山市| 清徐县| 荔波县| 丰城市| 深州市| 拉孜县| 彭州市| 育儿| 大埔县| 太保市| 万安县| 大英县| 布尔津县| 阜新市| 博湖县| 厦门市| 锡林郭勒盟| 桐城市| 平远县| 中江县| 分宜县| 新田县| 蕲春县| 肇州县| 陈巴尔虎旗| 闻喜县| 河津市| 金溪县| 华阴市| 海丰县|