一、備份
a>在數據庫裏創建臨時表備份
1.ORA00905:select * into A from B,缺少關鍵字,在PLSQL中寫了一個語句:select * into A from B,運行時提示:錯誤00905,缺少關鍵字
解決方法:那是MS-SQL的寫法,ORACLE是 create table b as select * from a
1.用exp和imp備份
windows下:
exp user/password@SID file='C:\20140217.dmp' query='where column=201401' tables=(A,B(無單引號))
linux下:
創建路徑:create directory dumpdir as '/home/dumpdata/';在sqlplus下執行;
顯示所有的路徑:select * from dba_directories;在plsql下執行
刪除路徑:DROP DIRECTORYdirectory;在sqlplus下執行
更改路徑:create or replace directory dumpdir as '/home/dumpfiles';
1.創建目錄mkdir,更改linux服務器下目錄的讀寫權限chmod,更改所屬的用戶,chown.
2.oracle裏的命令的用法spool.
3.ls -lh查看文件的大小.
4.
方式一:
dbms_metadata.get_ddl()函數
1)dbms_metadata.get_ddl()包()內的參數都要大寫
2)是否查的當前用戶的DDL,不是要加上對象的schmea
3)如果信息顯示不全,set long 9999(隨便設置他的大小,就是爲了完全顯示查找的結果)
4)注意填寫待查詢的包名時,刪除空格
研究死鎖的情況:
第一步,將測試庫的文件導入到本地,導出exp,導入時imp,此時注意需要幫助時,可以imp/exp help=y 即可
第二步,可以用下面的視圖語句進行查詢剩餘時間:
SELECT sid, serial#, start_time, sofar, totalwork, time_remaining, message
FROM v$session_longops
WHERE time_remaining > 0
研究表授予權限的情況時:grant select on A(table) to B(user);語句在B裏還得加上A表所屬的用戶名進行查詢,即selerct * from A表用戶.A;若不想加上這個用戶,同義詞解決了此類問題,create public synonym table_name for user.table_name,當然有弊端,不再講述。