1、什么是逻辑备份,用的工具是exp与expdp,或回闪技术?
逻辑备份是指对表、存储过程等数据库对象的备份。其实就是导出数据,与数据所在地位置无关
导出前先指定存放位置(create directory dump_dir as ‘/opt/oracle/oradata/orcl)
赋予操作员导出到权限(grant read,write on directory dump_dir to Scott;)
导出命令:
Expdp directory=dump_dir dumpfile=Scott.dmp tables=emp,dept;
导入命令:
Impdp directory=dump_dir dumpfile=Scott.dmp tables=emp,dept;
也可以是表空间(tablespace=xxx)
可以测试一下先创建表空间(create tablespace xxx datafile ‘/opt/oracle/oradata/oracle/xxx.dbf’ size 100m),再创建表到该表空间(create table aa (name varchar2(10)) tablespace xxx ),添加数据,再备份表空间,再删除该表空间(drop tablespace xxx including contents and datafiles),再查表(select * from tab),再恢复表空间,再查表
也可以是全库(full=y)
回闪技术:
首先要了解DBMS系统自动递增的一个系列号:SCN号,就是v$database中current_scn号
比如当前的scn号为xxx,对数据进行操作后,可以重启数据库导mount状态,在用flahback database to scn xxx;
来回退数据,数据回退后,要用resetlogs选项来打开数据库。
查看利用闪回技术最早可以回退到什么时间(select oldest_flashback_scn,oldest_flashback_time from v$flashback_database_log;)
要开启闪回,数据库必须处于归档模式,并且开启闪回(select flashback_on from v$database),建立闪回区域(alter system set db_recorvery_file_dest=‘/opt/oracle/flash_recovery_area’ scope=both),并设置其大小(alter system set db_recovery_file_dest_size=3g scope=both),再设置数据保留分钟数(alter system set db_flashback_retention_target=1440)(其实就是一天),开启闪回日志(alter database flashback on)
2、rman登陆命令里的nocatalog怎么理解?
3、完全恢复与不完全恢复的区别?
完全恢复是指恢复到数据库失败时到状态。
不完全恢复是指恢复到失败前的某个状态,恢复结束后,在重启数据库时时要用resetlogs选项。
具体命令:
1、当rman连接到一个数据库,可以执行show all查看当前的配置。
2、创建恢复目录:
Create table space sp_rman data file ‘/opt/oracle/Ora data/sp_rman.dbf’ size 20m autoextend on next 5m max size unlimited;
Create user usr_rman identified by abcd1234 default table space sp_rman quota unlimited on sp_rman;
Grant connent,resource,recovery_catalog_owner to usr_rman;
[...]$ rman catalog usr_rman/abcd1234
Rman>create catalog tablespace sp_rman;
$ echo $ORACLE_SID
$ rman catalo usr_man/abcd1234 target /
Rman>register database;
3、开始备份或者恢复前要配置通道
自动通道:
Rman>configure device type disk parallelism 5;
Rman>configure default device type to disk;
手动通道:
Rman>run
{
Allocate channel ch1 device type disk;
Allocate channel ch2 device type disk;
Allocate channel ch3 device type disk;
}
指定备份片的格式:
%d :数据库名称
%T:年月日格式(YYYYMMDD)
%p:该备份集中备份片序号
%c:备份片的拷贝数
%u:自动生成的8个字符的名称
%U:默认格式,相当于%u_%p_%c
备份命令使用注意:
Backup命令要做run命令的花括弧内使用,手动指定的通道才有效。
恢复命令说明:
Restore:把备份的文件还原成目标数据库的物理文件结构。
Recover:负责完成数据库真正恢复工作,目标数据库必须时归档模式。
最简单的备份命令:
Rman>backup database;
通道:自动
备份片名称:%U
备份路径:目标数据库快闪恢复区
备份内容:数据文件、控制文件、重做日志文件、参数文件。
如果要备份归档文件,并把备份过的归档删除了,加语句:plus archivelog delete input;
指定备份路径的备份命令:
Rman>backup database FORMAT ‘/opt/oracle/Ora data/backup/rmanbak/%U’;
指定备份通道的备份命令:
Rman>run
{
allocate channel ch1 device type disk;
backup database FORMAT ‘/opt/oracle/Ora data/backup/rmanbak/%U’;
Release channel ch1;
}
实验数据恢复:
1、先关闭数据库,再到数 |