oracle-備份工具exp-imp

?

雖然是按照用戶的方式導出的,但導入之前,還是必須要有相同的用戶存在,刪除用戶以后,是無法進行導入的
--重新創建回zlm用戶 SQL> create user zlm identified by zlm;

盡管zlm用戶的默認表空間是USERS,但是用imp導入后的表還是會去找原來的表空間進行恢復,即“ZLM”,那么我們把原來的表空間也刪除掉,會怎么樣呢?
--刪除ZLM表空間后測試恢復情況 SQL> drop tablespace zlm including contents;

注意,使用including contents只是把可控制文件中相應的信息刪除,物理上還是存在于OS的磁盤上的,如果要連同文件一起刪除,那么就要使用including contents and datafiles,那么就連渣渣也不剩了

當我們把原來zlm用戶導出時的表空間ZLM刪除以后再倒入,此時會發現imp會把用戶導到數據庫缺省的USERS表空間上去,基于這種原理,當我們做邏輯導入導出的時候,盡量保持源端與目標端有相同的環境,當然還包括字符集(這里沒有做測試)等。否則在導入數據后,可能會產生意外地狀況,比方說源庫的表空間是很大的,但是由于在目標庫中沒有創建相應的表空間,默認放到了USERS表空間中,環境和源庫產生了不同,可能導入的時候就直接報錯了。當然了,字符集更是一個要注意的問題。

exp/imp通常在Oracle 8i/9i等早期的版本中用得較多,到了10g以后基本全面被數據庫泵(Data Pump)取代,即expdp/impdp,雖然說已經是過時的技術,但作為DBA也不能完全不了解,因為和數據泵還是有異曲同工之處的,只是數據泵的功能更強大了。本篇實驗采用了一個最不實用的方法來演示exp/imp的使用方法,即:交互方式,該方式可支配的參數非常少,如,不能指定log,feedback等參數,也不能指定按條件進行導出,且每次使用起來都要一步步確認非常多的步驟,非常繁瑣,不推薦使用,即便要使用,也推薦采用另外兩種方式:1.命令行模式、2.參數文件模式(推薦)。

?


先備份相關表
分為按用戶導與按表導,
按表的話,需要指定表名。
備份內容有:
一個表中所有的數據
一個表的數據與結構
按用戶的話,該用戶下的所在模式對象都導出來了

exp help=y
exp hr/123456
回答幾個問題

帶著問題去學習!!!!到這里所產生的問題
1.exp-00091:exporting questionable statistics.是什么東西
2.用exp導出所有的表如何做。上面的需要事先知道表名,然后一個一個導出。
經baidu查詢,
問題1解決辦法如下:

指定Linux系統的NLS_LANG環境變量為數據庫的字符集
1)查詢數據庫的字符集(方法很多只用一種)
SQL> select userenv('language') from dual;

USERENV('LANGUAGE')
----------------------------------------------------
AMERICAN_AMERICA.ZHS16GBK

2)設置Linux操作系統的NLS_LANG環境變量
[oracle@RH207 exp]$export NLS_LANG=AMERICAN_AMERICA.ZHS16GBK
Window系統的環境變量的修改方法是:
C:\>set NLS_LANG=AMERICAN_AMERICA.WE8ISO8859P1

這樣再次exp時就不會報EXP-00091: Exporting questionable statistics.錯誤了

?

按用戶導

[oracle@db Downloads]$ expExport: Release 11.2.0.4.0 - Production on Sun Dec 18 12:50:18 2016Copyright (c) 1982, 2011, Oracle and/or its affiliates.  All rights reserved.Username: lcpsys
Password: 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
Enter array fetch buffer size: 4096 > Export file: expdat.dmp > (1)E(ntire database), (2)U(sers), or (3)T(ables): (2)U > Export grants (yes/no): yes > Export table data (yes/no): yes > Compress extents (yes/no): yes > Export done in ZHS16GBK character set and AL16UTF16 NCHAR character set

--about to 即將,行將;剛要 About to export specified users ...
--指定要導出的用戶名 User to be exported: (RETURN to quit) > lcpsys --如果沒有其它的用戶名,直接回車退出配置模式,就開始導了。 User to be exported: (RETURN to quit) > --開始了 . exporting pre-schema procedural objects and actions . exporting foreign function library names for user LCPSYS . exporting PUBLIC type synonyms . exporting private type synonyms . exporting object type definitions for user LCPSYS About to export LCPSYS's objects ... . exporting database links . exporting sequence numbers . exporting cluster definitions . about to export LCPSYS's tables via Conventional Path ...

?

?


問題2解決辦法如下:
具體命令參數可以參考
exp help=y
1、EXP:
????? 有三種主要的方式(完全、用戶、表)
????? 1、完全:
????????? EXP SYSTEM/123456 BUFFER=64000 FILE=full.dmp FULL=Y
????????? 如果要執行完全導出,必須具有特殊的權限
????? 2、用戶模式:
????????? EXP hr/123456??? BUFFER=64000 FILE=hr.dmp OWNER=hr
????????? 這樣用戶hr的所有對象被輸出到文件中。
????? 3、表模式:
????????? EXP hr/123456??? BUFFER=64000 FILE=hr-xue.dmp TABLES=xue
????????? 這樣用戶hr的表xue就被導出
2、IMP:
????? 具有三種模式(完全、用戶、表)
????? 1、完全:
????????? IMP SYSTEM/123456 BUFFER=64000 FILE=full.dmp FULL=Y
????? 2、用戶模式:
????????? IMP hr/123456??? BUFFER=64000 FILE=hr.dmp FROMUSER=hr TOUSER=hr
????????? 這樣用戶hr的所有對象被導入到文件中。必須指定FROMUSER、TOUSER參數,這樣才能導入數據。
????? 3、表模式:
????????? IMP hr/123456??? BUFFER=64000 FILE=hr-xue.dmp TABLES=xue
????????? 這樣用戶hr的表xue就被導入。有一個問題是,如果表存在,數據不能導入,只需要在后面加入ignore=y參數就可以了


問題的現象:
EXP-00026: conflicting modes specified
EXP-00000: Export terminated unsuccessfully ?

備份文件會生成 但是沒有內容。
這個問題主要是 exp的時候 里面參數發生了沖突。
?? 比較常見的:
1.同時指定了 owner? 和 tables
2.同時指定了 FULL 和tables
3.同時指定了多個owner和full
owner 表示導出整個用戶或者多個用戶? 而tables表示只導出其中的表 。
要么只導出其中的表? 要么導出整個用戶。不然就會沖突了、



增刪改相關行或表,再用備份的數據進行恢復。
sqlplus hr/123456
set pagesize 200
set linesize 200
create table xue(id integer,name varchar(25));
insert into xue values(1,'wang');
insert into xue values(2,'liu');
commit;

將表刪除
drop table xue;
如果有索引關系的表,用下面
drop table mytest cascade constraints;

留下表結構,刪除一行或所有數據。
delete from regions where region_id=5;
delete from regions


imp hr/123456
回答幾個問題

帶著問題去學習!!!!到這里所產生的問題
1.所要回答的問題有些不清楚,需要細查一下。
2.字符集的問題要處理一下。
經baidu查詢,結果如下:



以上的這種方法算是一種邏輯備份,將數據導入到一個臨時的文件之中。
還可以物理備份的方法,即將oradata/下面的所有數據全部復制到另外一個安全的地方,也叫冷備
還可以熱備的方法。

ORACLE數據庫有兩類備份方法。第一類為物理備份,該方法實現數據庫的完整恢復,但數據庫必須運行在歸擋模式下(業務數據庫在非歸擋模式下運行),且需要極大的外部存儲設備,例如磁帶庫;第二類備份方式為邏輯備份,業務數據庫采用此種方式,此方法不需要數據庫運行在歸擋模式下,不但備份簡單,而且可以不需要外部存儲設備。
  
  數據庫邏輯備份方法
  
  ORACLE數據庫的邏輯備份分為三種模式:表備份、用戶備份和完全備份。
  
  表模式
  
  備份某個用戶模式下指定的對象(表)。業務數據庫通常采用這種備份方式。
  
  若備份到本地文件,使用如下命令:
  
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_csd_yyyymmdd.dmp
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  若直接備份到磁帶設備,使用如下命令:
  exp icdmain/icd rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_csd_yyyymmdd.log
  tables=icdmain.commoninformation,icdmain.serviceinfo,icdmain.dealinfo
  
  注:在磁盤空間允許的情況下,應先備份到本地服務器,然后再拷貝到磁帶。出于速度方面的考慮,盡量不要直接備份到磁帶設備。
  
  用戶模式
  
  備份某個用戶模式下的所有對象。業務數據庫通常采用這種備份方式。
  若備份到本地文件,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=exp_icdmain_yyyymmdd.dmp
  log=exp_icdmain_yyyymmdd.log
  若直接備份到磁帶設備,使用如下命令:
  exp icdmain/icd owner=icdmain rows=y indexes=n compress=n buffer=65536
  feedback=100000 volsize=0
  file=/dev/rmt0
  log=exp_icdmain_yyyymmdd.log
  注:如果磁盤有空間,建議備份到磁盤,然后再拷貝到磁帶。如果數據庫數據量較小,可采用這種辦法備份。

??? 完全模式



  1、 將數據庫TEST完全導出,用戶名system 密碼manager 導出到D:\daochu.dmp中
  exp system/manager@TEST file=d:\daochu.dmp full=y
?  2、 將數據庫中system用戶與sys用戶的表導出
  exp system/manager@TEST file=d:\daochu.dmp owner=(system,sys)
  3、 將數據庫中的表table1 、table2導出
  exp system/manager@TEST file=d:\daochu.dmp tables=(table1,table2)
  4、 將數據庫中的表table1中的字段filed1以"00"打頭的數據導出
  exp system/manager@TEST file=d:\daochu.dmp tables=(table1) query=\" where filed1 like '00%'\"
  上面是常用的導出,對于壓縮我不太在意,用winzip把dmp文件可以很好的壓縮。不過在上面命令后面 加上 compress=y 就可以了



刪除某用戶下的所有對象
Oracle刪除用戶下所有對象的方法未必人人都會,下面就為您介紹兩種常用的Oracle刪除用戶下所有對象的方法,希望對您學習Oracle刪除用戶方面能有所幫助。

方法1:
drop user hr cascade;
?? ?要退出所有的hr用戶連接,才能正確執行。
drop tablespace USERS INCLUDING CONTENTS;
?? ?不能刪除默認永久表空間。

create user hr profile default identified by 123456 default tablespace USERS temporary tablespace TEMP account unlock;

--授權
grant dba to hr;
grant connect,resource to hr;


方法2:
寫存儲過程實現

DECLARE
TYPE name_list IS TABLE OF VARCHAR2(40);
TYPE type_list IS TABLE OF VARCHAR2(20);

Tab_name name_list:=name_list();
Tab_type type_list:=type_list();

sql_str VARCHAR2(500);
BEGIN
sql_str := 'select uo.object_name,uo.object_type from user_objects uo where uo.object_type not in(''INDEX'',''LOB'') order by uo.object_type desc';
EXECUTE IMMEDIATE sql_str BULK COLLECT INTO tab_name,tab_type;

FOR i IN Tab_name.FIRST.. Tab_name.LAST LOOP
sql_str := 'DROP ' || Tab_type(i) || ' ' || Tab_name(i);
EXECUTE IMMEDIATE sql_str;
END LOOP;
END;

sqlplus hr/123456
drop table jobs cascade constraints;?? ?這樣直接刪除可能會有問題。所以盡量用下面的步驟解決,因為看了以后,沒有明白后續步驟。
drop table jobs
ORA-02449: unique/primary keys in table referenced by foreign keys
報錯,用下面的方法解決

1.檢查哪些表的外鍵引用了要刪除的表的唯一/主鍵.
select A.*
from user_constraints A, user_constraints B
where b.table_name = 'MYTEST'
and a.constraint_type = 'R'
and a.r_constraint_name = b.constraint_name;

2.生成所有引用要刪除表的外鍵的創建語句.
????? select 'select dbms_metadata.get_ddl(''REF_CONSTRAINT'',''' ||
????????? A.CONSTRAINT_NAME || ''') FROM DUAL;'
?????? from user_constraints A, user_constraints B
?????? WHERE b.table_name = 'JOBS'
??????? and a.constraint_type = 'R'
??????? and a.r_constraint_name = b.constraint_name;

select 'drop table '|| table_name ||' cascade constraints' sql1 from user_tables;
??? ?
3.執行步驟2中產生的SQL語句,獲取外鍵定義.
????? set long 3000
????? set linesize 3000
????? set pagesize 300
????? 執行步驟2產生的語句.
4.刪除表.
????? drop table mytest cascade constraints;
5.刪除并重建表.
6.建立因創建該表所刪除的外鍵約束.
????? 執行步驟3中獲取到的sql語句.
7.檢查各外鍵是否得到恢復,系統是否正常.

?

?


drop table emp purge;

purge recyclebin;

commit,事務與刪除表沒有關系,可以不用敲。

exp
沒有數據的表是不導出的。

在實際的備份操作中,exp與imp用不了,因為在其導出的過程中,必須保證其他用戶不更新數據。


數據庫的冷備份,嚴格稱為歸檔備份。指的是數據庫要關閉服務,所有的事務都需要提交。
備份如下內容:oradata/目錄下的內容
1.控制文件:通過v$controlfile數據字典找到
2.重做日志文件:通過v$logfile數據字典找到
3.數據文件:通過v$datafile數據字典找到
4.參數文件: 通過show parameter pfile找到
5.記錄好相關文件的路徑
6.關閉oracle服務,但是這個關有個問題,比如超市說關門,不是立馬就關的,有時能關一個小時,在關閉其間還有少量的io.
?? ?shutdown immediate
7.復制出所有的相關文件
8.重新啟動oracle服務,多種方式
?? ?startup或者將計算機關機一下,再開機,再startup

?

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/260601.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/260601.shtml
英文地址,請注明出處:http://en.pswp.cn/news/260601.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

繼承String?

不能繼承&#xff0c;因為 public final class String extends Objectimplements Serializable, Comparable<String>, CharSequence final修飾的類是不能被繼承的轉載于:https://www.cnblogs.com/crane-practice/p/3666006.html

python中字典數據的特點_Python數據類型(字典)

Python 字典(Dictionary) 字典是另一種可變容器模型&#xff0c;且可存儲任意類型對象。 字典的每個鍵值(key>value)對用冒號(:)分割&#xff0c;每個對之間用逗號(,)分割&#xff0c;整個字典包括在花括號({})中 ,格式如下所示&#xff1a; d {key1: value1, key2: value2}…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建10 - 空間濾波 - 統計排序濾波器 - 中值、最大值、最小值、中點、修正阿爾法均值濾波器

標題統計排序濾波器中值、最大值、最小值、中點 濾波器修正阿爾法均值濾波器統計排序濾波器 中值、最大值、最小值、中點 濾波器 f^(x,y)median{g(r,c)}(5.27)\hat{f}(x, y) \text{median} \{g(r,c)\} \tag{5.27}f^?(x,y)median{g(r,c)}(5.27) f^(x,y))max{g(r,c)}(5.28)\ha…

如何設置坐標原點值_氨氣檢測儀電化學原理及報警值如何設置

氨氣體檢測儀檢定規程&#xff1a;一般氨氣體檢測儀檢定規程主要是針對技術參數設定的一些標準&#xff0c;具體包含有規程的名稱和范圍、儀器示值誤差、充分性標準差、響應時間、穩定性、報警功能、流量控制器、檢定項目表、檢定操作有數值誤差、重復性、響應時間、穩定性等。…

統計信息及相關說明

統計信息&#xff1a;0 recursive calls20434 db block gets 317970511 consistent gets 0 physical reads 3759764 redo size 382 bytes sent via SQL*Net to client 1061 bytes received via SQL*Net from client 3 SQL*Ne…

Android橫豎屏切換的生命周期

關于Android手機橫豎屏切換時Activity的生命周期問題&#xff0c;網上有很多相似的文章&#xff0c;大多數都是說明在豎屏切換橫屏時Activity會重啟一次&#xff0c;而在橫屏切換豎屏時Activity會重啟兩次。 我本身不太理解這樣設計的意義&#xff0c;并且覺得新版本會解決這個…

python 隨機字符串_python生成隨機數、隨機字符串

python生成隨機數、隨機字符串 import random import string # 隨機整數&#xff1a; print random.randint(1,50) # 隨機選取0到100間的偶數&#xff1a; print random.randrange(0, 101, 2) # 隨機浮點數&#xff1a; print random.random() print random.uniform(1, 10) # 隨…

ACM 會場安排問題

會場安排問題 時間限制&#xff1a;3000 ms | 內存限制&#xff1a;65535 KB難度&#xff1a;4描述學校的小禮堂每天都會有許多活動&#xff0c;有時間這些活動的計劃時間會發生沖突&#xff0c;需要選擇出一些活動進行舉辦。小劉的工作就是安排學校小禮堂的活動&#xff0c;…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建11 - 空間濾波 - 自適應濾波器 - 自適應局部降噪、自適應中值濾波器

標題自適應濾波器自適應局部降噪濾波器自適應中值濾波器自適應濾波器 自適應局部降噪濾波器 均值是計算平均值的區域上的平均灰度&#xff0c;方差是該區域上的圖像對比度 g(x,y)g(x, y)g(x,y)噪聲圖像在(x,y)(x, y)(x,y)處的值 ση2\sigma_{\eta}^2ση2? 為噪聲的方差&am…

關閉防火墻_從零開始學Linux運維|09.關閉防火墻和SElinux

firewalld是centos7默認的防火墻安全增強型 Linux(Security-Enhanced Linux)簡稱 SELinux初學者建議先關閉,等熟悉了之后再來使用前期聯系中的好多錯誤都有可能是由于沒有關閉或者正確配置上面兩項造成的1.臨時關閉centos7下的防火墻firewalld一行命令就能夠關閉firewalld--&qu…

Discuz!NT - 在線顯示列表 游客 bug 修復

引發bug的條件&#xff1a;當你修改了系統組里面的[游客]組 的名字后&#xff01;&#xff01; 你會發現首頁上底部的在線顯示列表里始終都是顯示"游客"字樣而非你改過得字樣&#xff01;如圖 至此你需要運行一個t-sql腳本去修復這個bug&#xff01;&#xff08;但是…

Linux查看物理CPU個數、核數、邏輯CPU個數

# 總核數 物理CPU個數 X 每顆物理CPU的核數 # 總邏輯CPU數 物理CPU個數 X 每顆物理CPU的核數 X 超線程數# 查看物理CPU個數 cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l# 查看每個物理CPU中core的個數(即核數) cat /proc/cpuinfo| grep "cpu …

基于空間方法的圖神經網絡模型_用于時空圖建模的圖神經網絡模型 Graph WaveNet | 課程上新...

課程概要本課程來自集智學園圖網絡論文解讀系列活動。是對論文《Graph WaveNet for Deep Spatial-Temporal Graph Modeling》的解讀。時空圖建模 (Spatial-temporal graph modeling)是分析系統中組成部分的空間維相關性和時間維趨勢的重要手段。已有算法大多基于已知的固定的圖…

dataframe類型數據的遍歷_Python零基礎入門到爬蟲再到數據分析,這些你都是要學會的...

1.必須知道的兩組Python基礎術語A.變量和賦值Python可以直接定義變量名字并進行賦值的&#xff0c;例如我們寫出a 4時&#xff0c;Python解釋器干了兩件事情&#xff1a;在內存中創建了一個值為4的整型數據在內存中創建了一個名為a的變量&#xff0c;并把它指向4用一張示意圖表…

第5章 Python 數字圖像處理(DIP) - 圖像復原與重建12 - 空間濾波 - 使用頻率域濾波降低周期噪聲 - 陷波濾波、最優陷波濾波

標題使用頻率域濾波降低周期噪聲陷波濾波深入介紹最優陷波濾波本章陷波濾波器有部分得出的結果不佳&#xff0c;如果有更好的解決方案&#xff0c;請賜教&#xff0c;不勝感激。 使用頻率域濾波降低周期噪聲 陷波濾波深入介紹 零相移濾波器必須關于原點(頻率矩形中心)對稱&a…

Android之Menu動態改變文字

Menu創建&#xff1a; Override//這里遇到一個問題add的是MenuItem的idpublic boolean onCreateOptionsMenu(Menu menu) {// TODO Auto-generated method stubmenu.add(0,1023, 0, "一");menu.add(0,1022, 1, "開啟線程");Log.e("onCreateOptionsMenu…

iOS 開發周報:Apple 發布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品

新聞\\Apple 發布 iPhone 7 / 7 Plus 、Apple Watch 2 等新品&#xff1a;Apple 正式發布了 iPhone 7 / 7 Plus、Apple Watch 2 新品&#xff0c;帶來 AirPods 無線耳機&#xff0c;并把馬里奧帶進了 iOS。iPhone 7 新增亮黑色&#xff0c;移除3.5mm 耳機孔&#xff0c;支持 IP…

python寫界面c這算法_插入算法分別從C,java,python三種語言進行書寫

真正學懂計算機的人&#xff08;不只是“編程匠”&#xff09;都對數學有相當的造詣&#xff0c;既能用科學家的嚴謹思維來求證&#xff0c;也能用工程師的務實手段來解決問題——而這種思維和手段的最佳演繹就是“算法”。 作為一個初級編程人員或者說是一個程序員&#xff0c…

去掉xcode中警告的一些經驗

1、編譯時&#xff0c;編譯警告忽略掉某些文件 只需在在文件的Compiler Flags 中加入 -w 參數&#xff0c;例如&#xff1a; 2、編譯時&#xff0c;編譯警告忽略掉某段代碼 #pragma clang diagnostic push#pragma clang diagnostic ignored "-Wmultichar"char b df;…

富士施樂3065掃描教程_全面支持IT國產化 富士施樂70款機型獲統信UOS兼容認證

最近&#xff0c;富士施樂&#xff08;中國&#xff09;有限公司宣布共70款機型獲得國產操作系統統信UOS的兼容認證&#xff0c;其中包括新一代ApeosPort旗艦智能型數碼多功能機、多功能一體機/打印機、生產型數字印刷系統。這是繼獲得中標麒麟、龍芯和兆芯兼容認證后&#xff…