天天看点

oracle数据库备份

1. 文件查看

  数据文件、控制文件、日志文件查看如下:

  select file#, status, enabled, name from v$datafile;--查看数据文件

  select * from v$controlfile;--控制文件

  select * from v$logfile;--日志文件

  2. 三种备份方法

  1)导入/导出(import/export)

  1.支持类型: table, user, tablespace, full database

  2. 导入导出例子:

exp system/manager@test file=d:\export.dmp owner=(system,sys)--将system和sys的表导出

exp aichannel/aichannel@test file= d:export.dmp tables= (tab1,tab2)--将tab1表和tab2表导出

imp system/manager@test file=d:\export.dmp tables=(tab1,tab2);--将export.dmp中tab1表和tab2表导入

imp system/manager@test file=d:\export.dmp;

  3. 注意:若用户权限不够时需要修改权限

  --先以system/manager登录

  --授予权限

  grant exp_full_database, imp_full_database to username;

  2)冷备份(非归档模式)

  1. 步骤:shutdown数据库---> copy文件---> start数据库

  2.  例子:

connect tigger/sccot as sysdba;

shutdown immediate;

cp d:/test*.dbf d:export   --cp 文件  目标文件夹    数据文件

cp d:/test*.ctl d:export   --控制文件

cp d:/test*.log d:export   --日志文件

startup;

  3)热备份(归档模式)

  2. 将数据库转换为归档模式如下:(注意数据库必须已装载到此实例并且不在任何实例中打开)

  --需先关闭数据库并加载数据库

startup mount;--(startup nomount 启动实例;startup mount 启动实例加载数据库; startup 启动实例加载数据库打开数据库)

alter database archivelog;--数据库必须已装载到此实例并且不在任何实例中打开

  3. 归档相关操作

archive log list;--查看是否出于归档模式;

alter system set log_archive_start =true scope =spfile; --启用主动归档

select name from v$archived_log; --查询归档日志

alter system set log_achive_start=false scope=spfile;--将数据库切换为归档模式

archive log stop;

archive log start;

4. 热备份具体步骤如下:

startup mount;

alter database archivelog;

alter database open;

alter tablespace users begin backup; --设置备份模式;

host copy d:\oracle\*.dbf d:\export;--拷贝

alter tablespace users end backup ;--结束备份状态

alter system switch logfile--切换日志,使用当前日志归档

  5. 不足之处:不能出错

  6. 优点:备份时数据库仍然可以使用,备份时间短

  3.rman备份和恢复工具(rocovery manager)

  1)说明:

  1.rman是 oracle提供的一个备份与恢复的工具,可以用来执行完全或不完全的数据库恢复。

  2.rman不能用于备份初始化参数文件和口令文件。

  3. 与传统工具相比,rman具有独特的优势:跳过未使用的数据块。当备份一个rman备份集时,rman不会备份从未被写入的数据块,而传统的方式无法获知那些是未被使用的数据块。

  4. rman可以进行增量备份(增量备份是针对于上一次备份(无论是哪种备份):备份上一次备份后,所有发生变化的文件)

  2)例子:

  --准备工作:

  connect tiger/sccot;

  startup mount

  alter database archivelog

  alter database open

  --查看备份相关信息

  list backupset;

  --备份全库

  backup database;

  --备份表空间

  backup tablespace tp1;

  --备份全库删除旧的归档日志

  backup databse plus archivelog delete input;--备份全库及控制文件、服务器参数文件与所有归档的重做日志,并删除旧的归档日志

  --备份表空间删除旧的归档日志

  backup tablespace system plus archivelog delete input;

  --备份归档日志

  backup archivelog all delete input;

  --查看备份信息

  list of backup sets;

  --0增量备份(等于全备份)

  backup incremental level=0(level 0) database;

  --1级增量备份

  backup incremental level 1 database;

  注意:0级增量备份和完全备份唯一的区别,0级增量备份能作为增量备份的基础,而全备份不能作为增量备份的基础

最新内容请见作者的github页:http://qaseven.github.io/