ORACLE学习笔记 第三天

参数文件备份

       自动备份

       Backup命令

              Backup spfile;放在快速恢复区

              Backup spfile fromat ‘/u01/backup/spfile _%T_%U’ –参数文件被备份两次,手工、自动

              List backup  --备份查看

              List backup of spfile;

             

参数文件恢复

       Restore命令

              Restore spfile 恢复到默认的目录下

              Restore spfile from autobackup;

              Restore spfile tag ‘tag名称’

              Restrore spfile from ‘文件名称’

       参数文件位置固定:$ORACLE_HOME/dbs

 

参数文件备份/恢复步骤

       备份参数文件

  查看备份

       模拟故障,先关闭数据库,删除参数文件(出现故障时恢复参数文件)

              RMAN 中执行shutdown

    Cd $ORACLE_HOME/dbs

              Mv 参数文件 新的参数文件

             

       恢复过程

    参数文件丢失时候,可以用RMAN启动实例,采用的模板参数文件,不是最终看的实例,作用是恢复参数文件。

              Export ORACLE_SID = db01

              Rman target /

              RMAN 中执行startup nomount

              新终端RMAN同时连接两个实例 rman target sys/1234@db01 catalog rcowner/1234@testdb

              Restore spfile from autobackup;

              参数文件恢复后必须Shutdown

             

控制文件备份

       自动备份      

       与其他文件一起备份

              Backup tablespace users include current controlfile;  

       单独备份控制文件

              Backup current controlfile;--放在快速去

              Backup current controlfile format ‘/u01/backup/con_%T_%U’

 

控制文件恢复

       List backup;  --列出备份    

       Restore controlfile;

       Restore controlfile from autobackup;

       Restore controlfile form tag ‘tag名称’

       Restore controlfile form tag ‘文件名称

       Show parameter control_file; --查找控制文件在什么地方;

 

控制文件备份/恢复示例

       对控制文件备份

              Rman 同时连接两个数据库             

    Backup current controlfile format ‘u01/backup/con_%T_%U’

       查看备份

              List backup of controlfile

       关闭数据库,模拟故障,模拟破坏控制文件

              Shutdown

    Cd 进入控制文件路径

              Mv 改名

       恢复

              Startup 观察错误

      警告文件所在目录       show paramrter user_dump_dest

                     .log文件为警告文件   

                     .trc文件为跟踪文件

             

           Restore controlfile from autobackup;

              RMAN中Alter database mount  --还不能打开,原因是SCN三者不一样

              RMAN中重做日志也需要更新   recover database;

              Sqlplus中Alter database open resetlogs;把重做日志清空,必须清空。

 

数据文件备份

              Backup database;  --对数据库做full备份

              Backup tablespace users

              Backup datafile ‘XX’

              Backup full database;

              Backup as backupset database;

             

              Backup database format  ‘db_full_%T_%U’ tag ‘XX’

      

              Backup incremental level 0 database format ‘XXX’

    %T:YYYYMMDD  %U随机的字符串   %p备份片的编号 每个备份片是一个文件 一个备份集可以对用多个备份片 %c备份的拷贝(可以放在多个地方)

              Backup incremental level 0 tablespace  users fromat ….

              。。。。。。。。。。。。。Datafile ‘XXX’ 。。。。。。。

 

    Backup incremental level 1 database format ‘XXX’

              Backup incremental level 1 tablespace  users fromat ….

              。。。。。。。。。。。 1 datafile ‘XXX’ 。。。。。。。

 

              Report schema;

 

数据文件备份/恢复(针对表空间users)

       进行full或者0级备份

              Backup full database users fromt ‘’

              List backup of tablespace users;

       关闭数据库,模拟故障,删除数据库文件

       恢复

              查看故障视图       show patameter control_file

                                          Desc v$diag_info

                                          Select name,value,from v$diag_info

  Trace跟踪 alert警告

              Shutdown;

              Pwd

              Startup 观察错误;普通表空间故障不影响数据库打开

  数据文件的恢复状态

        MOUNT:SYSTEM 表空间,或者整个数据库

        OPEN :恢复普通表空间。

  数据文件故障判断

    Sqlplus 或者RMAN

              使用EM

              动态性能视图 v$recover_file 需要sqlplus

              Select file#,error from v$recover_file

              Desc Dba_data_files

              警告文件和跟踪文件

              Vi alert_orcl.log

              Vi 跟踪文件

      

    文件状态改为OFFLINE

      RMAN中       Sql ‘Alter database datafile 4 offline’

      RMAN中       Alter database open;

      RMAN中       Restore tablespace users;

      RMAN中       Recover tablespace users;

      RMAN中       Sql ‘alter database datafile 4 online’

 

              恢复原理:

      备份恢复restore

      重作日志恢复recover

 

存储设备损坏恢复

       进行full或者0级备份

                     Backup full database users fromt ‘’

                     List backup of tablespace users;

              关闭数据库,模拟故障,删除数据库文件

    恢复

              Startup 观察错误;普通表空间故障不影响数据库打开

    文件状态改为OFFLINE

    RMAN中       Sql ‘Alter database datafile 4 offline’

    RMAN中       Alter database open;

 

    Run{

    Allocate channel ch1 device type disk;

    Set newname for datafile 4 to '/u02/orcl/users01.dbf';

    Restore datafile 4;

    Switch datafile 4;

    Recover datafile 4;

    Sql 'alter database datafile 4 online';

    Release channel ch1;

    }

 

Linux任务调度

       At:一次性,时间确定;

       Crontab:周期性(用的较多)

       Batch:没有具体时间

 

测试增量备份、恢复(针对表空间users)

       进行0级备份

              Sys用户   rman连接两个数据库

    Run{

    allocate channel ch1 device type disk;

               backup incremental level 0 tablespace users format '/u01/backup/users_0_%T_%U';

               release channel ch1;

             }            

    List backup of tablespace users;--查看备份

    以scott用户登录target,在表空间中创建t20,写入数据10/20

    Conn scott/tiger

    Create table T20(id number) tablespace users;

    Insert into T20 values(100);

    Insert into T20 values(200);

    Commit

       进行1级备份

    Run{

               Allocate channel ch1 device type disk;

    Backup incremental level 1 tablespace users format '/u01/backup/users_1_%T_%U';

              Release channel ch1;

             }            

    List backup of tablespace users;--查看备份

              以scott用户向表t20写入新数据30/40

    Insert into T20 values(300);

    Insert into T20 values(400);

    Commit;

       进行2级备份

    Run{

              Allocate channel ch1 device type disk;

              Backup incremental level 2 tablespace users format '/u01/backup/users_2_%T_%U';

    Release channel ch1;

    }

    List backup of tablespace users;--查看备份

              以scott用户向表t20写入新数据50/60

    Insert into T20 values(500);

    Insert into T20 values(600);

    Commit

              关闭数据库,模拟故障(文件故障、硬盘故障)

    Shutdown;

              Cd /u02/orcl

    Mv users01.dbf users01.dbfz

    Rmna 中 startup

    report schema;  --看数据文件路径

    Sql 'alter database datafile 4 offline';

    Alter database open;

              恢复

    run{

    Allocate channel ch1 device type disk;

    Restore tablespace users;

    Recover tablespace users;

    Sql 'alter database datafile 4 online';

    Release channel ch1;

    }

 

整个数据库备份

       针对整个数据库进行0级备份;

  Run{

                    Allocate channel ch1 device type disk;

                    Backup incremental level 0 database format '/u01/backup/users_0_%T_%U';

                    Release channel ch1;

             }            

       向数据库写入数据;(不在备份,依靠重作日志备份)

    Insert into T20 values(700);

    Insert into T20 values(800);

    Commit;

       模拟故障;

    Rm 删除

       恢复数据库;

    Alter database open;

       恢复

    run{

    Allocate channel ch1 device type disk;

    Restore database;

    Recover database;

    Alter database open;

    Release channel ch1;

    }

 

 

 

 

 

Oracle 11g数据库管理员指南 机械工业出版社
Oracle RAC 11g实战指南 机械工业出版社
Oracle数据库备份、恢复与迁移 机械工业出版社 刘宪军

800
update:800--->900 commit
update:900--->1000 commit

snapshot too old

SELECT empno,ename,sal FROM emp
AS OF TIMESTAMP TO_TIMESTAMP('2019-05-16 00:50:00','YYYY-MM-DD HH24:MI:SS')

UPDATE dept
SET loc =(
SELECT loc FROM dept
AS OF TIMESTAMP TO_TIMESTAMP
('2019-05-16 01:06:43', 'yyyy-mm-dd hh24:mi:ss')
WHERE deptno=40)
WHERE deptno = 40

SELECT versions_xid, loc FROM dept
VERSIONS BETWEEN TIMESTAMP
TO_TIMESTAMP ('2019-05-16 01:06:43', 'yyyy-mm-dd hh24:mi:ss')
and
TO_TIMESTAMP ('2019-05-16 01:14:43','yyyy-mm-dd hh24:mi:ss')
WHERE deptno=40;

FLASHBACK TABLE dept TO TIMESTAMP
TO_TIMESTAMP('2019-05-16 01:20:50','YYYY-MM-DD?HH24:MI:SS');

purge table t1;
purge index idx1;
purge tablepspace users;
purge user smith

drop table xyz;

ALTER SYSTEM SET DB_FLASHBACK_RETENTION_TARGET=2880
ALTER DATABASE FLASHBACK ON;

logminer


FLASHBACK DATABASE TO TIME =
"TO_DATE('2019-05-16 01:57:36', 'YYYY-MM-DD HH24:MI:SS')";

SELECT estimated_flashback_size, flashback_size
FROM V$FLASHBACK_DATABASE_LOG;

SELECT oldest_flashback_scn,
to_char(oldest_flashback_time,'YYYY-MM-DD HH24:MI:SS')
FROM V$FLASHBACK_DATABASE_LOG;

 

 

 

 


posted @ 2019-06-11 16:58  heima3  阅读(233)  评论(0)    收藏  举报