打开Rman
方法1:开始菜单--运行--“输入”rman,回车,打开rman命令行提示窗口,输入:connect target;连接上数据库,接下来就可以进行操作了。
方法2:开始菜单--运行--“输入” rman target username/userpwd@
Orcl
,(红色字体表示数据库实例名
)回车,打开的rman命令行窗口,已经连接上数据库了,接下来就可以直接进行操作了
备份数据库
在命令行模式下,输入以下命令:
backup as copy database;
//此命令表示对数据库进行完全备份,默认情况下数据库处在“非归档模式”下。在执行上面的
//命令时,会出现下面的错误“无法按 noarchivelog 模式备份或复制文件”,针对这个错误,可以按下面的方式解决。
开始菜单--运行--“输入” sqlplus / as sysdba,回车,以管理员的身份连接数据库,依次执行以下命令:
shutdown immediate //关闭数据库
startup mount //启动数据库到“装载”状态
alter database archivelog //修改数据库为“归档模式”
alter database open //打开数据库
然后,再回到Rman。执行backup操作
backup database;
此时出现了另一个错误:ora-19809:超出了恢复文件数的限制
ora-19804:无法回收 52428800 字节磁盘空间 从<2147483648限制中>
解决办法1:通过Sqlplus以管理员的身份连接Oracle数据库,执行下面的命令:
show parameter db_recovery_file_dest_size; //默认是2G
alter system set db_recovery_file_dest_size=4G; //增大空间后,备份成功。
解决办法2:改变备份路径
backup database format 'd:/oracle/backup/%U.dbf'
plus archivelog format 'd:/oracle/backup/%U.arc';
备份压缩功能
可以选择在备份命令里显示指定压缩选项:
BACKUP AS
COMPRESSED
BACKUPSET DATABASE PLUS ARCHIVELOG;
--仅对1,5文件压缩备份
BACKUP AS COMPRESSED BACKUPSET DATAFILE 1,5;
也可以配置RMAN指定压缩选项:
CONFIGURE DEVICE TYPE DISK PARALLELISM 1 BACKUP TYPE TO COMPRESSED BACKUPSET;
--备份压缩到指定路径
backup as
Compressed
backupset database format 'd:/oracle/backup/%U.dbf'
plus archivelog format 'd:/oracle/backup/%U.arc';
还原数据库
在Rman命令行下,执行
Restore database; //恢复文件
Startup; //启动数据库
会出现这样一个错误:ora-01113:文件 需要介质 恢复
这是因为Restore只是恢复物理的数据文件,归档日志,控制文件,数据库文件并没有衔接起来
这时需要用Recover 命令来做到这一点,执行下面的命令:
Recover database;
然后
Startup;
OK,一切又恢复了原样
连接Sqlplus的方法:
方法1:开始菜单--运行--Sqlplus,回车,然后按照提示输入用户名和密码即可。
方法2:开始菜单--运行--Sqlplus username/userpwd@orcl
以管理员身份连接Sqlplus
方法1:开始菜单--运行--Sqlplus / as sysdba,回车
方法2:开始菜单--运行--Sqlplus sys/syspwd,回车。syspwd表示用户sys的密码
查询数据库的归档状态
要查询数据库的归档状态,必须以SYSDBA的身份连接数据库,在Sqlplus环境下,输入:
Archive log list;
一些常用命令
使用RMAN进行备份和恢复的常用命令
===================
连接到目标数据库(不用恢复目录数据库)
rman target / nocatalog
显示rman配置
RMAN> show all;
====================
报告目标数据库的物理结构
RMAN> report schema;
报告陈旧备份
RMAN> report obsolete;
报告不可恢复的数据文件
RMAN> report unrecoverable;
列出备份信息
RMAN> list backup;
RMAN> list backup of database;
RMAN> list backup of tablespace table_name;
RMAN> list backup of controlfile;
RMAN> list backup of spfile;
RMAN> list backupset id;
========================
校验备份信息:
RMAN> crosscheck backup;
RMAN> crosscheck backup of database;
RMAN> crosscheck backup of tablespace system;
RMAN> crosscheck backup of controlfile;
RMAN> crosscheck backup of spfile;
========================
删除备份
RMAN> delete obsolete; -- 删除陈旧备份
RMAN> delete expired backup;
RMAN> delete backupset id;
RMAN> delete backup; -- 删除所有备份
=========================
改变备份集的状态
RMAN> change backupset id unavailable; -- available
改为长期备份
RMAN> change backupset id keep forever logs;
RMAN> change backupset id keep until time 'sysdate+60' logs;
RMAN> change backupset id nokeep;