zoukankan      html  css  js  c++  java
  • 16.2 准备 TSPITR

    16.2.1 确定 TSPITR 需求

    1. 检查恢复集表空间是否为自包含

    当执行 TSPITR 时,要求恢复集所包括的表空间必须是自包含的。自包含表空间集是指具有相关联的表空间集合。

    违反自包含表空间集合的常见情况如下:

    • 表空间集合包含有SYS 方案对象。
    • 表空间集合包含了索引所在的表空间,但没有包含索引基表所在的表空间。
    • 表空间集合没有包含分区表的所有分区。
    • 表空间集合包含了表所在的表空间,但没有包含其LOB 列所在的表空间。

    SQL> execute sys.dbms_tts.transport_set_check('TBS03',TRUE);

    PL/SQL 过程已成功完成。

    SQL> select * from sys.transport_set_violations;

    未选定行

    2. 检查是否存在恢复集表空间的数据文件备份

    SQL> select file_name from dba_data_files where tablespace_name='TBS03';

    FILE_NAME
    ----------------------------------------------------------------------------

    D:\ORCL\TBS03.DBF

    3. 检查是否存在辅助集的数据文件和控制文件备份

    SQL> select file_name from dba_data_files where tablespace_name in ('SYSTEM','UNDOTBS1')
      2  union
      3  select max(name) from v$controlfile;

    FILE_NAME
    --------------------------------------------------------------------------------

    D:\ORCL\CONTROL01.CTL
    D:\ORCL\SYSTEM01.DBF
    D:\ORCL\UNDOTBS01.DBF

    4. 检查 TSPITR 之后丢失的对象

    SQL> select owner,name from sys.ts_pitr_objects_to_be_dropped
      2  where tablespace_name='TBS03' AND creation_time>to_date('2009-01-10 10:01:0
    1','yyyy-mm-dd hh24:mi:ss');

    未选定行

    16.2.2 准备主数据库

    (1) 准备TBS03 表空间、TBS04 表空间及示例表。

    SQL> conn system/orcl@orcl
    已连接。
    SQL> create tablespace tbs03 datafile 'd:\orcl\tbs03.dbf' size 1M autoextend on
    next 1M;

    表空间已创建。

    SQL> create tablespace tbs04 datafile 'd:\orcl\tbs04.dbf' size 1M autoextend on
    next 1M;

    表空间已创建。

    SQL> create table scott.customers
      2  (cust_id int,cust_name varchar2(10)) tablespace tbs03;

    表已创建。

    SQL> create table scott.sales
      2  (id int,cust_name varchar2(10),sales_amount number(8,2)) tablespace tbs04;

    表已创建。

    (2) 备份主数据库的所有数据文件和控制文件。

    使用用户管理的表空间时间点恢复:

    SQL> select name from v$datafile;

    NAME
    --------------------------------------------------------------------------------

    D:\ORCL\SYSTEM01.DBF
    D:\ORCL\UNDOTBS01.DBF
    D:\ORCL\SYSAUX01.DBF
    D:\ORCL\USERS01.DBF
    D:\ORCL\TBS03.DBF
    D:\ORCL\TBS04.DBF

    已选择6行。

    SQL> alter database begin backup;

    数据库已更改。

    SQL> host copy D:\ORCL\SYSTEM01.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> host copy D:\ORCL\undotbs01.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> host copy D:\ORCL\sysaux01.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> host copy D:\ORCL\users01.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> host copy D:\ORCL\tbs03.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> host copy D:\ORCL\tbs04.DBF d:\orcl\bak
    已复制         1 个文件。

    SQL> alter database end backup;

    数据库已更改。

    SQL> alter database backup controlfile to 'd:\orcl\bak\orcl.ctl' reuse;

    数据库已更改。

    SQL> alter system archive log current;

    系统已更改。

    使用RMAN 管理的表空间时间点恢复:

    RMAN> run {
    2> backup database format='d:\orcl\bak\%d_%s_%p.bak';
    3> sql 'alter system archive log current';
    4> }

    启动 backup 于 10-1月 -09
    分配的通道: ORA_DISK_1
    通道 ORA_DISK_1: sid=140 devtype=DISK
    通道 ORA_DISK_1: 启动全部数据文件备份集
    通道 ORA_DISK_1: 正在指定备份集中的数据文件
    输入数据文件 fno=00001 name=D:\ORCL\SYSTEM01.DBF
    输入数据文件 fno=00003 name=D:\ORCL\SYSAUX01.DBF
    输入数据文件 fno=00002 name=D:\ORCL\UNDOTBS01.DBF
    输入数据文件 fno=00004 name=D:\ORCL\USERS01.DBF
    输入数据文件 fno=00005 name=D:\ORCL\TBS03.DBF
    输入数据文件 fno=00006 name=D:\ORCL\TBS04.DBF
    通道 ORA_DISK_1: 正在启动段 1 于 10-1月 -09
    通道 ORA_DISK_1: 已完成段 1 于 10-1月 -09
    段句柄=D:\ORCL\BAK\ORCL_1_1.BAK 标记=TAG20090110T110614 注释=NONE
    通道 ORA_DISK_1: 备份集已完成, 经过时间:00:03:19
    通道 ORA_DISK_1: 启动全部数据文件备份集
    通道 ORA_DISK_1: 正在指定备份集中的数据文件
    备份集中包括当前控制文件
    在备份集中包含当前的 SPFILE
    通道 ORA_DISK_1: 正在启动段 1 于 10-1月 -09
    通道 ORA_DISK_1: 已完成段 1 于 10-1月 -09
    段句柄=D:\ORCL\BAK\ORCL_2_1.BAK 标记=TAG20090110T110614 注释=NONE
    通道 ORA_DISK_1: 备份集已完成, 经过时间:00:00:03
    完成 backup 于 10-1月 -09

    sql 语句: alter system archive log current

    (3). 在主数据库上执行DML 操作。

    SQL> insert into scott.customers values(1,'SCOTT');

    已创建 1 行。

    SQL> insert into scott.customers values(2,'SMITH');

    已创建 1 行。

    SQL> insert into scott.sales values(1,'SCOTT',8000);

    已创建 1 行。

    SQL> insert into scott.sales values(2,'SMITH',10000);

    已创建 1 行。

    SQL> commit;

    提交完成。

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    SQL> alter system switch logfile;

    系统已更改。

    (4) 模拟用户误操作及其他正常操作。

    SQL> host date
    当前日期: 2009-01-10 星期六
    输入新日期: (年月日)

    SQL> host time
    当前时间: 11:36:45.56
    输入新时间:

    SQL> truncate table scott.customers;

    表被截断。

    SQL> insert into scott.sales values(3,'SCOTT',6000);

    已创建 1 行。

    SQL> insert into scott.sales values(4,'BLAKE',67000);

    已创建 1 行。

    SQL> commit;

    提交完成。

    SQL> create table scott.employee(id int,name varchar2(10)) tablespace tbs03;

    表已创建。

  • 相关阅读:
    没有好的数据可视化分析工具,如何做好数据洞察,如何助力企业数据化转型
    8个可靠的开源数据可视化工具-你的选择是?
    数据可视化赋能大数据价值释放,助力大数据价值应用落地 echarts,d3.js
    (五).NET Core中过滤器Filter的使用介绍
    (四).NET Core中使用OOM框架,AutoMapper的使用介绍
    (三).NET Core WebAPI集成JWT,实现身份验证
    (二)集成Swagger接口文档分组配置.net core
    (一).NET Core WebAPI集成Swagger做接口管理
    要使数据分析真正有价值和有洞察力,就需要高质量的可视化工具
    基于echarts组件制作数据可视化大屏
  • 原文地址:https://www.cnblogs.com/yiwuya/p/1373423.html
Copyright © 2011-2022 走看看