Oracle DBA 数据库备份与恢复学习笔记

本文介绍了Oracle数据库的文件组成、启动与关闭流程、归档日志管理、备份类型及恢复过程。涵盖从用户管理的一致备份到服务器管理的联机备份等不同策略。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Oracle DBA 数据库备份与恢复学习笔记

1.Oracle数据库文件
    ·初始化参数文件(Instance Parameter File)
    ·控制文件(control files)
    ·数据文件(data file)
    ·临时文件(temp file)
    ·联机重做日志文件(online redo log files)
    ·归档重做日志文件(archive redo log files)
    ·警告日志文件和跟踪文件(Alert Log and Trance Files)
    ·口令文件(Password File)

2.Oracle数据库启动与关闭
    启动:startup,经历三个阶段: 未加载(nomount),加载(mount),打开(open)
    ·未加载(nomount) -- 启动事例
        ·读取数据库参数文件
        ·启动后台进程并按参数文件中的定义分配内存
        ·将进展情况写入警告日志文件中.
    ·加载(mount) -- 读取控制文件,
        ·确定数据文件和重做日志文件的名称和位置
        ·确定数据库名
        ·确定最新系统更改号.
    ·打开(open) -- 打开数据库
        ·所有联机数据文件的头与控制文件信息比较
        ·所有文件同步后,数据库打开.

    关闭:shutdown,四个参数(normal,transactional,immediate,abort)
    ·正常(normal),所有用户离线后正常关闭.
    ·事务(transactional),用户执行完当前事务后,将用户从数据库上清除
    ·立即(immediate),立即关闭,回退所有未完成的操作
    ·异常(abort),异常关闭,启动后需要实行崩溃恢复.

3.归档日志
    查看归档(Archivelog)模式
    ·归档模式列表           -- archive log list;
    ·查看数据库归档模式     -- select log_mode from v$database;
    ·查看事例自动归档       -- select archiver from v$instance;
    ·查看归档位置           -- select dest_id,destination,status,binding,target,reopen_secs  from v$archive_dest order by dest_id;
    ·查看日志历史信息       -- select * from v$loghist;
    ·归档日志文件           -- select name from v$archived_log;
    归档日志文件格式变量
    ·%a  活动ID号
    ·%d  唯一的数据库标识符,如果将多个数据库归档到同一目录,这是必需的.
    ·%r  场景(incarnation)号,RESETLOGS的ID值,如果进行了不完全恢复(将重置日志切换序列号),这个变量就十分重要
    ·%s  日志切换序列号,这个变量能够保证任何一个数据库中的归档日志都不会彼此重写.
    ·%S  日志切换序列号(带有前导0)
    ·%t  线程号,显示为v$instance视图的thread#列,除了在RAC数据库中使用外,这个变量没有任何意义.
    ·%T  线程号(带有前导0)
    归档设置默认值
    ·归档日志的默认位置为%oracle_home%rdbms
    ·归档日志的默认文件格式为ARC%S_%R.%T(10g) ,  自定义%%ORACLE_SID%%_%T_%S.arc, %%ORACLE_SID%%T%TS%S.ARC
    ·从10g开始,配置归档日志文件格式时,必须带有%s,%t和%r匹配符,配置了归档文件格式后,必须重启数据库.
    归档模式设置
    ·更改初始化参数方式($ORACLE_HOME/dbs/init*.ora)
       ·LOG_ARCHIVE_START=TRUE/FALSE   -- 自动归档/不自动归档
       ·LOG_ARCHIVE_DEST=              -- archive logs 归档存放的路径
       ·LOG_ARCHIVE_FORMAT=            -- archive logs 的命名格式
    ·命令行方式

3.归档日志模式设置
    更改初始化参数方式($ORACLE_HOME/dbs/init*.ora)
    ·LOG_ARCHIVE_START=TRUE/FALSE   -- 自动归档/不自动归档
    ·LOG_ARCHIVE_DEST=              -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第一个归档位置)
    ·LOG_ARCHIVE_DUPLEX_DEST        -- 如果不使用备用数据库,只需要将归档日志存放到本地目录(第二个归档位置)
    ·LOG_ARCHIVE_DEST_n             -- 用于指定多个归档位置(最多10个),本地归档位置/远程归档位置
    ·LOG_ARCHIVE_FORMAT=            -- archive logs 的命名格式
    命令行方式
    ·改变归档操作模式
       ·shutdown immediate;         -- 干净关闭数据库
       ·startup mount;              -- 以加载模式启动
       ·alter database archivelog;  -- 开启归档模式, 关闭归档模式为alter database noarchivelog;
       ·alter database open;        -- 打开数据库
       ·执行完全备份
    ·执行手工归档                   -- alter system archive log all;   -- alter database archivelog manual; --(10以前)
    ·配置归档进程                   -- alter system set log_archive_max_processes=3;  -- 指定例程初始启动的最大归档进程数
    ·配置归档位置和文件格式
       -- alter system set log_archive_dest='d:\salesarchive1';
       -- alter system set log_archive_duplex_dest='d:\salesarchive1';
       -- alter system set log_archive_dest_1='location=d:\salesarchive1 mandatory';
       -- alter system set log_archive_dest_2='location=d:\salesarchive2 mandatory reopen=500';
       -- alter system set log_archive_dest_3='service=SERVICE_NAME';  -- (在tnsnames.ora文件中配置服务名)
       选项:
       OPTIONAL:  该选项是默认选项.使用该选项时,无论归档是否成功,都可以覆盖重做日志.
       MANDATORY: 强制归档.使用该选项时,只有在归档成功之后,重做日志才能被覆盖.
       REOPEN:    该属性用于指定重新归档的时间间隔,默认值为300秒,必须跟在MANDATORY后.
    ·控制本地归档成功的最小个数.
      使用初始化参数LOG_ARCHIVE_MIN_SUCCEED_DEST控制本地归档的最小成功个数
      -- alter system set log_archive_min_succeed_dest=2;
    ·控制归档位置的可用性
      当归档日志所在磁盘损坏或填满时,DBA需要暂时禁用该归档位置
      -- alter system set log_archive_dest_state_3=enable/defer; --(启用/禁用)

4.备份的类型
    备份管理方式:
    ·用户管理的备份:   使用操作系统实用程序执行备份(UNIX:cp、tar或cpio, Windows:copy或winzip32.exe).
    ·服务器管理的备份: 使用RMAN(Recovery Backups)执行备份.
    ·逻辑备份:         备份/恢复Export/Import
    备份选项:
    ·脱机备份: 关闭状态备份、冷备份、一致备份    (用户管理/服务器管理) (archivelog/noarchivelog)
    ·联机备份: 打开状态备份、热备份、不一致备份  (用户管理/服务器管理) (archivelog)
    ·完整备份: (whole backup)                    (用户管理/服务器管理) (archivelog/noarchivelog)
    ·局部备份: (partial backup)                  (用户管理/服务器管理) (archivelog)
    ·全部备份: (full backup)                     (用户管理/服务器管理) (archivelog/noarchivelog)
    ·增量备份: (incremental backup)              (服务器管理         ) (archivelog/noarchivelog|rman)
    并非一定要关闭数据库才能进行备份,数据库在archivelog模式下运行可以无限期地处于打开状态,进行联机备份,在noarchivelog模式下无法执行联机备份.

5.用户管理的一致备份
    一致备份即关闭状态备份、冷备份、脱机备份
    用户管理的一致备份,需要shutdown数据库后备份文件,使用操作系统命令执行以下步骤:
    ·以sysdba身份连接数据库    -- connect / as sysdba
    ·备份参数文件              -- create pfile='d:\backup\spfile_backup.ora' from spfile;
    ·关闭数据库                -- shutdown immediate
    ·复制控制文件              -- 查询文件位置 select name from v$controlfile
    ·复制数据文件              -- 查询文件位置 select name from v$datafile
    ·复制联机重做日志文件      -- 查询文件位置 select member from v$logfile
    ·复制临时文件              -- 查询文件位置 select name from v$tempfile
    ·开启数据库                -- startup
    可以制作自动脚本以管理备份.

6.用户管理的联机备份
    联机备份即打开状态备份、热备份、不一致备份
    用户管理的联机备份,需要使用操作系统命令执行以下步骤:
    ·以sysdba身份连接数据库       -- connect / as sysdba
    ·检查archivelog模式           -- archive log list; -- select log_mode from v$database; --select archiver from v$instance;
    ·切换日志以归档               -- alter system switch logfile; -- alter system archive log current;
    ·备份控制文件                 -- alter database backup controlfile to 'file_name' reuse;      -- 二进制文件
                                   -- alter database backup controlfile to trace as 'file_name';   -- 文本文件
    ·将表空间置于备份状态         -- alter tablespace tablespace_name begin backup;
    ·将对应数据文件复制到备份地点 -- dba_tablespaces, dba_data_files
    ·结束表空间的备份状态         -- alter tablespace tablespace_name end backup;
    ·再次切换日志                 -- alter system archive log current;
    ·备份归档日志文件             -- 查询文件位置 select name from v$archived_log

7.服务器管理的一致备份
    ·干净关闭数据库,以加载模式启动
    ·

8.恢复概述
    在Oracle环境中,还原(restore)和恢复(recover)术语都有十分准确的含义,还原文件就是从备份中提取文件,并将其返回到原始位置。如果数据文件受到损坏或丢失,还原操作将用备份副本替换它。但与数据库其余部分比,还原的文件已经过期。为了恢复文件,从重做日志流提取相关的更改矢量,并予以应用,将文件更新到与数据库其他部分同步为止.
    如果采取适当的预防措施,丢失数据库文件并不意味着丢失数据:
    ·控制文件的多重化(multiplex)
    ·联机重做日志文件多重化
    ·备份控制文件和数据文件
    ·以archivelog模式运行数据库.

9.丢失控制文件后的恢复
    永远都不能彻底丢失控制文件,必须实现控制文件的多重化。如果控制文件的任何副本受损,数据库实例将立即异常终止,如果尝试启动,实例将进入NOMOUNT模式,并停在那里,只有CONTROL_FILES实例参数指定的所有副本都有效,才会加载数据库.
    添加控制文件副本步骤:
    ·查看控制文件位置    -- select name from v$controlfile
    ·关闭数据库
    ·复制控制文件(处于打开或加载模式时进行复制,副本是无效的)
    ·以NOMOUNT模式启动实例
    ·更改CONTROLFILES参数,以便包含新副本.
      -- alter system set control_files='/u01/app/oracle/oradata/ORATEST/control01.ctl', '/u01/app/oracle/flash_recovery_area/ORATEST/control02.ctl', '/u01/app/oracle/oradata/ORATEST/control03.ctl' scope=spfile;
    ·再次关闭
    ·以OPEN模式启动数据库
    在NOMOUNT模式中,如果由于无法加载数据库导致启动停止,通过参数文件查找控制文件副本位置.
    -- select value from v$parameter where name='control_files';

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值