oracle中backup模式
在数据库打开的情况下备份(归档模式),把表空间或者数据库置于backup 模式下,
如:
SQL> alter database begin backup;
Database altered.
那么当把表空间或者数据库置于backup模式下,会发生什么?
1.表空间会发生checkpoint,j将内存中的dirty data全部写进数据文件中;
2.在数据文件头的SCN号会被冻结住;
3.在backup模式下,一个数据块发生了改变,那么整个数据块都会被写进重做数据流中。
所以在backup模式下,是允许用户向数据库中写数据的。
做个试验证明一下,表空间置于backup模式下,用户任然可以修改数据。
没有表空间置于backup 模式下:
打开第一个会话,用sys用户登录,创建一个用户p1,
SQL> create user p1 identified by p1_12345 default tablespace users;
User created.
SQL> grant connect,resource to p1;
Grant succeeded.
打开第二个会话,用p1用户登录,创建表fruit,
SQL> insert into fruit values('apple');
1 row created.
SQL> commit;
Commit complete.
在第一个会话中,
SQL> alter system checkpoint;
System altered.
使数据写到磁盘上;
回到第二个会话中,
SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from fruit;
BLK NAME
---------- --------------------------------
814 apple
这是oracle提供的包,由rowid可以看到这个数据文件在哪个数据块上。
通过show parameter db_block_size可以看到它的大小是8192k,
在操作系统中找到users01.dbf(我默认的表空间是users),
[oracle@oracle11g wilson]$ ll /u01/oradata/wilson/users01.dbf
-rw-r----- 1 oracle oinstall 30154752 Aug 23 00:47 /u01/oradata/wilson/users01.dbf
[oracle@oracle11g wilson]$ dd if=users01.dbf ibs=8192 skip=814 count=1 | strings
1+0 records in
16+0 records out
8192 bytes (8.2 kB) copied, 0.000406787 seconds, 20.1 MB/s
U7^M
SUBMIT_COLL_CREDENTIAL_DATA
apple
可以看到apple 被成功的写进了数据文件中。
将users表空间置于backup模式下
SQL> alter tablespace users begin backup;
Tablespace altered.
看是否可以修改其数据,
在第二个会话中(p1用户),
SQL> update fruit set name='two apple' ;
1 row updated.
SQL> commit;
Commit complete
在第一个会话中(sys用户)中:
SQL> alter system checkpoint;
System altered.
使数据写到磁盘上;
回到第二个会话中,
SQL> select dbms_rowid.rowid_block_number(rowid) blk,name from fruit;
BLK NAME
---------- -------------------------------
814 two apple
与上面同样的,在在操作系统中找到users01.dbf,然后
[oracle@oracle11g wilson]$ dd if=users01.dbf ibs=8192 skip=814 count=1 | strings
1+0 records in
16+0 records out
8192 bytes (8.2 kB) copied, 0.000335085 seconds, 24.4 MB/s
U7^M
a}]R
SUBMIT_COLL_CREDENTIAL_DATA
two apple,
apple
可以看到在users表空间在backup模式下,用户任然可以向其中修改数据。(有一点不明白,为什么apple这个数据还在文件中,望高手解答一个)
最后介绍个动态性能视图v$backup,
SQL> select * from v$backup;
FILE# STATUS CHANGE# TIME
---------- ------------------ ---------- ---------
1 NOT ACTIVE 2794785 23-AUG-13
2 NOT ACTIVE 2794785 23-AUG-13
3 NOT ACTIVE 2794785 23-AUG-13
4 ACTIVE 2798071 23-AUG-13
5 NOT ACTIVE 2794785 23-AUG-13
6 NOT ACTIVE 2794785 23-AUG-13
7 NOT ACTIVE 2794785 23-AUG-13
8 NOT ACTIVE 2794785 23-AUG-13
9 NOT ACTIVE 2794785 23-AUG-13
10 NOT ACTIVE 2794785 23-AUG-13
11 NOT ACTIVE 2794785 23-AUG-13
11 rows selected.
可以看到文件4是active,说明它是处于backup模式下的,但是还是不知道是哪个文件和表空间处于backup模式下。
SQL> select file_id,file_name,tablespace_name from dba_data_files order by file_id;
FILE_ID FILE_NAME TABLESPACE_NAME
---------- ----------------------------------- ------------------------------
1 /u01/oradata/wilson/system01.dbf SYSTEM
2 /u01/oradata/wilson/sysaux01.dbf SYSAUX
3 /u01/oradata/wilson/undotbs01.dbf UNDOTBS1
4 /u01/oradata/wilson/users01.dbf USERS
5 /u01/oradata/wilson/example01.dbf EXAMPLE
6 /u01/oradata/wilson/paul01.dbf PAUL
7 /u01/oradata/wilson/sun01.dbf SUN
8 /u01/oradata/wilson/smallundo1.dbf SMALLUNDO
9 /u01/oradata/wilson/assm_1.dbf ASSM
10 /u01/oradata/wilson/mssm_1dbf MSSM
11 /u01/oradata/wilson/paul02.dbf PAUL
11 rows selected.
可以看到是users 表空间( /u01/oradata/wilson/users01.dbf)置于backup模式下,这和我们上面做实验时把users表空间置于backup模式下是一致的。
关闭users表空间的backup模式,
SQL> alter tablespace users end backup;
Tablespace altered.
备注:在backup模式下,可能导致redo log file中的信息量大增(有用户写数据等),影响性能,所以备份完后,快速的end backup,也不推荐使用alter database begin backup命令。
oracle中backup模式的更多相关文章
- Oracle中用户(User)和模式(Schema)的概念
数据库理论中数据库用户和数据库模式并没有必定的联系.具体的数据库模式解释能够在这里找到: http://stackoverflow.com/questions/2674222/what-is-purp ...
- 【RMAN】Oracle中如何备份控制文件?备份控制文件的方式有哪几种?
真题1. 如何备份控制文件?备份控制文件的方式有哪几种? 答案:备份控制文件的方式有多种. ① 备份控制文件可以在线进行: SQL> ALTER DATABASE BACKUP CONTROLF ...
- Oracle中的AWR,全称为Automatic Workload Repository
Oracle中的AWR,全称为Automatic Workload Repository,自动负载信息库.它收集关于特定数据库的操作统计信息和其他统计信息,Oracle以固定的时间间隔(默认为1个小时 ...
- 【知识点整理】Oracle中NOLOGGING、APPEND、ARCHIVE和PARALLEL下,REDO、UNDO和执行速度的比较
[知识点整理]Oracle中NOLOGGING.APPEND.ARCHIVE和PARALLEL下,REDO.UNDO和执行速度的比较 1 BLOG文档结构图 2 前言部分 2.1 导读和注意事项 ...
- Oracle中使用REGEXP_SUBSTR,regexp_replace函数
REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier)__srcstr ...
- 在Oracle中使用Entity Framework 6 CodeFirst
项目中需要将系统从SQLServer数据库迁移到Oracle上.由于原大部分数据访问操作都是通过包装了Entity Framework的统一访问入口实现的,所以需要研究Entity Framework ...
- oracle中imp命令详解 .
转自http://www.cnblogs.com/songdavid/articles/2435439.html oracle中imp命令详解 Oracle的导入实用程序(Import utility ...
- 快速向表中插入大量数据Oracle中append与Nologging
来源于:http://blog.sina.com.cn/s/blog_61cd89f60102e7gi.html 当需要对一个非常大的表INSERT的时候,会消耗非常多的资源,因为update表的时候 ...
- Oracle中如何使用REGEXP_SUBSTR函数
REGEXP_SUBSTR函数格式如下: function REGEXP_SUBSTR(String, pattern, position, occurrence, modifier) __srcst ...
随机推荐
- Cracking Microservices practices
微服务最佳实践 英文原文:Cracking Microservices practices 在我还不知道什么叫微服务架构的时候我就使用过它.以前,我写了一些管道程序(pipeline applicat ...
- EF 事物
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.D ...
- Php设计模式(三):行为型模式part1
原文详见:http://www.ucai.cn/blogdetail/7023?mid=1&f=5 可以在线运行查看效果哦! 在上一篇我们讲了结构型模式,结构型模式是讨论类和对象的结构的.总共 ...
- 随记一个C的毫秒级群PING
正好公司为了检测前台网络,力图收集有力证据与某CDN PK,所以随手写了一个群PING的程序. 写的内容比较简单,没有去特别追求线程效率,也没有去用LINUX 2.6+的殿堂级神器,以追求实现效率为主 ...
- mongodb操作:利用javaScript封装db.collection.find()后可调用函数源码解读
{ "_mongo" : connection to YOURIP:27017{ SSL: { sslSupport: false, sslPEMKeyFile: "&q ...
- 完整的thinphp+phpexcel实现excel报表的输出(有图有效果)
准备工作:1.下载phpexcel1.7.6类包:2.解压至TP框架的ThinkPHP\Vendor目录下,改类包文件夹名为PHPExcel176,目录结构如下图: 编写代码(以一个订单汇 ...
- SQL点滴10—使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比
原文:SQL点滴10-使用with语句来写一个稍微复杂sql语句,附加和子查询的性能对比 今天偶尔看到sql中也有with关键字,好歹也写了几年的sql语句,居然第一次接触,无知啊.看了一位博主的文章 ...
- 实例学习SSIS(一)--制作一个简单的ETL包
原文:实例学习SSIS(一)--制作一个简单的ETL包 导读: 实例学习SSIS(一)--制作一个简单的ETL包 实例学习SSIS(二)--使用迭代 实例学习SSIS(三)--使用包配置 实例学习SS ...
- 如何配置Spring的XML文件及使用
App.config <?xml version="1.0" encoding="utf-8" ?> <configuration> & ...
- 处理程序“svc-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
HTTP 错误 404.3 - Not Found 由于扩展配置问题而无法提供您请求的页面.如果该页面是脚本,请添加处理程序.如果应下载文件,请添加 MIME 映射. 解决办法:以管理员运行命令:C: ...