|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。oracle[Oracle10g]表空间改名Fenng
日期:24-Oct-2004
出处:http://www.dbanotes.net
版本:0.1
复杂先容
在Oracle10g之前的版本,变动表空间名字是几近不成能的事变,除非删除,从头创立,年夜费周章。Oracle10g新增加了一项变动表空间名字的功效,使得变动表空间名字刹时便可完成。是个较为人道化的功效。
SQL>COLFILE_NAMEformata70SQL>SETlinesize120SQL>SETpagesize99SQL>COLTABLESPACE_NAMEformata10SQL>SQL>SELECTfile_name,tablespace_nameFROMdba_data_files;FILE_NAMETABLESPACE--------------------------------------------------------------------------------/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbfUSERS/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbfSYSAUX/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbfUNDOTBS1/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbfSYSTEM/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbfEXAMPLE/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbfFOO6rowsselected.
该命令的语法很复杂:
ALTERTABLESPACEtablespacenameRENAMETOnewtablespacename;
tablespacename和newtablespacename分离对应本来的表空间名字和变动后的表空间名字:
实战练习训练
注重:在操纵前后都请做好把持文件的备份事情
SQL>ALTERTABLESPACEfooRENAMETOtest;Tablespacealtered.SQL>SELECTfile_name,tablespace_nameFROMdba_data_files;FILE_NAMETABLESPACE--------------------------------------------------------------------------------/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbfUSERS/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbfSYSAUX/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbfUNDOTBS1/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbfSYSTEM/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbfEXAMPLE/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbfTEST
由于system和sysaux这两个表空间的特别性,是不成以改名的:
SQL>ALTERTABLESPACEsystemRENAMETOmysystem;ALTERTABLESPACEsystemRENAMETOmysystem*ERRORatline1:ORA-00712:cannotrenamesystemtablespaceSQL>ALTERTABLESPACEsysauxRENAMETOmysysaux;ALTERTABLESPACEsysauxRENAMETOmysysaux*ERRORatline1:ORA-13502:CannotrenameSYSAUXtablespace
能够对undotablespace从头定名,假如利用的是spfile,而不是pfile,Oracle会主动对spfile中的undo_tablespace举行变动(不外要在数据库从头启动以后才能够察看到),假如利用的是pfile,要对其举行手工变动。我们看看spfile的变更情形:
SQL>ALTERtablespaceundotbs1RENAMETOundotbs;Tablespacealtered.SQL>SQL>showparameterpfileNAMETYPEVALUE-----------------------------------------------------------------------------spfilestring/u01/app/oracle/product/10.1.0/db_1/dbs/spfileTEST.oraSQL>showparametersundoNAMETYPEVALUE-----------------------------------------------------------------------------undo_managementstringAUTOundo_retentioninteger900undo_tablespacestringUNDOTBS1SQL>shutdownimmediate;Databaseclosed.Databasedismounted.ORACLEinstanceshutdown.SQL>startupORACLEinstancestarted.TotalSystemGlobalArea180355072bytesFixedSize777996bytesVariableSize128983284bytesDatabaseBuffers50331648bytesRedoBuffers262144bytesDatabasemounted.Databaseopened.SQL>showparametersundoNAMETYPEVALUE-----------------------------------------------------------------------------undo_managementstringAUTOundo_retentioninteger900undo_tablespacestringUNDOTBSSQL>
对脱机表空间的改名是不同意的:
SQL>ALTERTABLESPACETESTOFFLINE;Tablespacealtered.SQL>ALTERTABLESPACEtestRENAMETOtestoffline;ALTERTABLESPACEtestRENAMETOtestoffline*ERRORatline1:ORA-01135:file6accessedforDML/queryisofflineORA-01110:datafile6:/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbf
给出的提醒信息很有参考代价:改名操纵是要对表空间举行DML/query操纵的,表空间offline的话,则不成以。
那末假如表空间是只读的会怎样呢?
SQL>ALTERTABLESPACETESTONLINE;Tablespacealtered.SQL>ALTERTABLESPACETESTREADONLY;Tablespacealtered.SQL>ALTERTABLESPACEtestRENAMETOtestreadonly;Tablespacealtered.SQL>list1*SELECTfile_name,tablespace_nameFROMdba_data_filesSQL>/FILE_NAMETABLESPACE--------------------------------------------------------------------------------/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/users01.dbfUSERS/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/sysaux01.dbfSYSAUX/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/undotbs01.dbfUNDOTBS/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/system01.dbfSYSTEM/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/example01.dbfEXAMPLE/u01/app/oracle/product/10.1.0/db_1/oradata/TEST/foo1.dbfTESTREADONLY6rowsselected.SQL>
看来数据字典已更新,不外Oracle会向alert_SID.log中写进相似以下的日记:
ALTERTABLESPACEtestRENAMETOtestreadonlySatNov1316:15:212004TablespaceTESTisrenamedtoTESTREADONLY.Tablespacenamechangeisnotpropagatedtofileheadersbecausethetablespaceisreadonly.Completed:ALTERTABLESPACEtestRENAMETOtestreadonly
注重Log里有个渺小的小Bug:headersbecause。这是两个词,应当空开的:-)
限定前提
使用这个特征有个次要的限定前提:COMPATIBLE初始化参数请求为10.0大概更高才能够
参考信息
OracleDatabaseAdministratorsGuide10gRelease1(10.1)PartNumberB10739-01(Note62294.1)
本文作者Fenng,某美资公司DBA,专业工夫混迹于各数据库相干的手艺论坛且乐此不疲。今朝存眷怎样使用ORACLE数据库无效地构建企业使用。对Oracletuning、troubleshooting有一点研讨。
团体手艺站点:http://www.dbanotes.net/。能够经由过程电子邮件dbanotes@gmail.com接洽到他。原文出处http://www.dbanotes.net/Oracle/10g_Rename_Tablespace.htm
回上页<-|->回想页那时候Sybase已经诞生了6年的时间。至于其他值得关注的开源数据库,PostgreSQL将在2009年达到20岁的生日。虽然MySQL并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。 |
|