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

简介: [20121128]传输表空间与scn.txt今天测试如果使用传输表空间,数据文件的scn的变化。如果传输表空间的数据文件scn很大,传过来后数据库的scn是否同步到最大的情况。
[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) 存在大的跳跃.

目录
相关文章
|
SQL Oracle 关系型数据库
|
存储 Oracle 前端开发
利用BBED恢复数据文件头
利用BBED模拟损坏5文件1号块(文件头),如下测试步骤:
|
Oracle 关系型数据库 数据库
[20171122]恢复数据文件块头5.txt
[20171122]恢复数据文件块头5.txt --//前几天做了恢复数据文件块头,通过备份文件直接取出文件块头,覆盖原来的数据块,然后修复. --//今天测试使用image copy来恢复.
1093 0
|
Oracle 关系型数据库 数据库
[20171114]恢复数据文件块头2.txt
[20171114]恢复数据文件块头2.txt --//曾经写过一篇[20161111]数据库文件头的修复.txt,但是利用大小相似的数据文件头覆盖来恢复,那是属于特种恢复.
1056 0
|
SQL Oracle 关系型数据库
[20170627]使用TSPITR恢复表空间.txt
[20170627]使用TSPITR恢复表空间.txt --//RMAN提供了一种实现所谓TSPITR(Tablespace Point-In-Time Recovery)的技术,通过简单的一个语句,就可以在主库不停库(很吸引人) --//的情况下,利用备份集和连续的归档日志,实现表空间级别的定点恢复。
882 0
|
SQL Oracle 关系型数据库
[20170623]利用传输表空间恢复部分数据.txt
[20170623]利用传输表空间恢复部分数据.txt --//昨天我测试使用传输表空间+dblink,上午补充测试发现表空间设置只读才能执行impdp导入原数据,这个也很好理解.
911 0
|
机器学习/深度学习 Oracle 关系型数据库
[20170622]传输表空间与dblink.txt
[20170622]传输表空间与dblink.txt --//测试看看使用dblink+传输表空间的情况.写的情况相对复杂一点,具体看测试: 1.环境: --//2个数据库版本一致.
944 0
|
机器学习/深度学习 SQL 关系型数据库
[20170520]利用undo表空间保护数据.txt
[20170520]利用undo表空间保护数据.txt --//undo表空间是用来记录前映像信息,也用来保证查询时一致性的.上个星期去听一些课,提到不打开归档情况下一些维护技巧, --//就是建立多个redo日志文件,用来保存日志,至少维持3-4天甚至1个星期的日志,这样可以一定程度减少错误以及会查问题.
829 0
|
Oracle 关系型数据库 数据库
[20161031]rman备份与数据文件OS块.txt
[20161031]rman备份与数据文件OS块.txt --每个数据文件都有一个OS块,位于数据文件的第1块(也是0块).通过bbed无法访问: BBED> set dba 7,0 BBED-00205: illegal or out of range DB...
801 0
|
Oracle 关系型数据库 数据库
[20160721]rman与undo表空间备份.txt
[20160721]rman与undo表空间备份.txt --//UNDO表空间主要用于存储前镜像数据,这些数据在回滚以及恢复过程中可能被用到。 --//一般生产数据库的UNDO表空间可能会变得非常巨大,甚至包括多个数据文件,而备份完整的UNDO数据文件在恢复时一般可能用到的比 --//例很小。
831 0