Time of Update: 2018-12-08
筆者今天就談談自己對這兩種操作模式的理解,並且給出一些可行的建議,跟大家一起來提高Oracle資料庫的安全性。 一、非歸檔模式的利與弊。 非歸檔模式是指不保留重做曆史的日誌操作模式,只能夠用於保護常式失敗,而不能夠保護介質損壞。如果資料庫採用的是日誌操作模式的話,則進行日誌切換時,新的日誌會直接覆蓋原有記錄檔的內容,不會保留原有記錄檔中的資料。 這麼說聽起來可能比較難理解。筆者舉一個簡單的例子,就會清楚許多。如現在Oracle資料庫中有四個日誌組,記錄序號分別為11、 12、13、14。
Time of Update: 2018-12-08
--串連復原管理員 C:\Documents and Settings\mengzhaoliang>rman target/ --歸檔日誌列表 RMAN> list archivelog all; --刪除物理檔案不存在的歸檔日誌 RMAN> delete expired archivelog all; --刪除7天前的歸檔日誌 RMAN> DELETE ARCHIVELOG ALL COMPLETED BEFORE 'SYSDATE-7'; oracle的歸檔模式 一。
Time of Update: 2018-12-08
SQL*Loader(SQLLDR)是Oracle的高速批量資料載入工具。這是一個非常有用的工具,可用於多種一般影像檔案格式向Oralce資料庫中載入資料。SQLLDR可以在極短的時間內載入數量龐大的資料。它有兩種操作模式。 傳統路徑:(conventional path):SQLLDR會利用SQL插入為我們載入資料。 直接路徑(direct path):採用這種模式,SQLLDR不使用SQL;而是直接格式化資料庫塊。 利用直接路徑載入,你能從一個一般檔案讀資料,並將其直接寫至格式化的資料庫塊,
Time of Update: 2018-12-08
一、Oracle 下載注意Oracle分成兩個檔案,下載完後,將兩個檔案解壓到同一目錄下即可。 路徑名稱中,最好不要出現中文,也不要出現空格等不規則字元。官方下地址:http://www.oracle.com/technetwork/database/enterprise-edition/downloads/index.html以下兩網址來源此官方下載頁網。win 32位作業系統 :http://download.oracle.com/otn/nt/oracle11g/112010/win32_
Time of Update: 2018-12-08
iSQL*PLUS介紹iSQL*PLUS是從ORACLE 9i開始提供的新功能,是SQL*PLUS的Web形式(ORACLE 11g已經不支援)。是基於三層結構設計的。其client、middle、server可以位於同一台機器上也可以位於不同的機器。iSqlPlus不需要單獨安裝,通過isqlplus,使用者可以不需要安裝任何ORACLE用戶端,就能夠通過瀏覽器方式的使用SQL*PLUS進行資料操作與資料庫管理。普通的資料庫使用者可以直接通過isqlplus的網址http://ip:port/
Time of Update: 2018-12-08
一不小心聽說了oracle
Time of Update: 2018-12-08
去年年底做了不少系統的資料移轉,大部分系統由於平台和版本的原因,做的是邏輯遷移,少部分做的是物理遷移,有一些心得體會,與大家分享。 首先說說遷移流程,在遷移之前,寫好方案,特別是實施的方案步驟一定要寫清楚,然後進行完整的測試。我們在遷移時,有的系統測試了四五次,通過測試來完善方案和流程。 針對物理遷移,也即通過RMAN備份來進行還原並應用歸檔的方式(這裡不討論通過dd方式進行的冷遷移),雖然注意的是要將資料庫設為force
Time of Update: 2018-12-08
有三種方式拋出異常 1.通過PL/SQL運行時引擎 2.使用RAISE語句 3.調用RAISE_APPLICATION_ERROR預存程序 當資料庫或PL/SQL在運行時發生錯誤時,一個異常被PL/SQL運行時引擎自動拋出。異常也可以通過RAISE語句拋出 RAISE exception_name;
Time of Update: 2018-12-08
加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS')
Time of Update: 2018-12-08
有倆種方法: 一種是聲明系統遊標,一種是聲明自訂遊標,然後後面操作一樣,參數類型為 in out 或out (1)聲明個人系統遊標.(推薦) 複製代碼 代碼如下:create or replace p_temp_procedure ( cur_arg out sys_refcursor; --方法1 ) begin open cur_arg for select * from tablename; end 調用 複製代碼 代碼如下:declare cur_calling
Time of Update: 2018-12-08
1、首先建立目錄: create directory 目錄名稱 as '資料庫伺服器上的一個目錄',如: create directory 別名 as 'd:\伺服器目錄名'; 將匯入或匯出的檔案放在這個目錄下 2、匯出及匯入 以SID=orcl,匯出dmp的帳號為test,匯入dmp的帳號為test為例。 若將資料從sfz中匯出: expdp test/test@orcl directory=別名 dumpfile=匯出檔案名稱 匯入到test中: impdp test/test@orcl
Time of Update: 2018-12-08
表查詢: 合并查詢:使用union關鍵字,可將滿足條件的重複行去掉。 複製代碼 代碼如下:select ename,sal,job from emp where sal > 2500 union select ename,sal,job from emp where job = 'MANAGER'; 而union all用法和union相似,但是不會取消重複行。 intersect 用來取兩個結果的交集。 minus用來取兩個結果的差集。
Time of Update: 2018-12-08
1.安裝Oracle11g所需要的補丁包,安裝光碟片上全有,進入光碟片的Server目錄:(最好通過oracle的官方文檔來確定需要安裝哪些包) 2.修改使用者驗證選項 修改/etc/pam.d/login檔案加上如下參數 session required pam_limits.so 3.修改使用者設定檔 修改/etc/profile檔案加入如下參數: if [ $USER = "oracle" ]; then if [ $SHELL = "/bin/ksh" ]; then ulimit
Time of Update: 2018-12-08
dbms_random是oracle提供的一個隨機函數包,以下介紹一些dbms_random的常用樣本: dbms_random.value用法: 產生一個大於等於0,小於等於1的38位小數 複製代碼 代碼如下:-- FUNCTION value RETURN NUMBER; select dbms_random.value from dual; SQL> select dbms_random.value from dual; VALUE ---------- 0.61011338
Time of Update: 2018-12-08
細粒度審計(FGA),是在Oracle 9i中引入的,能夠記錄SCN號和行級的更改以重建舊的資料,但是它們只能用於select語句,而不能用於DML,如update、insert和delete語句.因此,對於Oracle資料庫10g之前的版本,使用觸發器雖然對於以行級跟蹤使用者初始的更改是沒有吸引力的選擇,但它也是唯一可靠的方法 而Oracle10g中FGA功能的增強使其不但能夠支援select操作,同時也支援DML操作。在 Oracle 10g 中,
Time of Update: 2018-12-08
有時不清楚一些參數的所有允許設定的值,可以由以下兩個方法獲得 1.直接輸入錯的值,讓error來提示 複製代碼 代碼如下:SQL> alter system set "_db_block_cache_protect"=what scope=spfile; alter system set "_db_block_cache_protect"=what scope=spfile * ERROR at line 1: ORA-00096: invalid value WHAT for
Time of Update: 2018-12-08
再寫一個預存程序時, 用到了如下sql語句 複製代碼 代碼如下:SELECT MAX(RE_DATE) INTO V_RE_DATE FROM T_RECORDING WHERE ID ='100010010102' 按理說,根據這個條件查詢的結果應該為sqlcode=1403 ,但是奇怪的是如下sql異常卻捕獲不到: 複製代碼 代碼如下:EXCEPTION WHEN NO_DATA_FOUND THEN NULL; WHEN OTHERS THEN ERR_CODE :=-2000; ERR_
Time of Update: 2018-12-08
資料庫是一個多使用者使用的共用資源。當多個使用者並發地存取資料時,在資料庫中就會產生多個事務同時存取同一資料的情況。若對並行作業不加控制就可能會讀取和儲存不正確的資料,破壞資料庫的一致性。 加鎖是實現資料庫並發控制的一個非常重要的技術。當事務在對某個資料對象進行操作前,先向系統發出請求,對其加鎖。加鎖後事務就對該資料對象有了一定的控制,在該事務釋放鎖之前,其他的事務不能對此資料對象進行更新操作。 在資料庫中有兩種基本的鎖類型:排它鎖(Exclusive
Time of Update: 2018-12-08
查看oracle資料庫是否為歸檔模式 SQL> select name,log_mode from V$database; NAME LOG_MODE ------------------ ------------------------ TEST NOARCHIVELOG SQL> archive log list Database log mode No Archive Mode Automatic archival Disabled Archive destination
Time of Update: 2018-12-08
有時我們在定義欄位名及別名時所用名與oracle關鍵字同名,這時該如何處理呢? 其實很簡單,只要在此關鍵字加上"",如"group" 看下面的例子: 複製代碼 代碼如下:SQL> DROP TABLE k; Table dropped -- 建立表K,欄位名為UID(oracle關鍵字) SQL> CREATE TABLE k(UID INT); CREATE TABLE k(UID INT) ORA-00904: : invalid IDENTIFIER --