📜  更改和删除SQL快照

📅  最后修改于: 2021-08-24 08:19:32             🧑  作者: 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指定快照的默认存储和事务属性。
  • 回滚段–
    指定在快照刷新期间要使用的本地快照和/或远程主回滚段。
  • 掌握 –
    指定要使用的回滚段。
  • 当地的 –
    指定用于包含快照的本地刷新组的回滚段。如果未指定,则Oracle默认使用。如果用户指定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;