[20121128]传输表空间与scn.txt

[20121128]传输表空间与scn.txt

今天测试如果使用传输表空间,数据文件的scn的变化。如果传输表空间的数据文件scn很大,传过来后数据库的scn是否同步到最大的情况。

测试机器A(10g)

SQL> select * from v$version where rownum
BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
SQL> select current_scn from v$database ;
CURRENT_SCN
-----------
 3180115893

测试机器B(11g)

SQL> select * from v$version where rownum
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
SQL> select current_scn from v$database ;
CURRENT_SCN
-----------
 3179998749

两者相差3180115893 - 3179998749 = 117144. 相差有点小,不过这两个数据都是测试库,基本没人使用,应该还是可以测试出来的。

1.首先测试是否可以传输表空间(10g)

SQL> exec dbms_tts.transport_set_check('LIS_BAK',TRUE);

PL/SQL procedure successfully completed.

SQL> select * from transport_set_violations ;

no rows selected

SQL> alter tablespace lis_bak read only;

$ exp \"/ as sysdba\" tablespaces=LIS_BAK transport_tablespace=y file=lis_bak.dmp

Export: Release 10.2.0.4.0 - Production on Wed Nov 28 09:31:36 2012

Copyright (c) 1982, 2007, Oracle.  All rights reserved.

Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bit Production

With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

Note: table data (rows) will not be exported

About to export transportable tablespace metadata...

For tablespace LIS_BAK ...

. exporting cluster definitions

. exporting table definitions

......

. exporting referential integrity constraints

. exporting triggers

. end transportable tablespace metadata export

Export terminated successfully without warnings.

2.在11g上建立用户:

CREATE USER DBO
  IDENTIFIED BY VALUES 'XXXXXXXX'
  DEFAULT TABLESPACE users
  TEMPORARY TABLESPACE TEMP
  PROFILE DEFAULT
  ACCOUNT UNLOCK;
  -- 2 Roles for DBO 
  GRANT CONNECT TO DBO;
  GRANT DBA TO DBO;
  ALTER USER DBO DEFAULT ROLE ALL;

3.拷贝文件到B机器,并导入数据:
$ scp  /data/orcl/lis_bak.dbf oracle11g@192.168.105.xx:/u01/app/oracle11g/oradata/test/
$ scp lis_bak.dmp oracle11g@192.168.105.xx:/home/oracle11g/test3

$ imp \'\/ as sysdba\' tablespaces=LIS_BAK transport_tablespace=y file=lis_bak.dmp  datafiles=/u01/app/oracle11g/oradata/test/lis_bak.dbf
Import: Release 11.2.0.1.0 - Production on Wed Nov 28 11:00:14 2012
Copyright (c) 1982, 2009, Oracle and/or its affiliates.  All rights reserved.
Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

Export file created by EXPORT:V10.02.01 via conventional path
About to import transportable tablespace(s) metadata...
import done in ZHS16GBK character set and AL16UTF16 NCHAR character set
. importing SYS's objects into SYS
. importing SYS's objects into SYS
. importing DBO's objects into DBO
.....
. importing SYS's objects into SYS
Import terminated successfully without warnings.

SQL> select current_scn from v$database ;
CURRENT_SCN
-----------
 3180117422

--可以发现现在scn同步到最大的数据文件,像dblink一样。

在11G上执行:

SQL> alter system checkpoint;
SQL> SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change# FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change# FROM v$datafile WHERE NAME LIKE '%lis_bak%'
UNION
SELECT 'file header', NAME, checkpoint_change# FROM v$datafile_header WHERE NAME LIKE '%lis_bak%';

SCN location        NAME                                     CHECKPOINT_CHANGE#
------------------- ---------------------------------------- ------------------
controlfile         SYSTEM checkpoint                                3180123887
file header         /data/orcl/lis_bak.dbf                           3180116692
file in controlfile /data/orcl/lis_bak.dbf                           3180116692

在测试机器A(10G)上执行:

SQL> alter system checkpoint;
SQL> SELECT 'controlfile' "SCN location", 'SYSTEM checkpoint' NAME, checkpoint_change# FROM v$database
UNION
SELECT 'file in controlfile', NAME, checkpoint_change# FROM v$datafile WHERE NAME LIKE '%lis_bak%'
UNION
SELECT 'file header', NAME, checkpoint_change# FROM v$datafile_header WHERE NAME LIKE '%lis_bak%';
SCN location        NAME                                               CHECKPOINT_CHANGE#
------------------- -------------------------------------------------- ------------------
controlfile         SYSTEM checkpoint                                          3180117582
file header         /u01/app/oracle11g/oradata/test/lis_bak.dbf                3180116692
file in controlfile /u01/app/oracle11g/oradata/test/lis_bak.dbf                3180116692
使用logminer看也能发现存在大的跳跃:
SQL> SELECT   SCN, TIMESTAMP,  sql_redo FROM v$logmnr_contents WHERE SCN BETWEEN 3179999383 AND 3180116696 ORDER BY 1;
SCN           TIMESTAMP             SQL_REDO
----------    -------------------   -----------------------------------------
3179999383    2012-11-28 11:00:16   ALTER SEQUENCE sys.idgen1$ INCREMENT BY 50;    
3179999385    2012-11-28 11:00:16   commit;    
3180116693    2012-11-28 11:00:16   set transaction read write;    
3180116693    2012-11-28 11:00:16   update "SYS"."OBJ$" set "OBJ#" = '1', "DATAOBJ#" = '267606', "TYPE#" = '0', ....
3180116694    2012-11-28 11:00:16   commit;    
3180116696    2012-11-28 11:00:16   set transaction read write;    
3180116696    2012-11-28 11:00:16   Unsupported    

--从3179999385 到 3180116693(正好是数据文件记录的scn+1) 存在大的跳跃.

时间: 2024-09-20 14:48:16

[20121128]传输表空间与scn.txt的相关文章

[20130708]传输表空间与data_object_id.txt

[20130708]传输表空间与data_object_id.txt 传输表空间与scn.txt:http://space.itpub.net/267265/viewspace-750140 初学者经常搞混视图dba_objects中object_id和data_object_id,一般建立表两者是相等的,容易混淆.建立分区表的话,表仅仅有object_id,没有data_object_id,分区表才有data_object_id. 实际上有些对象比如view,sequence等仅仅有objec

[20170623]传输表空间补充测试.txt

[20170623]传输表空间补充测试.txt --//昨天测试了使用dblink+传输表空间,链接如下:http://blog.itpub.net/267265/viewspace-2141115/ --//今天补充测试看看加参数SQLFILE生成的脚本是什么内容. impdp scott/book network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.d

[20170623]利用传输表空间恢复数据库2.txt

[20170623]利用传输表空间恢复数据库2.txt --//继续上午的测试,测试truncate,是否可行,理论讲应该没有问题.我主要的目的测试是否要切换日志. --//参考链接 : http://blog.itpub.net/267265/viewspace-2141166/ 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -------------------------

[20170623]利用传输表空间恢复部分数据.txt

[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解. --//这样的操作模式仅仅减少expdp生成原数据的过程. --//我想一下,rman也支持建立传输表空间的命令.我仔细看了以前的笔记,发现这样最大的有点不用设置只读,实际上它是通过建立辅组实 --//例来建立传输文件,理论讲可以恢复到特定的scn,这样可以利用它解决一些误操作的问题,还是通过例子来说明问题. 1.环

【TTS】传输表空间Linux asm -> AIX asm

[TTS]传输表空间Linux asm -> AIX asm 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推荐使用QQ或3

[20170520]利用undo表空间保护数据.txt

[20170520]利用undo表空间保护数据.txt --//undo表空间是用来记录前映像信息,也用来保证查询时一致性的.上个星期去听一些课,提到不打开归档情况下一些维护技巧, --//就是建立多个redo日志文件,用来保存日志,至少维持3-4天甚至1个星期的日志,这样可以一定程度减少错误以及会查问题. --//另外提到一种利用undo表空间避免异常操作的恢复方法,就是再建立1个undo表空间,出现异常dml语句时切换使用新的undo表空间. --//这样可以非常从容的恢复信息.当然最好不要

[20150112]系统管理表空间的疑问.txt

[20150112]系统管理表空间的疑问.txt http://www.itpub.net/thread-1903121-1-1.html 10g下每个数据文件3-8块为位图区. 6个块=48K(假设数据块大小8k) 48*8*1024=393216 区 对于系统表空间管理.1区=64K. SCOTT@test> set numw 20 SCOTT@test> select 48*8*1024*64*1024 from dual;    48*8*1024*64*1024 ----------

【TTS】传输表空间Linux ->AIX 基于rman

[TTS]传输表空间Linux asm -> AIX asm 基于rman 一.1  BLOG文档结构图       一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 异构平台下传输表空间的实施 ② 传输表空间基于表空间的read only和rman2种方式 ③ 平台字节序.自包含概念 ④ expdp/impdp的应用     Tips:        ① 若文章代码格式有错乱,推

RMAN使用备份传输表空间的各种自定义操作

执行传输表空间时指定Data Pump文件目录 可以修改传输表空间集的Data Pump导出的dump文件名,示例脚本名和日志文件名.缺省情况下这些文件 存储在表空间目录中且缺省名称如下: .Data Pump导出的dump文件名为dmpfile.dmp .导出日志文件explog.log .示例脚本impscrpt.sql 可以通过指定datapump directory子句来指定dump文件和导出日志文件的存储目录,datapumpdirectory子句使用的是数据库目录对象名,不是文件系统