程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> 數據庫的備份和恢復(學習筆記學習中),備份學習筆記

數據庫的備份和恢復(學習筆記學習中),備份學習筆記

編輯:Oracle教程

數據庫的備份和恢復(學習筆記學習中),備份學習筆記


--**********************數據泵技術------oracle 10G之後出現

--創建目錄

create directory dump_dir as 'e:/backup';

--查詢數據庫所有有目錄

select * from dba_directories;

--刪除數據庫目錄

drop directory dump_dir;

drop directory dump_file;

--創建表空間

create tablespace tbs_test

datafile 'e:/t.dbf'

size 10M

autoextend on;

--查詢表空間

select * from dba_tablespaces;

--創建測試用戶

create user tests identified by tests;

--用戶授權

grant connect,resource to tests;

revoke imp_full_database from scott;

 

--授予用戶操作dump_dir目錄的權限

grant read ,write on directory dump_dir to tests;

grant read, write on directory dump_dir to scott;

---------------------------------備份(導出)--------------

--導出整個數據庫

expdp help=y --幫助文件

--導出

expdp  system/accp@orcl directory=dump_dir  dumpfile=full.bak full=y 

--expdp導出

--directory   指定目錄

--dumpfile  指定備份的文件名

--full      完整備份

--導出表空間

--查詢表空間

select * from scott.

select  * from dba_tablespaces;

 --導出全部表空間 tablespaces表空間

expdp system/accp@orcl directory=dump_dir dumpfile=tablespacefull.bak tablespaces

 

--導出指定表空間 tablespaces=表空間表

expdp system/accp@orcl directory=dump_dir dumpfile=ts_test.bak tablespaces=tbs_test

--刪除表空間

drop tablespace tbs_test;

--導出用戶用SCHEMAS

--導出scott用戶

expdp scott/tiger@orcl directory=dump_dir dumpfile=scottschma.bak  schemas=scott

 

--導出表

expdp scott/tiger@orcl directory=dump_dir dumpfile=scotttabs.bak  tables=emp,dept,bonus,salgrade

--使用管理員

expdp system/accp@orcl directory=dump_dir dumpfile=scotttbales.bak tables=scott.emp,scott.dept,scott.bonus,scott.salgrade

--導出一個表

expdp scott/tiger@orcl directory=dump_dir dumpfile=scottemp.bak   tables=emp

------------------------------恢復(導入)---------------

--impdd導入關鍵字

 

--導入emp表,scottemp.bak文件

impdp scott/tiger@orcl directory=dump_dir dumpfile=scottemp.bak tables=emp

 

--導入scott下的所有表 scotttabs.bak

impdp scott/tiger@orcl directory=dump_dir dumpfile=scotttabs.bak tables=emp,dept,bonus,salgrade

--將scott下的所有g表恢復到tests用戶下,scott

--首先使用dba為scott權限imp_full_database

--導入數據權限

grant imp_full_database to scott;

--導出權限

grant exp_full_database to scott;

impdp scott/tiger@orcl directory=dump_dir dumpfile=SCOTTTABS.BAK tables=emp,dept,bonus,salgrade remap_schema=scott:tests

--將scott下的所有g表恢復到tests用戶下,使用管理 員

impdp system/accp@orcl directory=dump_dir dumpfile=SCOTTTABS.BAK tables=scott.emp,scott.dept,scott.bonus,scott.salgrade remap_schema=scott:tests

 

--導入scott用戶,用SCOTT用戶

impdp scott/tiger@orcl directory=dump_dir dumpfile=scottschma.bak schemas=scott

--導入scott用戶,使用管理員

impdp system/accp@orcl directory=dump_dir dumpfile=scottschma.bak schemas=scott

 

--將scott中所有對象導入tests中

impdp system/accp@orcl directory=dump_dir dumpfile=scottschma.bak schemas=scott remap_schema=scott:tests

 

--導入表空間

impdp system/accp@orcl directory=dump_dir dumpfile=tablespacetbs_test.bak tablespaces=tbs_test

--導入全部表空間

impdp system/accp@orcl directory=dump_dir dumpfile=TABLESPACEFULL.BAK

--恢復整個數據庫

impdp system/accp@orcl directory=dump_dir dumpfile=full.bak full=y

 

 

--使用exp/imp命令------------------oraclr 10之前

使用exp/imp備份

exp help=y

--導出整個數據庫

exp system/accp@orcl file=E:/bak/full.back full=y

--導出用戶

exp scott/tiger@orcl file=E:/bak/scott.back owner=scott

--導出表

exp scott/tiger@orcl tables=(emp,dept) file=E:/bak/scotttabs.back

--導出USER表空間

exp system/accp@orcl tablespaces=(users) file=E:/bak/tbs_users

 

---導入

--導入數據庫

imp system/accp@orcl file=E:/bak/full.back full=y

--導入表

imp system/accp@orcl file=E:/bak/scotttabs.back fromuser=scott touser=tests tables=(emp,dept)

exp/imp 和expdp/impdp命令在功能上的區別

1.把用戶usera的對象導到用戶userb

exp/imp用法

fromuser=usera touser=userb;

expdp/impdp用法

remap_schema=usera:userb

2.指定一些表

exp/imp用法:

tables=(table1,table2,....)

tables=(emp,dept);

expdp/impdp用法

tables=table1,table2,....

tables=emp,dept

3.更換表空間

expdp/impdp:

remap_tablespace=舊表空間名:新表空間名

4.是否要導出數據行

exp ROWS=y ,導出數據行,ROWS=N,不導出數據行

expdp content(ALL:對象+導出數據行,DATA_ONLY:只導出對象,METADATA_ONLY,只導出數據記錄)

 

冷備份 和熱備份

冷備份發生在數據庫已經正常關閉的情況下,當正常關閉時會提供給我們一個完整的數據庫

對ORACLE而言,冷備份是最快和最安全的方法

1 完全關閉數據庫

2.備份所有數據庫的數據文件

3.重新啟動數據庫

1)關閉數據庫

sqlplus /nolog

connect sys/orcl@orcl as sysdba

shutdown normal;

2)復制數據,用復制命令備份ORCL數據庫全部數據文件,重做日志文件,控制文件,初始化參數文件到指定目錄

復制數據文件,重做日志文件,控制文件

host copy 'oracle主目錄'\oradate\orcl   e:\back

復制初始化參數文件:

host copy 'oracle主目錄'\...\initorcl.ora e:\back

3)重啟數據庫

 startup

 恢復步驟

 1)關閉數據庫

 2)把備份的數據文件,控制文件,和聯機重做日志還原

 3)啟動數據庫

 熱備份

 是數據庫下在運行情況下進行的,數據備份,熱備份需要在數據庫的歸檔模式下運行

 並需要大量的磁盤空間

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved