甜咖啡

          我的IT空間

          ORACLE同一個數據庫導入時,數據還保存在原來的表空間上

          今天在研究了一下關于ORACLE的導入導出的功能,周五快要下班的時候給同事新建一個表空間,將同一個數據庫中的某個用戶下的表導入新的表空間上,建好表空間和用戶后,直接用 exp ,imp 來導入數據到新的表空間,查是發現后來導入的數據還在原來的表空間上,(周五那天的我是用工具編輯DMP文件,修改里的表空間名后導入的),后來想起來了eygle的書上寫了關于這個的問題,于是今天就來試驗了一下。

          第一種:修改用戶的一些權限。

          首先使用sytem帳戶登陸

          --創建新表空間的用戶

          SQL> create user pangzi identified by pangzi default tablespace pangzi temporary tablespace temp;

          用戶已創建。

          --授給新用戶一般的權限

          SQL> grant export full database to pangzi;

          授權成功。

          SQL> grant import full database to pangzi;

          授權成功。

          SQL> grant connect,resource to pangzi;

          授權成功。

          SQL> grant create procedure to pangzi;

          授權成功。

          SQL> grant create job to pangzi;

          授權成功。

          SQL> grant create view to pangzi;

          授權成功。

          SQL> grant create synonym to pangzi;

          授權成功。

          --從這里開始將是增加的,為了使導入的數據,不放在原來的表空間上

          SQL> grant dba to pangzi;

          --收回用戶的umlimited tablespace權限

          SQL> revoke unlimited tablespace from pangzi;

          --設置新創建的用戶可使用syb表空間的大小0(原數據所在的表空間為syb)

          SQL> alter user pangzi quota 0 on syb;

          --設置新創建的用戶可使用pangzi表空間的大小不限制

           

          SQL> alter user pangzi quota unlimited on pangzi;

          --收回DBA權限

          SQL> revoke dba from pangzi;

          執行導入數據

          C:\Users\dyspangzi>imp pangzi/pangzi@testdev file=syb.dmp full=y

           

          Import: Release 10.2.0.3.0 - Production on 星期六 4月 21 17:48:54 2012

           

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

           

           

          連接到: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production

          With the Partitioning, OLAP and Data Mining options

           

          經由常規路徑由 EXPORT:V10.02.01 創建的導出文件

           

          警告: 這些對象由 SYB 導出, 而不是當前用戶

           

          已經完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的導入

          . 正在將 SYB 的對象導入到 PANGZI

          . . 正在導入表                     "ALL_SALES"導入了         360 行

          . . 正在導入表                       "COUPONS"導入了           6 行

          . . 正在導入表                     "CUSTOMERS"導入了           5 行

          . .中間部分內容省略,都是導入的信息

           

           

          . . 正在導入表                      "REG_EXPS"導入了           1 行

          . . 正在導入表                 "SALARY_GRADES"導入了           4 行

          即將啟用約束條件...

          成功終止導入, 沒有出現警告。

          導入成功,我們看導的表已經在新的表空間中了

          SQL> show user
          USER 為 "PANGZI"
          SQL> select table_name,tablespace_name from user_tables;

          TABLE_NAME                     TABLESPACE_NAME
          ------------------------------ ------------------------------
          DYSPANGZI                      PANGZI
          CUSTOMERS                      PANGZI
          PRODUCT_TYPES                  PANGZI
          PRODUCTS                       PANGZI
          PURCHASES                      PANGZI
          EMPLOYEES                      PANGZI
          SALARY_GRADES                  PANGZI
          PURCHASES_WITH_TIMESTAMP       PANGZI
          PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
          PURCHASES_WITH_LOCAL_TZ        PANGZI
          COUPONS                        PANGZI

          TABLE_NAME                     TABLESPACE_NAME
          ------------------------------ ------------------------------
          PROMOTIONS                     PANGZI
          ORDER_STATUS                   PANGZI
          PRODUCT_CHANGES                PANGZI
          MORE_PRODUCTS                  PANGZI
          MORE_EMPLOYEES                 PANGZI
          DIVISIONS                      PANGZI
          JOBS                           PANGZI
          EMPLOYEES2                     PANGZI
          ALL_SALES                      PANGZI
          PRODUCT_PRICE_AUDIT            PANGZI
          REG_EXPS                       PANGZI

          已選擇22行。                      

          第二種:使用EXPDP和IMPDP來導入和導出

                 使用expdp來導出,首先要為一個參數來指定一個路徑——directory,expdp是在服務器端工作,導出的文件需要放在本地目錄,這個參數就是保存導出文件的位置。這個可以自己創建,也可以是默認的,我自己創建了一個,名字是expdir

          SQL> CREATE OR REPLACE DIRECTORY expdir AS '/var/backup';

           

          目錄已創建。

           

          SQL> select * from dba_directories;

           

          OWNER        DIRECTORY_NAME      DIRECTORY_PATH

          -------------------   -------------------------------  -----------------------------------------

          SYS             ADMIN_DIR            /ade/aime_10.2_lnx_push/oracle/md/admin

           

          SYS             DATA_PUMP_DIR       /usr/app/oracle/product/10.2.0/db_1/rdbms/log/

           

          SYS             WORK_DIR             /ade/aime_10.2_lnx_push/oracle/work

           

          SYS             EXPDIR                /var/backup

          --給用戶授予讀寫權限

           

           

          SQL> grant read,write on directory expdir to syb;

          開始導出數據

          [oracle@dyspangzi ~]$ expdp dumpfile=syb.dmp directory=expdir;

          Export: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:06:46

          Copyright (c) 2003, 2005, Oracle.  All rights reserved.

          Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options
          Starting "SYB"."SYS_EXPORT_SCHEMA_01":  dumpfile=syb.dmp directory=expdir
          Estimate in progress using BLOCKS method...
          Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
          Total estimation using BLOCKS method: 1.375 MB
          Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
          Processing object type SCHEMA_EXPORT/TABLE/TABLE
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
          Processing object type SCHEMA_EXPORT/TABLE/COMMENT
          Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
          Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
          Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
          Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
          Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
          Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
          Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
          . . exported "SYB"."DYSPANGZI"                           48.50 KB     659 rows
          . . exported "SYB"."ALL_SALES"                           13.68 KB     360 rows
                 中間導出信息省略

          .  . exported "SYB"."REG_EXPS"                            5.437 KB       1 rows
          . . exported "SYB"."SALARY_GRADES"                       5.710 KB       4 rows
          . . exported "SYB"."PRODUCT_PRICE_AUDIT"                     0 KB       0 rows
          Master table "SYB"."SYS_EXPORT_SCHEMA_01" successfully loaded/unloaded
          ******************************************************************************
          Dump file set for SYB.SYS_EXPORT_SCHEMA_01 is:
            /var/backup/syb.dmp
          Job "SYB"."SYS_EXPORT_SCHEMA_01" successfully completed at 18:07:11

           

          導出成功后查看一下剛才創建目錄里邊的內容

          [root@dyspangzi var]# cd backup
          [root@dyspangzi backup]# ls -l
          總計 720
          -rw-r--r-- 1 oracle oinstall   3472 04-21 18:07 export.log
          -rw-r----- 1 oracle oinstall 729088 04-21 18:07 syb.dmp

          多了兩個文件,一個是日志文件一個是導出的數據文件,在導入的時候需要這兩個文件。下面開始導入。

          ===================================================================================

          出現了第一個錯誤

          [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

          Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:45:35

          Copyright (c) 2003, 2005, Oracle.  All rights reserved.

          Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options
          ORA-39002: invalid operation
          ORA-39070: Unable to open the log file.
          ORA-39087: directory name EXPDIR is invalid

          出現了錯誤,后來發現這個是因為新用戶pangzi沒有對目錄的讀寫權限造成的,于是加上權限

          SQL> grant read,write on directory expdir to pangzi;

          授權成功。

          ==================================================================================

          出現了第二個錯誤

          [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi

          Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:47:38

          Copyright (c) 2003, 2005, Oracle.  All rights reserved.

          Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options
          ORA-31655: no data or metadata objects selected for job
          ORA-39154: Objects from foreign schemas have been removed from import
          Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
          Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_tablespace=syb:pangzi
          Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
          Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:47:41

          這個是由于原來的用戶和現在的不一樣了,加上這個參數就好了  remap_schema=syb:pangzi

          =====================================================================================================

          下面是沒有任何錯誤的導入了

          [oracle@dyspangzi ~]$ impdp pangzi/pangzi dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi

          Import: Release 10.2.0.1.0 - Production on Saturday, 21 April, 2012 18:49:24

          Copyright (c) 2003, 2005, Oracle.  All rights reserved.

          Connected to: Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
          With the Partitioning, OLAP and Data Mining options
          Master table "PANGZI"."SYS_IMPORT_FULL_01" successfully loaded/unloaded
          Starting "PANGZI"."SYS_IMPORT_FULL_01":  pangzi/******** dumpfile=syb.dmp directory=expdir remap_schema=syb:pangzi remap_tablespace=syb:pangzi
          Processing object type SCHEMA_EXPORT/PRE_SCHEMA/PROCACT_SCHEMA
          Processing object type SCHEMA_EXPORT/TABLE/TABLE
          Processing object type SCHEMA_EXPORT/TABLE/TABLE_DATA
          . . imported "PANGZI"."DYSPANGZI"                        48.50 KB     659 rows
          . . imported "PANGZI"."ALL_SALES"                        13.68 KB     360 rows
               中間部分導入信息省略

          . . imported "PANGZI"."PURCHASES_WITH_TIMESTAMP"         5.609 KB       1 rows
          . . imported "PANGZI"."REG_EXPS"                         5.437 KB       1 rows
          . . imported "PANGZI"."SALARY_GRADES"                    5.710 KB       4 rows
          . . imported "PANGZI"."PRODUCT_PRICE_AUDIT"                  0 KB       0 rows
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/INDEX
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/INDEX/STATISTICS/INDEX_STATISTICS
          Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_SPEC
          Processing object type SCHEMA_EXPORT/FUNCTION/FUNCTION
          Processing object type SCHEMA_EXPORT/PROCEDURE/PROCEDURE
          Processing object type SCHEMA_EXPORT/PACKAGE/COMPILE_PACKAGE/PACKAGE_SPEC/ALTER_PACKAGE_SPEC
          Processing object type SCHEMA_EXPORT/FUNCTION/ALTER_FUNCTION
          Processing object type SCHEMA_EXPORT/PROCEDURE/ALTER_PROCEDURE
          Processing object type SCHEMA_EXPORT/PACKAGE/PACKAGE_BODY
          Processing object type SCHEMA_EXPORT/TABLE/CONSTRAINT/REF_CONSTRAINT
          Processing object type SCHEMA_EXPORT/TABLE/TRIGGER
          Job "PANGZI"."SYS_IMPORT_FULL_01" successfully completed at 18:49:37

          成功導入!!!!

          查看默認的表空間

          SQL> select table_name,tablespace_name from user_tables;

          TABLE_NAME                     TABLESPACE_NAME
          ------------------------------ ------------------------------
          DYSPANGZI                      PANGZI
          CUSTOMERS                      PANGZI
          PRODUCT_TYPES                  PANGZI
          PRODUCTS                       PANGZI
          PURCHASES                      PANGZI
          EMPLOYEES                      PANGZI
          SALARY_GRADES                  PANGZI
          PURCHASES_WITH_TIMESTAMP       PANGZI
          PURCHASES_TIMESTAMP_WITH_TZ    PANGZI
          PURCHASES_WITH_LOCAL_TZ        PANGZI
          COUPONS                        PANGZI

          TABLE_NAME                     TABLESPACE_NAME
          ------------------------------ ------------------------------
          PROMOTIONS                     PANGZI
          ORDER_STATUS                   PANGZI
          PRODUCT_CHANGES                PANGZI
          MORE_PRODUCTS                  PANGZI
          MORE_EMPLOYEES                 PANGZI
          DIVISIONS                      PANGZI
          JOBS                           PANGZI
          EMPLOYEES2                     PANGZI
          ALL_SALES                      PANGZI
          PRODUCT_PRICE_AUDIT            PANGZI
          REG_EXPS                       PANGZI

          已選擇22行。

          此表空間中沒有索引,所以第一種方法也沒有報錯,如果出現有索引的第一種方法還得增加幾步,等我明天找到周五那個數據再來再著做試驗。

          -----------------------------------------------------------

          今天特意去公司找來了那天導的數據庫,回來做實驗。采用第一種方法不可行,雖然說可以使用IMP  加indexs參數來導出一些索引,但是導入的時候總有莫名其妙的錯誤,估計還是我沒弄好,所以為了省事還是直接用第二種吧,方便,無錯。

          posted on 2013-04-03 12:07 甜咖啡 閱讀(993) 評論(0)  編輯  收藏


          只有注冊用戶登錄后才能發表評論。


          網站導航:
           

          導航

          <2013年4月>
          31123456
          78910111213
          14151617181920
          21222324252627
          2829301234
          567891011

          統計

          常用鏈接

          留言簿(1)

          我參與的團隊

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 龙游县| 平邑县| 宁陵县| 偏关县| 昌图县| 兴宁市| 梨树县| 抚州市| 潍坊市| 绵阳市| 曲阳县| 龙胜| 彭阳县| 延寿县| 东宁县| 沁阳市| 扶沟县| 福建省| 行唐县| 兴仁县| 安福县| 临漳县| 固安县| 宜昌市| 滦平县| 中方县| 木兰县| 大新县| 镇沅| 宜都市| 高雄市| 河源市| 和田市| 长治县| 宁津县| 剑阁县| 理塘县| 黄平县| 兴业县| 喜德县| 郁南县|