自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Oracle EXP/IMP備份簡介

數(shù)據(jù)庫 Oracle
Oracle備份方法按照備份的工具,可以分為EXP/IMP備份、OS拷貝、RMAN、第三方工具等,下面就為您介紹Oracle EXP/IMP備份,供您參考。

Oracle EXP/IMP備份是最常用的備份方法之一,其實Exp/Imp并不算是一種好的備份方式,正確的說法是Exp/Imp只能是一個好的轉(zhuǎn)儲工具

Oracle EXP/IMP備份:

導(dǎo)入/導(dǎo)出是ORACLE幸存的最古老的兩個命令行工具了,其實我從來不認(rèn)為Exp/Imp是一種好的備份方式,正確的說法是Exp/Imp只能是一個好的轉(zhuǎn)儲工具,特別是在小型數(shù)據(jù)庫的轉(zhuǎn)儲,表空間的遷移,表的抽取,檢測邏輯和物理沖突等中有不小的功勞。當(dāng)然,我們也可以把它作為小型數(shù)據(jù)庫的物理備份后的一個邏輯輔助備份,也是不錯的建議。對于越來越大的數(shù)據(jù)庫,特別是TB級數(shù)據(jù)庫和越來越多數(shù)據(jù)倉庫的出現(xiàn),Oracle EXP/IMP備份越來越力不從心了,這個時候,數(shù)據(jù)庫的備份都轉(zhuǎn)向了RMAN和第三方工具。下面我們還是簡要介紹一下Oracle EXP/IMP備份的使用。

i、Oracle EXP/IMP備份使用方法
Exp parameter_name=value
Or Exp parameter_name=(value1,value2……)
只要輸入?yún)?shù)help=y就可以看到所有幫助
如:
C:\>set nls_lang=simplified chinese_china.zhs16gbk
C:\>exp -help
Export: Release 8.1.6.0.0 - Production on 星期四 4月 10 19:09:21 2003
(c) Copyright 1999 Oracle Corporation.   All rights reserved.
 
通過輸入 EXP 命令和用戶名/口令,您可以在用戶 / 口令之后的命令:
實例: EXP SCOTT/TIGER
或者,您也可以通過輸入跟有各種參數(shù)的 EXP 命令來控制“導(dǎo)出” 的運行方式。要指定參數(shù),您可以使用關(guān)鍵字:
 
格式: EXP KEYWORD=value 或 KEYWORD=(value1,value2,...,valueN)
實例: EXP SCOTT/TIGER GRANTS=Y TABLES=(EMP,DEPT,MGR) 或 TABLES=(T1: P1,T1: P2),如果 T1 是分區(qū)表USERID 必須是命令行中的***個參數(shù)。關(guān)鍵字   說明(默認(rèn))        關(guān)鍵字    說明(默認(rèn))
--------------------------------------------------------------------------
USERID 用戶名/口令          FULL       導(dǎo)出整個文件 (N)
BUFFER 數(shù)據(jù)緩沖區(qū)的大小       OWNER        所有者用戶名列表
FILE     輸出文件 (EXPDAT.DMP) TABLES    表名列表
COMPRESS 導(dǎo)入一個范圍 (Y) RECORDLENGTH   IO 記錄的長度
GRANTS   導(dǎo)出權(quán)限 (Y)          INCTYPE    增量導(dǎo)出類型
INDEXES 導(dǎo)出索引 (Y)           RECORD    跟蹤增量導(dǎo)出 (Y)
ROWS 導(dǎo)出數(shù)據(jù)行 (Y)       PARFILE    參數(shù)文件名
CONSTRAINTS 導(dǎo)出限制 (Y) CONSISTENT 交叉表一致性
LOG    屏幕輸出的日志文件 STATISTICS   分析對象 (ESTIMATE)
DIRECT 直接路徑 (N)              TRIGGERS     導(dǎo)出觸發(fā)器 (Y)
FEEDBACK 顯示每 x 行 (0) 的進(jìn)度
FILESIZE 各轉(zhuǎn)儲文件的***尺寸
QUERY 選定導(dǎo)出表子集的子句
 
下列關(guān)鍵字僅用于可傳輸?shù)谋砜臻gTRANSPORT_TABLESPACE 導(dǎo)出可傳輸?shù)谋砜臻g元數(shù)據(jù) (N) TABLESPACES 將傳輸?shù)谋砜臻g列表
在沒有警告的情況下成功終止導(dǎo)出。
C:\>

幫助已經(jīng)很詳細(xì)的說明了參數(shù)的意義和使用方法,并列舉了幾個簡單的例子,注意的是,從8i開始,已經(jīng)開始支持?jǐn)?shù)據(jù)子集的方法,就是可以指定自己的Where條件,可以從表中導(dǎo)出一行或多行數(shù)據(jù)。注意上面的set nls_lang=simplified chinese_china.zhs16gbk,通過設(shè)置環(huán)境變量,可以讓exp的幫助以中文顯示,如果set nls_lang=American_america.字符集,那么你的幫助就是英文的了。增量和累計導(dǎo)出必須在全庫方式下才有效,而且,大多數(shù)情況下,增量和累計導(dǎo)出并沒有想象中的那么有效。ORACLE從9i開始,不再支持增量導(dǎo)出和累計導(dǎo)出。

ii、表空間傳輸

表空間傳輸是8i新增加的一種快速在數(shù)據(jù)庫間移動數(shù)據(jù)的一種辦法,是把一個數(shù)據(jù)庫上的格式數(shù)據(jù)文件附加到另外一個數(shù)據(jù)庫中,而不是把數(shù)據(jù)導(dǎo)出成Dmp文件,這在有些時候是非常管用的,因為傳輸表空間移動數(shù)據(jù)就象復(fù)制文件一樣快。關(guān)于傳輸表空間有一些規(guī)則,即:

·源數(shù)據(jù)庫和目標(biāo)數(shù)據(jù)庫必須運行在相同的平臺上。
·源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫必須使用相同的字符集。
·源數(shù)據(jù)庫與目標(biāo)數(shù)據(jù)庫一定要有相同大小的數(shù)據(jù)塊(9i已經(jīng)不用)
·目標(biāo)數(shù)據(jù)庫不能有與遷移表空間同名的表空間
·SYS的對象不能遷移
·必須傳輸自包含的對象集
·有一些對象,如物化視圖,基于函數(shù)的索引等不能被傳輸

可以用以下的方法來檢測一個表空間或一套表空間是否符合傳輸標(biāo)準(zhǔn):
exec sys.dbms_tts.transport_set_check(‘tablespace_name’,true);
select * from sys.transport_set_violation;

如果沒有行選擇,表示該表空間只包含表數(shù)據(jù),并且是自包含的。對于有些非自包含的表空間,如數(shù)據(jù)表空間和索引表空間,可以一起傳輸。以下為簡要使用步驟,如果想?yún)⒖荚敿?xì)使用方法,也可以參考ORACLE聯(lián)機幫助。

a.設(shè)置表空間為只讀(假定表空間名字為APP_Data 和APP_Index)
alter tablespace app_data read only;
alter tablespace app_index read only;

b.發(fā)出EXP命令
SQL>host exp userid=”””sys/password as sysdba””” 
transport_tablespace=y tablespace=(app_data, app_index)
 
以上需要注意的是
·為了在SQL中執(zhí)行EXP,USERID必須用三個引號,在UNIX中也必須注意避免“/”的使用
·在816和以后,必須使用sysdba才能操作
·這個命令在SQL中必須放置在一行(這里是因為顯示問題放在了兩行)

 c.拷貝數(shù)據(jù)文件到另一個地點,即目標(biāo)數(shù)據(jù)庫可以是cp(unix)或copy(windows)或通過ftp傳輸文件(一定要在bin方式)

d.把本地的表空間設(shè)置為讀寫

e.在目標(biāo)數(shù)據(jù)庫附加該數(shù)據(jù)文件
imp file=expdat.dmp userid=”””sys/password as sysdba”””
   transport_tablespace=y
   “datafile=(c:\temp\app_data,c:\temp\app_index)”

 f.設(shè)置目標(biāo)數(shù)據(jù)庫表空間為讀寫
alter tablespace app_data read write;
    alter tablespace app_index read write;

iii、導(dǎo)出/導(dǎo)入與字符集

明白ORACLE的多國語言設(shè)置,ORACLE多國語言設(shè)置是為了支持世界范圍的語言與字符集,一般對語言提示,貨幣形式,排序方式和CHAR,VARCHAR2,CLOB,LONG字段的數(shù)據(jù)的顯示等有效。ORACLE的多國語言設(shè)置最主要的兩個特性就是國家語言設(shè)置與字符集設(shè)置,國家語言設(shè)置決定了界面或提示使用的語言種類,字符集決定了數(shù)據(jù)庫保存與字符集有關(guān)數(shù)據(jù)(如文本)時候的編碼規(guī)則。正如剛才上面的一個小例子,環(huán)境變量NLS_LANG的不同,導(dǎo)致EXP幫助發(fā)生變化,這就是多國語言設(shè)置的作用(NLS_LANG包含國家語言設(shè)置與字符集設(shè)置,這里起作用的是國家語言設(shè)置,而不是字符集)。

ORACLE字符集設(shè)定,分為數(shù)據(jù)庫字符集和客戶端字符集環(huán)境設(shè)置。在數(shù)據(jù)庫端,字符集在創(chuàng)建數(shù)據(jù)庫的時候設(shè)定,并保存在數(shù)據(jù)庫props$表中,對于8i以上產(chǎn)品,已經(jīng)可以采用“Alter database character set 字符集”來修改數(shù)據(jù)庫的字符集,但也僅僅是從子集到超集,不要通過update props$來修改字符集,如果是不支持的轉(zhuǎn)換,可能會失去所有與字符集有關(guān)的數(shù)據(jù),就是支持的轉(zhuǎn)換,也可能導(dǎo)致數(shù)據(jù)庫的不正常工作。字符集分為單字節(jié)字符集與多字節(jié)字符集,US7ASCII就是典型的單字節(jié)字符集,在這種字符集中l(wèi)ength=lengthb,而ZHS16GBK就是常用的雙字節(jié)字符集,在這里lengthb=2*length。

在客戶端的字符集環(huán)境比較簡單,主要就是環(huán)境變量或注冊表項NLS_LANG,注意NLS_LANG的優(yōu)先級別為:參數(shù)文件à注冊表à環(huán)境變量àalter session。NLS_LANG的組成為“國家語言設(shè)置.字符集”,如nls_lang=simplified chinese_china.zhs16gbk??蛻舳说淖址?**與數(shù)據(jù)庫端一樣(國家語言設(shè)置可以不一樣,如zhs16gbk的字符集,客戶端可以是nls_lang =simplified chinese_china.zhs16gbk或Ameircan_America.zhs16gbk,都不影響數(shù)據(jù)庫字符的正常顯示),如果字符集不一樣,而且字符集的轉(zhuǎn)換也不兼容,那么客戶端的數(shù)據(jù)顯示與導(dǎo)出/導(dǎo)入的與字符集有關(guān)的數(shù)據(jù)將都是亂碼。

使用一點點技巧,就可以使導(dǎo)出/導(dǎo)入在不同的字符集的數(shù)據(jù)庫上轉(zhuǎn)換數(shù)據(jù)。這里需要一個2進(jìn)制文件編輯工具即可,如uedit32。用編輯方式打開導(dǎo)出的dmp文件,獲取2、3字節(jié)的內(nèi)容,如00 01,先把它轉(zhuǎn)換為10進(jìn)制數(shù),為1,使用函數(shù)NLS_CHARSET_NAME即可獲得該字符集:
SQL> select nls_charset_name(1) from dual;
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進(jìn)制數(shù),為354,把2、3字節(jié)的00 01換成03 54,即完成了把該dmp文件字符集從us7ascii到zhs16gbk的轉(zhuǎn)化,這樣,再把該dmp文件導(dǎo)入到zhs16gbk字符集的數(shù)據(jù)庫就可以了。(注意,十進(jìn)制數(shù)與十六進(jìn)制之間的轉(zhuǎn)換,想明白其中的道理)

Iv、跨版本使用Exp/Imp

Exp/Imp很多時候,可以跨版本使用,如在版本7與版本8之間導(dǎo)出導(dǎo)入數(shù)據(jù),但這樣做必須選擇正確的版本,規(guī)則為:
·總是使用IMP的版本匹配數(shù)據(jù)庫的版本,如果要導(dǎo)入到816,則使用816的導(dǎo)入工具。
·總是使用EXP的版本匹配兩個數(shù)據(jù)庫中低的那個版本,如在815與816之間互導(dǎo),則使用815的EXP工具。

 

 

【編輯推薦】

Oracle數(shù)據(jù)庫備份的重要性

教您如何實現(xiàn)ORACLE備份

oracle備份命令使用實例

Oracle單行日期函數(shù)簡介

oracle聚合函數(shù)的使用

責(zé)任編輯:段燃 來源: 互聯(lián)網(wǎng)
相關(guān)推薦

2010-04-19 17:39:04

Oracle導(dǎo)入

2011-08-16 13:17:29

2010-04-23 17:55:25

Oracle數(shù)據(jù)庫

2010-03-29 15:57:07

Oracle exp備

2010-05-07 11:58:16

Oracle exp

2010-03-30 09:49:35

2010-03-29 16:34:09

Oracle exp備

2009-03-10 08:54:19

RMANEXP、IMP數(shù)據(jù)轉(zhuǎn)移

2010-03-29 16:16:59

Oracle exp備

2010-04-13 13:01:21

Oracle exp

2010-03-30 10:34:08

Oracle exp備

2009-11-16 11:31:54

Oracle數(shù)據(jù)導(dǎo)入

2009-11-19 17:25:12

Oracle數(shù)據(jù)庫物理

2010-03-29 15:33:18

Oracle EXP

2010-03-30 08:45:35

Oracle導(dǎo)入

2009-11-18 16:43:59

2009-11-19 11:00:55

Oracle xmlt

2010-04-29 10:41:55

2009-01-06 09:14:08

8i9ioracle

2010-11-15 12:02:24

Oracle進(jìn)程結(jié)構(gòu)
點贊
收藏

51CTO技術(shù)棧公眾號