程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle教程 >> oracle新手隨記10

oracle新手隨記10

編輯:Oracle教程

oracle新手隨記10


1. unpivot注意點:select new_col from (select ename,job,to_char(sal) as sal,null as c from emp)
unpivot include nulls (
new_col for old_col in(ename,job,sal,c)
);
(1).轉換成一列的值要注意它們的類型,在這裡sal是number類型,而其他的都是char類型,所以一定要to_char(sal),否則會報錯:
第 3 行出現錯誤:
ORA-01790: 表達式必須具有與對應表達式相同的數據類型
(2).如果不加include nulls,那麼空值行則不會顯示,:
NEW_COL
----------
SMITH
CLERK
800
--空值行
ALLEN
SALESMAN
1600
--空值行
WARD
SALESMAN
1250


JONES
MANAGER
2975


MARTIN
SALESMAN


2. rownum的執行順序在order by ,group by之前執行的!

3. 通過mod函數我們可以進行隔n-1行取值,mod(x,n)!!!

4. 利用向上取整函數ceil或者向下取整函數floor可以進行分組,celi(rn/n)利用rownum/n來進行分組,每組有n個成員,但一共分成多少組並不確定!而Ntile(n)函數則是表示分成n個小組每組多少人,並不確定!!



5. rman備份
快閃恢復區:存儲與備份和恢復數據文件以及相關的存儲區 相關視圖:DB_recovery_file_dest_size和db_recovery_file_dest
show pararmeter .....
alter system set ....=....

6. 建立rman到數據庫的連接

c>rman 啟動rman程序
rman> connect target 用戶名/密碼 (這裡的用戶名需要有用sysdba的權限)
備份集:邏輯數據集合,由多個備份片所組成,一般一個通道生成一個備份集,
印象備份:不產生備份集
rman>backup as copy database ---備份整個數據庫
rman>show all --顯示rman的所有配置參數
rman>configure default device type to disk(磁盤)/stb(磁帶) --建議使用磁盤
rman>configure backup optimization on; --打開備份優化


7.備份控制文件
當沒有指明使用快閃恢復區時,需用format參數來指明備份文件放在哪裡
rman>backup current controlfile format ‘f:\....\backup_ctl_%u.dbf’;
當指明使用快閃恢復區的時候
rman>backup current controlfile;
rman>configure controlfile autobackup fromat for device type disk to ‘目錄/.%f’;
rman>configure controlfile autobackup on; --configure說明是配置的意思,配置控制文件自動備份
rman>backup as compressed backupset database plus archivelog delete all input;
解釋:不但備份數據文件同時備份控制文件,在備份完成歸檔日志文件後,將已經備份的歸檔日志文件沖存儲目錄中刪除,這樣即備份了歸檔日志文件,同時又清空了歸檔空間!
rman>backup tablespace tablespace_name; 中間加一個as compressed backupset 表示壓縮備份:rman>backup as compressed backupset tablespace tablespace_name;


8. rman在備份時總會檢查數據塊是否發生物理損壞,為了加快備份速度而不希望rman會去檢查時,可以關閉這個特性,因為,一旦,rman 檢查出有物理損壞的時候
就會停止備份,這樣會很麻煩:rman>backup nochecksum tablespace users tag='weekly_backup';
如果檢查發現了壞塊,那麼就要用以前的rman備份去恢復這個壞塊。

9.rman的增量備份

rman>backup incremental level 0 database;
rman>backup incremental level 1 database;

10.增量備份總是會全庫掃描,但只備份更改的數據塊,所以,我們可以啟動塊更改追蹤特性,ctwr進程會把被更改的數據塊的地址寫到塊追蹤文件中去,

啟動塊追蹤特性:alter database enable block_change_tracking Using file ‘E:/............/abc.log’;視圖:v$block_change_tracking


11.rman理解:使用恢復目錄數據庫來進行備份目標數據庫,比如有ABCDE,5個數據庫,我們可以先創建一個恢復目錄數據庫F來進行備份這幾個數據庫,
(ps:其實恢復目錄數據庫就是一個很平常的數據庫,我們可以選取任何一個數據庫作為恢復目錄數據庫,然後利用rman工具來對目標數據庫進行恢復),
然後,登錄到恢復目錄數據庫中,在創建一個用戶,然後使用給用戶登錄恢復目錄數據庫,進行創建恢復目錄catalog,其實可以將catalog理解為一張表,
裡面存出的是在備份目標數據庫的時候的一些備份信息(元數據),比如備份時間,備份目的地,

12.plsql是通過引擎來執行的,它是在服務器端執行,然後將結果返回給用戶端

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