文章详情

  • 游戏榜单
  • 软件榜单
关闭导航
热搜榜
热门下载
热门标签
php爱好者> php文档>rman 备份知识总结

rman 备份知识总结

时间:2010-06-15  来源:dbconf

rman 备份知识:
一、在启用rman 备份时,要启用 archive log 模式。
查看是否处在 archive log 模式
SQL〉archive log list 
修 改到 archive log 模式:
SQL〉startup mount   //修改archivelog 的文件格式
SQL>alter system set  log_archive_format='%t_%s_%r.dbf' scope=both;
  //修改archivelog 的存放路径,下面为归档路径在ASM中diskgroup中
SQL>alter system set  log_archive_dest='+DGDATA/jw/arch/'  scope=both; 
SQL〉alter database  archivelog;
SQL〉archive log list;
SQL〉alter system  archive  log current;   //马上进行归档
SQL〉alter database open; SQL〉archive log list;
Database log mode              Archive Mode
Automatic archival             Enabled
Archive destination            +DGDATA/jw/arch/
Oldest online log sequence     137
Next log sequence to archive   139
Current log sequence           139
    二、登陆rman #su - oracle $rman nocatalog     直接进入rman,以非 catalog 方式进行备份
rman〉 connect target /     连接到 target database
rman〉backup database;  对数据库进行全备
rman〉list backupset;    查看备份的情况
默认备份存放的目 录:@ORACLE_BASE/flash_recovery_area/数据库 名/backupset/时间/
这个参数来之于
rman〉 show all;  查看备份参数
    三、catalog  和nocatalog 的区别 rman  的nocatalog 方式下的备份信息放在 control file 里面
由于 control file 是一个二进制的文件,在linux 地下用 strings 命令查看  control file 里面的信息。
#string control03.ctl    就可以看到有备份的信息出现了。 rman 的 catalog 方式时,备份信息放在 catalog database里面。     四、增量备份
增量备 份 (0级增量备份也是全备,但可以做为后级增量备份的基础,full 备不能)
rman〉backup incremental level=0 database;
增量备份(1级增量备份)
rman〉backup incremental level=1 database;
备份 出来的文件小很多。
rman〉backupset list;
五、rman备份文件与信息一致性处理
利用 rman 对以前的 archivelog 进行处理提前备走,再修改切换到新的archivelog 的新目录。如果直接切换到新的归档,而之前的archivelog 没有用rman备走,那么应该采用以下操作:
#rman target /
rman> crosscheck archivelog all;      //一般在 archive log 备份失败时,需要需要重新检查。
rman> delete expired archivelog all;
在controlfile中记录着每一个archivelog的相关信息,当我们在OS下把这些物理文件 delete掉或异常变动后,在controlfile中仍然记录着这些archivelog的信息,当我们手工清除archive目录下的文件后,这些 记录并没有被我们从controlfile中清除掉,也就是oracle并不知道这些文件已经不存在了!这时候我们要做手工的清除。
rman> crosscheck archivelog all;的作用就是检查控制文件和实际物理文件的差别。
rman> delete expired archivelog all;就是同步控制文件的信息和实际物理文件的信息。
如果单独执行crosscheck而没有执行 delete那么备份还是失败的,原因是那些控制文件的信息和实际的信息还是不同
  rman> crosscheck backupset; 是检查备份集和实际的文件   rman> delete expired backupset;  删除过期无效的备份集
1、备份集有两种状态A(Available,RMAN认为该项存在于备份介质 上)X(Expired,备份存在于控制文件或恢复目录中,但是并没有物理存在于备份介质上)
2、crosscheck 的目的是检查RMAN 的目录以及物理文件,如果物理文件不存在于介质上,将标记为Expired。如果物理文件存在,将维持Available。如果原
先标记为 Expired的备份集再次存在于备份介质上(如恢复了损坏的磁盘驱动器后),crosscheck将把状态重新从Expired标记回 Available。
3、crosscheck 输出分两部分。第一部分列出确定存在于备份介质上的所有备份集片,第二部分列出不存在于备份介质上的备份集片,并将其标记为Expired。
当设 置备份保存策略后,一个备份过期,crosscheck之后标记为丢弃的备份状态依旧为availabel,要删除丢弃备份
rman〉delete obsolete   五、rman 备份操作 # rman  nocatalog   以nocatalog 方式登录rman
rman〉 connect target  sys/password@tnsname  连接到目标库 ,如果数据库及 监听没有启动,这是不行的应该
rman〉connect target /  提示连接到一个idle instance
rman〉 startup    启动数据库这个根sqlplus 里面的操作一样的。
  数据库全备
rman〉 backup database plus archivelog delete input;  
这个也是一个全备(包括了 datafile,controlfile,spfile,archivelog),可 以不要delete input ,表示备份完成后,把archive log 删除,以节约空间。
  数据库增备 rman〉backup incremetal level=0 database plus archivelog; rman〉backup incremetal level=1 database plus archivelog;   备份表空间
rman〉 report schema; 显示整个数据库的规划情况表,包含tablespace, datafile等。
rman〉backup tablespace users;  全备份 users 表空间
备份控制文件
rman> backup current controlfile;  单独备份controlfile

rman> backup database include current controlfile;
全备份数据库时,默认 已经包含了,可以不指明。(可以通过这样来增加controlfile的镜像)   镜像备份,相当于拷贝: rman〉copy datafile 5 to '/u01/rmanbak/tbs01bak.dbf';
 5 为对应于rman> report schema; 文件号
rman〉list copy;  显示copy 的镜像备份   rman批命令备份:
rman〉run{
allocate channel cha1 type disk;
backup format "/u01/rmanbak/full_%t"
tag full-backup 
database;
release channel cha1;
}
    六、编写一周自动备份计划 1、编写备份脚本 #vi bakl0
run{
allocate channel cha1 type disk;
backup
incremetal level 0
format "/u01/rmanbak/inc0_%u_%T"
tag monday_inc0 
database;
release channel cha1;
}
#vi bakl1
run{
allocate channel cha1 type disk;
backup
incremetal level 1
format "/u01/rmanbak/inc1_%u_%T"
tag monday_inc1 
database;
release channel cha1;
}
#vi bakl2
run{
allocate channel cha1 type disk;
backup
incremetal level 2
format "/u01/rmanbak/inc2_%u_%T"
tag monday_inc2 
database;
release channel cha1;
}
#crontab -e -u oracle
45 23 * * 0 rman target / msglog=bakl0.log cmdfile=bakl0
45 23 * * 1 rman target / msglog=bakl0.log cmdfile=bakl2
45 23 * * 2 rman target / msglog=bakl0.log cmdfile=bakl2
45 23 * * 3 rman target / msglog=bakl0.log cmdfile=bakl1
45 23 * * 4 rman target / msglog=bakl0.log cmdfile=bakl2
45 23 * * 5 rman target / msglog=bakl0.log cmdfile=bakl2
45 23 * * 6 rman target / msglog=bakl0.log cmdfile=bakl2
#service crond restart   七、rman恢复 恢复control file控制文件,首先,关闭数据库
sql> shutdown abort;
#rman target /
rman〉startup nomount;
rman> restore controlfile from autobackup;  
rman〉quit
#rman  tartget /
rman>alter database mount;  //control 已经恢复了,可以mount 起来
rman>alter database resetlogs;  //会报错,应该recover database,会报 controlfile 有问题。
rman> recover database;
rman>alter database open resetlogs;

spfile 丢失,恢复
startup nomount;
set dbid 9815108;
restore spfile from autobackup;
shutdown immediate;
set dbid  9815108;
startup;
 
redolog file 丢失的恢复
#sqlplus / as sysdba
SQL>shutdown immediate;
SQL>startup mount;
SQL>recover database until  cancel;
SQL>alter database open resetlogs;
SQL>select * from dual;

datafile 丢失
rman>sql "alter database datafile 3 offline";  3为 datafile 的编号
rman>report schema;
rman>restore datafile 3
rman>recover datafile 3
rman>sql "alter database datafile 3 online";
表空间恢复:
rman〉sql "alter tablespace users offline";
或 者
rman> sql "alter tablespace users offline immediate";
rman> restore tablespace users;
rman>recover tablespace users;
rman>sql "alter tablespace users online";
  在数据库出现问题时,非catalog 方式完全恢复
startup nomount;
restore controlfile from autobackup;
alter database mount;
restore database;
recover database;
alter database open resetlogs;

八、catalog 数据库的建立
1、 创建 catalog 所用的表空间
SQL〉create tablespace rman_ts datafile '/u01/oracle/rmants.dbf' size  20M;
2、创建RMAN 用户并授权
SQL〉 create user rman identified by rman default
tablespace rman_ts quota unlimited on rman_ts;
SQL> grant recovery_catalog_owner to rman;
SQL〉 grant connect to rman;
SQL> desc dba_users;  //查看用户信息
SQL〉select username,account_status from dba_users;
SQL> desc dba_sys_privs
SQL〉 select * from dba_sys_privs where grantee='resource';
查看授权资源之后,获得的权限
SQL〉 select * from dba_sys_privs where  grantee='recovery_catalog_owner';
或者:
SQL> create user rman identified by rman;
SQL> alter user rman default tablespace rman_ts temporary tablespace temp;
SQL> alter user rman quota unlimited on rman_ts;
SQL> grant connect, resource, recovery_catalog_owner to rman;
SQL> exit;

3、创建恢复目录
#rman catalog rman/rman
rman> create catalog tablespace rman_ts;
rman>exit
4、在media server端的使用,注册catalog 数据库
配置media server 端的 tnsname 连接到 catalog rman 库
#rman target / catalog rman/rman@tnsname
rman> register database;
 
相关阅读 更多 +
排行榜 更多 +
辰域智控app

辰域智控app

系统工具 下载
网医联盟app

网医联盟app

运动健身 下载
汇丰汇选App

汇丰汇选App

金融理财 下载