Oracle(2-10) User-Managed Backups

文章目录

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; -- 结束备份

最好的话是一个文件一个文件的备份,不要怕麻烦,这样的话同一个文件处于备份期间的时间比较短,对性能影响不会很大。

完结散花

相关推荐
jwybobo2007几秒前
redis7.x源码分析:(2) adlist双向链表
linux·redis
kangkang-3 分钟前
MySQL联合索引(abc)命中测试
数据库·mysql
禁默35 分钟前
走进Linux的历史发展史
linux·运维·服务器
努力成为DBA的小王2 小时前
Linux( 权限+特殊权限 图片+大白话)
linux·运维·服务器·学习
王大傻09282 小时前
数据库的性能优化 -- SQL性能优化
数据库·sql·性能优化
程序员大佬超2 小时前
Docker内存溢出报错问题解决
运维·docker·容器
vvw&3 小时前
如何在 Ubuntu 上安装 Jupyter Notebook
linux·人工智能·python·opencv·ubuntu·机器学习·jupyter
_.Switch3 小时前
Django SQL 查询优化方案:性能与可读性分析
开发语言·数据库·python·sql·django·sqlite·自动化
Amo Xiang3 小时前
Django 2024全栈开发指南(三):数据库模型与ORM操作(上篇)
数据库·django·django-orm
ketil274 小时前
Redis 典型应用 - 缓存(cache)
数据库·redis·缓存