




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Oracle數(shù)據(jù)庫(kù)的日常使用命令 1.基本知識(shí)22.啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)33.控制監(jiān)聽34.數(shù)據(jù)庫(kù)用戶管理35.Oracle的權(quán)限管理46.更改字符集為中文57.查詢語(yǔ)句58.表空間管理69.數(shù)據(jù)文件被誤刪后的處理710.查詢當(dāng)前系統(tǒng)的配置參數(shù)711.顯示當(dāng)前用戶812.Oracle排錯(cuò)處理813.查看表結(jié)構(gòu)814.查看數(shù)據(jù)庫(kù)文件815.將select查詢出的結(jié)果保存至一個(gè)文件916.存儲(chǔ)過程917.數(shù)據(jù)庫(kù)的備份與恢復(fù)10Export 轉(zhuǎn)入程序10Import 恢復(fù)程序12增量卸出/裝入1418.如何查看各個(gè)表空間占用磁盤情況?1519.如何知道數(shù)據(jù)褲中某個(gè)表所在的tablespace?1520.
2、內(nèi)核參數(shù)的應(yīng)用1521.如何單獨(dú)備份一個(gè)或多個(gè)表?1622.如何單獨(dú)備份一個(gè)或多個(gè)用戶?1623.如何顯示當(dāng)前連接用戶?1624.如何外連接?1625.如何執(zhí)行腳本SQL文件?1726.如何搜索出前N條記錄?1827.為表創(chuàng)建序列1828.查看本用戶下的各種對(duì)象的SQL腳本1829.SQL*Plus系統(tǒng)環(huán)境變量有哪些?如何修改?2030.如何在PL/SQL中讀寫文件?2031.某個(gè)數(shù)據(jù)文件損壞,如何打開數(shù)據(jù)庫(kù)?211. 基本知識(shí)一個(gè)表空間只能屬于一個(gè)數(shù)據(jù)庫(kù) 每個(gè)數(shù)據(jù)庫(kù)最少有一個(gè)控制文件(建議3個(gè),分別放在不同的磁盤上) 每個(gè)數(shù)據(jù)庫(kù)最少有一個(gè)表空間(SYSTEM表空間) 建立SYSTEM表空間的
3、目的是盡量將目的相同的表存放在一起,以提高使用效率,只應(yīng)存放數(shù)據(jù)字典 每個(gè)數(shù)據(jù)庫(kù)最少有兩個(gè)聯(lián)機(jī)日志組,每組最少一個(gè)聯(lián)機(jī)日志文件 一個(gè)數(shù)據(jù)文件只能屬于一個(gè)表空間 一個(gè)數(shù)據(jù)文件一旦被加入到一個(gè)表空間中,就不能再?gòu)倪@個(gè)表空間中移走,也不能再加入到其他表空間中 建立新的表空間需要建立新的數(shù)據(jù)文件 數(shù)據(jù)文件被ORACLE格式化為ORACLE塊,Oracle9i以前版本中,ORACLE塊的大小是在第一次創(chuàng)建數(shù)據(jù)庫(kù)時(shí)設(shè)定的, 并且以后不能改變,要想改變,只能重建數(shù)據(jù)庫(kù) 一個(gè)段segment只能屬于一個(gè)表空間,但可以屬于多個(gè)數(shù)據(jù)文件 一個(gè)區(qū)extent只能屬于一個(gè)數(shù)據(jù)文件,即區(qū)間(extent)不能跨越數(shù)據(jù)文
4、件 PCTFREE和PCTUSED總和不能大于等于100 單獨(dú)一個(gè)事務(wù)不能跨越多個(gè)回滾段 索引表不含ROWID值 一個(gè)事務(wù)即使不被提交,也會(huì)被寫入到重做日志中。 一個(gè)塊的最大長(zhǎng)度為16KB(有2K、4K、8K、16K)每個(gè)數(shù)據(jù)庫(kù)最大文件數(shù)(按塊大?。?K塊20000個(gè)文件4K塊40000個(gè)文件8K塊或以上65536個(gè)文件2. 啟動(dòng)和關(guān)閉數(shù)據(jù)庫(kù)sqlplus /nolog;SQL >conn / as sysdba;SQL >startup(若啟動(dòng)文件名不是ORACLE缺省的文件名,則啟動(dòng)時(shí)應(yīng)帶啟動(dòng)目錄與文件名)SQL>startup pfile=<file-pathr/
5、init-file>SQL> shutdown immediate3. 控制監(jiān)聽 1啟動(dòng)監(jiān)聽lsnrctl start2停止監(jiān)聽lsnrctl stop3查看監(jiān)聽狀態(tài)lsnrctl status4. 數(shù)據(jù)庫(kù)用戶管理1創(chuàng)建用戶如:create user imuse203identified by imuse203default tablespace IMUSE01temporary tablespace IMUSE01_TMP2修改用戶將imuse203的口令改為hello: alter user imuse203 identified by hello;將imuse203的缺省表空
6、間改為IMUSE02: alter user imuse203 default tablespace IMUSE02;將imuse203的臨時(shí)表空間改為IMUSE02_TMP: alter user imuse203 tempory tablespace IMUSE02_TMP;3刪除用戶刪除用戶的命令為:DROP USER 用戶名 CASCADE若不使用CASCADE選項(xiàng),則必須在該用戶的所有實(shí)體都刪除之后,才能刪除該用戶。使用CASCADE后,則不論用戶實(shí)體有多大,都一并刪除。5. Oracle的權(quán)限管理1系統(tǒng)權(quán)限ORACLE7提供了80多種系統(tǒng)權(quán)限,每種系統(tǒng)權(quán)限允許用戶執(zhí)行特定的數(shù)據(jù)庫(kù)操
7、作。系統(tǒng)權(quán)限的授予命令為GRANT,例如把創(chuàng)建任何表視圖的權(quán)限授予imuse01用戶: GRANT create any view TO imuse01;系統(tǒng)權(quán)限的回收命令為REVOKE,例如將create any view 權(quán)限從imuse01用戶手中收回: REVOKE create any view FROM imuse01;2 實(shí)體權(quán)限每種類型的實(shí)體有與之相關(guān)的實(shí)體權(quán)限。授予實(shí)體權(quán)限的命令舉例(將basetab表上的Select和Insert權(quán)限授給imuse01): GRANT select,insert ON basetab TO imuse01;回收實(shí)體權(quán)限的命令舉例(將base
8、tab表上的Select權(quán)限從imuse01手中回收): REVOKE select ON basetab FROM imuse01;3 管理角色角色是許多權(quán)限和角色的組合。它極大地方便了ORACLE的權(quán)限管理。· 創(chuàng)建角色,如創(chuàng)建一個(gè)名為dept1的角色,口令為hello: CREATE ROLE ROLEiMUSE01 IDENTIFIED BY hello;· 使用角色,可以通過修改用戶的缺省角色來(lái)使用角色,或通過授權(quán)的方法來(lái)將角色授予其它角色或用戶。如將imuse01用戶的缺省角色修改為RoleTmp:ALTER USER imuse01 DEFAULT ROLE
9、RoleTmp;將角色RoleTmp角色授予imuse01: GRANT RoleTmpTO imuse01;· 使角色生效或失效,DBA可以通過控制角色的生效或失效,來(lái)暫時(shí)回收用戶的一部分權(quán)限。如使RoleTmp角色失效: SET ROLE RoleTmp DISABLE;· 刪除角色,這將會(huì)影響到擁有該角色的用戶和其它角色的權(quán)限。用DROP ROLE命令刪除角色,如: DROP ROLE RoleTmp;6. 更改字符集為中文sqlplus /nolog;SQL>conn / as sysdba;SQL> SHUTDOWN IMMEDIATE; SQL>
10、; STARTUP MOUNT;SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;SQL> ALTER DATABASE OPEN;SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;(這一步一般會(huì)出錯(cuò),所以需要重復(fù)執(zhí)行上面從SHUTDOWN IMMEDIATE開始的所有語(yǔ)句)SQL> SHUTDOWN IMMEDIATE; SQL> STARTUP;7. 查詢語(yǔ)句當(dāng)前存在哪些表空間Select *
11、from v$tablespace;表空間有多大Select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;表空間還剩多少空閑空間Select tablespace_name,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;查詢imuse01用戶所使用的缺省表空間select default_tablespace from dba_users where username=imuse01;查詢i
12、muse01用戶所使用的臨時(shí)表空間select temporary_tablespace from dba_users where username=imuse01;查詢當(dāng)前用戶所擁有的角色select * from session_roles;查看違反唯一索引的表及列:如果插入數(shù)據(jù)時(shí)系統(tǒng)提示:unique constraint (IMUSE01.SYS_C004960) violated.則說(shuō)明在為IMUSE01用戶插入數(shù)據(jù)時(shí)違反了唯一索引SYS_C004960。查看違反唯一索引的表:select table_name from user_indexes where index_name=
13、SYS_C004960;查看違反唯一索引的列:select column_name from user_ind_columns where index_name= SYS_C004960;查看編譯無(wú)效的存儲(chǔ)過程:select object_name from user_objects where status=INVALID and object_type= PROCEDURE;查看當(dāng)前運(yùn)行的實(shí)例名:select instance_name from v$instance;8. 表空間管理1創(chuàng)建表空間create tablespace IMUSE01datafile '/export/
14、home/oracle/oradata/mdspdata/imuse01_dat1' size 100M;2增加表空間的大小如將表空間IMUSE01增加100M:alter tablespace IMUSE01 add datafile /export/home/oracle/oradata/mdspdata/imuse01_dat2 size 100M;3修改表空間的大小如將表空間IMUSE01改為1000M:alter database datafile /export/home/oracle/oradata/mdspdata/imuse01_dat1resize 1000M;4.
15、刪除表空間DROP tablespace BPOS01_temp;5.創(chuàng)建臨時(shí)表空間create TEMPORARY TABLESPACE BPOS01_temp tempfile '/opt/oracle/oradata/orcl/bpos01_dat3'size 100M;9. 數(shù)據(jù)文件被誤刪后的處理如果不小心物理上刪除了一Oracle的數(shù)據(jù)文件,比如說(shuō),某應(yīng)用表空間所對(duì)應(yīng)數(shù)據(jù)文件”adc.dbf”,Oracle讀控制文件時(shí),和打開數(shù)據(jù)庫(kù)時(shí)所面對(duì)的參數(shù)不一致,Oracle數(shù)據(jù)庫(kù)將啟動(dòng)不了,解決這種問題的方法是把該文件對(duì)應(yīng)的表空間先卸下,再刪除,以保證控制文件描述和物理上存在
16、文件一致。以sys用戶登錄并進(jìn)入Sql*Plus: SQL >startup mountSQL >alter database datafile /directory/abc.dbf offline;SQL >alter database open;SQL >drop tablespace abc;10. 查詢當(dāng)前系統(tǒng)的配置參數(shù)有三種查詢方法:1. 靜態(tài)查詢:即直接查詢initXXXX.ora文件(XXXX為ORACLE的SID)。因?yàn)橛泻芏嘞到y(tǒng)參數(shù)使用的是缺省值,并未在該文件中給出,所以該方法不能看到所有參數(shù)及其含義。2. 在SQL*PLUS中用命令查詢1) 顯示所有
17、數(shù)據(jù)庫(kù)參數(shù)值SQL>show parameters;2) 顯示含有“sort”的參數(shù)的值SQL>show parameter sort;3. 在SQL*PLUS中用SQL語(yǔ)句查詢SQL> select name,type,value from v$parameter where name='db_block_buffers';11. 顯示當(dāng)前用戶sql>show user;12. Oracle排錯(cuò)處理1錯(cuò)誤說(shuō)明ORACLE中出現(xiàn)的錯(cuò)誤的格式為:錯(cuò)誤類型-錯(cuò)誤代碼:錯(cuò)誤信息,例如:“ORA-1652: unable to extend temp segme
18、nt by 128 in tablespace TEMP”一般來(lái)說(shuō),這種錯(cuò)誤信息比較簡(jiǎn)單,但是可以根據(jù)這個(gè)信息用oerr命令得到更詳細(xì)的信息。2查看錯(cuò)誤詳細(xì)說(shuō)明oerr 是ORACLE提供的一個(gè)在服務(wù)器端使用的錯(cuò)誤信息幫助命令。使用該命令前,必須先用ORACLE用戶登錄到服務(wù)器上,命令格式為:oerr 錯(cuò)誤類型 錯(cuò)誤代碼返回信息格式為:錯(cuò)誤代碼, “通用錯(cuò)誤信息”/*錯(cuò)誤原因/*應(yīng)采取的動(dòng)作如對(duì)上面的錯(cuò)誤可用如下命令:oerr ora 16523alert_XXXX.ora(XXXX為ORALE的SID)文件的說(shuō)明 alert_XXXX.ora是ORACLE中一個(gè)十分有用的的文件,該文件在服務(wù)
19、器的具體位置由initXXXX.ora中的參數(shù)“background_dump_dest"的值決定。該文件中的信息有:數(shù)據(jù)庫(kù)每次STARTUP、SHUTDOWN的具體信息;在數(shù)據(jù)庫(kù)中進(jìn)行的各種DML操作;數(shù)據(jù)庫(kù)中出現(xiàn)的各種錯(cuò)誤的信息等等,內(nèi)容十分詳細(xì),并且有各種信息發(fā)生的具體時(shí)間。如果遇到問題,可以仔細(xì)瀏覽該文件,根據(jù)問題發(fā)生的時(shí)間來(lái)尋找相應(yīng)的信息。13. 查看表結(jié)構(gòu)SQL>desc 表名14. 查看數(shù)據(jù)庫(kù)文件共有三種數(shù)據(jù)庫(kù)文件:控制文件、數(shù)據(jù)文件、日志文件1.查看控制文件select * from v$controlfile;2查看數(shù)據(jù)文件select status,byte
20、s,name from v$datafile;3查看日志文件select name from v$logfile;15. 將select查詢出的結(jié)果保存至一個(gè)文件SQL>spool /result.txtSQL>select * from basetab;SQL>spool off則從basetab查詢出的結(jié)果都被保存到當(dāng)前路徑下的result.txt文件中16. 存儲(chǔ)過程1. 存儲(chǔ)過程的寫法:create or replace procedure proc_name(ifield1 in number,sfield2 out varchar)asv_err_code int
21、; v_err_msg varchar2(2048);beginselect field2 into sfield2 from tabSp where field1 = ifield1;DBMS_OUTPUT.PUT_LINE(sfield2);exceptionwhen others thenbeginv_err_code :=sqlcode; v_err_msg :=sqlerrm; DBMS_OUTPUT.PUT_LINE(v_err_code|' '|v_err_msg);rollback;end;end proc_name;注意:1) 存儲(chǔ)過程的輸入輸出參數(shù)以逗號(hào)間隔
22、,局部變量部分以分號(hào)間隔;2) 存儲(chǔ)過程的輸入輸出參數(shù)部分:最后一個(gè)參數(shù)后沒有逗號(hào);3) 存儲(chǔ)過程的局部變量部分:最后一個(gè)變量后有分號(hào);4) 可把多個(gè)存儲(chǔ)過程保存到一個(gè)文件中,文件名必須用.sql后綴;5) 每個(gè)存儲(chǔ)過程結(jié)束后,要用“/”作為提交;2. 存儲(chǔ)過程的創(chuàng)建:sqlplus 用戶名/密碼數(shù)據(jù)庫(kù)標(biāo)識(shí) 存儲(chǔ)過程文件名(這里的存儲(chǔ)過程文件名可以省略.sql后綴,因?yàn)槲募缶Y缺省是.sql)3. 存儲(chǔ)過程的執(zhí)行sql>execute 存儲(chǔ)過程名字(參數(shù))注意:1如果執(zhí)行存儲(chǔ)過程時(shí)提示:必須說(shuō)明標(biāo)識(shí)符存儲(chǔ)過程名,則表明該存儲(chǔ)過程不存在或編譯未成功??捎萌缦旅钪匦戮幾g該存儲(chǔ)過程:SQL&
23、gt;alter procedure存儲(chǔ)過程名 compile;2如果執(zhí)行存儲(chǔ)過程時(shí)提示:未找到數(shù)據(jù)在imuse01.test_adduser,有可能是在該存儲(chǔ)過程中存在類似”select col _name into tmp from table_name where .”這樣的語(yǔ)句,而查詢出的結(jié)果為空的緣故。3如果執(zhí)行存儲(chǔ)過程時(shí)提示:SQL緩沖區(qū)中無(wú)可執(zhí)行的程序,說(shuō)明此時(shí)緩沖區(qū)是空的。如在執(zhí)行上面找不到相應(yīng)記錄的腳本后會(huì)提示該錯(cuò)誤。4如果執(zhí)行存儲(chǔ)過程時(shí)提示:輸入被截為1個(gè)字符,表明某個(gè)”/”之后少一個(gè)回車符。5如果執(zhí)行存儲(chǔ)過程時(shí)提示:創(chuàng)建的過程帶有編譯錯(cuò)誤,可能是某個(gè)存儲(chǔ)過程結(jié)束處少一個(gè)”
24、/”。6如果執(zhí)行存儲(chǔ)過程時(shí)提示:缺少表達(dá)式,有可能是某個(gè)變量沒被賦值。17. 數(shù)據(jù)庫(kù)的備份與恢復(fù)ORACLE系統(tǒng)提供的Export/轉(zhuǎn)入(備份)、Import/轉(zhuǎn)出(恢復(fù))應(yīng)用程序?qū)崿F(xiàn)備份與恢復(fù)功能。Export是在數(shù)據(jù)庫(kù)打開并能使用的情況下備份數(shù)據(jù)庫(kù)數(shù)據(jù)的實(shí)用程序。用Export將數(shù)據(jù)庫(kù)中的數(shù)據(jù)寫到以二進(jìn)制形式表示的操作系統(tǒng)文件中(ORACLE),該文件叫卸出文件。用Export可實(shí)現(xiàn)應(yīng)用程序失敗時(shí)的恢復(fù),例如可把某個(gè)表或某些表恢復(fù)到執(zhí)行該Export時(shí)的狀態(tài)。由于卸出文件的特殊格式,所以只能用Import實(shí)用程序?qū)⑵渥x入數(shù)據(jù)庫(kù)中。Export 轉(zhuǎn)入程序ORACLE數(shù)據(jù)庫(kù)有兩類備份方法,第一
25、類為物理備份,該方法實(shí)現(xiàn)數(shù)據(jù)庫(kù)的完整恢復(fù),但數(shù)據(jù)庫(kù)必須運(yùn)行在歸檔模式下,且需要極大的外部存儲(chǔ)設(shè)備,例如磁帶機(jī);第二類備份方式為邏輯備份,客戶服務(wù)中心業(yè)務(wù)數(shù)據(jù)庫(kù)就是采用這種方式,這種方法不需要數(shù)據(jù)庫(kù)運(yùn)行在歸檔模式下,不但備份簡(jiǎn)單,而且可以不需要外部存儲(chǔ)設(shè)備。邏輯備份又分為三種模式。表模式(T):這種模式可以卸出當(dāng)前用戶數(shù)據(jù)庫(kù)模式下的表,甚至是所有的表。具有特權(quán)的用戶可根據(jù)所指定的數(shù)據(jù)庫(kù)模式來(lái)(限制表)卸出他們所包含的表。缺省情況是卸出屬于當(dāng)前正在進(jìn)行卸出的用戶的所有表。用戶模式(U):這種模式可以卸出當(dāng)前用戶數(shù)據(jù)庫(kù)模式下的所有實(shí)體(表、數(shù)據(jù)和索引)。全數(shù)據(jù)庫(kù)模式(F):只有具有EXP_FULL_
26、DATABASE角色的用戶才可能以這種模式卸出。以這種模式進(jìn)行卸出的用戶,除SYS模式下的內(nèi)容之外,數(shù)據(jù)庫(kù)中所有實(shí)體都可以卸出。 下面列出給用戶賦予EXP_FULL_DATABASE角色的方法。要選擇表、用戶或全數(shù)據(jù)庫(kù)方式,可相應(yīng)指定TABLEStablelist、OWNERuserlist或FULLy。1. 表模式EXP imuse01/ imuse01 BUFFER=8192(或64000)FILE=imuse01.dmp 或(磁帶設(shè)備/dev/rmt0)TABLES=imuse01.basetab(或imuse01.basetab,imuse01.serviceinfo .)ROWS=Y
27、 COMPRESS=NLOG= EXP_IMUSE01 _SERVICEINFO.LOG參數(shù)說(shuō)明:BUFFER緩沖區(qū)大小FILE由Export創(chuàng)建的輸出文件的名字TABLES將要卸出的表名列表ROWS指明是否卸出表中數(shù)據(jù)的行數(shù),缺省為“Y”。COMPRESS指明在裝入期間是否將表中數(shù)據(jù)壓縮到一個(gè)區(qū)域中。如果在卸出數(shù)據(jù)時(shí),指定參數(shù)COMPRESS=Y,那么裝入時(shí),就會(huì)將數(shù)據(jù)壓縮到一個(gè)初始區(qū)域中。這種選擇可以保持初始化區(qū)域的原始大小。缺省為“Y”。LOG指定一個(gè)接收有用信息和錯(cuò)誤信息的文件2. 用戶模式EXP imuse01/ imuse01 OWNER= imuse01 BUFFER=8192(
28、或64000)FILE= imuse01.dmp 或(磁帶設(shè)備/dev/rmt0)ROWS=Y COMPRESS=N LOG= EXP_IMUSE01 .LOG參數(shù)說(shuō)明:OWNER將要卸出的用戶名列表BUFFER、FILE、ROWS、COMPRESS、LOG同上3. 全數(shù)據(jù)庫(kù)模式EXP imuse01/ imuse01 BUFFER=8192(或64000) FILE=EXP_IMUSE01.dmp (或磁帶設(shè)備/dev/rmt0)FULL=Y ROWS=Y COMPRESS=NLOG= EXP_IMUSE01_DB.LOG對(duì)于數(shù)據(jù)庫(kù)備份,建議采用增量備份,即只備份上一次備份以來(lái)更改的數(shù)據(jù)。增
29、量備份命令:EXP ICDMAIN/ICD BUFFER=8192(或64000)FILE=EXP_ICDMAIN_DB.DMP (或磁帶設(shè)備/dev/rmt0)FULL=Y INCTYPE= incremental ROWS=Y COMPRESS=NLOG=EXP_ICDMAIN_DB.LOG參數(shù)說(shuō)明:BUFFER、FILE、ROWS、COMPRESS、LOG同上FULL指明是否卸出完整的數(shù)據(jù)庫(kù)。如果FULL=Y,將以全數(shù)據(jù)庫(kù)模式進(jìn)行卸出。INCTYPE增加卸出的類型,有效值有complete(完全)、comulative(固定)和incremental(增量)。complete輸出所有表c
30、omulative將輸入第一次完全輸出后修改過的表incremental將輸出前一次輸出后修改過的表& 說(shuō)明:關(guān)于增量備份必須滿足下列條件:只對(duì)數(shù)據(jù)庫(kù)備份有效,且第一次需要FULL=Y參數(shù),以后需要INCTYPE=INCREMENTAL參數(shù)。用戶必須有EXP_FULL_DATABASE權(quán)限。Import 恢復(fù)程序Import和Export是兩個(gè)相配套的實(shí)用程序,Export把數(shù)據(jù)庫(kù)中的數(shù)據(jù)卸出到操作系統(tǒng)文件中,而Import實(shí)用程序則把Export卸出的數(shù)據(jù)恢復(fù)到數(shù)據(jù)庫(kù)中。按備份方案確定恢復(fù)方案,例如:采用表邏輯備份方案,則恢復(fù)方案也采用恢復(fù)到表的方式(不應(yīng)恢復(fù)到用戶)。要使用Impo
31、rt,必須具有CREATE SESSION特權(quán),以便能注冊(cè)到ORACLE RDBMS中去。這一特權(quán)屬于在數(shù)據(jù)庫(kù)創(chuàng)建時(shí)所建立的CONNECT角色。如果卸出文件是由某用戶利用EXP_FULL_DATABASE角色創(chuàng)建的全數(shù)據(jù)庫(kù)卸出,那么只有具有IMP_FULL_DATABASE角色的用戶才能裝入這樣的文件。數(shù)據(jù)庫(kù)的邏輯恢復(fù)分為表、用戶、數(shù)據(jù)庫(kù)三種模式。1. 表模式恢復(fù)方法為:IMP imuse01/imuse01 FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=Y BUFFER=Y IGNORE=Y TABLES=(表名1,表名2,表名3,表名4,.) 參數(shù)說(shuō)明:BUFFER緩
32、沖區(qū)大小FILE用于裝入的卸出文件名字TABLES將要裝入的表名列表ROWS指明是否裝入表數(shù)據(jù)的行數(shù),缺省為“Y”。IGNORE指明如何處理實(shí)體創(chuàng)建錯(cuò)誤。指定IGNORE=Y,當(dāng)試圖創(chuàng)建數(shù)據(jù)庫(kù)實(shí)體時(shí),忽略實(shí)體存在錯(cuò)誤。對(duì)除了表之外的其他實(shí)體,指定IGNORE=Y,Import不報(bào)告錯(cuò)誤,繼續(xù)執(zhí)行。而指定IGNORE=N時(shí),Import在繼續(xù)執(zhí)行前報(bào)告實(shí)體創(chuàng)建錯(cuò)誤。COMMIT指明在每個(gè)矩陣插入之后是否提交。缺省時(shí),Import在裝入每個(gè)實(shí)體之后提交。指定COMMIT=N時(shí),如有錯(cuò)誤產(chǎn)生,Import在記錄裝入下一個(gè)實(shí)體之前,完成一個(gè)回退。指定COMMIT=Y時(shí),可以抑制回滾字段無(wú)限制增大,并改
33、善大量裝入時(shí)的性能,表具有唯一約束時(shí),這種選擇比較好。如果再次開始裝入,將拒絕裝入已經(jīng)裝入的任何行,原因是非致命性錯(cuò)誤。表具有非唯一約束時(shí),指定COMMIT=N可能是比較好的選擇。因?yàn)橹匦卵b入可能會(huì)產(chǎn)生重復(fù)行。LOG指定一個(gè)接收有用信息和錯(cuò)誤信息的文件2. 用戶模式如果備份方式為用戶模式,采用下列恢復(fù)方法:IMP system/manager FROMUSER=imuse01 TOUSER= imuse01FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=YBUFFER=Y IGNORE=Y參數(shù)說(shuō)明同上。3. 數(shù)據(jù)庫(kù)模式如果備份方式為數(shù)據(jù)庫(kù)模式,采用下列恢復(fù)方法:IMP sy
34、stem/manager FULL=Y FILE=文件名 LOG=LOG文件名 ROWS=Y COMMIT=YBUFFER=Y IGNORE=Y字符集轉(zhuǎn)換對(duì)于單字節(jié)字符集(例如US7ASCII),恢復(fù)時(shí),數(shù)據(jù)庫(kù)自動(dòng)轉(zhuǎn)換為該會(huì)話的字符集(NLA_LANG參數(shù));對(duì)于多字節(jié)字符集(例如ZHS168CGB),恢復(fù)時(shí),應(yīng)盡量使字符集相同(避免轉(zhuǎn)換),如果要轉(zhuǎn)換,目標(biāo)數(shù)據(jù)庫(kù)的字符集應(yīng)是輸出數(shù)據(jù)庫(kù)字符集的超集。增量卸出/裝入下面介紹利用Export/Import實(shí)用程序?qū)RACLE數(shù)據(jù)庫(kù)進(jìn)行備份、恢復(fù)的方法:增量卸出/裝入。增量卸出是一種常用的數(shù)據(jù)備份方法,包括3個(gè)子類:(1) “完全”增量卸出就是對(duì)整
35、個(gè)ORACLE數(shù)據(jù)庫(kù)進(jìn)行完全卸出。如:$ exp system/口令 inctype=complete full=y file=today.dmp(1) “增量型”增量卸出即從ORACLE數(shù)據(jù)庫(kù)中卸出上次卸出操作之后所有數(shù)據(jù)庫(kù)的變化信息。如:$exp system/口令 inctype=incremental file=today.dmp增量型卸出文件的大小,可能只是完全卸出文件大小的1%,具體要看“新信息或更新過的信息”的總量而定。(2) “累積型”增量卸出累積型卸出方式只是卸出自上次“完全” 卸出之后數(shù)據(jù)庫(kù)中變化了的信息。用法如下:$exp system/口令 inctype=cumula
36、tive file=today.dmpDBA可以排定一個(gè)備份日程表,用數(shù)據(jù)卸出的三個(gè)不同方式合理高效地完成數(shù)據(jù)庫(kù)的備份任務(wù)。比如DBA作如下安排:星期一:完全卸出(F1)星期二:增量卸出(I1)星期三:增量卸出(I2)星期四:累積卸出(C1)星期五:增量卸出(I3)星期六:增量卸出(I4)如果在星期日,數(shù)據(jù)庫(kù)遭到意外破壞,DBA可按以下步驟來(lái)恢復(fù)數(shù)據(jù)庫(kù):l 用命令CREATE DATABASE重新生成你的數(shù)據(jù)庫(kù)結(jié)構(gòu);l 最近增量裝入I4:$imp system/口令 inctype=system full=y file=I4l 完全增量裝入F1:$imp system/口令 inctype=r
37、estore full=y file=F1l 累積增量裝入C1:$imp system/口令 inctype=restore full=y file=C1l 對(duì)于由累積裝入或完全裝入尚未能裝入的信息,作增量裝入: $imp system/口令 inctype=restore full=y file=I3 $imp system/口令 inctype=restore full=y file=I4 注意:在I1和I2中的信息已包括在C1中了。18. 如何查看各個(gè)表空間占用磁盤情況?SQL> col tablespace format a20SQL>
38、; select b.file_id 文件ID號(hào), b.tablespace_name 表空間名, b.bytes 字節(jié)數(shù), (b.bytes-sum(nvl(a.bytes,0) 已使用, sum(nvl(a.bytes,0)
39、 剩余空間, sum(nvl(a.bytes,0)/(b.bytes)*100 剩余百分比 from dba_free_space a,dba_data_files b where a.file_id=b.file_id group by b.tablespace_nam
40、e,b.file_id,b.bytes order by b.file_id 19. 如何知道數(shù)據(jù)褲中某個(gè)表所在的tablespace?select tablespace_name from user_tables where table_name='TEST'select * from user_tables中有個(gè)字段TABLESPACE_NAME,(oracle);select
41、0;* from dba_segments where 20. 內(nèi)核參數(shù)的應(yīng)用shmmax 含義:這個(gè)設(shè)置并不決定究竟Oracle數(shù)據(jù)庫(kù)或者操作系統(tǒng)使用多少物理內(nèi)存,只決定了最多可以使用的內(nèi)存數(shù)目。這個(gè)設(shè)置也不影響操作系統(tǒng)的內(nèi)核資源。 設(shè)置方法:0.5*物理內(nèi)存 例子:Set shmsys:shminfo_shmmax=10485760 shmmin 含義:共享內(nèi)存的最小大小。 設(shè)置方法:一般都設(shè)置成為1。 例子:Set shmsys:shminfo_s
42、hmmin=1: shmmni 含義:系統(tǒng)中共享內(nèi)存段的最大個(gè)數(shù)。 例子:Set shmsys:shminfo_shmmni=100 shmseg 含義:每個(gè)用戶進(jìn)程可以使用的最多的共享內(nèi)存段的數(shù)目。 例子:Set shmsys:shminfo_shmseg=20: semmni 含義:系統(tǒng)中semaphore identifierer的最大個(gè)數(shù)。 設(shè)置方法:把這個(gè)變量的值設(shè)置為這個(gè)系統(tǒng)上的所有Oracle的實(shí)例的init.ora中的最大的那個(gè)processes的那個(gè)值加10
43、。 例子:Set semsys:seminfo_semmni=100 semmns 含義:系統(tǒng)中emaphores的最大個(gè)數(shù)。 設(shè)置方法:這個(gè)值可以通過以下方式計(jì)算得到:各個(gè)Oracle實(shí)例的initSID.ora里邊的processes的值的總和(除去最大的Processes參數(shù))最大的那個(gè)Processes×210×Oracle實(shí)例的個(gè)數(shù)。 例子:Set semsys:seminfo_semmns=200 semmsl: 含義:一個(gè)set中semaphore的最大個(gè)數(shù)。
44、設(shè)置方法:設(shè)置成為10所有Oracle實(shí)例的InitSID.ora中最大的Processes的值。 例子:Set semsys:seminfo_semmsl=-20021. 如何單獨(dú)備份一個(gè)或多個(gè)表? exp 用戶/密碼 tables=(表1,表2)22. 如何單獨(dú)備份一個(gè)或多個(gè)用戶? exp system/manager owner=(用戶1,用戶2,用戶n) file=導(dǎo)出文件 23. 如何顯示當(dāng)前連接用戶? SHOW
45、160; USER 24. 如何外連接? Select a.* from bsempms a,bsdptms b where a.dpt_no=b.dpt_no(+); Select a.* from bsempms a,bsdptms b wherea.dpt_no(+)=b.dpt_no; 25. 如何執(zhí)行腳本SQL文件? SQL>$PATH/fil
46、ename.sql; 如:/opt/oracle/下建立sql 目錄,存放待執(zhí)行的SQL文件oraclelinux66:/sql> lltotal 192-rw-r-r- 1 wwz users 580 2009-11-12 09:46 bme_create_seq.sql-rw-r-r- 1 wwz users 78027 2009-11-12 09:46 bme_oracle_data.sql-rw-r-r- 1 wwz users 26731 2009-11-12 09:46 bme_oracle.sql-rw-r-r- 1 wwz users 20466 2009-11
47、-12 09:46 BPOS_create_table.sql-rw-r-r- 1 wwz users 1309 2009-11-12 09:46 BPOS_drop_table.sql-rw-r-r- 1 wwz users 732 2009-11-12 09:46 createtablespace.sql-rw-r-r- 1 wwz users 1543 2009-11-12 09:46 drop_tables.sql-rw-r-r- 1 wwz users 132 2009-11-12 09:46 drop_talbe_list.sql-rw-r-r- 1 wwz users 1865
48、2009-11-12 09:46 init_BPOS.sql-rw-r-r- 1 wwz users 16312 2009-11-12 09:46 init_dic.sql-rw-r-r- 1 wwz users 366 2009-11-12 09:46 init_oracle_list.sql-rw-r-r- 1 wwz users 1194 2009-11-12 09:46 init_order.sql-rw-r-r- 1 wwz users 6198 2009-11-12 09:46 init_right.sql-rw-r-r- 1 wwz users 254 2009-11-12 09
49、:46 oracle_list.sql以bposuser用戶登錄,執(zhí)行SQL文件oraclelinux66:/sql> sqlplus bposuser/bposuserSQL*Plus: Release 11.1.0.7.0 - Production on Thu Nov 12 13:49:28 2009Copyright (c) 1982, 2008, Oracle. All rights reserved.Connected to:Oracle Database 11g Enterprise Edition Release 11.1.0.7.0 - 64bit Production
50、With the Partitioning, Oracle Label Security, OLAP, Data Mining,Oracle Database Vault and Real Application Testing optionsSQL> sql/init_oracle_list.sql26. 如何搜索出前N條記錄?SELECT * FROM empLOYEE WHERE ROWNUM < n 27. 為表創(chuàng)建序列 CREATE SE
51、QUENCE EMPSEQ . SELECT empseq.currval FROM DUAL 自動(dòng)插入序列的數(shù)值 INSERT INTO emp VALUES (empseq.nextval, 'LEWIS', 'CLERK', 7902, SYSDATE, 1200,
52、60;NULL, 20) 28. 查看本用戶下的各種對(duì)象的SQL腳本 表:select * from cat;select * from tab;select table_name from user_tables;視圖:select text from user_views where view_name=upper('&view_name');索引:select index_name,table_owner,table_name,tablespace_name,status from user_indexes order by table_nam
53、e; 觸發(fā)器:select trigger_name,trigger_type,table_owner,table_name,status from user_triggers;快照:select owner,name,master,table_name,last_refresh,next from user_snapshots order by owner,next;同義詞:select * from syn;序列:select * from seq;數(shù)據(jù)庫(kù)鏈路:select * from user_db_links;約束限制:select TABLE_NAME,CONSTRAINT_NAM
54、E,SEARCH_CONDITION,STATUS from user_constraints;本用戶讀取其他用戶對(duì)象的權(quán)限:select * from user_tab_privs;本用戶所擁有的系統(tǒng)權(quán)限:select * from user_sys_privs;用戶:select * from all_users order by user_id;表空間剩余自由空間情況:select tablespace_name,sum(bytes) 總字節(jié)數(shù),max(bytes),count(*) from dba_free_space group by tablespace_name;數(shù)據(jù)字典:se
55、lect table_name from dict order by table_name;鎖及資源信息:select * from v$lock;不包括DDL鎖數(shù)據(jù)庫(kù)字符集:select name,value$ from props$ where name='NLS_CHARACTERSET'inin.ora參數(shù):select name,value from v$parameter order by name;SQL共享池:select sql_text from v$sqlarea;數(shù)據(jù)庫(kù):select * from v$database控制文件:select * from
56、 V$controlfile;重做日志文件信息:select * from V$logfile;來(lái)自控制文件中的日志文件信息:select * from V$log;來(lái)自控制文件中的數(shù)據(jù)文件信息:select * from V$datafile;NLS參數(shù)當(dāng)前值:select * from V$nls_parameters;ORACLE版本信息:select * from v$version;描述后臺(tái)進(jìn)程:select * from v$bgprocess;查看版本信息:select * from product_component_version;29. SQL*Plus系統(tǒng)環(huán)境變量有哪些?如何修改? show和set命令是兩條用于維護(hù)SQL*Plus系統(tǒng)變量的命令 SQL> show all-查看所有68個(gè)系統(tǒng)變量值 SQL> show user-顯示當(dāng)前連接
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 生態(tài)停車場(chǎng)車位銷售與服務(wù)一體化管理協(xié)議
- 車輛租賃中介服務(wù)質(zhì)押擔(dān)保合同
- 智能化廠房鋼結(jié)構(gòu)設(shè)計(jì)與施工總承包合同
- 旅游景區(qū)車位包銷及文創(chuàng)產(chǎn)品開發(fā)合作協(xié)議
- 通訊設(shè)備典當(dāng)質(zhì)押借款服務(wù)合同范本
- 高端叉車大修與維護(hù)一體化合同樣本
- 破解采購(gòu)腐敗難題的廉政協(xié)議
- 搬運(yùn)工勞動(dòng)保護(hù)與安全培訓(xùn)協(xié)議
- 按揭二手房買賣合同風(fēng)險(xiǎn)評(píng)估與解決方案
- 金融行業(yè)專業(yè)代理記賬合同
- 約瑟夫森結(jié)臨界電流特性研究-洞察分析
- 中國(guó)科學(xué)院大學(xué)《模式識(shí)別與機(jī)器學(xué)習(xí)》2021-2022學(xué)年第一學(xué)期期末試卷
- 外研版一起點(diǎn)四年級(jí)下冊(cè)單詞默寫表
- 【MOOC】油氣田應(yīng)用化學(xué)-西南石油大學(xué) 中國(guó)大學(xué)慕課MOOC答案
- 醫(yī)護(hù)人員出國(guó)(境)與參加學(xué)術(shù)會(huì)議管理制度
- 慢病隨訪管理
- 2024年專利代理人專利法律知識(shí)考試試卷及參考答案
- 靜脈輸血規(guī)范課件
- 資產(chǎn)評(píng)估項(xiàng)目服務(wù)方案投標(biāo)技術(shù)方案評(píng)估項(xiàng)目各操作階段質(zhì)量控制及措施
- 中小學(xué)教學(xué)視導(dǎo)量化考核表
- 2023年山東省濟(jì)南市中考道德與法治真題(原卷版)
評(píng)論
0/150
提交評(píng)論