MYSQL网页设计[Oracle 10g] 表空间改名
而且其固有的弹性使得它易于扩展以处理不断增长的需求,或当需求MySQL学习教程减弱时缩减规模。oracle表空间改名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并不是市场上最年轻的数据库,但是却有更多成熟的数据库可供我们选择。 SQL语言是学习所有数据库产品的基础,无论你是做数据库管理还是做数据库开发都是这样。不过具体学习的侧重点要看你将来做哪一块,如果是做数据库管理(DBA),侧重点应该放在SQLServer的系统管理上. 光写几个SQL实在叫无知。 多加的系统视图和实时系统信息这些东西对DBA挑优非常有帮助,但是感觉粒度还是不太细。 始终遗憾SQLServer的登陆无法分配CPU/内存占用等指标数。如果你的SQLServer给别人分配了一个只可以读几个表的权限,而这个家伙疯狂的死循环进行连接查询,会给你的系统带来很大的负担。 记得在最开始使用2k的时候就要用到这个功能,可惜2k没有,现在有了作解决方案的朋友会很高兴吧。 我是新手,正在学习数据库和操作系统,深感理论的泛广,唯有一步一步来,但是又感觉时间不够,收集了很多资料却总是没能认真的看完,希望有一个讨论板块,大家共同解决,共同分享,共同努力
页:
[1]