<span id="mktg5"></span>

<i id="mktg5"><meter id="mktg5"></meter></i>

        <label id="mktg5"><meter id="mktg5"></meter></label>
        最新文章專題視頻專題問答1問答10問答100問答1000問答2000關鍵字專題1關鍵字專題50關鍵字專題500關鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關鍵字專題關鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
        問答文章1 問答文章501 問答文章1001 問答文章1501 問答文章2001 問答文章2501 問答文章3001 問答文章3501 問答文章4001 問答文章4501 問答文章5001 問答文章5501 問答文章6001 問答文章6501 問答文章7001 問答文章7501 問答文章8001 問答文章8501 問答文章9001 問答文章9501
        當前位置: 首頁 - 科技 - 知識百科 - 正文

        IT忍者神龜之數據庫備份還原技術總結

        來源:懂視網 責編:小采 時間:2020-11-09 14:45:20
        文檔

        IT忍者神龜之數據庫備份還原技術總結

        IT忍者神龜之數據庫備份還原技術總結:1. exp/imp (導出與導入裝庫與卸庫) 1.1 基本命令 1. 獲取幫助 $ exp help=y $ imp help=y 2. 三種工作方式 (1)交互式方式 $ exp // 然后按提示輸入所需要的參數 (2)命令行方式 $ exp user/pwd@dbname file=/oracle/t
        推薦度:
        導讀IT忍者神龜之數據庫備份還原技術總結:1. exp/imp (導出與導入裝庫與卸庫) 1.1 基本命令 1. 獲取幫助 $ exp help=y $ imp help=y 2. 三種工作方式 (1)交互式方式 $ exp // 然后按提示輸入所需要的參數 (2)命令行方式 $ exp user/pwd@dbname file=/oracle/t

        1. exp/imp (導出與導入裝庫與卸庫) 1.1 基本命令 1. 獲取幫助 $ exp help=y $ imp help=y 2. 三種工作方式 (1)交互式方式 $ exp // 然后按提示輸入所需要的參數 (2)命令行方式 $ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令行中輸入所需

        1. exp/imp (導出與導入裝庫與卸庫)

        1.1 基本命令

        1. 獲取幫助

        $ exp help=y

        $ imp help=y

        2. 三種工作方式

        (1)交互式方式

        $ exp // 然后按提示輸入所需要的參數

        (2)命令行方式

        $ exp user/pwd@dbname file=/oracle/test.dmp full=y // 命令行中輸入所需的參數

        (3)參數文件方式

        $ exp parfile=username.par // 在參數文件中輸入所需的參數

        參數文件 username.par 內容

        userid=username/userpassword

        buffer=8192000

        compress=n

        grants=y

        file=/oracle/test.dmp

        full=y

        3. 三種模式

        (1)表方式,將指定表的數據導出/導入。

        導出:

        導出一張或幾張表:

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2

        導出某張表的部分數據

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1query=\”where col1=\’…\’

        and col2 \<…\”

        導入:

        導入一張或幾張表

        $ imp user/pwd file=/dir/xxx.dmp log=xxx.log tables=table1,table2fromuser=dbuser

        user=dbuser2 commit=y ignore=y

        (2)用戶方式,將指定用戶的所有對象及數據導出/導入。

        導出:

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=(xx,yy)

        只導出數據對象,不導出數據(rows=n )

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log owner=user rows=n

        導入:

        $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbusertouser=dbuser2

        commit=y ignore=y

        (3)全庫方式,將數據庫中的所有對象導出/導入

        導出:

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log full=y commit=yignore=y

        導入:

        $ imp user/pwd file=/dir/xxx.dmp log=xxx.log fromuser=dbusertouser=dbuser2

        1.2 高級選項

        1. 分割成多個文件

        以多個固定大小文件方式導出:這種做法通常用在表數據量較大,單個 dump 文件可能

        會超出文件系統的限制的情況

        $ exp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m log=xxx.logfull=y

        以多個固定大小文件方式導入

        $ imp user/pwd file=1.dmp,2.dmp,3.dmp,… filesize=1000m tables=xxxfromuser=dbuser

        touser=dbuser2 commit=y ignore=y

        2. 增量導出/導入

        // oracle 9i 以后 exp 不再支持 inctype

        必須為 SYS 或 SYSTEM 才可執行增量導出導入

        增量導出: 包括三個類型:

        (1)“完全”增量導出(Complete) // 備份整個數據庫

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=complete

        (2)“增量型”增量導出導出上一次備份后改變的數據。

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=incremental

        (3)“累計型”增量導出(Cumulative)只導出自上次“完全”導出之后數據庫中變化

        了的信息。

        $ exp user/pwd file=/dir/xxx.dmp log=xxx.log inctype=cumulative

        增量導入:

        $ imp usr/pwd FULL=y inctype=system/restore/inctype

        其中:

        SYSTEM: 導入系統對象

        RESTORE: 導入所有用戶對象

        3. 以SYSDBA進行導出/導入

        1. 用于 Oracle 技術支持

        2. 用于表空間傳輸

        例:

        $ imp \'usr/pwd@instance as sysdba\' tablespaces=xxtransport_tablespace=y

        file=xxx.dmp datafiles=xxx.dbf

        $ imp file=expdat.dmp userid=”””sys/password as sysdba”””transport_tablespace=y

        “datafile=(c:tempapp_data,c:tempapp_index)”

        4. 表空間傳輸 (速度快)

        表空間傳輸是 8i 新增加的一種快速在數據庫間移動數據的一種辦法,是把一個數

        據庫上的格式數據文件附加到另外一個數據庫中,而不是把數據導出成 dmp 文件,這

        在有些時候是非常管用的,因為傳輸表空間移動數據就象復制文件一樣快。

        1.關于傳輸表空間有一些規則 (10g 前):

        (一) 源數據庫和目標數據庫必須運行在相同的硬件平臺上。

        (二) 源數據庫與目標數據庫必須使用相同的字符集。

        (三) 源數據庫與目標數據庫一定要有相同大小的數據塊

        (四) 目標數據庫不能有與遷移表空間同名的表空間

        (五) SYS 的對象不能遷移

        (六) 必須傳輸自包含的對象集

        (七) 有一些對象,如物化視圖,基于函數的索引等不能被傳輸

        (同字節序文件的跨平臺可以用更換數據文件的文件頭的方法)

        (10g 支持跨平臺的表空間傳輸,只要操作系統字節順序相同,就可以進行表空間傳輸。需要使用 RMAN 轉換文件格式,略)

        2. 檢測一個表空間是否符合傳輸標準的方法:

        SQL > exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);

        SQL > select * from sys.transport_set_violations;

        如果沒有行選擇,表示該表空間只包含表數據,并且是自包含的。對于有些非自包

        含的表空間,如數據表空間和索引表空間,可以一起傳輸。

        3. 簡要使用步驟:

        如果想參考詳細使用方法,也可以參考 ORACLE 聯機幫助。

        1.設置表空間為只讀(假定表空間名字為APP_Data 和 APP_Index)

        SQL > alter tablespace app_data read only;

        SQL > alter tablespace app_index read only;

        2.發出 EXP 命令

        SQL> host exp userid=”””sys/password as sysdba”””transport_tablespace=y

        tablespaces=(app_data, app_index)

        以上需要注意的是

        ·為了在 SQL 中執行 EXP,USERID 必須用三個引號,在UNIX 中也必須注意

        避免“/”的使用

        ·在 816 和以后,必須使用sysdba 才能操作

        ·這個命令在 SQL中必須放置在一行(這里是因為顯示問題放在了兩行)

        3.拷貝.dbf 數據文件(以及.dmp 文件)到另一個地點,即目標數據庫

        可以是 cp(unix)或copy(windows)或通過 ftp 傳輸文件(一定要在 bin 方式)

        4.把本地的表空間設置為讀寫

        $ alter tablespace app_data read write;

        $ alter tablespace app_index read write;

        5.在目標數據庫附加該數據文件 (直接指定數據文件名)

        (表空間不能存在,必須建立相應用戶名或者用 fromuser/touser)

        $ imp file=expdat.dmp userid=”””sys/password as sysdba”””

        transport_tablespace=ydatafiles=(“c:\app_data.dbf,c:\app_index.dbf”)

        tablespaces=app_data,app_index tts_owners=hr,oe

        6.設置目標數據庫表空間為讀寫

        $ alter tablespace app_data read write;

        $ alter tablespace app_index read write;

        1.3 優化

        1. 加快exp速度

        加大large_pool_size,可以提高 exp 的速度

        采用直接路徑的方式(direct=y),數據不需要經過內存進行整合和檢查.

        設置較大的 buffer,如果導出大對象,小buffer 會失敗。

        export 文件不在 ORACLE 使用的驅動器上

        不要 export 到 NFS 文件系統

        UNIX 環境:用管道模式直接導入導出來提高 imp/exp 的性能

        2. 加快imp速度

        建立一個indexfile,在數據 import 完成后在建立索引

        將 import 文件放在不同的驅動器上

        增加DB_BLOCK_BUFFERS

        增加 LOG_BUFFER

        用非歸檔方式運行ORACLE:ALTER DATABASE NOARCHIVELOG;

        建立大的表空間和回滾段,OFFLINE其他回滾段,回滾段的大小為最大表的 1/2

        使用 COMMIT=N

        使用 ANALYZE=N

        單用戶模式導入

        UNIX 環境:用管道模式直接導入導出來提高 imp/exp 的性能

        3. 通過unix/Linux PIPE管道加快exp/imp速度

        通過管道導出數據:

        1.通過 mknod -p 建立管道

        $ mknod /home/exppipe p // 在目錄/home下建立一個管道exppipe注意參數p

        2.通過 exp 和 gzip 導出數據到建立的管道并壓縮

        $ exp test/test file=/home/exppipe &gzip < /home/exppipe > exp.dmp.gz

        $ exp test/test tables=bitmap file=/home/newsys/test.pipe&

        gzip < /home/newsys/test.pipe >bitmap.dmp.gz

        3.導出成功完成之后刪除建立的管道

        $ rm -rf /home/exppipe

        導出腳本:

        ###UNIX 下 ORACLE 數據庫通過 PIPE 管道進行備份

        ###### using "export" and"tar" command to bakup oracle datebase #######

        trap "" 1 #nohup

        LOGFILE=/opt/bakup/log/bakup_ora.log

        export LOGFILE

        DUMPDIR=/archlog_node1

        export DUMPDIR

        exec >$LOGFILE 2>&1

        echo

        echo ' Begin at ' `date`

        echo

        # clear old result file

        cd $DUMPDIR

        if [ -f exp.dmp.Z ]

        then

        echo "clear old result file"

        rm exp.dmp.Z

        fi

        # make pipe

        mkfifo exp.pipe

        chmod a+rw exp.pipe

        # gain the dmp.Z file

        compress < exp.pipe > exp.dmp.Z &

        su -u oracle -c "exp userid=ll/llfile=$DUMPDIR/exp.pipe full=y buffer=20000000"

        echo

        echo ' exp end at '`date`

        echo

        # rm pipe

        rm exp.pipe

        # tar the dmp.Z file to tape

        mt -f /dev/rmt/0 rew

        tar cvf /dev/rmt/0 exp.dmp.Z

        echo

        echo ' tar end at '`date`

        echo

        通過管道導入生成的文件:

        1.通過 mknod -p 建立管道

        $ mknod /home/exppipe p

        2.導入生成的壓縮文件

        $ imp test/test file=/home/exppipefromuser=test touser=macro &

        gunzip < exp.dmp.gz > /home/exppipe

        3.刪除管道

        $ rm –fr /home/exppipe

        4. 全庫導入的一般步驟

        注意:在導出時,需要通過toad或其他工具提取源數據庫創建主鍵和索引的腳本

        1. 先全庫加 rows=n 把結構導進去

        $ imp system/manager file=exp.dmp log=imp.logfull=y rows=n indexes=n

        2. 使業務用戶的觸發器失效/刪除主鍵和唯一索引

        spool drop_pk_u.sql

        select 'alter table '||table_name||' dropconstraint '||constraint_name||';'

        from user_constraints

        where constraint_type in ('P','U');

        /

        spool off

        spool disable_trigger.sql

        select 'alter trigger '||trigger_name||'disable;'

        from user_triggers;

        /

        spool off

        @drop_pk_u.sql

        @disable_trigger.sql

        3. 以 ignore=y全庫導入

        $ imp system/manager file=exp.dmplog=imp.log full=y ignore=y

        4. 通過toad或其他工具提取源數據庫創建主鍵和索引的腳本,在目標數據庫中創建主鍵

        和索引。使觸發器生效。

        1.4 常見問題

        1. 字符集問題

        ORACLE 多國語言設置是為了支持世界范圍的語言與字符集,一般對語言提示,

        貨幣形式,排序方式和 CHAR,VARCHAR2,CLOB,LONG 字段的數據的顯示等有效。

        ORACLE 的多國語言設置最主要的兩個特性就是國家語言設置與字符集設置,國家語

        言設置決定了界面或提示使用的語言種類,字符集決定了數據庫保存與字符集有關數據

        (如文本)時候的編碼規則。

        ORACLE 字符集設定,分為數據庫字符集和客戶端字符集環境設置。在數據庫端,

        字符集在創建數據庫的時候設定,并保存在數據庫 props$表中。

        在客戶端的字符集環境比較簡單,主要就是環境變量或注冊表項 NLS_LANG,注

        意 NLS_LANG 的優先級別為:參數文件<注冊表<環境變量

        字符集和服務器端字符集不一樣,而且字符集的轉換也不兼容,那么客戶端的數據顯示

        與導出/導入的與字符集有關的數據將都是亂碼。

        使用一點點技巧,就可以使導出/導入在不同的字符集的數據庫上轉換數據。這里

        需要一個 2 進制文件編輯工具即可,如 uedit32。用編輯方式打開導出的 dmp 文件,獲

        取 2、3 字節的內容,如 00 01,先把它轉換為 10 進制數,為 1,使用函數

        NLS_CHARSET_NAME 即可獲得該字符集:

        SQL> select nls_charset_name(1) fromdual;

        NLS_CHARSET_NAME(1)

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

        US7ASCII

        可以知道該 dmp 文件的字符集為 US7ASCII,如果需要把該 dmp 文件的字符集換

        成 ZHS16GBK,則需要用 NLS_CHARSET_ID 獲取該字符集的編號:

        SQL> select nls_charset_id('zhs16gbk')from dual;

        NLS_CHARSET_ID('ZHS16GBK')

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

        852

        把 852 換成 16 進制數,為 354,把 2、3 字節的 00 01 換成 03 54,即完成了把該

        dmp 文件字符集從 us7ascii 到 zhs16gbk 的轉化,這樣,再把該dmp 文件導入到 zhs16gbk

        字符集的數據庫就可以了。

        2. 版本問題

        Exp/Imp 很多時候,可以跨版本使用,如在版本 7 與版本 8 之間導出導入數據,但

        這樣做必須選擇正確的版本,規則為:

        總是使用 IMP 的版本匹配數據庫的版本,如果要導入到 816,則使用 816 的導入工

        具。

        總是使用 EXP 的版本匹配兩個數據庫中低的那個版本,如在 815 與 816 之間互導,

        則使用 815 的 EXP 工具。

        imp 和 exp 版本不能往上兼容: imp可以導入低版本 exp 生成的文件, 不能導入高

        版本 exp 生成的文件

        聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

        文檔

        IT忍者神龜之數據庫備份還原技術總結

        IT忍者神龜之數據庫備份還原技術總結:1. exp/imp (導出與導入裝庫與卸庫) 1.1 基本命令 1. 獲取幫助 $ exp help=y $ imp help=y 2. 三種工作方式 (1)交互式方式 $ exp // 然后按提示輸入所需要的參數 (2)命令行方式 $ exp user/pwd@dbname file=/oracle/t
        推薦度:
        標簽: 恢復 還原 備份
        • 熱門焦點

        最新推薦

        猜你喜歡

        熱門推薦

        專題
        Top
        主站蜘蛛池模板: 亚洲免费视频网址| 亚洲色大成网站www久久九| 综合一区自拍亚洲综合图区| 99久久国产热无码精品免费| 成人免费视频77777| 久久亚洲AV成人无码国产| 波霸在线精品视频免费观看| 亚洲视频在线一区二区| 免费一级全黄少妇性色生活片| 又爽又高潮的BB视频免费看 | 日韩成人精品日本亚洲| 国产精品无码一二区免费| 国产午夜亚洲精品不卡| 亚洲AV伊人久久青青草原| 污污污视频在线免费观看| 国产亚洲精品影视在线产品| a毛片全部免费播放| 久久亚洲美女精品国产精品| 91成年人免费视频| 久久亚洲精品成人无码| 亚洲国产婷婷综合在线精品| 99精品视频免费| 亚洲国产中文在线视频| 国产亚洲精品免费| 成人无码视频97免费| 亚洲国产成a人v在线| 日本免费高清一本视频| 成人网站免费大全日韩国产| 亚洲综合小说久久另类区| 成人免费午夜视频| 人碰人碰人成人免费视频| 亚洲人成网www| 免费视频中文字幕| 中国国产高清免费av片| 亚洲国产高清在线精品一区| 国产免费直播在线观看视频| 日韩免费高清播放器| 亚洲永久网址在线观看| 亚洲熟妇丰满多毛XXXX| 亚洲人成网站免费播放| 久久免费视频一区|