Insider看法Delphix VDB倒带

我喜欢问题 - 他们给了我一些关于我不写的东西 ’不得不从我的体验中提出挑战…:)

所以在我的 最后一篇,保罗问道:

我不确定在发布发生时发生的其他变化会发生什么?据推测,他们也丢失了?据推测,数据库必须在恢复数据时下降?

设置

在我们的情景中回答这个问题,我’m将在VEMP_826虚拟化数据库上执行以下操作:

  1. 添加表格
  2. 添加索引
  3. 包括交易,删除插入和删除
  4. 使用管理控制台重新加快数据库

作为我’m即将对我的数据库进行这些更改,我 拍一个快照 然后使用它在Delphix管理控制台中显示“Camera”配置窗格中的图标。

请注意每个SNC范围列表。 Â那些是SCN中可用的SCN,也列出了时间戳。

现在我登录VDB驻留的目标主机。即使这是在AWS上托管的,它对我而言比登录到任何远程箱都没有什么不同。我设置了我的环境并以架构所有者登录以执行我们的任务’ve listed above.

创建表

所以我们’LL为我们的测试创建表,索引和一些支持对象:

CREATE TABLE REW_TST
(
C1 NUMBER NOT NULL
,C2 VARCHAR2(255)
,CDATE TIMESTAMP
);

CREATE INDEX PK_INX_RT ON REW_TST (C1);
CREATE SEQUENCE RT_SEQ START WITH 1;

CREATE OR REPLACE TRIGGER RW_BIR
BEFORE INSERT ON REW_TST
FOR EACH ROW
BEGIN
  SELECT C1_SEQ.NEXTVAL
  INTO   :new.C1
  FROM   DUAL;
END;
/

现在它是’s all created, we’ll 拿另一个快照.

将数据添加到kinder表

此快照只需几秒钟,在我们的第一个次数之后大约10分钟,并且包含自从我们参加初始变更以来对数据库所做的更改。

现在我’LL从昨天从另一个事务添加了一条从另一个事务的行:

INSERT INTO KINDER_TBL
VALUES (1,dbms_random.string('A', 200), SYSDATE);
INSERT INTO KINDER_TBL
VALUES (2,dbms_random.string('B', 200), SYSDATE);
INSERT INTO KINDER_TBL
VALUES (3,dbms_random.string('C', 200), SYSDATE);
INSERT INTO KINDER_TBL
VALUES (4,dbms_random.string('D', 200), SYSDATE);
INSERT INTO KINDER_TBL
VALUES (5,dbms_random.string('E', 200), SYSDATE);
INSERT INTO KINDER_TBL
VALUES (6, dbms_random.string('F', 200), SYSDATE);
INSERT INTO  KINDER_TBL
VALUES (7,dbms_random.string('G', 200), SYSDATE);
COMMIT;

We’ll拿另一个快照:

将数据添加到新表

现在让步’S向新表添加一吨行’ve created:

SQL> Begin
For IDS in 1..10000
Loop
INSERT INTO REW_TST (C2)
VALUES (dbms_random.string('X', 200));
Commit;
End loop;
End; 
  /

并采取另一个快照。

现在我在发布变更中临界时代的所有快照,都有一个可用的辅助选项。

DBA级别的快照

正如我之前指出的那样,每个快照中都有一系列SCNS。 Â请注意,我现在可以从管理控制台提供时间或SCN:

因此,我可以轻松回到我的任何集合开始或通过快照结束SCN,或者我可以单击向上/向下箭头或键入我想要定位恢复的精确scn。有一次,我’ve决定恢复正确的SCN,然后单击刷新VDB,它将转到该SCN,就像通过RMAN进行恢复,但是不必输入命令和时间约束,这将是一个令人难以置信的快速恢复。

请注意,我也可以回到我的任何一个快照。为此测试的目的,我们’通过单击所选的SCN并单击“倒带VDB”,重新返回到新表之前。

注意现在 这是最终的快照 在系统中显示,不再显示我们将10k行插入REW_TST后所拍摄的那个。

如果我们查看我们的SQL *加上数据库的连接,我们’ll see that it’S不再从我们的新表中的10k行检查连接:

如果我重新连接,我对我工作的表中的数据有什么数据?

pssst-Â在我创建表时昨天插入了十四行而不是七排… 🙂

我认为保罗有很多问题,但我’我将在一个深入跳跃一点 -

倒带期间的数据库中断

是的,数据库确实遇到了停电,因为VDB被返回到用户界面或命令行界面为Delphix请求的时间点或SCN。 Â您可以从查询数据库中看到这一点:

SQL> select to_char(startup_time,'DD-MM-YYYY HH24:MI:SS') startup_time
 from v$instance;
STARTUP_TIME
-------------------
10-05-2017 12:11:49

整个数据库被恢复到这一次,DSOURCE,数据库VDB来自所有VDB中的所有内容都会追踪并跟踪所有VDB中的所有内容,都推动了数据库,但在此期之前的快照存在,(跟踪Delphix引擎。)

如果您查看VDB的警报日志,请您’LL还看到了恢复步骤的尾部,包括我们所要求的SCN:

alter database recover datafile list clear
Completed: alter database recover datafile list clear
alter database recover datafile list
 1 , 2 , 3 , 4
Completed: alter database recover datafile list
alter database recover if needed
 start until change 2258846
Media Recovery Start
 started logmerger process
Parallel Media Recovery started with 2 slaves
Wed May 10 12:11:05 2017
Recovery of Online Redo Log: Thread 1 Group 3 Seq 81 Reading mem 0
  Mem# 0: /mnt/provision/VEmp_826/datafile/VEMP_826/onlinelog/o1_mf_3_dk3r6nho_.log
Incomplete recovery applied all redo ever generated.
Recovery completed through change 2258846 time 05/10/2017 11:55:30
Media Recovery Complete (VEmp826)

你的变化周围的任何其他变化’从回溯到倒带影响,所以如果有两个开发人员在同一数据库上工作,它们可能会互相影响,但是使用VDB的小占地面积,为什么哇’您只需给他们每个自己的VDB并在开发周期结束时合并变化? “采用虚拟化技术的辉煌原因是在2周的冲刺中有能力,比我们越来越多的瀑布方法更加敏捷。

让我知道如果您还有更多问题 - 我为我提供了一些问题的问题,请致以一些激励’在盖子下进行!

dbakevlar.

http://about.me/dbakevlar

3 thoughts on “Insider看法Delphix VDB倒带

  • 2017年5月16日上午8:52
    永久链接

    谢谢你– it is really useful

  • 2017年10月10日在上午3:18
    永久链接

    嗨谢谢你的优秀博客文章。我也在使用delphix,我只有一个问题–Delphix VDB倒带操作是否正常需要6-8分钟?

    我正在考虑那段时间,并且根据Delphix作业日志,时间消费者是(i)恢复Oracle数据库(1分钟),(ii)打开Oracle数据库(2.5分钟),(iii)添加新的在线重做日志到VDB。我的来源VDB相当大,但我’如果这与VDB性能有任何关系,我会感到惊讶,因为我’只能及时倒退几分钟。

    只是想知道这是德尔福克可以做的最好的。

  • 2017年10月10日在上午9:44
    永久链接

    嗨大卫,
    如果重做日志很大,磁盘是’一个存储器,我可以看到这一步需要更长的时间,(就好像你在物理数据库上创建重做日志…)但我会添加一条痕迹,看看这么久了。希望这可以帮助!
    凯利恩

评论被关闭。