文章目录
User-Managed Backups 用户管理的备份
目标:
- 掌握用户管理的备份和恢复操作
- 掌握只读表空间相关的备份问题
- 掌握关闭的数据库备份(冷备份)
- 掌握打开的数据库备份(热备份)
- 备份控制文件
- 联机备份失败后执行清理
- 使用DBVERIFY实用程序检测损坏
一、基础知识
1、Terminology 术语
- Whole database backup 整个数据库备份(全备)
- 目标数据库可能已打开或关闭
- 备份所有数据文件和控制文件
- Partial database backups 部分数据库备份
- Tablespace
- Data file
- Control file
- Consistent backups 一致备份
- Inconsistent backups 不一致备份
2、User-Managed Backup/Recovery 用户管理的备份/恢复
- 文件用操作系统命令进行备份
- 使用操作系统命令还原备份
- 恢复是使用SQL和SOL*Plus命令完成的
3、Get DB File Information 获取数据库文件信息
- V$DATAFILE
- V$CONTROLFILE
- V$LOGFILE
- DBA_DATA_FILES
查询这些文件的信息,然后记录下来,方便之后做备份
4、Consistent Whole DB Backup 一致的整个数据库备份
冷备份
- 需要对数据文件、控制文件、日志文件、参数文件、密码文件进行物理备份
- Advantages of this Backup 冷备份的优点
- 概念上简单
- 易于执行
- 只需要很少的操作员交互
- Making a Whole DB Backup 操作整个数据库备份
- 冷备份步骤:
- 1、用户连接数据库
- 2、关闭数据库
- 3、新创一个备份目录,将各个文件cp到备份目录下;
- 4、启动数据库,备份完成
热备份
- Advantages of this Backup 热备份的优点
- 保持高数据库可用性
- 可在表空间或数据文件级别完成
- 支持不间断的业务操作
- 必须使用日志归档模式
二、基础操作
1、查找需要备份的各种文件
- 查找数据文件
sql
select name, status from v$datafile;
- 查找控制文件
sql
select name from v$controlfile;
- 查找日志文件
sql
select member from v$logfile;
- 查找参数文件
sql
show parameter spfile;
- 查找密码文件位置
密码文件通常是位于Oracle数据库实例的ORACLE_HOME/dbs目录中。密码文件的名称通常是"orapw{SID}",其中"{SID}"是数据库实例的系统标识符。
例如,如果你的数据库实例的SID是"ORCL",那么密码文件的名称可能是"orapwORCL"。这个文件存储了用于SYSDBA和SYSOPER角色身份验证的密码信息。
bash
cd $ORACLE_HOME/dbs
2、整备操作
冷备份
只需要按照操作1找到文件的位置,在按照基础知识4冷备份知识即可简单完成备份
热备份
数据文件备份
sql
col file_name format a45;
col tablespace_name format a15;
select file_name, tablespace_name from dba_data_files;
查询基础数据文件
sql
alter TABLESPACE example begin backup;
开始进入备份模式
sql
!cp /u01/app/oracle/oradata/orcl/example01.dbf /u01/app/oracle/oradata/backup
将数据文件备份到指定目录下
sql
alter tablespace example end backup;
到备份目录下查看是否完成备份
这样一个数据文件备份就完成了(还需要以此类推备份其他数据文件)
备份模式有什么作用:
- 表空间被设置了检查点,数据文件头中的检查点SCN标记不再随着检查点而增加,更改的DB块的完整映像被写入重做日志。
只读文件备份(可选)
如果有只读表空间需要备份需要进行只读备份:
Read-Only TS Backup:
步骤:
1、修改目标为只读
sql
# 语句格式
# alter tablespace 表空间 read only; 这里实例以example 为例
alter tablespace example read only;
2、拷贝表空间
sql
# 这里和上边数据文件备份是一样的,只是做个演示
!cp /u01/app/oracle/oradata/orcl/example01.dbf /u01/app/oracle/oradata/backup
- 只读表空间备份操作跟冷备份相似,只需要将表空间设置为只读,然后拷贝文件就OK了,并且不需要将数据库关机,也不需要将表空间置为备份模式
3、将文件修改为可读可写(如果有需要可以在改回来)
sql
alter tablespace example read write;
控制文件备份
sql
alter database backup controlfile to '/u01/app/oracle/oradata/backup/c1.ctl';
总结热备份方法
结合基础操作1找到各中文件的位置然后进行备份。
sql
alter database begin backup; -- 开始备份
!cp datafile_path backup_path; -- 复制数据文件
!cp controlfile_path backup_path; -- 复制控制文件
!cp redo_log_file_path backup_path; -- 复制日志文件
alter database end backup; -- 结束备份
最好的话是一个文件一个文件的备份,不要怕麻烦,这样的话同一个文件处于备份期间的时间比较短,对性能影响不会很大。
完结散花