📜  更改和删除 SQL 快照

📅  最后修改于: 2021-09-10 01:53:24             🧑  作者: Mango

先决条件 – SQL 快照

随着数据库发生变化,快照开始增长/变化,甚至可能会看到大小的显着变化。因此,我们会在需要时更改它们以避免磁盘空间不足警报。因此,我们会在必要时更改快照。如果用户错误地(或任何其他情况)删除了存储过程、视图或表或任何对象,您可以使用快照恢复数据库对象。如果删除所有对象和数据,则可以将快照中的所有信息恢复到原始数据库。

更改 SQL 中的快照:

句法 :

ALTER SNAPSHOT 
[schema]
[ [PCTFREE ] [PCTUSED ] 
[INITRANS ] [MAXTRANS ] 
[TABLESPACE ] [STORAGE ] 
[CLUSTER ( [, ....])]
]
[USING
 [INDEX
     [PCTFREE ] [PCTUSED ] 
     [INITRANS ] [MAXTRANS ]
]
[DEFAULT ROLLBACK SEGMENT
  [MASTER /LOCAL]
]
]
[REFRESH [FAST/COMPLETE/FORCE]
 [START WITH ][NEXT ]  
 [WITH [PRIMARY KEY/ROWID]]
]

关键字和参数:

  • 架构 –
    包含快照。如果未指定,Oracle 将在用户的架构中创建快照。
  • PCTFREE、PCTUSED、INITRANS 和 MAXTRANS –
    这些为 Oracle 用来维护快照数据的内部表的指定参数建立值。
  • 表空间 –
    指定要在其中创建快照的表空间。如果省略,Oracle 将在快照模式所有者的默认表空间中创建快照。
  • 贮存 –
    为 Oracle 用来维护快照数据的表建立存储特征。
  • 簇 –
    创建快照作为指定集群的一部分。因为集群快照使用集群的空间分配。
  • 使用索引 –
    指定用于维护快照的索引的参数。 PCTFREE、PCTUSED、INITRANS 和 MAXTRANS 指定快照的默认存储和事务属性。
  • 回滚段 –
    指定要在快照刷新期间使用的本地快照和/或远程主回滚段。
  • 掌握 –
    指定要使用的回滚段。
  • 当地的 –
    指定用于包含快照的本地刷新组的回滚段。如果未指定,则 Oracles 默认使用。如果用户指定 DEFAULT,则用户不能指定回滚段。
  • 刷新 –
    指定 Oracle 自动刷新快照的方式和时间。

  • 快速地 –
    指定快速刷新或仅使用存储在与主表关联的快照日志中的更新数据的刷新。
  • 完全的 –
    指定完全刷新或重新执行快照查询的刷新。
  • 力量 –
    指定快速刷新(如果可能)或完全刷新(如果无法进行快速刷新)。这是由 Oracle 引起的默认值。
  • 从…开始 –
    指定第一次自动刷新时间的日期表达式。
  • 下一个 –
    指定用于计算自动刷新间隔的日期表达式。
  • 使用主键 –
    指定要创建的主键快照。这些允许在不影响快照继续快速刷新的能力的情况下识别快照主表。
  • 与 ROWID –
    指定要创建的 ROWID 快照提供与 Oracle 的向后兼容性。

例子 :

ALTER SNAPSHOT snp_emp
REFRESH COMPLETE  
START WITH TRUNC(SYSDATE+7) + 2/24 
NEXT SYSDATE+1

删除 SQL 快照:
删除 SQL 快照会从数据库中删除该快照。

句法 :

DROP SNAPSHOT 

删除快照时,如果它具有关联的快照日志,则仅删除维护该快照所需的行。删除快照所基于的主表不会删除快照。但是,任何后续刷新都将失败。

例子 :

drop snapshot snp_emp;