33、数据库备份、恢复与管理全攻略

数据库备份、恢复与管理全攻略

1. 数据备份设置

若有数据保护,会看到以下三个选项:
- None
- Delete archived redo logfiles:
- After they have been applied to all standby databases
- After they have been shipped to all standby databases
- Delete archived redo logfiles after they have been backed up the specified number of times

完成所有备份设置后,点击“OK”保存。

2. 恢复设置

设置数据库恢复设置的步骤如下:
1. 导航至“Availability | Backup & Recovery”,然后在OEM12c容器数据库主菜单中点击“Recovery Settings”。
2. 输入期望的平均恢复时间(MTTR)值,用于设置数据库的 FAST_START_MTTR_TARGET 初始化参数。若指定非零值,将控制数据库进行崩溃恢复所需的时间,通过维持数据库检查点的速度来实现。输入的值可以指定为分钟或秒。
3. 指定媒体恢复设置。可以轻松指定数据库是否以 ARCHIVELOG 模式运行,记录归档日志文件的名称格式和生成位置。还可以为LogMiner启用最小补充日志记录。
4. 设置闪回恢复区(FRA),启用闪回恢复数据库,并设置闪回保留策略(时间)。
5. 完成后,若想查看将执行的所有SQL语句以应用在“Recovery Settings”页面所做的所有更改,可点击“Show SQL”;若想取消所有更改并将页面信息恢复到更改前的状态,可点击“Revert”;若想将所做的所有更改应用到目标数据库,可点击“Apply”。

graph LR
    A[导航至Availability | Backup & Recovery] --> B[点击Recovery Settings]
    B --> C[输入MTTR值]
    C --> D[指定媒体恢复设置]
    D --> E[设置FRA等]
    E --> F{选择操作}
    F -->|Show SQL| G[查看SQL语句]
    F -->|Revert| H[恢复页面信息]
    F -->|Apply| I[应用更改到目标数据库]

3. 目录设置

在OEM12c目录设置页面可进行以下操作:
- 设置控制文件中备份信息的保留期。
- 将数据库注册到现有的恢复目录,或在目标数据库中创建新目录。

配置目录设置的步骤如下:
1. 导航至“Availability | Backup & Recovery”,然后在OEM12c容器数据库主菜单中点击“Recovery Catalog Settings”。
2. “Recovery Catalog Settings”页面只有两个可用选项作为RMAN元数据存储库:
- Use Control File:这是默认选项,选择此选项可指定控制文件保留RMAN记录的天数。
- Use Recovery Catalog:选择此选项,可将目标数据库注册到现有的RMAN恢复目录(从值列表中选择恢复目录),甚至可以在该目标数据库或其他可用数据库中创建新的恢复目录。建议在单独的数据库中创建目录存储库。
3. 若选择“Add Recovery Catalog”选项,可以选择由OEM12c管理的任何数据库目标,甚至指定非OEM12c目标的数据库来创建RMAN恢复目录。选择后点击“Next”。
4. 为选择创建恢复目录的数据库目标添加主机和数据库凭据,然后点击“Next”。
5. 输入恢复目录用户凭据,该用户应已存在于目标数据库中。准备好后点击“Next”。
6. 审核输入的所有信息,点击“Finish”创建配置好的恢复目录。
7. 在“Recovery Catalog Settings”页面点击“OK”保存输入的所有信息。

选项 说明
Use Control File 默认,可指定控制文件保留RMAN记录天数
Use Recovery Catalog 可注册到现有恢复目录或创建新目录
graph LR
    A[导航至Availability | Backup & Recovery] --> B[点击Recovery Catalog Settings]
    B --> C{选择存储库}
    C -->|Use Control File| D[指定保留期]
    C -->|Use Recovery Catalog| E[选择数据库目标]
    E --> F[添加主机和数据库凭据]
    F --> G[输入恢复目录用户凭据]
    G --> H[审核信息]
    H --> I[点击Finish创建目录]
    I --> J[点击OK保存信息]

4. 安排RMAN备份

OEM12c是一个集中管理工具,通过部署OEM12c代理来监控和管理目标主机。从这个集中控制台,可以轻松运行或安排任何RMAN甚至数据泵操作,无需手动连接到每个目标服务器,节省大量精力和时间。它还会监控作业,若作业失败会生成警报。使用OEM12c安排备份操作时,有两个选项:
- Oracle建议的备份
- 自定义备份

4.1 使用Oracle建议的备份策略选项

使用OEM12c按以下步骤安排可插拔数据库PDBORCL的每日备份:
1. 在容器数据库控制台页面,导航至“Availability | Backup & Recovery | Schedule Backup”。
2. 在“Schedule Backup”页面,输入主机凭据,准备好后点击“Schedule Oracle-Suggested Backup”。若数据库以 NOARCHIVELOG 模式运行,作业运行时数据库将关闭并置于挂载模式。
3. 在“Destination”页面,选择备份生成的目标媒体。有三个选项:磁盘、磁带或磁盘和磁带。这里点击“Disk”,然后点击“Next”。
4. 在设置页面,首先查看Oracle建议的全量备份策略,随后是增量备份。还可以使用加密。审核页面信息后点击“Next”。
5. 在调度页面,输入开始日期、时区和每日备份时间信息以创建每日作业,然后点击“Next”。
6. 审核输入的所有信息和将在目标可插拔数据库中执行的RMAN脚本,点击“Submit Job”。
7. 弹出窗口会显示作业已成功提交。可以点击“OK”完成此过程,或点击“View Job”查看提交作业的状态。

4.2 使用自定义备份选项

安排可插拔数据库PDBORCL的每日备份步骤如下:
1. 在“Customized Backup”部分,输入主机凭据,点击“Schedule Customized Backup”。可在以下级别安排备份:整个数据库、容器数据库根、可插拔数据库、表空间、数据文件、归档日志和磁盘上的所有恢复文件。这里仅执行整个数据库备份。选项页面允许进行以下操作:
- 选择备份类型,可在全量备份和增量备份之间选择。
- 选择备份模式,可选择在线备份或离线备份。
- 选择备份磁盘上的所有归档日志,并在成功备份后从磁盘删除所有归档日志。
- 删除过时的备份。
- 使用媒体管理软件支持的代理副本进行备份。
- 指定每个备份集的最大文件数。
- 指定备份的段大小(接受KB/MB/GB)。
- 使用Oracle加密钱包、用户提供的密码或两者结合来保护备份中的任何敏感数据。
- 根据要求选择并输入选项,然后点击“Next”。
2. 在设置页面,选择备份的目标媒体,可以是磁盘或磁带,准备好后点击“Next”。在此页面还可以查看默认备份设置,如有必要,仅为此备份作业覆盖它们。这意味着在此处设置所做的所有更改不会保存,仅用于此特定作业。
3. 在调度页面,输入作业名称和描述(或保留默认建议),选择作业类型(一次性(立即)、一次性(稍后)或重复),然后点击“Next”。这里选择“One Time (Immediately)”选项。
4. 审核所有选项,包括生成的RMAN脚本,若一切正常,点击“Submit Job”。

5. 恢复点

恢复点是用户定义的时间点名称,允许将数据回退到特定时间点,以解决由用户错误或数据损坏引起的任何问题。Oracle有两种类型的恢复点:
- 正常恢复点:允许创建到特定SCN、当前时间或任何已过去的时间点的恢复点。这种类型的恢复点在超出可恢复点后会使控制文件过期。
- 保证恢复点:这种恢复点确保可以使用闪回将数据库回退到恢复点的时间。要求数据库具有FRA,以 ARCHIVELOG 模式运行,并且兼容模式应为10.2或更高版本。

可以通过在数据库控制台菜单中导航至“Availability | Backup & Recovery | Restore Points”,轻松查看数据库中创建的所有恢复点,并在必要时创建新的恢复点。
1. 首先看到的是“Manage Restore Points”页面,显示数据库中所有可用的恢复点,也允许创建新的恢复点。点击“Create”创建恢复点。
2. 在“Create Restore Point”页面,首先输入恢复点名称,然后选择要创建的恢复点类型:
- 正常恢复点
- 保证恢复点
例如,在“Restore Point name”字段中输入“Test2”,点击“Normal Restore Point”类型和“Current Time”,然后点击“OK”。
3. 在确认页面,输入主机凭据,点击“Yes”创建恢复点。

graph LR
    A[导航至Availability | Backup & Recovery | Restore Points] --> B[点击Create]
    B --> C[输入恢复点名称]
    C --> D{选择恢复点类型}
    D -->|正常恢复点| E[点击OK]
    D -->|保证恢复点| E
    E --> F[输入主机凭据]
    F --> G[点击Yes创建恢复点]

6. 使用OEM12c进行导出/导入

OEM12c也是数据泵的GUI工具,可以轻松执行以下数据泵操作:
- 传输表空间
- 导出到导出文件(转储文件)
- 从导出文件(转储文件)导入
- 从数据库导入(使用数据库链接)
- 从用户文件(外部表)加载数据
- 查看导出和导入作业

6.1 执行导出操作

使用OEM12c执行导出操作的步骤如下:
1. 在数据库控制台(这里使用可插拔数据库PDBORCL)主菜单中导航至“Schema | Database Export/Import | Export to export files”。
2. 在导出页面,首先选择导出操作的类型,即要包含在导出中的内容:
- 数据库:导出整个数据库。
- 模式:允许选择一个或多个模式包含在导出操作中。
- 表:允许从选定的模式中选择一个或多个表进行导出。
- 表空间:允许选择一个或多个表空间。在此选项中,仅导出表空间中的表。
这里输入主机凭据,点击“Database”选项,然后点击“Continue”。
3. 在选项页面,可以输入以下内容(可选):
- 导出作业的最大线程数为1。请记住,并行选项仅在Oracle数据库企业版(EE)中可用,需要额外授权。若未授权或未使用EE,应将此值保留为1。
- 估计磁盘空间的块数(也可以点击“Estimate Disk Space Now”在不执行导出操作的情况下计算导出操作将使用的估计空间)。
- 选择“Generate Log File”选项,并使用目录对象 DATA_PUMP_DIR 生成转储文件和日志文件 EXPDAT.LOG 。这里不使用高级选项,点击“Next”继续。
若选择高级选项,将允许:
- 选择要从源数据库导出的内容(全部/仅数据/仅元数据),包括所有对象、仅指定的对象或仅不排除的对象。
- 使用闪回导出数据到特定SCN或时间点的读一致视图。
- 指定要应用于正在导出的表的 SELECT 语句谓词子句。
4. 在“Files”页面,选择 DATA_PUMP_DIR 作为目录对象来创建转储文件 EXPDP%U%D.DMP ,点击“Next”。在转储文件名中使用通配符 %D 包含作业日期(YY/MM/DD),以便稍后更容易识别。如有必要,还可以为转储文件添加最大文件大小(MB)。
5. 在“Job Schedule”页面,将作业名称设置为“DATAPUMPTEST”,安排立即执行(仅一次性),点击“Next”。在此页面,也可以选择稍后在特定日期和时间执行作业,并允许定期执行。
6. 在审核页面,审核输入的信息,点击“Submit Job”。也可以点击“Show PL/SQL”查看数据库将执行的PL/SQL。
执行数据泵与OEM12c时,始终确保 STREAMS_POOL_SIZE 初始化参数不为0。若设置为0,可能会在OEM12c中出现错误,提示无法为流池分配内存。

6.2 监控作业

可以通过在PDBORCL数据库控制台中导航至“Schema | Database Export/Import | View Export & Import Jobs”,轻松监控刚刚启动的“DATAPUMPTEST”作业的执行情况。
1. 它将自动显示数据库中所有数据泵作业及其状态。例如,“DATAPUMPTEST”作业状态为“EXECUTING”。
2. 若需要作业的更多详细信息,只需点击想要详细信息的作业名称即可。此页面仅显示正在执行和已停止的作业。当数据泵作业完成时,将从该页面消失。

graph LR
    A[导航至Schema | Database Export/Import | Export to export files] --> B{选择导出类型}
    B -->|数据库| C[输入主机凭据点击Continue]
    B -->|模式| C
    B -->|表| C
    B -->|表空间| C
    C --> D[输入可选信息]
    D --> E{是否选择高级选项}
    E -->|是| F[选择导出内容等]
    E -->|否| G[点击Next]
    F --> G
    G --> H[选择目录对象创建转储文件]
    H --> I[设置作业名称和执行时间]
    I --> J[审核信息点击Submit Job]
    J --> K[监控作业执行情况]

7. SQL Developer 3.2

SQL Developer DBA Navigator的GUI界面为RMAN和数据泵提供了非常灵活的选项,可用于执行备份和恢复操作,但很多DBA并不知道它的存在。

7.1 RMAN操作

DBA Navigator提供以下RMAN选项:
- 备份作业:可以查看以前执行的备份作业,也允许从这里创建和运行新的备份作业。例如,使用右键点击可以执行以下操作:
- 备份操作,如表空间备份、数据文件备份、归档日志备份和恢复文件备份。
- 恢复/恢复操作,如恢复整个数据库、恢复表空间、恢复数据文件、块恢复、恢复归档日志和闪回数据库。
- 创建磁盘备份、磁带备份和磁盘/磁带备份。
- 备份集:显示以前备份作业创建的、可用于恢复操作的备份集。使用右键点击可以执行以下操作:
- 编目恢复区
- 交叉检查所有
- 删除所有过时的
- 删除所有过期的
- 映像副本:显示以前备份作业创建的、可用于恢复操作的映像副本。使用右键点击可以执行与备份集相同的操作。
- RMAN设置:显示存储在数据库服务器中的当前RMAN备份和恢复设置。使用右键点击可以编辑:
- 磁盘设备设置
- 磁带设备设置
- 压缩算法设置
- 磁带备份集设置
- 备份策略
- 日志删除策略
- 使用RMAN切换归档日志模式和闪回数据库
- 预定的RMAN操作:显示用于执行RMAN脚本的所有 DBMS_SCHEDULER 作业,并允许查看日志文件。此选项仅适用于11.1及更高版本的数据库。

例如,要执行可插拔数据库PDBORCL的全量备份,可以通过在“Backup Jobs”选项中导航至“Backup Jobs | Action | Custom Backups | Create Custom Whole Database Backup”来完成。

graph LR
    A[SQL Developer DBA Navigator] --> B[备份作业]
    A --> C[备份集]
    A --> D[映像副本]
    A --> E[RMAN设置]
    A --> F[预定的RMAN操作]
    B --> G[查看和创建备份作业]
    C --> H[执行编目等操作]
    D --> H
    E --> I[编辑设置]
    F --> J[查看日志文件]

通过以上各种工具和方法,可以全面地对数据库进行备份、恢复和管理操作,确保数据的安全性和可用性。

8. 操作对比与总结

8.1 备份方式对比

备份方式 特点 适用场景
Oracle建议的备份 提供基于备份目的地的现成策略,设置恢复窗口,安排定期和即时备份,自动化备份管理 适用于对备份策略不太熟悉,希望采用通用且高效备份方案的用户
自定义备份 可指定备份对象、选择备份目的地、覆盖默认设置、灵活安排备份时间 适用于有特定备份需求,如只备份部分对象、对备份方式有特殊要求的用户

8.2 恢复点类型对比

恢复点类型 特点 使用条件
正常恢复点 可创建到特定SCN、当前时间或过去时间点,但超出可恢复点后控制文件会过期 对恢复点保留时间要求不高,普通数据恢复场景
保证恢复点 确保可闪回到恢复点时间,但要求数据库有FRA、以 ARCHIVELOG 模式运行且兼容模式为10.2或更高 对数据恢复时间点要求严格,需要确保能准确恢复到指定时间的场景

8.3 不同工具操作总结

工具 功能 优势
OEM12c 集中管理RMAN和数据泵操作,可监控作业并在失败时报警 节省精力和时间,方便管理多个目标服务器的备份和恢复操作
SQL Developer 3.2 提供RMAN和数据泵的GUI操作界面,有丰富的RMAN选项 操作灵活,适合熟悉图形界面操作的DBA

9. 常见问题及解决方法

9.1 RMAN备份问题

  • 问题描述 :RMAN备份作业失败,提示无法连接到目标数据库。
  • 解决方法 :检查OEM12c代理是否正常运行,确保目标数据库的主机和数据库凭据正确。同时,检查网络连接是否正常,确保OEM12c可以访问目标数据库。
  • 问题描述 :备份集显示过期或损坏。
  • 解决方法 :在SQL Developer 3.2的备份集选项中,使用右键点击执行“Crosscheck All”操作,检查备份集的状态。若有过期或损坏的备份集,可执行“Delete all Expired”操作删除。

9.2 数据泵导出问题

  • 问题描述 :执行数据泵导出作业时,提示无法分配内存给流池。
  • 解决方法 :确保 STREAMS_POOL_SIZE 初始化参数不为0。可以通过SQL语句修改该参数的值,例如: ALTER SYSTEM SET STREAMS_POOL_SIZE = 100M SCOPE = BOTH;
  • 问题描述 :导出作业速度过慢。
  • 解决方法 :检查导出作业的线程数,若使用的是Oracle数据库企业版且有授权,可以适当增加最大线程数,提高并行度。同时,检查磁盘I/O性能,确保磁盘有足够的读写速度。

9.3 恢复点问题

  • 问题描述 :无法创建保证恢复点。
  • 解决方法 :检查数据库是否具有闪回恢复区(FRA),是否以 ARCHIVELOG 模式运行,以及数据库的兼容模式是否为10.2或更高。若不满足条件,需要先进行相应的设置和调整。
graph LR
    A[RMAN备份问题] --> B[检查代理和凭据]
    A --> C[检查网络连接]
    D[备份集问题] --> E[Crosscheck All]
    E --> F[Delete all Expired]
    G[数据泵导出问题] --> H[检查STREAMS_POOL_SIZE]
    G --> I[调整线程数和磁盘性能]
    J[恢复点问题] --> K[检查FRA和模式]

10. 最佳实践建议

10.1 备份策略

  • 定期进行全量备份,结合增量备份,减少备份时间和存储空间的占用。例如,每周进行一次全量备份,每天进行一次增量备份。
  • 对于重要数据,采用多种备份方式,如同时使用磁盘和磁带备份,提高数据的安全性和可用性。
  • 根据业务需求和数据变化频率,合理设置备份的时间间隔和保留周期。

10.2 恢复点管理

  • 定期创建恢复点,特别是在进行重要操作(如数据更新、系统升级)之前,以便在出现问题时可以快速恢复到操作前的状态。
  • 对于长期保留的恢复点,使用保证恢复点,确保数据可以准确恢复到指定时间。

10.3 工具使用

  • 熟悉OEM12c和SQL Developer 3.2的功能和操作,根据不同的任务选择合适的工具。例如,对于大规模的备份和恢复操作,使用OEM12c进行集中管理;对于一些小规模的测试和调试操作,使用SQL Developer 3.2的图形界面进行快速操作。
  • 定期监控作业的执行情况,及时处理出现的问题,确保备份和恢复操作的正常进行。

11. 未来趋势展望

随着数据库技术的不断发展,备份和恢复技术也在不断演进。未来可能会出现以下趋势:
- 智能化备份 :利用人工智能和机器学习技术,根据数据的使用频率、变化趋势等因素,自动优化备份策略,实现更高效、更智能的备份。
- 云备份 :越来越多的企业将数据库备份到云端,利用云服务的高可靠性和可扩展性,降低备份成本,提高数据的安全性和可用性。
- 实时恢复 :实现更快速的恢复时间目标(RTO)和恢复点目标(RPO),在数据出现问题时可以实时恢复,减少业务中断的时间。

通过不断学习和掌握新的技术和方法,数据库管理员可以更好地应对未来的挑战,确保数据库系统的稳定运行和数据的安全可靠。

综上所述,数据库的备份、恢复和管理是一项复杂而重要的工作。通过合理选择工具和方法,遵循最佳实践建议,及时处理常见问题,并关注未来趋势,我们可以有效地保障数据库数据的安全性和可用性,为企业的业务发展提供有力支持。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值