9

我正在使用 Oracle 数据库 11.2。我有一个FLASHBACK DATABASE经常发出问题的场景。似乎一个FLASHBACK DATABASE周期会重新启动数据库实例,这大约需要。我的设置 7 秒。

数据库很小(~ 1 GB 表空间),所有文件都应该在 I/O 缓存/缓冲区中。因此,我认为瓶颈不是基于 I/O。

我正在寻找调整建议,以节省用户时间和/或 CPU 时间来进行闪回。

更新:

闪回顺序(以及每一步的时间)如下:

1. Get SYSDBA connection with prelim_auth=true [15 ms]

2. SHUTDOWN ABORT; [1034 ms]

3. STARTUP (unrestricted) [1241 ms]

4. Close SYSDBA connection [2 ms]

5. Get SYSDBA connection with prelim_auth=false [18 ms]

6. ALTER DATABASE MOUNT [4073 ms]

7. FLASHBACK DATABASE TO RESTORE POINT <restore_point_name> [306 ms]

8. ALTER DATABASE OPEN RESETLOGS [1652 ms]

9. CLOSE SYSDBA connection [2 ms]
4

3 回答 3

1
  1. 启动

    一个。实现大页面

    湾。设置 statistics_level = 基本

  2. 一个。仅使用一个控制文件。不要多路复用。

    湾。尽量减少数据文件和临时文件的数量。使用大文件表空间。

    C。从跟踪中重新创建您的控制文件。省略不必要的项目。

  3. 重置日志

    一个。每个重做日志组只使用一个日志文件。不要多路复用。

    湾。仅创建 2 个重做日志组。

    C。最小化每个重做日志的大小。

但是,这些选项会损害可靠性和可管理性。

于 2021-12-02T05:39:44.793 回答
0

您将大部分响应时间花在 I/O 相关操作上:

访问控制文件:ALTER DATABASE MOUNT [4073 ms]

重置重做日志:ALTER DATABASE OPEN RESETLOGS [1652 ms]

尝试将控制文件和重做日志文件放在非常快速的存储上,例如基于 NVMe 的 SSD。

另外,你有多少重做日志文件和日志文件组?- 减少它们也会有所帮助 - 如果你可以允许的话。

于 2021-09-06T19:07:22.463 回答
0

您可以使用存储快照。在这种情况下,在 t0 拍摄快照。做你的操作。准备好回滚后,停止数据库并将 t0 快照挂载为数据文件。这应该花费您与在 t0 启动数据库相同的时间。

于 2021-06-26T23:13:42.760 回答