Oracle 基础篇 --- 表空间的操作
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 基础篇 --- 表空间的操作相关推荐
- oracle回滚表空间的操作
回滚表空间是一个特殊的表空间,回滚表空间只能用于存放回滚段.不能在回滚表空间创建其他数据库对象(如表.索引).每个数据库可有零个或者多个回滚表空间.但是,只能有一个活动的回滚表空间. SYSTEM回滚 ...
- oracle怎么分配表空间,oracle数据库分配表空间、创造用户、分配用户权限操作
oracle数据库分配表空间.创建用户.分配用户权限操作 1.创建临时表空间 /* create temporary tablespace*/ create temporary tablespace ...
- oracle undo 缩小,缩小Oracle的系统表空间(SYSTEM、TEMP、UNDOTBS1、SYSAUX)
缩小Oracle的系统表空间(SYSTEM.TEMP.UNDOTBS1.SYSAUX) 一.基础环境 操作系统:Windows 或 Linux 数据库版本:Oracle Database 11.2.0 ...
- oracle已经创建表空间不存在,oracle表空间的创建、删除、查看、表空间不存在、及修改默认表空间详解...
一.创建表空间 ORACLE中,表空间是数据管理的基本方法,所有用户的对象要存放在表空间中,也就是用户有空间的使用权,才能创建用户对象.否则是不充许创建对象,因为就是想创建对象,如表,索引等,也没有地 ...
- rac建oracle表空间,Oracle Rac创建表空间及用户
1. 创建表空间: BEGIN DECLARE cnt integer := 0; BEGIN SELECT 1 INTO cnt FROM dual WHERE exists(SELECT * FR ...
- Oracle 11g_管理表空间和数据文件(7)
1. 表空间和数据文件的关系 在Oracle数据库中,表空间和数据文件之间的关系非常密切,这二者之间相互依存,也就是说,创建表空间时必须创建数据文件,增加数据文件时也必须指定表空间. Oracle磁盘 ...
- oracle 10g磁盘管理,Oracle 10g UNDO表空间过大导致磁盘空间不足的解决
在Oracle 10g数据库的应用中,出现了UNDO表空间过大导致磁盘空间不足而崩溃的现象(ORA-30036: unable to extend segment by 8 in undo table ...
- Oracle的逻辑结构(表空间、段、区间、块)——Oracle数据块(一)
Oracle 的逻辑结构 ( 表空间.段.区间.块 ) --块 Oracle 存储数据的最小单位是数据块.Oracle 管理 数据库 数据文件的存储空间被称为数据块,一个数据块是数据库使用的最小数据单 ...
- [Oracle]理解undo表空间
[Oracle]理解undo表空间 一.回退段介绍 在Oracle数据库中,当某个事物对数据进行修改时,Oracle首先将数据的原始值保存到一个回退段中.一个事物只能将它的回退信息保存到一个回退段中, ...
最新文章
- SSL剥离工具sslstrip
- 英特尔杀入游戏显卡市场:3000元档位,支持光追和AI超分辨率,挑战AMD英伟达...
- python向mysql中添加数据标签_用python在MySQL中写入数据和添加数据
- nginx alias正则表达式
- 征信一个月查40次,还能贷款吗?
- Shell 快速入门
- wms地图绘制工具_移情地图,了解用户需求的利器
- 矢量图标库如何引入html,Iconfont矢量图标库在网站中的使用方法
- Hadoop基础--HDFS/Yarn/MapReduce概述
- 又推亲儿子,苹果与国际权威机构推出 Swift 资格认证
- 关于服务发现和负载均衡,你想知道的都在这儿
- mybatis介绍(一)
- 愤怒的小鸟的html制作,如何做html5山寨版愤怒的小鸟
- Spring3 MVC 深入研究
- PIE SDK矢量数据空间索引的创建
- leetcode898.BitwiseORsofSubarrays
- Verilog初级教程(6)Verilog模块与端口
- java watir_watir webdriver 安装
- QQ音乐付费格式转换
- 不接受反驳,性能最强,功能最强的Java日志框架
热门文章
- python scale 窗口部件 使用_Tkinter介绍及教学-Python教学【StudyQuant-Python量化投资课堂】...
- linux内核syscall_define6,Syscall系统调用Linux内核跟踪
- matlab-绘图-直角坐标系
- mysql2tb_MySQL2
- 通过conda命令卸载已安装的各种包
- 如何阅读微控制器数据手册:简介和第一步
- Gauss-Seidel迭代求解线性方程组
- python字典键操作
- centos6.5 设置tomcat8自启动
- CentOS 6.7安装ZooKeeper 3.4.9