数据备份
物理备份 : 底层数据块
逻辑备份 :exp(export), imp(import) 导入导出工具,提取成dump文件,再将dump文件放入数据库
expdp, impdp 数据蹦
utilities手册里有
exp -help
which exp
exp SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR)
expdp dbms_datapump : 支持断点续传
逻辑备份 :速度较物理备份慢, 但更精细
物理备份 :底层数据块的拷贝
LUN —> Storage
oracle凭借什么检查一个块是否物理损坏 :
db block 的结构 :块头SCN,块尾SCN(部分)值是否一致
check sum 值是否一致
oracle凭借什么检查一个块是否逻辑损坏 :
数据文件中的SCN和控制文件中的SCN是否一致
eg :
desc v$database; 描述反应控制文件内容的视图
select current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change#, last_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
shu immediate
startup mount
desc v$database; 描述反应控制文件内容的视图
select current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change#, last_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
shutdown transactional, immediate, normal 将数据库一致性关闭,以得到一致性SCN
alter database open;
shut abort
startup mount
select current_scn from v$database;
select checkpoint_change# from v$datafile;
select checkpoint_change#, last_change# from v$datafile;
select checkpoint_change# from v$datafile_header;
物理备份
冷备份 :用户管理 (shutdown immediate, cp)
热备份 :用户管理 (begin backup end backup)用户在表空间层面实施备份
alter database open;
desc dba_data_file
select file_id, file_name from dba_data_files;
shu immediate
start up mount
alter database atchivelog;
alter database open;
archive log list;
alter tablespace users begin backup;
note : 要想实现热备份,必须先启动归档模式。用户管理的
eg :
cd /u01/app/oracle/oradata/ENMOEDU/
ls
cp users01.dbf users01.dbf.bak
ls
rm -rf users01.dbf
ls
alter tablespace users end backup;
create table test (id number) tablespace suers;
insert into test values(1);
commit;
select * from test;
shu immediate
cp users01.dbf.bak users01.dbf;
alter database open;
recover datafile 4;
select * from test;
eg :
alter tablespace users begin backup;
insert into test values(2);
commit;
select * from test;
alter system switch logfile;
alter system switch logfile;
/
/
/
/
cd ..
cd fast_recovery_area/ENMOEDU/archivelog
cd 2015_07_25/
alter tablespace users end backup;
alter tablespace users begin backup; :user表空间的文件头被固定住
eg :
alter system switch logfile;
select file#, checkpoint_change# from v$datafiel_header;
alter system switch logfile;
select file#, checkpoint_change# from v$datafiel_header;
(4号文件头不变)
shu immediate
shu abort
startup
alter tablespace users end backup;
alter database open;
Rman : 备份管理工具,替代用户管理
rman
rman -help
rman 在oracle实例处于mount状态下可以做冷备份
rman做热备份 :backup database
SID设置的角色
eg :
rman target sys/oracle@ENMOEDU
backup database;
利旧
rman备份dbv校验
rman : 对datafile备份
archive : 对redolog备份
完全备份 :backup database(full),备份所有数据文件和控制文件
增量备份 :只备份发生改变的数据块(SCN发生变化的块,需检查所有数据块)
11g, 引入block change tracking块改变跟踪文件
差异增量备份 :备份上次备份以来的增量变化,备份块
累积增量备份 :备份到上一次全被的增量变化,恢复快
默认差异增量备份
0级增量备份效果等于全备份
1级增量备份表示
备份集 : 把多个datafile打包到一个tar包里
镜像副本 :拷贝
eg :
cd /u01/app/oracle/oradata/ENMOEDU
ls
cd ..
ls
tar -zcvf ENMOEDU.tar.gz ENMOEDU/
eg : rman 的命令
rman target /
x
show all
list x
list backup;
backup x;
backup database x;
backup database plus x;
backup database plus archivelog x;
backup database plus archivelog delete all input; : 备份数据库,备份归档,删除之前的归档
list backup;
backup database plus archivelog format ‘/u01/app/oracle/%t%f.bak’;
eg :
exit
ls
cd fast_recovery_area/
ls
cd ENMOEDU/
ls
cd archivelog/
ls
cd ..
ls
cd backupset/
ls
show parameter db_recovery
关于rman的手册 :reference , guide
常将rman的设置放在一个脚本里
eg :
cd /u01/app/oracle
ls
sqlplus / as sysdba
show parameter db_recovery
show parameter db_fi
只要备份文件有修改,控制文件就自动备份
恢复
还原(restore) :将备份的内容放回数据文件的位置
恢复(recover) :在文件上应用文件日志和归档日志
用户还原 :copy
用户恢复 :recover (sqlplus)
rman还原 :restore
rman恢复 :reciver (rman)
完全恢复 :应用大于当前scn值的所有归档(介质故障,软件故障,
不完全恢复 :
实例恢复 :smon进程在数据库下一次启动时读取online redo
介质恢复 :手工restore, recover
cd /u01/app/oracle/oradata/ENMOEDU/
ls
rm -rf *.dbf
ps -ef |grep smon
kill 9 44095
quit
sqlplus / as sysdba
restore tadabase;
select status from v$instance;
alter database open;
flashback闪回数据库,生产中常不开,影响数据库性能
闪回版本处理
闪回事物处理
eg :
select table_name from dict where table_name like ‘%rec%’;
show recyclebin;
select * from tab;
drop test1;
show recyclebin;
drop table test purge; : 永久删除表
实例恢复checkpoint进程
完全检查点 :alter system checkpoint, shutdown
增量检查点 :
eg :
show parameter control
alter database open resetlogs; :将日志序列号清零
v$log : 日志视图
alter database clear logfile group 1;
list failure;
advise failure;