oracle怎么修改用户默认表空间?

oracle怎么修改用户默认表空间?,第1张

1.设置默认表空间

在Oracle数据库中创建用户(使用CREATE USER语句)时,如果不指定表空间,则默认的临时表空间时TEMP,默认的永久表空间时SYSTEM,这样旧导致应用系统与Oracle系统竞争使用SYSTEM表空间,会极大的影响Oracle系统的执行效率。为此,Oracle建议将非SYSTEM表空间设置为应用系统的默认永久表空间,并且将非TEMP临时表空间设置为应用系统的临时表空间。这样有利于数据库管理员根据应用系统的运行情况适时调整默认表空间和临时表空间。

更改默认临时表空间需要使用ALTER DATABASE DEFAULT TEMPRORY TABLESPACE语句,更改默认永久表空间需要使用ALTER DATABASE DEFAULT TABLESPACE语句。

2.例如:将临时表空间temp_1设置为默认的临时表空间。

3.例如:将表空间tbs_example设置为默认的永久表空间。

4.更改表空间的状态

表空间有只读和可读写两种状态,若设置某个表空间为只读状态,则用户就不能够对该表空间的数据进行DML *** 作(INSERT、UPDATE和DELETE),但对某些对象的删除 *** 作还是可以进行的,比如,索引和目录就可以被删除掉;若设置某个表空间为可读写状态,则用户旧可以对表空间的数据进行任何正常的 *** 作,这也是表空间的默认状态。

设置表空间为只读状态,可以保证表空间数据的完整性。通常在进行数据库的备份、恢复及历史数据的完整性保护时,可将指定的表空间设置成只读状态。但设置表空间为只读并不是可以随意进行的,必须满足三个条件:

1、该表必须为ONLINE状态。

2、该表空间不能包含任何回滚段。

 3、改表空间不能在归档模式下。

更改表空间的读写状态需要使用ALTER TABLESPACE...READ|ONLY READ WRITE语句

5.例如:修改tbs_test_3 表空间为只读状态。

6.例如:修改tbs_test_3 表空间为可读写状态。

sql语句

1.查询表空间大小

select tablespace_name , sum(bytes/1024/1024) sizeM from dba_data_files group by tablespace_name

2.设置数据文件为自动拓展

alter database datafile n autoextend on

不知道你说的两个东西有什么关联性。

下面是设置全部数据文件为自动拓展的plsql匿名块:

begin

  for rec in (select file_id , autoextensible from dba_data_files where autoextensible='NO') loop

    execute immediate 'alter database datafile '||rec.file_id||' autoextend on ' 

  end loop 

end 

这样的话,你在下次重启数据库的时候,是启动不了。

如果是你的数据库是归档模式下的话,有数据文件的备份的话,可进行完全恢复,再进入到数据库里执行命令:

drop tablespace tablespace_name including contents and datafile cascade

如果没有备份的话,也只能启动到数据库的mount状态下,

startup mount

再把删除的文件所属的表空间离线,再进入到Open状态下。

alter database open

进入到数据库后再重建表空间。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/6702757.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-03-27
下一篇2023-03-27

发表评论

登录后才能评论

评论列表(0条)

    保存