[20170622]傳輸表空間與dblink.txt

来源:http://www.cnblogs.com/lfree/archive/2017/06/22/7063667.html
-Advertisement-
Play Games

[20170622]傳輸表空間與dblink.txt--//測試看看使用dblink+傳輸表空間的情況.寫的情況相對複雜一點,具體看測試:1.環境:--//2個資料庫版本一致.實際上在1台主機上.SCOTT@book> @ &r/ver1PORT_STRING VERSION BANNER x86_ ...


[20170622]傳輸表空間與dblink.txt

--//測試看看使用dblink+傳輸表空間的情況.寫的情況相對複雜一點,具體看測試:

1.環境:
--//2個資料庫版本一致.實際上在1台主機上.
SCOTT@book> @ &r/ver1
PORT_STRING         VERSION    BANNER
------------------- ---------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx 11.2.0.4.0 Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@dbcn1> @ &r/ver1
PORT_STRING                    VERSION        BANNER
------------------------------ -------------- --------------------------------------------------------------------------------
x86_64/Linux 2.4.xx            11.2.0.4.0     Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production

SYS@dbcn1> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header where tablespace_name='USERS';
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                                               TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- -------------------------------------------------- ----------------
    4        12499575795 2017-06-22 09:04:40            16143       12499554377 ONLINE              1286 YES /u01/app/oracle/oradata/dbcn1/datafile/users.307.8 USERS
                                                                                                             62160493
--//傳輸表空間users到實例book.

2.檢查表空間相容性:
SYS@dbcn1> Execute sys.dbms_tts.transport_set_check('users',TRUE,TRUE);
PL/SQL procedure successfully completed.

SYS@dbcn1> SELECT * FROM sys.transport_set_violations;
VIOLATIONS
--------------------------------------------------------------------------------------------------------------------------------------
ORA-39908: Index JSTJ.SYS_C0012915 in tablespace USERS enforces primary constraints  of table JSTJ.XTLAB_RESULT in tablespace TSP_JSTJ.

--//移動索引 JSTJ.SYS_C0012915 到TSP_JSTJ表空間.

SYS@dbcn1> Execute sys.dbms_tts.transport_set_check('users',TRUE,TRUE);
PL/SQL procedure successfully completed.

SYS@dbcn1> SELECT * FROM sys.transport_set_violations;
no rows selected

3.開始:
--//設置表空間只讀:
SYS@dbcn1> alter tablespace users read only;
Tablespace altered.

--//拷貝相關數據文件到本機,我這裡在同一臺電腦,使用cp命令.(註我該了名)
$ cp /u01/app/oracle/oradata/dbcn1/datafile/users.307.862160493 /home/oracle/backup/sugar01.dbf

4.建立dblink:
create public database link "l_dbcn1"
connect to SYSTEM
identified by "xxxx"
using '192.168.100.78:1521/DBCN1';

--//測試是否ok.
SCOTT@book> select * from scott.dept@l_dbcn1 where rownum=1;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK

--//由於表空間users在實例book已經存在,必須映射一個新的空間,另外我本機也存在scott.dept.必須建立新的用戶.
SCOTT@book> grant dba to sss IDENTIFIED BY sss;
Grant succeeded.

--//補充說明1點,這樣直接grant 可以直接建立用戶,並且賦予dba許可權.測試ok.

5.開始導入操作:

impdp scott/book network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf
REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log

--//命令有點長.^_^,意思很容易理解.

$ impdp scott/book network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf  REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log
Import: Release 11.2.0.4.0 - Production on Thu Jun 22 09:35:21 2017
Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.

Connected to: Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
Starting "SCOTT"."SYS_IMPORT_TRANSPORTABLE_01":  scott/a** network_link=l_dbcn1 transport_tablespaces=users transport_datafiles=/home/oracle/backup/sugar01.dbf REMAP_TABLESPACE=USERS:SUAGR REMAP_SCHEMA=scott:sss logfile=impdp.log
Processing object type TRANSPORTABLE_EXPORT/PLUGTS_BLK
Processing object type TRANSPORTABLE_EXPORT/TABLE
Processing object type TRANSPORTABLE_EXPORT/INDEX/INDEX
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/INDEX_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/CONSTRAINT/REF_CONSTRAINT
Processing object type TRANSPORTABLE_EXPORT/TABLE_STATISTICS
Processing object type TRANSPORTABLE_EXPORT/POST_INSTANCE/PLUGTS_BLK
Job "SCOTT"."SYS_IMPORT_TRANSPORTABLE_01" successfully completed at Thu Jun 22 09:35:45 2017 elapsed 0 00:00:22

$ echo 'select * from dept where rownum=1;' | sqlplus -s sss/sss
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK


SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                            TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- ------------------------------- ---------------
    1        13277598620 2017-06-22 03:00:48                7            925702 ONLINE               912 YES /mnt/ramdisk/book/system01.dbf  SYSTEM
    2        13277598620 2017-06-22 03:00:48             1834            925702 ONLINE               901 YES /mnt/ramdisk/book/sysaux01.dbf  SYSAUX
    3        13277598620 2017-06-22 03:00:48           923328            925702 ONLINE               822 YES /mnt/ramdisk/book/undotbs01.dbf UNDOTBS1
    4        13277598620 2017-06-22 03:00:48            16143            925702 ONLINE               931 YES /mnt/ramdisk/book/users01.dbf   USERS
    5        13277598620 2017-06-22 03:00:48           952916            925702 ONLINE               818 YES /mnt/ramdisk/book/example01.dbf EXAMPLE
    6        13277598620 2017-06-22 03:00:48      13276257767            925702 ONLINE               309 YES /mnt/ramdisk/book/tea01.dbf     TEA
    7        12499578739 2017-06-22 09:21:14            16143       12499554377 ONLINE              1287 NO  /home/oracle/backup/sugar01.dbf USERS
7 rows selected.

--//昏,前面不小心把單詞sugar寫成SUAGR了(REMAP_TABLESPACE=USERS:SUAGR),不影響測試結論.^_^.等一會在修改表空間名字.
--//不過這裡註意這個時候表空間還是users,因為這個時候數據文件還是只讀的.

SCOTT@book> select tablespace_name,status from dba_tablespaces where tablespace_name='SUAGR';
TABLESPACE_NAME STATUS
--------------- ---------
SUAGR           READ ONLY

--//先改名看看是否可以.
SCOTT@book> alter tablespace  SUAGR rename to SUGAR;
Tablespace altered.

6.接著看看一些現象:

SCOTT@book> select rowid,dept.* from scott.dept ;
ROWID              DEPTNO DNAME          LOC
------------------ ------ -------------- -------------
AAAVRCAAEAAAACHAAA     10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB     20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC     30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD     40 OPERATIONS     BOSTON

SCOTT@book> select rowid,dept.* from sss.dept ;
ROWID              DEPTNO DNAME          LOC
------------------ ------ -------------- -------------
AAAVRCAAEAAAACHAAA     10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAB     20 RESEARCH       DALLAS
AAAVRCAAEAAAACHAAC     30 SALES          CHICAGO
AAAVRCAAEAAAACHAAD     40 OPERATIONS     BOSTON
--//你可以發現rowid兩個表是一樣的.

SCOTT@book> column EDITION_NAME noprint
SCOTT@book> select * from dba_objects where object_name='DEPT';
OWNER  OBJECT_NAME SUBOBJECT_    OBJECT_ID DATA_OBJECT_ID OBJECT_TYPE         CREATED             LAST_DDL_TIME       TIMESTAMP           STATUS  T G S    NAMESPACE
------ ----------- ---------- ------------ -------------- ------------------- ------------------- ------------------- ------------------- ------- - - - ------------
SCOTT  DEPT                          87106          87106 TABLE               2013-08-24 12:04:21 2013-08-24 12:04:21 2013-08-24:12:04:21 VALID   N N N            1
SSS    DEPT                         104210          87106 TABLE               2017-06-22 09:35:32 2017-06-22 09:35:36 2017-06-22:09:35:32 VALID   N N N            1

--//你可以發現DATA_OBJECT_ID是一樣的.打開讀寫看看.
SCOTT@book> alter tablespace sugar read write ;
Tablespace altered.

SCOTT@book> SELECT file#, CHECKPOINT_CHANGE#, CHECKPOINT_TIME,CREATION_CHANGE#  , RESETLOGS_CHANGE#,status, CHECKPOINT_COUNT,fuzzy,name,tablespace_name  FROM v$datafile_header;
FILE# CHECKPOINT_CHANGE# CHECKPOINT_TIME     CREATION_CHANGE# RESETLOGS_CHANGE# STATUS  CHECKPOINT_COUNT FUZ NAME                            TABLESPACE_NAME
----- ------------------ ------------------- ---------------- ----------------- ------- ---------------- --- ------------------------------- ---------------
    1        13277598620 2017-06-22 03:00:48                7            925702 ONLINE               912 YES /mnt/ramdisk/book/system01.dbf  SYSTEM
    2        13277598620 2017-06-22 03:00:48             1834            925702 ONLINE               901 YES /mnt/ramdisk/book/sysaux01.dbf  SYSAUX
    3        13277598620 2017-06-22 03:00:48           923328            925702 ONLINE               822 YES /mnt/ramdisk/book/undotbs01.dbf UNDOTBS1
    4        13277598620 2017-06-22 03:00:48            16143            925702 ONLINE               931 YES /mnt/ramdisk/book/users01.dbf   USERS
    5        13277598620 2017-06-22 03:00:48           952916            925702 ONLINE               818 YES /mnt/ramdisk/book/example01.dbf EXAMPLE
    6        13277598620 2017-06-22 03:00:48      13276257767            925702 ONLINE               309 YES /mnt/ramdisk/book/tea01.dbf     TEA
    7        13277642074 2017-06-22 09:54:55      13277642064            925702 ONLINE                 3 YES /home/oracle/backup/sugar01.dbf SUGAR
7 rows selected.

--//註意file#=7這行.你可以發現CHECKPOINT_COUNT=3(重新記數了),CHECKPOINT_CHANGE#從12499578739=>13277642074.
--//你可以反過來想像一下,加入傳輸的表空間記錄的scn大於當前資料庫的scn,這樣可以大幅提升資料庫的scn.

SCOTT@book> select rowid,a.* from scott.dept a where rownum=1 union all select rowid,b.* from sss.dept b where rownum=1;
ROWID                  DEPTNO DNAME          LOC
------------------ ---------- -------------- -------------
AAAVRCAAEAAAACHAAA         10 ACCOUNTING     NEW YORK
AAAVRCAAEAAAACHAAA         10 ACCOUNTING     NEW YORK

--//你可以發現兩個表的rowid一樣,因為什麼呢?對象的DATA_OBJECT_ID,file號,block號,行號都一樣.

SCOTT@book> @ &r/rowid AAAVRCAAEAAAACHAAA
OBJECT       FILE      BLOCK        ROW ROWID_DBA            DBA                  TEXT
------ ---------- ---------- ---------- -------------------- -------------------- ----------------------------------------
 87106          4        135          0  0x1000087           4,135                alter system dump datafile 4 block 135 ;

--//註意看這裡file=4,而不是前面查看FILE#=7.這也是oralce引入的絕對文件號與相對文件號的概念.換一句話講rowid看到的相對文件
--//號.

SCOTT@book> select * FROM dba_data_files;
FILE_NAME                       FILE_ID TABLESPACE_NAME      BYTES     BLOCKS STATUS    RELATIVE_FNO AUT   MAXBYTES  MAXBLOCKS INCREMENT_BY USER_BYTES USER_BLOCKS ONLINE_
------------------------------- ------- --------------- ---------- ---------- --------- ------------ --- ---------- ---------- ------------ ---------- ----------- -------
/mnt/ramdisk/book/users01.dbf         4 USERS            157810688      19264 AVAILABLE            4 YES 3.4360E+10    4194302          160  156762112       19136 ONLINE
/mnt/ramdisk/book/undotbs01.dbf       3 UNDOTBS1         907018240     110720 AVAILABLE            3 YES 3.4360E+10    4194302          640  905969664      110592 ONLINE
/mnt/ramdisk/book/sysaux01.dbf        2 SYSAUX           985661440     120320 AVAILABLE            2 YES 3.4360E+10    4194302         1280  984612864      120192 ONLINE
/mnt/ramdisk/book/system01.dbf        1 SYSTEM           796917760      97280 AVAILABLE            1 YES 3.4360E+10    4194302         1280  795869184       97152 SYSTEM
/mnt/ramdisk/book/example01.dbf       5 EXAMPLE          363069440      44320 AVAILABLE            5 YES 3.4360E+10    4194302           80  362020864       44192 ONLINE
/mnt/ramdisk/book/tea01.dbf           6 TEA               41943040       5120 AVAILABLE            6 YES 3.4360E+10    4194302          128   40894464        4992 ONLINE
/home/oracle/backup/sugar01.dbf       7 SUGAR              5242880        640 AVAILABLE            4 YES 3.4360E+10    4194302          160    4194304         512 ONLINE
7 rows selected.

--//註意看file_id=7行,RELATIVE_FNO=4.

總結:
1.通過dblink的方式實際上就是減少一步,使用expdp生成元數據的過程.直接通過dblink從源資料庫取.
2.另外實際上做這個測試我心裡有一個想法,比如不小心刪除不該刪除的數據,一般我們選擇在另外的機器恢復到出問題前的scn,然後再想
  辦法處理,是否可以藉助傳輸表空間來恢複數據,就導入本庫來處理呢?還是沒想好,留待以後測試.
3.另外註意的問題,傳輸表空間建立的數據文件要手工傳輸數據文件到dg資料庫中.
4.還有一個問題要註意就是該方法僅僅導出了元數據,其它像FUNCTION,PACKAGE,PROCEDURE,SEQUENCE,SYNONYM,VIEW,USER,ROLE_GRANT,
  SYSTEM_GRANT,trigger等都沒有導出.必須採用別的方式導入.以及臨時表(自己有1次這樣的經歷)^_^.

--//需要單獨在導入:
$ cat stage2.par
schemas=SCOTT
include=TABLE:"IN (SELECT table_name from dba_tables where owner='DAILY' and temporary='Y')"
include=FUNCTION,PACKAGE,PROCEDURE,SEQUENCE,SYNONYM,VIEW,USER,ROLE_GRANT,SYSTEM_GRANT,TRIGGER
dumpfile=stage2.dmp





您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 本文翻譯翻譯自http://hadoop.apache.org/docs/r2.8.0/hadoop-project-dist/hadoop-common/ClusterSetup.html 譯註:僅僅是翻譯,內容關於搭建一個純凈,簡單的hadoop集群。實際的集群,需要考慮高可靠,性能,安全。 參 ...
  • mysqldump 備份鑒於其自身的某些特性(鎖表,本質上備份出來insert腳本或者文本,不支持差異備份),不太適合對實時性要求比較高的情況Xtrabackup可以解決mysqldump存在的上述的一些問題,生產環境應用的也會更多一些。本文簡單測試一下Xtrabackup對MySQL資料庫的備份還 ...
  • 最近因系統雲化項目,學習使用MySQL集群,為了找一款順手的mysql客戶端,反覆使用了多個工具,並篩選出一個自認為最滿意的,在此分享。 先說我的選擇:SQLyog。 嘗試的客戶端:Toad for MySQL、MySQL-Front、Navicat for MySQL、SQLyog。 官方下載鏈接... ...
  • 在 Oracle 領域,我相信一說到列轉行大部分人都會立馬想到 WM_CONCAT 函數,我覺得主要是因為該函數比較實用。但事實上 WM_CONCAT 並非官方公開函數,使用會存在一定的風險;函數返回值的格式比較單一(只能用逗號分割);返回值的長度也限制。 在 "《.Net程式員學用Oracle系列 ...
  • ...
  • Oracle執行計劃詳解 一.相關的概念 Rowid的概念 Recursive Sql概念 Predicate(謂詞) DRiving Table(驅動表) Probed Table(被探查表) 組合索引(concatenated index) 可選擇性(selectivity) 二.oracle訪 ...
  • Configuration File(配置文件) Core Options(核心設置) mongos-only Options(mongo單獨設置) Windows Service Options(windows系統設置) Configuration File File Format You can ...
  • 用sys用戶sqlplus連接到數據: SQL*Plus: Release 11.2.0.3.0 Production on Thu Jun 22 11:07:58 2017 Copyright (c) 1982, 2011, Oracle. All rights reserved. Connect ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...