數(shù)據(jù)庫備份(導(dǎo)出):
創(chuàng)新互聯(lián)主要企業(yè)基礎(chǔ)官網(wǎng)建設(shè),電商平臺(tái)建設(shè),移動(dòng)手機(jī)平臺(tái),微信小程序等一系列專為中小企業(yè)定制網(wǎng)站產(chǎn)品體系;應(yīng)對(duì)中小企業(yè)在互聯(lián)網(wǎng)運(yùn)營的各種問題,為中小企業(yè)在互聯(lián)網(wǎng)的運(yùn)營中保駕護(hù)航。
首先:連接dba數(shù)據(jù)庫方法:連接數(shù)據(jù)庫用sysdba,用戶名: sys 密碼: oracle
第一種方法:
sqlplus /nolog
conn sys/oracle@41SGEORA as sysdba
第二種方法:
sqlplus sys/oracle@41SGEORA as sysdba
一.數(shù)據(jù)庫導(dǎo)出
1.備份整個(gè)數(shù)據(jù)庫
1)、全庫方式,導(dǎo)出整個(gè)數(shù)據(jù)庫中所有的對(duì)象,但并不包括sys用戶中的對(duì)象,即數(shù)據(jù)字典無法導(dǎo)出。
exp user/pwd@db_name full=y file=D:\database.dmp log=D:\database.log
/*xx銀行數(shù)據(jù)庫
###備份 ivsd60
exp ivsd60/ivsd60@41SGEORA full=y grants=y file=C:\Database\oracle_exp\ivsd60\ivsd60.dmp log=C:\Database\oracle_exp\ivsd60\ivsd60_exp.log
*/
2)、用戶方式:導(dǎo)出某一用戶下所有的對(duì)象,授權(quán)了權(quán)限的用戶可以導(dǎo)出其他用戶所擁有的對(duì)象。作為全庫導(dǎo)出的補(bǔ)充應(yīng)用
exp user/pwd@db_name owner=(system,sys) file=D:\owner.dmp log=D:\owner.log
2.備份數(shù)據(jù)庫表
1)、表方式:只導(dǎo)出某一用戶下指定的表,而不是所有的表。
exp user/pwd@db_name tables=(tb1,tb2) file= D:\table.dmp log=e:\table.log
3.補(bǔ)充:將數(shù)據(jù)庫中的表table1中的字段filed1以"00"打頭的數(shù)據(jù)導(dǎo)出
exp user/pwd@db_name tables=(table1) query=" where filed1 like '00%'" file=D:\query.dmp log=d:\query.log
***上面是常用的導(dǎo)出 **更多參數(shù)exp help=y 查看
二.創(chuàng)建數(shù)據(jù)庫用戶
1.登錄dba用戶:
第一種方法:
#sqlplus /nolog
#conn sys/oracle@166 as sysdba
第二種方法:
#sqlplus sys/oracle@166 as sysdba
2.通過dba用戶創(chuàng)建數(shù)據(jù)庫用戶
/*xx銀行數(shù)據(jù)庫
###ivsd60 用戶
create user ivsd60 identified by ivsd60;
grant dba to ivsd60;
##測(cè)試用戶是否創(chuàng)建成功
conn ivsd60/ivsd60;
*/
三.數(shù)據(jù)庫導(dǎo)入:
1、全部導(dǎo)入
imp user/pwd@db_name full=y file=D:\database.dmp log=d:\impdatabase.log ignore=y
/*xx銀行數(shù)據(jù)庫
###導(dǎo)入 ivsd60
imp ivsd60/ivsd60@166 full=y file=C:\Database\oracle_exp\ivsd60\ivsd60.dmp log=C:\Database\oracle_exp\ivsd60\ivsd60_imp.log ignore=y
*/
2、選擇表導(dǎo)入 將D:\table.dmp中的表table1 導(dǎo)入
imp user/pwd@db_name file=D:\table.dmp log=d:\imptable.log tables=(table1)
如果源表已經(jīng)存在,導(dǎo)入時(shí)報(bào)錯(cuò)。在后面加上 ignore=y 就可以了。
不少情況要先是將表徹底刪除,然后導(dǎo)入。或創(chuàng)建和原表一樣結(jié)構(gòu)的臨時(shí)表然后導(dǎo)入到臨時(shí)表中。
備注:語句執(zhí)行中可能碰上的問題:
***EXP-00091 正在導(dǎo)出有問題的統(tǒng)計(jì)信息
原因:字符集問題
解決:exp命令加statistics=none選項(xiàng)
expdp和impdp (數(shù)據(jù)泵)是Oracle10G新引入的工具.它不但包括了imp/exp的功能,還進(jìn)行了擴(kuò)充與加強(qiáng)。其速度也快。但只能在數(shù)據(jù)庫服務(wù)端運(yùn)行。
使用示例如下:http://www.oracle-base.com/articles/10g/OracleDataPump10g.php
--修改數(shù)據(jù)庫密碼
alter user ivsd60 identified by oracle;
--刪除數(shù)據(jù)庫用戶和數(shù)據(jù)
drop user ivsd60 cascade;
四.注意事項(xiàng):
1.exp導(dǎo)出時(shí)會(huì)報(bào)命令不存在,則需要在exp、imp前面加上$,如$exp、 $imp。
2.導(dǎo)出表時(shí)需要用dba權(quán)限,公司這邊的數(shù)據(jù)庫dba用戶名:sys,密碼:oracle
登錄命令:sqlplus sys/oracle@SID as sysdba;
3.用dba登錄導(dǎo)出數(shù)據(jù)時(shí)遇到如下錯(cuò)誤:EXP-00008: 遇到 ORACLE 錯(cuò)誤 904 ORA-00904: "POLTYP": 標(biāo)識(shí)符無效 EXP-00000: 導(dǎo)出終止失敗時(shí),
則需要在dba用戶下刷一下腳本:@?/rdbms/admin/catexp.sql ,然后重新使用exp導(dǎo)出。