2019独角兽企业重金招聘Python工程师标准>>>

###更改表空间

####1 重命名表空间

将表空间 /home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/tbs_01.dbf 迁移到该目录下 /home/oracle/app/oracle/oradata/tonytest/datafile/tbs_01.dbf

#1. 将表空间tbs_01, 设置为offline状态
SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TBS_01';TABLESPACE_NAME                STATUS
------------------------------ ---------
TBS_01                         ONLINESQL> alter tablespace tbs_01 offline normal;Tablespace altered.SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TBS_01';TABLESPACE_NAME                STATUS
------------------------------ ---------
TBS_01                         OFFLINESQL> select count(*) from emp1;
select count(*) from emp1*
ERROR at line 1:
ORA-00376: file 13 cannot be read at this time
ORA-01110: data file 13:
'/home/oracle/app/oracle/product/11.2.0/dbhome_1/dbs/tbs_01.dbf'#2. 拷贝tbs_01.dbf 文件到/home/oracle/app/oracle/oradata/tonytest/datafile/ 目录下
[oracle@hzvscmdb dbs]$ mv tbs_01.dbf /home/oracle/app/oracle/oradata/tonytest/datafile/#3. 重名了表空间的数据文件
alter tablespace tbs_01
rename datafile 'tbs_01.dbf'
to '/home/oracle/app/oracle/oradata/tonytest/datafile/tbs_01.dbf';#4. 将表空间设置为ONLINE
SQL> alter tablespace tbs_01 online ;Tablespace altered.SQL> select tablespace_name, status from dba_tablespaces where tablespace_name = 'TBS_01';TABLESPACE_NAME                STATUS
------------------------------ ---------
TBS_01                         ONLINESQL> select count(*) from emp1;COUNT(*)
----------108

####2 添加与删除数据文件到表空间

#1. 添加数据文件到表空间
SQL> select file_name, tablespace_name from dba_data_files where tablespace_name = 'TBS_01';FILE_NAME                                          TABLESPACE_NAME
-------------------------------------------------- --------------------
/home/oracle/app/oracle/oradata/tonytest/datafile/ TBS_01
tbs_01.dbfalter tablespace tbs_01
add datafile '/home/oracle/app/oracle/oradata/tonytest/datafile/tbs_02.dbf'
size 5M autoextend on next 10k maxsize 10M;alter tablespace tbs_01
add datafile '/home/oracle/app/oracle/oradata/tonytest/datafile/tbs_02.dbf'
size 5M autoextend on next 10k maxsize 10M;SQL> select file_name, tablespace_name from dba_data_files where tablespace_name = 'TBS_01';FILE_NAME                                          TABLESPACE_NAME
-------------------------------------------------- --------------------
/home/oracle/app/oracle/oradata/tonytest/datafile/ TBS_01
tbs_01.dbf
/home/oracle/app/oracle/oradata/tonytest/datafile/ TBS_01
tbs_02.dbf#2. 删除数据文件到表空间
alter tablespace tbs_01
drop datafile '/home/oracle/app/oracle/oradata/tonytest/datafile/tbs_02.dbf' ;SQL> select file_name, tablespace_name from dba_data_files where tablespace_name = 'TBS_01';FILE_NAME                                          TABLESPACE_NAME
-------------------------------------------------- --------------------
/home/oracle/app/oracle/oradata/tonytest/datafile/ TBS_01
tbs_01.dbf

####3 设置表空间只读与只写状态

  • 读写:表空间已联机,可进行读写。
  • 只读:指定“只读”使表空间转换到只读模式。此状态下,可以完成(提交或回退)现有的事务处理,但是,不允许对表空间中的对象进一步执行数据操纵语言(DML)操作。表空间已联机,但处于只读状态。不能使SYSTEM 或SYSAUX 表空间处于只读模式。

注:不能将还原表空间和临时表空间设为只读。

#设置表空间只读状态
SQL> alter tablespace tbs_01 read only;  -- 挂住状态SQL> select ts.name, df.status, df.enabled from v$datafile df, v$tablespace ts where DF.TS# = TS.TS# and TS.NAME = 'TBS_01';NAME                           STATUS  ENABLED
------------------------------ ------- ----------
TBS_01                         ONLINE  READ ONLYSQL> select employee_id, salary from emp1 where employee_id = 199;EMPLOYEE_ID     SALARY
----------- ----------199       5600SQL> update emp1 set salary = 5600 where employee_id =200;
update emp1 set salary = 5600 where employee_id =200*
ERROR at line 1:
ORA-00372: file 13 cannot be modified at this time
ORA-01110: data file 13:
'/home/oracle/app/oracle/oradata/tonytest/datafile/tbs_01.dbf'SQL> commit;Commit complete.SQL> alter tablespace tbs_01 read only;Tablespace altered.   -- commit 之后#设置表空间读写状态
SQL> alter tablespace tbs_01 read write;Tablespace altered.SQL> select ts.name, df.status, df.enabled from v$datafile df, v$tablespace ts where DF.TS# = TS.TS# and TS.NAME = 'TBS_01';NAME                           STATUS  ENABLED
------------------------------ ------- ----------
TBS_01                         ONLINE  READ WRITE

####4 设置表空间脱机状态

  • Normal(正常):如果表空间中的任一数据文件都不存在任何错误状态,通过正常方式便可使表空间脱机。当Oracle DB 使表空间脱机时,通过对表空间的所有数据文件设置检查点,可以确保将所有数据写入磁盘。
SQL> select to_char(offline_change#), to_char(online_change#) from v$datafile where name like '%tbs_01.dbf';TO_CHAR(OFFLINE_CHANGE#)                 TO_CHAR(ONLINE_CHANGE#)
---------------------------------------- ----------------------------------------
11795750037680                           11795750037795SQL> alter tablespace tbs_01 offline normal;Tablespace altered.SQL> select to_char(offline_change#), to_char(online_change#) from v$datafile where name like '%tbs_01.dbf';TO_CHAR(OFFLINE_CHANGE#)                 TO_CHAR(ONLINE_CHANGE#)
---------------------------------------- ----------------------------------------
11795750040313                           11795750040336SQL> alter tablespace tbs_01 online;Tablespace altered.SQL> select to_char(offline_change#), to_char(online_change#) from v$datafile where name like '%tbs_01.dbf';TO_CHAR(OFFLINE_CHANGE#)                 TO_CHAR(ONLINE_CHANGE#)
---------------------------------------- ----------------------------------------
11795750040366                           11795750043082
  • Temporary(临时):如果表空间中的一个或多个文件存在错误状态,也可以使表空间暂时脱机。当Oracle DB 使数据文件(尚未脱机的)脱机时,将对这些数据文件设置检查点。如果没有任何文件脱机,但是您使用了临时子句,则在使表空间重新联机时不需要执行介质恢复。但是,如果因写错误而导致表空间的一个或多个文件脱机,而且设置了表空间临时脱机,那么表空间需要执行恢复后才能重新联机。
SQL> alter tablespace tbs_01 offline temporary;Tablespace altered.SQL> select to_char(offline_change#), to_char(online_change#) from v$datafile where name like '%tbs_01.dbf';TO_CHAR(OFFLINE_CHANGE#)                 TO_CHAR(ONLINE_CHANGE#)
---------------------------------------- ----------------------------------------
11795750040366                           11795750043082
  • Immediate(立即):Oracle DB 可以使表空间立即脱机,而不需要对任何数据文件设置检查点。如果指定了“Immediate(立即)”,则必须先对表空间执行介质恢复,才能使表空间联机。如果数据库在NOARCHIVELOG 模式下运行,则无法立即使表空间脱机。
SQL> alter tablespace tbs_01 offline immediate;Tablespace altered.SQL> select to_char(offline_change#), to_char(online_change#) from v$datafile where name like '%tbs_01.dbf';TO_CHAR(OFFLINE_CHANGE#)                 TO_CHAR(ONLINE_CHANGE#)
---------------------------------------- ----------------------------------------
11795750040366                           11795750043082SQL> alter tablespace tbs_01 online;Tablespace altered.

转载于:https://my.oschina.net/wangbinbin0326/blog/466140

Oracle 基础篇 --- 表空间的操作相关推荐

  1. oracle回滚表空间的操作

    回滚表空间是一个特殊的表空间,回滚表空间只能用于存放回滚段.不能在回滚表空间创建其他数据库对象(如表.索引).每个数据库可有零个或者多个回滚表空间.但是,只能有一个活动的回滚表空间. SYSTEM回滚 ...

  2. oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作

    oracle数据库分配表空间.创建用户.分配用户权限操作 1.创建临时表空间 /* create temporary tablespace*/ create temporary tablespace ...

  3. oracle undo 缩小,缩小Oracle的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)

    缩小Oracle的系统表空间(SYSTEM.TEMP.UNDOTBS1.SYSAUX) 一.基础环境 操作系统:Windows 或 Linux 数据库版本:Oracle Database 11.2.0 ...

  4. oracle已经创建表空间不存在,oracle表空间的创建、删除、查看、表空间不存在、及修改默认表空间详解...

    一.创建表空间 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地 ...

  5. rac建oracle表空间,Oracle Rac创建表空间及用户

    1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...

  6. Oracle 11g_管理表空间和数据文件(7)

    1. 表空间和数据文件的关系 在Oracle数据库中,表空间和数据文件之间的关系非常密切,这二者之间相互依存,也就是说,创建表空间时必须创建数据文件,增加数据文件时也必须指定表空间. Oracle磁盘 ...

  7. oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决

    在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...

  8. Oracle的逻辑结构(表空间、段、区间、块)——Oracle数据块(一)

    Oracle 的逻辑结构 ( 表空间.段.区间.块 ) --块 Oracle 存储数据的最小单位是数据块.Oracle 管理 数据库 数据文件的存储空间被称为数据块,一个数据块是数据库使用的最小数据单 ...

  9. [Oracle]理解undo表空间

    [Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...

最新文章

  1. SSL剥离工具sslstrip
  2. 英特尔杀入游戏显卡市场:3000元档位,支持光追和AI超分辨率,挑战AMD英伟达...
  3. python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据
  4. nginx alias正则表达式
  5. 征信一个月查40次,还能贷款吗?
  6. Shell 快速入门
  7. wms地图绘制工具_移情地图,了解用户需求的利器
  8. 矢量图标库如何引入html,Iconfont矢量图标库在网站中的使用方法
  9. Hadoop基础--HDFS/Yarn/MapReduce概述
  10. 又推亲儿子,苹果与国际权威机构推出 Swift 资格认证
  11. 关于服务发现和负载均衡,你想知道的都在这儿
  12. mybatis介绍(一)
  13. 愤怒的小鸟的html制作,如何做html5山寨版愤怒的小鸟
  14. Spring3 MVC 深入研究
  15. PIE SDK矢量数据空间索引的创建
  16. leetcode898.BitwiseORsofSubarrays
  17. Verilog初级教程(6)Verilog模块与端口
  18. java watir_watir webdriver 安装
  19. QQ音乐付费格式转换
  20. 不接受反驳,性能最强,功能最强的Java日志框架

热门文章

  1. python scale 窗口部件 使用_Tkinter介绍及教学-Python教学【StudyQuant-Python量化投资课堂】...
  2. linux内核syscall_define6,Syscall系统调用Linux内核跟踪
  3. matlab-绘图-直角坐标系
  4. mysql2tb_MySQL2
  5. 通过conda命令卸载已安装的各种包
  6. 如何阅读微控制器数据手册:简介和第一步
  7. Gauss-Seidel迭代求解线性方程组
  8. python字典键操作
  9. centos6.5 设置tomcat8自启动
  10. CentOS 6.7安装ZooKeeper 3.4.9