表空间的状态(二)-read/write
表空间状态-READ ONLY、READ WRITE 1. 只读表空间的主要用途就是为了消除对数据库大部分静态数据的备份和恢复的需要。Oracle不会更新只读表空间爱你的文件,因此这部分文件可以存储于只读介质中,例如CD-ROM或WORM drives。 2. 只读表空间并不是为了满足归档
表空间状态-READ ONLY、READ WRITE
1. 只读表空间的主要用途就是为了消除对数据库大部分静态数据的备份和恢复的需要。Oracle不会更新只读表空间爱你的文件,因此这部分文件可以存储于只读介质中,例如CD-ROM或WORM drives。2. 只读表空间并不是为了满足归档的要求。只读表空间不能修改。如果需要修改只读表空间中的记录,则需要先将表空间置为read/write。更新表空间后,可以重置为只读。
3. 由于只读表空间不能修改,所以只要没有置为read/write,就不需要重复地进行备份。而且,如果需要恢复数据库时,也不需要恢复只读表空间,原因就是他们未曾修改过。
4. 能从只读表空间中删除对象,例如表或索引,但不能创建或修改对象。可以执行修改数据字典中文件描述的语句,例如ALTER TABLE ... ADD或ALTER TABLE ... MODIFY,但不能添加任何新的描述信息,除非表空间置为read/write。
5. 只读表空间可以导出导入到其他数据库。既然只读表空间不能修改,他们就能存储于CD-ROM或WORM(一次写-多次读)这些设施中。
6. 所有表空间初始创建都是read/write。使用READ ONLY子句可以设置表空间为只读。前提是必须具有ALTER TABLESPACE或MANAGE TABLESPACE的系统权限。
使用ALTER TABLESPACE ... READ ONLY前,需要满足以下条件:
> 表空间处于online状态。这是为了确保不会有UNDO信息需要应用到表空间。注:如果处于offline,则会将UNDO信息存储于SYSTEM表空间,待恢复online时应用这些UNDO信息。
> 不能修改活动的UNDO表空间或SYSTEM表空间。
> 表空间不能处于当前正在进行的online备份中,因为备份结束时会更新表空间所有数据文件的头部信息。
> 为了让从只读表空间读取数据得到更好的性能,可以在置为read-only之前执行一次访问表空间的表中所有数据块的查询。一个像SELECT COUNT(*)这样简单的查询,就可以确保在表空间的数据块在接下来的访问中获得最佳的效率。因为这种做法就不需要数据库检查最近经常修改数据块的交易状态。
7. 可以在数据库正处理交易的时候执行ALTER TABLESPACE ... READ ONLY语句。执行语句后,表空间就处于交易只读状态。不会允许任何交易(DML操作)应用于表空间。如果尝试进行交易操作,那么此操作会被终止和回滚。然而,那些已经做了变更并不再进行进一步修改的交易,就允许执行commit或roll back操作。
如果ALTER TABLESPACE ... READ ONLY语句执行前,一个交易已经执行了,但是回滚到一个保存点,回滚了他对表空间的变更,那么ALTER TABLESPACE ... READ ONLY语句不会等待这个活动的交易。
8. 交易级只读状态仅仅当初始化参数COMPATIBLE是8.1.0或以上值时才能使用。如果参数值小于8.1.0,并且存在活动的交易,ALTER TABLESPACE ... READ ONLY语句会失败。
9. 如果ATLER TABLESPACE语句执行时间太长了,那么就需要找到阻止只读状态生效的那些交易。如下语句可以找出执行ALTER TABLESPACE ... RAED ONLY语句的交易入口和session地址(saddr):
SELECT SQL_TEXT, SADDR
FROM V$SQLAREA,V$SESSION
WHERE V$SQLAREA.ADDRESS = V$SESSION.SQL_ADDRESS AND SQL_TEXT LIKE 'alter tablespace%';
SQL_TEXT SADDR
---------------------------------------- --------
alter tablespace tbs1 read only 80034AF0
每个活动交易的开始SCN会存储于V$TRANSACTION视图中。起始SCN越小,说明这步操作就越早。潜在地这条语句越可能阻止接下来只读状态的变更。
SELECT SES_ADDR, START_SCNB
FROM V$TRANSACTION
ORDER BY START_SCNB;
SES_ADDR START_SCNB
-------- ----------
800352A0 3621 --> waiting on this txn
80035A50 3623 --> waiting on this txn
80034AF0 3628 --> this is the ALTER TABLESPACE statement
80037910 3629 --> don't care about this txn
可以用如下语句找到阻塞交易的用户:
SELECT T.SES_ADDR, S.USERNAME, S.MACHINE
FROM V$SESSION S, V$TRANSACTION T
WHERE T.SES_ADDR = S.SADDR
ORDER BY T.SES_ADDR
SES_ADDR USERNAME MACHINE
-------- -------------------- --------------------
800352A0 DAVIDB DAVIDBLAP --> Contact this user
80035A50 MIKEL LAB61 --> Contact this user
80034AF0 DBA01 STEVEFLAP
80037910 NICKD NICKDLAP
将表空间置为read-only后,建议立即备份。只要表空间一直处于只读状态,那就不需要再次地备份,因为不会有对表空间的更新。
10. 使用LATER TABLESPACE ... READ WRITE语句可以恢复只读表空间,前提是具有ALTER TABLESPACE或MANAGE TABLESPACE权限。
表空间置为read/write的前提条件还需要表空间中的所有数据文件以及表空间自身都处于online状态。可以使用ALTER DATABASE ... DATAFILE ... ONLINE语句将数据文件置为online状态。V$DATAFILE视图显示了数据文件当前的状态。
将表空间置为可写模式,需要更新控制文件,目的就是为了可以使用数据文件的只读版本作为恢复的起始点。
11. 在WORM设备中创建一个只读表空间。
(1) 创建一个可写表空间。创建对象、插入数据。
(2) 将表空间置为read-only只读模式。
(3) 使用操作系统命令将表空间的数据文件复制到WORM设备。
(4) 将表空间置为offline状态。
(5) 重命名数据文件以符合拷贝到WORM设备中的数据文件命名规范。使用ALTER TABLESPACE ... RENAME DATAFILE语句,重命名数据文件的操作会修改控制文件。
(6) 将表空间恢复为online状态。
实验:
1. 设置表空间为read only状态:
SQL> alter tablespace dcsopen_tbs read only;
Tablespace altered.
2. 查看数据文件状态:
SQL> select file#, name, status from v$datafile where file#=11;
FILE# NAME STATUS
----- ------------------------------------------------------- ------------------------
11 /oracle/oradata_petest/petest/dcsopen_tbs02.dbf ONLINE
3. 登录到只读表空间:
SQL> select * from test1;
T1ID T1V
---------- ----------
1 t1
2 t2
3 t3
可以读其中的表。
SQL> insert into test1 values(12, 't12');
insert into test1 values(12, 't12')
*
ERROR at line 1:
ORA-00372: file 7 cannot be modified at this time
ORA-01110: data file 7: '/oracle/oradata_petest/petest/dcsopen_tbs01.dbf'
执行交易操作时提示7号数据文件此时不能修改。

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

“事件日志消息中的连接状态显示为待机状态:已断开连接,原因是符合NIC标准。这意味着系统在待机模式下,网络接口卡(NIC)已断开连接。虽然这通常是网络问题,但也可能由软件和硬件冲突引起。在接下来的讨论中,我们将探讨如何解决这一问题。”待机连接断开的原因是什么?NIC合规性?如果在Windows事件查看器中发现“ConnectivityStatusinStandby:DisConnected,Reason:NICCompliance”消息,这表示您的NIC或网络接口控制器可能存在问题。这种情况通常

本文转载自微信公众号「活在信息时代」,作者活在信息时代。转载本文请联系活在信息时代公众号。在机器学习中,一个基础的概念就是如何判断两个样本之间的差异,从而能够评价两个样本之间的相似性和类别等信息。而判断这种相似性的度量就是两个样本在特征空间内的距离。根据数据特征的不同,度量方法有很多种。一般而言,对两个数据样本x,y,定义一个函数d(x,y),如果定义其为两个样本之间的距离,那么d(x,y)则需要满足以下几条基本性质:非负性:d(x,y)>=0同一性:d(x,y)=0 ⇔ x=y对

陌陌这款广为人知的社交平台,为用户的日常社交提供了丰富的功能服务。在陌陌上,用户可以轻松分享生活状态、结交朋友、进行聊天等。其中设置状态功能让用户能够向其他展示自己当前的心情和状态,进而吸引更多人的关注和交流。那么究竟该如何设置自己的陌陌状态呢,下文中就为大家带来详细的内容介绍!陌陌怎么设置状态?1、打开陌陌,点击右下角更多,找到并点击每日状态。2、选择状态。3、即可显示设置的状态。

查看服务器状态的方法有使用命令行工具、图形界面工具、监控工具、日志文件和远程管理工具等。详细介绍:1、使用命令行工具,在Linux或Unix服务器上,可以使用命令行工具来查看服务器的状态;2、使用图形界面工具,对于具有图形界面的服务器操作系统,可以使用系统提供的图形界面工具来查看服务器状态;3、使用监控工具,可以使用专门的监控工具来实时监视服务器的状态等等。

交换空间在Linux系统中扮演着重要角色,特别是在系统内存不足时。它充当着一个备用的内存存储空间,可以帮助系统平稳运行,即使在负载高的情况下也能保持稳定性。本文为您提供了在Ubuntu22.04LTS上添加交换空间的详细指南,以确保您的系统性能得到优化并能应对各种工作负载。了解交换空间交换空间提供虚拟内存,用于补充系统的物理RAM。当系统的RAM不足时,内核会将数据交换到磁盘,以防止内存不足和系统崩溃。Linux系统常用交换空间来处理这种情况。同时运行多个内存密集型应用程序处理非常大的文件或数据

想要显示为“离线”或不想在WhatsApp上与您的朋友分享您的当前状态?有一个简单而巧妙的技巧可以做到这一点。您可以调整WhatsApp设置,以便您的朋友或其他人无法在其中看到您的当前状态(离线或上次看到)。如何在您的WhatsApp状态栏上显示为离线状态?这是一个非常简单和简化的过程。因此,请立即执行以下步骤。步骤1–在手机上打开WhatsApp。步骤2–点击⋮并选择打开“设置”。第3步–打开“隐私”设置以访问它。第4步–在该隐私页面上,打开“上次查看和在线”设置以访问该设置。步骤5–将“谁可

c盘剩余空间50-80G比较合适。由于系统在日后使用当中会产生垃圾文件,缓存文件等因此建议至少预留50GB-80GB的空间给C盘;如果您不习惯在安装软件时选择路径,日常也不是经常清理电脑,那么至少需要100GB。

众所周知,如果系统安装完成后占用系统盘太大,可能会导致系统运行卡顿、延迟,甚至是文件丢失。因此大家在安装win11系统之前,需要了解升级win11需要多大C盘空间,下面就跟着小编一起来看看吧。升级win11需要多大C盘空间:答:升级win11需要20-30GB的C盘空间。1、根据微软的win11配置要求可以看到,win11安装需要64GB的硬盘空间。2、但其实一般来说是不需要这么大的空间的。3、根据已经安装win11的用户反馈,win11升级大概需要20-30GB的C盘空间。4、但是如果我门只有
