![](https://img-blog.csdnimg.cn/20201014180756919.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
备份恢复
事后诸葛亮
深入浅出!
展开
-
ARCHIVELOG模式下用户管理的不完全恢复(4)——基于备份控制文件的不完全恢复!
基于备份控制文件的恢复只要适用于以下情况:表空间被意外删除;所有控制文件全部损坏。 先关闭数据库,执行一次全库冷备份。SQL> conn /as sysdba 已连接。 SQL> shutdown immediate 数据库已经关闭。 已经卸载原创 2011-10-10 20:09:19 · 664 阅读 · 0 评论 -
NOARCHIVELOG模式下冷备份还原数据库!
冷备就是把数据库的相关文件复制一份,它只能做还原操作,不能做恢复操作。现在登录到数据库中,把数据文件、控制文件、日志文件存放路径找到,然后关闭数据库,备份列出的文件。SQL> show userUSER 为 "SYS"SQL> select INSTANCE_NAME原创 2011-10-09 14:38:27 · 989 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的完全恢复(1)——恢复关闭的数据库!
现在有一个用户user1默认表空间是ttb1。SQL> conn /as sysdba已连接。SQL> select file_id,file_name,tablespace_name from dba_data_files where tablespace_name原创 2011-10-09 15:38:46 · 617 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的完全恢复(2)——恢复打开的数据库,并且数据库最初是关闭的!
继续使用前面的试验环境,可以看见user1用户下面有两条记录SQL> show userUSER 为 "USER1"SQL> select * from test; ID VALUE---------- -------------------原创 2011-10-09 15:55:30 · 538 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的完全恢复(3)——恢复打开的数据库,并且数据库最初是打开的!
回忆一下,user1用户的test表中还是有两条记录SQL> show userUSER 为 "USER1"SQL> select * from test; ID VALUE---------- --------------------原创 2011-10-09 16:23:47 · 611 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的不完全恢复(2)——基于SCN的不完全恢复!
当用户执行不完全恢复时,如果能够确定恢复点所对应的SCN值,那么可以使用这种方法恢复! 首先关闭数据库执行一个冷全备份SQL> conn /as sysdba已连接。SQL> shutdown immediate数据库已经关闭。已经卸载数据库。ORACLE原创 2011-10-10 14:54:31 · 729 阅读 · 0 评论 -
RMAN备份与恢复(6)——基于时间的不完全恢复!
必须注意:不完全恢复必须是数据库级别的。基于时间的不完全恢复在用户误删除、误截断表时可以使用。首先模拟数据库的故障,删除一个数据文件,然后在mount上数据库。[oracle@linux oracle]$ export NLS_DATE_FORMAT='yyyy-mm-dd hh24:mi:ss';[oracle@linux oracle]$ sqlplus /nolog原创 2011-10-20 09:12:32 · 800 阅读 · 0 评论 -
RMAN备份与恢复(7)——基于SCN的不完全恢复!
基于SCN的不完全恢复使用情况跟基于时间一样,只是这里是根据scn值来恢复的。首先模拟数据库故障。SQL> select current_scn from v$database;CURRENT_SCN----------- 475351SQL> select file_name from dba_data_files;FILE_NAME-原创 2011-10-20 09:22:10 · 5015 阅读 · 1 评论 -
Flashback Version Query和Flashback Transaction Query!
Flashback Version QuerySQL> conn /as sysdba已连接。SQL> select current_scn from v$database;CURRENT_SCN----------- 475124SQL> conn u1/u1已连接。SQL> select * from t; ID V原创 2011-10-20 11:37:59 · 704 阅读 · 0 评论 -
Flashback Table!
闪回表SQL> conn u1/u1已连接。SQL> select * from tab; --现在有一张表TNAME TABTYPE CLUSTERID------------------------------ ------- ----------T原创 2011-10-20 14:54:19 · 1013 阅读 · 0 评论 -
Flashback Database!
闪回数据库的必备条件1.数据库必须启动归档模式SQL> archive log list数据库日志模式 存档模式自动存档 启用存档终点 USE_DB_RECOVERY_FILE_DEST最早的联机日志序列 1下一个存档日志序列 2当前日志序列 22.数据库必须指定原创 2011-10-20 15:21:15 · 810 阅读 · 0 评论 -
RMAN备份与恢复(8)——基于日志序列号的不完全恢复!
首先模拟数据库故障。SQL> select * from v$log; GROUP# THREAD# SEQUENCE# BYTES MEMBERS ARC STATUS FIRST_CHANGE# FIRST_TIME---------- ---------- ---------- ---------- ----------原创 2011-10-20 09:33:15 · 1128 阅读 · 0 评论 -
Flashback Query!
首先创建一个测试表SQL> conn /as sysdba已连接。SQL> select file_name from dba_data_files;FILE_NAME--------------------------------------------------------------------------------/u01/app/oracle/orad原创 2011-10-20 11:01:38 · 636 阅读 · 0 评论 -
RMAN的CONFIGURE配置和FORMAT字符串格式化!!!
RMAN 配置参数为:1、CONFIGURE RETENTION POLICY TO REDUNDANCY 1; # default基于冗余数量的保留策略:RMAN> CONFIGURE RETENTION POLICY TO REDUNDANCY n;基于时间的保留策略:RMAN> CONFIGURE RETENTION POLICY TO RECOVERY WINDOW OF n原创 2011-10-13 12:40:54 · 1849 阅读 · 0 评论 -
迁移数据库——11gR2 使用 RMAN duplicate from active database 复制数据库
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production在Oracle 10g下,我们可以使用RMAN duplicate 命令创建一个具有不同DBID 的复制库。 到了Oracle 11gR2, RMAN 的duplicate 有2种方法实现: 1. Active d原创 2013-07-09 11:05:22 · 1485 阅读 · 0 评论 -
迁移数据库——rman异地恢复
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production1、记录一下源数据库的DBIDsys@ORCL> select DBID from v$database; DBID----------13017727812、open之后,在源数据库端执原创 2013-07-02 11:00:03 · 4018 阅读 · 0 评论 -
迁移数据库——复制所有数据文件,启动数据库
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production首先得在目标服务器上面安装数据库软件,参考:http://blog.csdn.net/zq9017197/article/details/7219567复制数据文件等到目标机器(10.10.10.9)上:[root原创 2013-07-02 10:59:42 · 761 阅读 · 0 评论 -
迁移数据库——rman Duplicate 同机复制数据库
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - Production参考:使用RMAN高级应用之Duplicate复制数据库!http://blog.csdn.net/zq9017197/article/details/6851888ORACLE_BASE=/u01/appORACLE原创 2013-07-03 11:37:13 · 1447 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的完全恢复(5)——总结!
首先说一下恢复的命令:1、recover database;是sql*plus的命令,该命令对应的sql命令为alter database recover database; 后面的同理!2、recover tablespace [tablespace name]; 对应原创 2011-10-09 18:15:42 · 625 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的完全恢复(4)——在没有数据文件备份的情况下恢复数据文件!
这个情况需要满足两个条件:只从数据文件创建以后,所有的归档日志文件和控制文件都在就可以使用这种方式来恢复数据。假如数据库是关闭的,发现该数据文件丢失了,又没有备份SQL> conn /as sysdba已连接。SQL> create tablespace tb3 da原创 2011-10-09 16:56:21 · 649 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理的不完全恢复(1)——基于时间点的不完全恢复!
基于时间点的恢复主要使用于以下情况:误删除表、误截断表、提交了错误的数据。(从oracle 10g利用闪回更easy!) 首先关闭数据库执行一个冷全备份(冷备份的时候用户u1的t表中是有3条记录的。)SQL> conn /as sysdba已连接。SQL> s原创 2011-10-10 11:52:17 · 679 阅读 · 0 评论 -
用户管理的备份!
注意:冷备份——可以备份ARCHIVELOG模式的数据库,也可以备份NOARCHIVELOG模式的数据库。热备份——只能备份ARCHIVELOG模式的数据库。换句话说,就是:ARCHIVELOG模式——可以冷备份,也可以热备份。NOARCHIVELOG模式——只能冷备份。原创 2011-10-08 17:57:04 · 628 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理恢复控制文件(1)——使用二进制控制文件恢复!
在生产数据库中,控制文件一般多路复用的。每个控制文件的内容是一模一样的,只要其中有一个没有丢失,那么就可以复制一下,改一下名字就可以用了。 首先在数据库中备份执行一个二进制的控制文件,也可以使用操作系统的命令直接复制控制文件来备份。SQL> startupORAC原创 2011-10-11 14:59:16 · 592 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理恢复控制文件(2)——使用trace文件重建控制文件!
首先生成控制文件的sql脚本SQL> alter database backup controlfile to trace as '/u01/app/oracle/controlfile/control.sql';数据库已更改。 其实就是生成了一个控制文件的脚原创 2011-10-11 17:24:22 · 827 阅读 · 0 评论 -
坏块的处理与恢复!
首先构建一个写满数据的表空间SQL> create tablespace tb2 datafile '/u01/app/oracle/oradata/orcl/tb2.dbf' size 1m;表空间已创建。SQL> create user u2 identi原创 2011-10-12 13:14:42 · 745 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理恢复联机重做日志文件(1)——非活动组所有成员全部损坏!
联机重做日志文件至少需要两组,oracle建议每组的成员至少要两个,也需要多路复用的。因为每组的成员的内容的都是一样的。同一组内只要有一个成员还存在就可以保证不丢数据的。 1、在open状态下非活动组所有成员全部损坏,可以重建一个成员。SQL> conn /as sy原创 2011-10-11 18:02:58 · 750 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理恢复联机重做日志文件(2)——当前活动组所有成员全部损坏!
1、在关闭状态下 当前活动组所有成员全部损坏,需要不完全恢复然后resetlogs打开数据库。恢复完成后会自动创建一个丢失了的online redo logfile。SQL> startupORACLE 例程已经启动。Total System Global Are原创 2011-10-11 19:34:15 · 612 阅读 · 0 评论 -
ARCHIVELOG模式下用户管理恢复临时文件!
比如一些排序的操作,oracle会在PGA里面进,如果PGA容纳不下就会采用临时文件。 1、关闭的状态的数据库临时文件丢死了,打开数据库后oracle会自动创建一个。SQL> conn /as sysdba已连接到空闲例程。SQL> startupORAC原创 2011-10-11 20:00:28 · 525 阅读 · 0 评论 -
启用RMAN块修改跟踪&差异备份和增量备份的区别!
启用RMAN块修改跟踪在10g中Oracle提供了一个新的特性:块修改跟踪(Block Change Tracking)。启用块修改跟踪后,RMAN不用再去扫描数据文件中的每一个块了,直接通过块修改跟踪文件就可以获取哪些块发生了修改的信息。SQL> select * fr原创 2011-10-13 13:12:31 · 3313 阅读 · 0 评论 -
RMAN备份与恢复(1)——对数据库进行完全介质恢复!
首先开始前对数据库做一个全备份,后面的实验都依赖这个备份集。RMAN> show all;RMAN 配置参数为:CONFIGURE RETENTION POLICY TO REDUNDANCY 2;CONFIGURE BACKUP OPTIMIZATION O原创 2011-10-13 16:41:31 · 1001 阅读 · 0 评论 -
RMAN备份与恢复(3)——恢复归档日志、控制文件、参数文件!
恢复归档日志(会恢复到归档日志所在目录,有初始化参数log_archive_dest_1决定。)RMAN> list backup of archivelog all;备份集列表===================BS 关键字 大小 设原创 2011-10-14 11:35:33 · 2355 阅读 · 0 评论 -
RMAN备份与恢复(4)——恢复无备份的数据文件!
首先模拟数据文件丢失RMAN> shutdown immediate数据库已关闭数据库已卸装Oracle 实例已关闭RMAN> host; [oracle@linux dbs]$ rm -rf /u01/app/oracle/oradata/o原创 2011-10-14 11:54:16 · 917 阅读 · 0 评论 -
RMAN常用命令汇总!
进入RMAN:$ rman target sys/oracle@orcl --远程连接到rman$ rman target sys/oracle@orcl @backup_db.ram --远程连接到rman并执行指定脚本$ rman target sys/o原创 2011-10-13 12:47:05 · 3704 阅读 · 0 评论 -
使用恢复目录(catalog)数据库!
创建恢复目录1、创建表空间SQL> create tablespace rman datafile '/u01/app/oracle/oradata/orcl/rman1.dbf' size 50m;表空间已创建。2、创建用户SQL> cr原创 2011-10-15 14:23:38 · 3152 阅读 · 0 评论 -
RMAN备份与恢复(2)——恢复有备份的表空间和数据文件!
首先模拟数据文件丢失SQL> select status from v$instance;STATUS------------OPENSQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbfSQL原创 2011-10-13 17:01:15 · 1026 阅读 · 0 评论 -
通过RMAN备份恢复数据库到其他服务器!!!
1、记录一下源数据库的DBIDSQL> select DBID from v$database; DBID----------1292118315[oracle@linux flash_recovery_area]$ rman target /原创 2011-10-14 15:24:49 · 4989 阅读 · 0 评论 -
RMAN备份与恢复(5)——将数据文件或表空间还原到新位置!
1、将数据文件还原到新位置。首先删除数据文件,模拟磁盘故障,丢失数据文件。SQL> conn /as sysdba已连接。SQL> ! rm -rf /u01/app/oracle/oradata/orcl/tb1.dbfSQL> conn u1/u1原创 2011-10-14 17:17:08 · 1899 阅读 · 0 评论 -
迁移数据库——rman Duplicate 异机复制数据库
数据库版本是:Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - ProductionRMAN 异机复制和同机复制操作步骤是一样的,不同的是我们需要把备份的文件copy到辅助库上去,而且位置要和目标库上一致,因为备份集的位置是写在控制文件里的。目标库信息:ORACLE_BASE: /u01/appORA原创 2013-07-03 15:55:36 · 1582 阅读 · 0 评论