备份
1.一致性备份(冷备,关闭实例下的备份)
2.不一致性备份(热备,不用关闭实例下得备份)
冷备与热备的区别
冷备就是可以保证控制文件与数据文件的SCN号相同,冷备就是用操作系统命令将所有的控制文件、数据文件、参数文件、密码文件都复制一份,如果有损坏的文件就删除原来的文件将备份的文件复制到原路径
热备不能保证备份时刻控制文件与数据文件的SCN号一样,如果损坏要恢复必须借助日志,所以一定要做归档
备份的类型:
完整备份(备份所有数据库块即所有的数据文件,至少一个控制文件,参数文件和密码文件)
部分备份(备份部分表空间或者部分表)
完全备份(备份所有数据文件的块,即备份所有数据文件)
增量备份(备份变化的数据块)
增量备份两种类型
0级备份(跟完全备份一样)、1级备份【累积型(与上一次的0级备份做比较,备份改变的数据块)、差异型(与前一次的增量备份做比较,备份改变的块)】
RMAN不能管理磁带 必须配介质管理库MML 数据库模式必须为归档模式 archive log list;查看是否归档
手工对表空间做备份时 无法保证没有用户使用当前备份的表空间 所以必须设置为备份模式
alter tablespace tt begin backup
!cp /u01/tt.dbf /tmp 使用操作系统命令复制tt表空间的数据文件到tmp目录下
alter tablespace tt end backup
RMAN备份
RMAN做备份的时候,有两种备份形式
1.镜像备份(image copies) 就是全部copy一份
2.备份集(backup set) 只备份存了数据的块,占用空间少,但是恢复速度没有镜像备份快
默认RMAN备份是放入到闪回区的 如果不想放入闪回去就使用format ‘路径’ 例如:backup database format ‘/u01’ 使用select * from v$flash_recovery_area_usage;可以查看闪回区的使用情况
释放闪回恢复区空间
1、备份数据库后删除过期归档日志
2、在rman环境删除控制文件总的归档信息
RMAN>crosscheck archivelog all;
RMAN>delete expired archivelog all;
一定要添加关键字expired,不然会将所有归档日志信息都删除
如果不做第二步,闪回恢复区的空间也能释放,数据库不会挂起,但v$flash_recovery_area_usage中的信息不会被更新
清空内存中的数据alter system flush buffer_cache;
problem
数据库启动如果数据文件损坏如果有备份如何解决?
只要不是系统数据文件先把损坏的数据文件离线alter tablespace datafile 6 offline;然后把数据库从mount状态启动到open状态,然后把损坏数据文件的备份复制回原来的路径下,然后recover datafile6即重新应用日志文件,然后再把该数据文件上线alter tablespace datafile 6 online;
RMAN中如果有备份的数据文件坏掉了如何恢复?
首先关闭数据库用shutdown abort
启动数据库到mount状态
进入RMAN 使用命令restore database; 恢复tt.dbf
然后执行命令recover database;
再打开数据库alter database open;
EM中可以设置每个备份片大小,这是因为操作系统上存储的单个文件大小是有限制的
启用块跟踪 在制定目录下系统会自动给你生成一个二进制文件,记录已经变化的数据块,如果数据发生变化就把块的地址写到这个文件中去
用命令对某表空间做增量备份的0级备份
backup incremental level 0 cumulative device type disk‘%TAG’tablespace tt;
backup device tupe disk tag‘%TAG’archivelog all not backed up;
可以把控制文件放入trace文件中 如果你的所有控制文件全丢了 还是可以用trace启动数据库
命令alter database backup controlfile to trace;
步骤:
1 想备份控制文件到跟踪文件
2 复制从startup nomount
到alter database open
保存为文件/u01/cbak.txt
vim 跟踪文件
:sp /u01/cbak.txt
ctrl +w 可以在两窗口中移动光标
在跟踪文件中 :set nu 设置行号 选择从startup nomount 到alter databae open
定位到startup noumount 45yy
ctrl+w 到新的窗口 p粘贴 :wq保存
测试:
正常没法关闭数据库
强制关闭:shutdown abort
数据一定关闭
sqlplus / as sysdba
start /u01/cbak.txt
使用RMAN恢复必须保证数据库在mount状态下,如果数据库没有mount,那么就登陆到RMAN上然后手动指定数据库dbid号,命令set dbid=XXXX
备份方式
整库的备份
backup database
backup database format ‘/u01/backup/bak_%u’ 表示是备份集
查看创建的全库备份
list backup of database
表空间的备份
backup tablespace users;
list backup of tablespace users;
删除备份: delete backupset 10;
数据文件备份
可以对名称也可以对file_id
select file_id,file_name from dba_data_files;
backup datafile 4;
查看数据文件备份
list backup of datafile n
如果要查看多个文件 n=多个序号,并用逗号隔开
控制文件的备份
a.手动执行备份
backup current controlfile;
b.执行backup命令时指定include current controlfile;
backup database include current contorlfile;
c.备份系统表空间会触发备份控制文件
backup datafile 1;
d.通过configure命令将controlfileautobackup设置为on
configure controlfile autobackup on;
查看list backup of controlfile;
归档文件备份
a.利用backup archivelog命令
backuo archivelog all;
all指备份当前所有可访问到的归档日志文件
until,scn,time,sequence
b.执行backup命令时,指定plus archivelog
backup current controlfile plus archivelog;
在备份控制文件之前,先对所有归档文件进行备份
backup ….. plus archivelog命令执行的操作
a.运行alter system archive log current(命令作用是对当前的redolog进行归档,并且切换redolog)
b.执行backup archivelog all 命令
c.执行backup …..命令指定项进行备份
d.再次运行alter system archive log current对当前redolog进行归档
e.对新生成的尚未备份的归档进行备份
查看已备份的归档日志片段
list backup of archivelog;
初始化参数文件的备份
RMAN自动备份服务器的初始化参数文件,并放于控制文件的备份片段中,极少需要对spfile文件备份
备份命令:backup spfile;
对备份集做备份
对备份集做备份只能放到磁带中,命令:
backup backupset all;
备份指定的备份集
backup backupset n;(n表示备份集ID,可以指定多个)
RMAN命令
|
|