亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 3369 | 回復: 0
打印 上一主題 下一主題

ORACLE 10G OCP DBA I 學習記錄 [復制鏈接]

論壇徽章:
0
跳轉到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2011-12-21 08:43 |只看該作者 |倒序瀏覽
-------------------------------L1

ORACLE  數(shù)據庫
ORACLE  APPLICATION SERVER
ORACLE  EBS
ORACLE  EXCHANGE SERVER
ORACLE  Developer Suite--SQL Developer,JDeveloper
ORACLE  服務
--support.oracle.com
全球網格論壇(GCF)
ORACLE 8i--ORACLE 9i--ORACLE 10g
網格計算--網格上多個節(jié)點組成一個邏輯單元,對外提供服務
RAC--Real Application Cluster 數(shù)據庫網格
ASM--Automatic Storage Management  存儲網格
OS--Oracle Streams  應用程序網格
EMGC--Enterprise Management Grid Control  網格控制

ORACLE 網格基礎結構:
--低成本
--高服務質量
--易于管理

ORACLE 數(shù)據庫體系結構
由ORACLE實例和ORACLE數(shù)據庫組成--數(shù)據庫文件+instance

數(shù)據庫結構
--數(shù)據庫文件
控制文件,數(shù)據文件,聯(lián)機重做日志文件,參數(shù)文件,備份文件,歸檔日志文件,口令文件,預警和跟蹤日志文件。
redo entry--重做條目
--實例

系統(tǒng)全局區(qū)(SGA)System Global Area
共享池--存放執(zhí)行計劃和SQL語句
Streams池
大型池
Java池--保存java的類
數(shù)據庫緩沖區(qū)高速緩存--buffer cache緩存訪問的數(shù)據。
重做日志緩沖區(qū)--log buffer

PGA--Process Global Area--進程全局區(qū)--按需分配的進程
用戶進程:在數(shù)據庫用戶請求連接到Oracle服務器時啟動
服務器進程:可以連接到Oracle實例,它在用戶建立會話時啟動
后臺進程:在啟動Oracle實例時啟動
Server Process--服務進程

后臺進程
SMON--系統(tǒng)監(jiān)視器--從redo log文件中恢復實例,修復數(shù)據庫
PMON--進程監(jiān)視器--定期清理回收內存
DBWn--數(shù)據庫寫進程-->>數(shù)據文件
LGWR--日志寫進程-->>重做日志文件
CKPT--檢查點--每隔一段時間寫入控制文件,記錄當前實例一旦崩潰,需要哪些redoentry.
ARCn--歸檔進程-->>LGWR寫滿日志后,切換日志時,啟動ARCn進程

--物理結構
數(shù)據文件
OS塊

--邏輯結構
數(shù)據庫-->表空間-->段-->區(qū)-->ORACLE數(shù)據庫
      -->方案Schema--某一個用戶下的所有對象的集合

段-->segment--就是表的存儲單元
區(qū)-->extent
數(shù)據塊--data block--2k,4k,8k,16k,32k


一個表空間可以存放多個物理文件,一個數(shù)據文件只能屬于一個表空間
不需要關心物理文件的大小,只要管理表空間的大小

SYSTEM和SYSAUX表空間是必須存在的表空間
這些表空間是在創(chuàng)建數(shù)據庫時創(chuàng)建的
這些表空間必須聯(lián)機
SYSTEM 表空間用于核心功能
輔助的SYSAUX表空間用于附加的數(shù)據庫組件

緩沖區(qū)狀態(tài):已連接、干凈、空閑或未使用、臟數(shù)據



-------------------------------L2
1.確定數(shù)據庫服務器硬件
2.安裝ORACLE軟件
3.制定數(shù)據庫和安全策略的計劃
4.創(chuàng)建、移植和打開數(shù)據庫
5.備份數(shù)據庫
6.登記系統(tǒng)用戶和制定用戶訪問ORACLE NETWORK的計劃
7.實施數(shù)據庫設計
8.從數(shù)據庫故障中進行恢復
9.監(jiān)視數(shù)據庫性能

用于管理oracle數(shù)據庫的工具
Oracle Universal Installer
Database Configuration Assistant
Database Upgrade Assistant
Oracle Net Manager
Oracle Enterprise Manager
SQL*Plus和iSQL*Plus
Recovery Manager
Oracle Secure Backup
數(shù)據泵
SQL*Loader--文本文件加載到數(shù)據庫的表中
命令行工具

emctl
lsnrctl
isqlplusctl
--內存要求
1GB用于Database Control實例
--磁盤空間要求
1.5GB的交換分區(qū)
在/tmp目錄保留400MB的磁盤空間
1.5GB至3.5GB用于Oracle文件
1.2GB用于預配置數(shù)據庫
2.4GB用于快速恢復區(qū)

xhost+
任何客戶端都有權限訪問服務器端的圖形界面
--靈活體系結構(OFA)--命名規(guī)范
mount point
/u01,/u02,/u03
/d01,/d02,/d03

ORACLE_BASE--OFA的ORACLE目錄結構基礎
/u01/app/oracle

ORACLE_HOME--包含ORACLE軟件的目錄
$ORACLE_BASE/product/9.2.0/db_1
$ORACLE_BASE/product/10.2.0/db_1
$ORACLE_BASE/product/11.1.0/db_1

ORACLE_SID--初始實例名稱(默認為orcl)
$ORACLE_BASE/oradata/orcl
$ORACLE_BASE/oradata/prod

control file:control01.ctl,control02.ctl...
log file:redo01.log,redolog02.log,redo03.log...
data file:users01.dbf,users02.dbf,users03.dbf...

NLS_LANG--語言、地區(qū)和客戶機的字符集設置

oraInventory--信息庫目錄,記錄當前主機上安裝了哪些ORACLE產品。
.bash_profile

--數(shù)據庫存儲選項
文件系統(tǒng)
自動存儲管理
裸設備
--數(shù)據管理選項
Enterprise Manager Grid Control
Enterprise Manager Data Control

installActions.log 文件查看安裝驗證

NLS_LANG 設置語言

orainstRoot.sh --creates the Inventory pointer file

Optimal Flexible Architecture

-----------------------------L3
--DBA計劃
數(shù)據庫的邏輯存儲結構及其物理實施
整體數(shù)據庫設計
數(shù)據庫備份策略

數(shù)據倉庫
事務處理數(shù)據庫
通用數(shù)據庫

使用DBCA建立數(shù)據庫
.bash_profile

客戶定制數(shù)據庫--不包含數(shù)據文件
事務處理類型
推薦類型
數(shù)據倉庫

Global Database Name
SID

是否使用圖形界面管理數(shù)據庫
Grid Control
Database Control

為用戶設置密碼

使用文件系統(tǒng)管理數(shù)據庫文件
以組為單位進行日志切換

保存數(shù)據庫創(chuàng)建為模板,可以生成數(shù)據庫腳本

管理模板
從一個新的模板修改為自己需要的模板
從一個存在的數(shù)據庫數(shù)據結構創(chuàng)建新的模板
從一個存在的數(shù)據庫數(shù)據結構創(chuàng)建新的模板,并包含數(shù)據

ifconfig
cat /etc/hosts

-------------------------------L4

數(shù)據庫實例
監(jiān)聽程序
管理界面
--Database Control
--Grid Control

emctl status dbconsole--查看
emctl stop dbconsole--停止
emctl start dbconsole--啟動

netmgr--網絡配置
lnsrctl start--啟動監(jiān)聽器

SQL*Plus和iSQL*Plus
SQL*Plus主要用于管理
iSQL*Plus用于查詢

alter user hr identified by hr account unlock;

isqlplusctl start--啟動iSQL*Plus

SYSDBA連接到iSQL*Plus要在OC4J用戶管理器中設置該用戶
1.創(chuàng)建一個用戶
2.給該用戶授予webDba角色

vi emp.sql--建立一個腳本
sqlplus hr/hr @emp.sql--啟動sqlplus的時候執(zhí)行一個腳本

--初始化參數(shù)文件
文本文件--pfile
二進制文件--spfile
$ORACLE_HOME/dbs/init.ora   spfileorcl.ora

從pfile創(chuàng)建spfile
create spfile='/home/oracle/spfiletemp.ora' from pfile='/home/oracle/inittemp.ora';

--查看和修改初始化參數(shù)
用了spfile以后,就不能用文本編輯器去修改初始化參數(shù)的值
用圖形界面進管理頁面

show parameter open_cursors
alter system set open_cursors=300 scope=both

show parameter processes
alter system set processes=200 scope=spfile
當前內存的processes還是150,要重啟數(shù)據庫才可以

關閉數(shù)據庫
shutdown abort--下次重啟時,需要進行數(shù)據庫恢復
shutdown immediate--當前事務強制回滾,當前連接的session全部kill掉,建立CKPT點,內存中的數(shù)據寫入數(shù)據庫
shutdown transactional--等到當前事務結束再結束。
shutdown normal--等待事務結束,等待連接的用戶退出后才可以關閉數(shù)據庫

發(fā)出shutdown語句,任何新的連接都不可能建立了。

ps -ef|grep smon 查看數(shù)據庫進程


啟動數(shù)據庫的階段

startup nomount
1.到$ORACLE_HOME/dbs下找初始化參數(shù)文件:
spfile<SID>.ora
spfile.ora
init<SID>.ora
init.ora
2.啟動實例
3.啟動后臺進程
4.打開告警日志文件,alter_<SID>.log
為何要進入到nomount階段?
--為了重建控制文件

startup nomount
1.根據control_files這個初始化參數(shù)文件,去找到所有的控制文件
2.打開所有的控制文件。
為何要進入到mount階段?
--備份,恢復數(shù)據庫,設置歸檔模式,設置閃回模式,轉移數(shù)據文件的路徑,轉移聯(lián)機日志文件的路徑

alter database open
1.根據控制文件里所記錄的數(shù)據文件的路徑和名稱找到所有的數(shù)據文件,并打開數(shù)據文件
2.根據控制文件里所記錄的聯(lián)機日志文件的路徑和名稱找到所有的聯(lián)機日志文件,并打開聯(lián)機日志文件


啟動ORACLE數(shù)據庫實例
SHUTDOWN


動態(tài)性能視圖--以表結構的形式把內存的活動表現(xiàn)出來。
select sql_text,executions from v$sql where cpu_time > 20000;

select * from v$session where machine='EDRSR9P1' and logon_time > SYSDATE - 1;

select sid,ctime from v$lock where block > 0;

這些視圖由SYS用戶擁有
不同的啟動階段可以使用不同的視圖
--實例已加載時
--數(shù)據庫已裝載
--數(shù)據庫已打開
通過查詢V$FIXED_TABLE可以查看所有視圖名稱
這些視圖又稱為'V$視圖'
 數(shù)據是動態(tài)的,因此這些視圖不保證讀取一致性。


LOG_BUFFER is a static parameter

V$PARAMETER displays the currently in effect parameter values

MOUNT --renaming of data files  --configuring the database in ARCHIVELOG mode


 -------------------------------L5
存儲結構
1.物理結構
OS塊,OS文件


2.邏輯結構
數(shù)據庫
表空間

區(qū)
ORACLE數(shù)據塊--塊頭,空閑空間,行數(shù)據

表空間:
--只能屬于一個數(shù)據庫
--包括一個或多個數(shù)據文件
--可進一步劃分為邏輯存儲單元

數(shù)據文件
--只能屬于一個表空間和一個數(shù)據庫
--是存儲方案對象數(shù)據的資料檔案庫

ORACLE 管理文件 OMF
參數(shù)
DB_CREATE_FILE_DEST--定義數(shù)據文件和臨時文件的默認文件系統(tǒng)目錄的位置
DB_CREATE_ONLINE_LOG_DEST_n--定義重做日志文件和控制文件的創(chuàng)建位置
DB_RECOVERY_FILE_DEST--定義RMAN備份位置

SHOW PARAMETER DB_CREATE
ALTER SYSTEM SET DB_CREATE_FILE_DEST='/u01/oradata'
CREATE TABLESPACE tbs_1

表空間中的空間管理

本地管理的表空間
--在表空間中管理空閑區(qū)
--使用位圖記錄空閑區(qū)
--每一位對應一個塊或一組塊
--位值指示空閑區(qū)或占用區(qū)
--建議使用本地管理的表空間

字典管理的表空間
--由數(shù)據字典管理空閑區(qū)
--分配或取消分配區(qū)后會更新相應的表
--支持這些表空間僅僅是為了向后兼容

desc fet$--可用的連續(xù)空間
desc uet$--已經使用的連續(xù)空間

數(shù)據文件頭,分為8個塊,前2個數(shù)據塊用來放數(shù)據文件的源信息,后6個用來放BITMAP比特位
show parameter db_block_size
每個比特位對應64K的空間,用0和1來組成BITMAP

select * from dba_tablespaces
select * from v$tablespace

創(chuàng)建,修改,刪除表空間

擴大數(shù)據庫
--創(chuàng)建新表空間
--將數(shù)據文件添加到現(xiàn)有表空間
--增加數(shù)據文件的大小
--動態(tài)擴展數(shù)據文件

自動存儲管理
--是可移植的高性能集群文件系統(tǒng)
--可管理ORACLE數(shù)據庫文件
--可將數(shù)據分布到各個磁盤中以平衡負載
--可鏡像數(shù)據
--解決存儲管理的許多問題

邏輯卷管理器管理硬盤
將幾個硬盤組成一個磁盤組,在磁盤組中劃分為幾個邏輯卷,在邏輯卷上創(chuàng)建文件系統(tǒng),在文件系統(tǒng)上建立MOUNT點,/u01,/u02

RAW--性能高
FS--易管理
ASM--結合了RAW和FS的優(yōu)點,又克服了各自的缺點

ASM優(yōu)點
--條帶化文件而不是邏輯卷
--提供聯(lián)機磁盤重新配置和動態(tài)重新平衡功能
--允許調整重新平衡速度
--以每個文件為基礎提供冗余
--僅支持ORACLE數(shù)據庫文件
--可識別集群
--可自動安裝

ASM概念
--ASM磁盤組
--ASM文件
--ASM磁盤
--分配單元AU 1M
--物理塊 512byte

------------------------------------L6
每一個數(shù)據庫用戶帳戶包括:

唯一的用戶名
驗證方法
默認表空間
臨時表空間
用戶概要文件
使用者組--CONSUMER GROUP
鎖定狀態(tài)

SYS帳戶
--授予DBA角色
--具有ADMIN OPTION的所有權限
--執(zhí)行啟動,關閉和某些命令時需要使用的帳戶
--用戶數(shù)據字典
--擁有自動工作量資料檔案庫(AWR)

SYSTEM帳戶授予了DBA角色
這兩個帳戶不在例行程序操作中使用

認證方式
--密碼認證
--外部認證--由操作系統(tǒng)來認證
show parameter os_authent_prefix
ops$
connect /
--Globle認證--由OID服務器專門用來管理用戶身份

CREATE USER "TRAIN" PROFILE "DEFAULT" IDENTIFIED BY "ORACLE" ACCOUNT UNLOCK GRANT "CONNECT" TO "TRAIN";

CONNNECT --創(chuàng)建sesison的權限

管理員驗證
操作系統(tǒng)安全性
--DBA必須具有創(chuàng)建或刪除文件的操作系統(tǒng)權限
--普通數(shù)據庫用戶不應有創(chuàng)建或刪除數(shù)據庫文件的操作系統(tǒng)權限

管理員安全性
通過口令文件或操作系統(tǒng)SYSDBA和SYSOPER連接
--口令文件驗證會按名稱記錄DBA用戶
--操作系統(tǒng)驗證并不記錄具體用戶
--對于SYSDBA和SYSOPER,操作系統(tǒng)驗證有限于口令文件驗證。

sqlplus / as sysdba;
show user;
id;

查看密碼文件
orapw+sid  orapwdorcl

ALTER USER "TRAIN" ACCOUNT LOCK;--鎖定帳戶

權限
用戶權限有兩類
--系統(tǒng)權限:允許用戶在數(shù)據庫中執(zhí)行特定的操作
--對象權限:允許用戶訪問和操縱特定的對象

SELECT * FROM SYSTEM_PRIVILIEGE_MAP ORDER BY 2;
GRANT CREATE TABLE TO "TRAIN" WITH ADMIN OPTION;
ALTER USER "TRAIN" QUOTA 1M ON "USERS";

要授予對象權限,請執(zhí)行以下任務:
--選擇對象類型
--選擇對象
--選擇權限

GRANT SELECT ON "HR.EMPLOYEES" TO "TRAIN";

REVOKE CREATE TABLE FROM JEFF;

系統(tǒng)權限沒有連帶權限
對象權限有連帶權限


角色的作用
--簡化了權限的管理
--動態(tài)進行權限管理
--有選擇地使用權限

預定義角色
--CONNECT
--RESOURCE
--SCHEDULER-ADMIN
--DBA
--SELECT_CATALOG_ROLE

CREATE ROLE "R1";--R1連接權限
CREATE ROLE "R2" IDENTIFIED BY "ORACLE";--R2建表權限

SET ROLE R2 IDENTIFIED BY ORACLE;

--默認為R1角色權限,啟用R2的角色才可以創(chuàng)建表

PROFILE--現(xiàn)在主要用來管理密碼

提供的口令驗證函數(shù):VERIFY_FUNCTION
使用提供的口令驗證函數(shù)可強制是指一下口令限制:
--最小長度是四個字符
--口令不能與用戶名相同
--口令必須至少包含一個字母,一個數(shù)字和一個特殊字符
--口令與前一口令必須有三個字母不相同
提示:使用此函數(shù)作為模板可以創(chuàng)建自己的自定義驗證


---------------------------L7

命名數(shù)據庫對象
名稱長度必須為1-30個字節(jié),但以下情況例外
--數(shù)據庫名稱限制為8個字節(jié)
--數(shù)據庫連接名最長為128個字節(jié)
不帶引號的名稱不能是ORALCE保留字
不帶引號的名稱必須以數(shù)據庫字符集中的字母字符為開頭
不建議使用帶引號的名稱

公用數(shù)據類型
CHAR--固長字符
VARCHAR--變長字符
DATE
NUMBER

五種約束
--NOT NULL
--UNIQUE
--PRIMARY KEY=NOT NULL+UNIQUE KEY
--FORENGN KEY
--CHECK

違反約束條件
--插入重復的主鍵值
--刪除引用完整性約束條件中的子行的父行
--更新列值后超過了檢查約束條件的范圍

約束條件狀態(tài)
--DISABLE NOVALIDATE--等于沒創(chuàng)建這個約束
--DISABLE VALIDATE--矛盾狀態(tài),不能進行DML
--ENABLE NOVALIDATE--不對數(shù)據進行校驗
--ENABLE VALIDATE--默認狀態(tài)


檢查約束條件的時機
--若是非延遲約束條件,在執(zhí)行語句時
--若是延遲約束條件,在發(fā)出COMMIT時

ALTER TABLE T11 ADD CONSTRAINT CHECK_T11 CHECK(QTY>0);
ROLLBACK;
ALTER TABLE T11 DROP CONSTRAINT CHECK_T11;

ALTER TABLE T11 ADD CONSTRAINT CHECK_T11 CHECK(QTY>0)
DEFERRABLE INITIALLY DEFERRED;--延遲校驗約束
延遲校驗記錄在提交時才進行驗證

刪除一個表將會刪除
--數(shù)據
--表結構
--數(shù)據庫觸發(fā)器
--相應的索引
--關聯(lián)的對象權限

DROP TABLE 語句的可選子句

--CASCADE CONSTRAINTS:相關的引用完整性約束條件
--PRUGE:無法閃回
10g版本開始刪除一個表,只是把一個表改了名字而已,實際并沒有刪除
DROP TABLE hr.employees PURGE;--徹底刪除了這個表,無法在閃回區(qū)找回

TRUNCATE TABLE hr.employees
--截斷表會使表的行數(shù)據不可用,而且可選擇釋放占用空間
--會截斷相應的索引
--是DDL操作,速度很快,只是修改數(shù)據字典的內容

索引
表中每一條記錄都有一個固定的ROWID--指定了數(shù)據的物理位置

索引類型
--B樹索引采用二進制樹的形式,它是默認的索引類型
索引條目頭
鍵列長度
鍵列值
ROWID

B樹--平衡樹
每個葉子節(jié)點到根節(jié)點的距離是一致的。

--在位圖索引中,每一個建立索引的獨特值都有一個位圖,每一行的位置表示一行,
其中可能包含(也可能不包含)索引值。
對于低基數(shù)列而言,這是最佳結構。--BITMAP

  鍵   開始ROWID    結束ROWID     位圖
<BLUE  10.0.3       12.8.3        1000100100010010100>

主要用于數(shù)據倉庫
缺點--不能支持并發(fā)的DML

索引選項
--唯一索引可以確保每一個索引值是唯一的
--索引可按升序排列或降序排列存儲其鍵值
--反向關鍵字索引以反向順序存儲其鍵值字節(jié)  REVERSE KEY INDEX
--組合索引是基于所列的索引
--基于函數(shù)的索引是以函數(shù)返回值為基礎的索引
--壓縮索引會刪除重復的關鍵字值

CREATE INDEX IDX_EMP ON HR.EMPLOYEES(LAST_NAME,FIRST_NAME);

CREATE VIEW V_LC AS
SELECT LOCATION_ID ,COUNTRY_NAME
FROM LOCATION L,COUNTRIES C
WHERE L.COUNTRY_ID=C.COUNTRY_ID AND C.COUNTRY_ID IN ('AU','BR');

使用視圖降低復雜性

序列是按照某種模式自動生產整數(shù)的一種機制
--序列具有名稱,指出了請求下一個值時引用序列的方式
--序列不與任何特定的表和列相關聯(lián)
--增加方式可為升序,,也可為降序
--達到限額時,序列可循環(huán)

臨時表
--會話或事務處理結束時會自動清楚存儲數(shù)據
--為每個會話提供專用數(shù)據存儲
--可供所有會話使用,而不影響各個會話的專門數(shù)據


CREATE GLOBAL TEMPORARY TABLE employees_temp
ON COMMIT PRESERVE ROWS
AS SELECT * FROM employees;

CREATE GLOBAL TEMPORARY TABLE employees_temp
ON COMMIT DELETE ROWS
AS SELECT * FROM employees;

--在COMMIT或斷開SESSION時臨時表會被刪除

使用TRUNCATE TABLE 命令刪除表內容
在臨時表中可創(chuàng)建下列項
--索引
--視圖
--觸發(fā)器

--查看臨時表
SELECT TABLE_NAME,TEMPORARY,DURATION
FROM USER_TABLES
WHERE TABLE_NAME LIKE '%TEMP';

數(shù)據字典:概述
SELECT * FROM dictionary;

數(shù)據字典視圖

名稱        誰可以查詢    內容            下列項的子集    注
DBA_        DBA        一切對象        無        可能有其他權限DBA使用的列    
ALL_        每個用戶    用戶有權查看的一切對象    DBA_視圖    包括用戶擁有的對象
USER_        每個用戶    用戶擁有的一切對象    ALL_視圖    除了缺少OWNER列,通常與ALL_相同,某些視圖有像PUBLIC別名一樣的簡稱

desc all_tables;
desc dba_tables;
desc user_tables;


---------------------L8

使用MERGE命令可以通過單個命令同時INSERT和UPDATE數(shù)據

管理PL/SQL對象
--找出存在問題的PL/SQL對象
--建議適當?shù)腜L/SQL用法
--將PL/SQL對象裝入到數(shù)據庫中
--協(xié)助PL/SQL開發(fā)人員診斷故障

PL/SQL對象
--程序包
--程序包體
--類型主體
--過程
--函數(shù)
--觸發(fā)器

內置程序包
ORACLE數(shù)據庫帶有350多個內置PL/SQL程序包,可用于
--管理和維護實用程序
--擴展功能

desc dbms_output;

觸發(fā)器
DML--INSERT,UPDATE,DELETE
DDL--CREATE,DROP,ALTER,GRANT,REVOKE,RENAME
數(shù)據庫--LOGON,LOGOFF,STARTUP,SHUTDOWN,SERVERERROR

鎖定
--使用鎖定可防止多個會話同時更改同一數(shù)據
--鎖定是在指定語句的最低可能級別自動獲取的
--鎖定不會升級

--鎖的模式
共享鎖
排他鎖

--鎖的類型
行級別鎖
表級別鎖

鎖定機制

高級數(shù)據并發(fā)處理
--執(zhí)行插入更新和刪除時使用行級鎖定
--查詢不需要任何鎖定
自動隊列管理
在事務處理(使用COMMIT或ROLLBACK操作)結束之前一直持有鎖定


每個DML事務處理必須獲取兩個鎖定
--針對正在更新的一行或多行的EXCLUSIVE行鎖定
--針對包含這些行的表的ROW EXCLUSIVE表級鎖定

入隊機制用于跟蹤
--等待鎖定的會話
--請求的鎖定模式
--請求鎖定的會話的順序

鎖定沖突的可能原因
--未提交更改
--長時間運行事務處理
--不必要的高鎖定級別

--檢測鎖定沖突
select sid,type,lmode,request from  v$enqueue_lock;--查看鎖定的等待隊列

select sid,type,lmode,request from  v$lock;--查看已獲得鎖的Session

--使用SQL解決鎖定沖突
SELECT SID,SERIAL#,USERNAME
FROM V$SESSION
WHERE SID IN(SELECT BLOCKING_SESSION FROM V$SESSION);

ALTER SYSTEM KILL SESSION '144,8982' IMMEDIATE;



--------------------------L9

--數(shù)據操縱語言DML
INSERT
UPDATE
DELETE
MERGE
--DML始終作為事務處理的一部分執(zhí)行,它可以:
回退,使用ROLLBACK命令
提交,使用COMMIT命令

還原數(shù)據是:
--原始的,修改前的數(shù)據副本
--為更改數(shù)據的每個事務處理而捕獲
--至少保留到事務處理結束
--用于支持:
回退操作
讀取一致性和閃回查詢
從失敗事務處理中恢復

UPDATE T SET C1='A' WHERE C1='B';
1.找到包含C1='B'的數(shù)據塊,假設10#,20#
2.找到一個可用的undo block,假設3#,200#
3.把改變前的舊值‘B’放入undolock里
4.由于修改了數(shù)據塊,所以要產生redo entry來描述這個變化
redo_addr SCN file# block# operation
5.把改變前的新值‘A’放入數(shù)據塊10#,120#
6.由于修改了數(shù)據塊,所以要產生redo entry來描述這個變化

Interest Transaction List (ITL)

ITL_NBR      Tran_id       SCN           flag     undo_block_addr
1         XXX         9:00     -U-        10#,20#

每個進程在執(zhí)行SQL的時候都會記錄執(zhí)行SQL時候的SCN號

其他的進程在執(zhí)行的時候會比較其他的進程執(zhí)行時候的SCN號

事務處理和還原數(shù)據
--每個事務處理只分配給一個還原段
--一個還原段可以用時 服務多個事務處理

還原信息存儲在還原段中,還原段又存儲在還原表空間中。
還原表空間:
--僅用于還原段
--包含特殊的恢復注意事項
--只能與單個實例相關聯(lián)
--要求在任意指定時間,一個給定的實例只能有一個是當前可寫還原表空間。

SHOW PARAMETER UNDO_;
還原數(shù)據與重做數(shù)據
        還原UNDO            重做REDO
記錄        如何還原更改            如何重新生成更改
用于        回退,讀取一致性        向前滾動數(shù)據庫更改
存儲于        還原段                重做日志文件
避免        在多用戶系統(tǒng)中讀取不一致    數(shù)據丟失

還原通常不需要管理,要監(jiān)視的范圍包括:
--還原表空間中的空閑空間
--“快照太舊”錯誤

管理還原應包括防止:

--在還原表空間中出現(xiàn)空間錯誤
正確調整還原表空間的大小
確保定期提交大型事務處理
--"快照太舊"錯誤
配置適當?shù)倪原保留間隔
正確調整還原表空間的大小
考慮確保還原保留期

使用自動還原管理:
UNDO_MANAGEMENT=AUTO
UNDO_TABLESPACE=UNDOTBS1

配置還原保留期
UNDO_RETENTION    INTEGER   900
UNDO_RETENTION指定要保留的已提交還原信息量(秒數(shù))
必須設置這個參數(shù)的最合適情況是:
--還原表空間啟用了AUTOEXTEND選項
--要設置LOB的還原保留期
--要確保保留期

--------------------------L10

責任分離
必須信任具有DBA權限的用戶.請考慮一下兩個因素:
--濫用信任
--審計線索保護受信任的職位
必須共同分擔DBA責任
一定不能共享帳戶
DBA和系統(tǒng)管理員必須由不同人員擔任
分離操作員與DBA的責任

安全系統(tǒng)可確保所包含的數(shù)據的機密性。安全性包括以下幾個方面
--限制對數(shù)據和服務的訪問
--驗證用戶
--監(jiān)視可疑活動

最小權限原則
--只在計算機上安裝所需軟件
--只在計算機上激活所需服務
--只允許需要訪問的用戶訪問操作系統(tǒng)和數(shù)據庫
--限制對ROOT或管理員帳戶的訪問
--限制對SYSDBA和SYSOPER帳戶的訪問
--只允許用戶訪問完成工作所需的數(shù)據庫對象

應用最小權限原則
保護數(shù)據字典
07_DICTIONARY_ACCESSIBILITY=FALSE
從PUBLIC撤銷不必要的權限
REVOKE EXECUTE ON UTL_STMP,UTL_TCP,UTL_HTTP,UTL_FILE FROM PUBLIC;
限制用戶可訪問的目錄
限制具有管理權限的用戶
限制遠程數(shù)據庫的驗證
REMOTE_OS_AUTHENT=FALSE

SHOW PARAMETER AUTHENT;

監(jiān)控可疑活動

監(jiān)視或審計是安全過程的一部分。請復查下列各項
強制性審計--STARTUP,SHUTDOWN,以SYSDBA連接到數(shù)據庫
SHOW PARAMETER AUDIT;
標準數(shù)據庫審計
基于值審計
細粒度審計(FGA)
DBA審計


標準數(shù)據庫審計
SHOW PARAMETER AUDIT_TRAIL;
alter system set audit_trail=db scope=spfile;
1.啟用數(shù)據庫審計
2.指定審計選項--審計選項
3.復查審計信息--審計線索
4.維護審計線索

使用AUDIT_TRAIL啟用數(shù)據庫審計
AUDIT_TRAIL=DB,EXTEND--->DBA_AUDIT_TRAIL視圖
STATEMENTID,ENTRYID--->DBA_FGA_AUDIT_TRAIL視圖

審計SQL語句
AUDIT table;
審計系統(tǒng)權限
AUDIT select any table,create any tergger;--用戶訪問了別人的表才會生成審計信息
AUDIT select any table BY hr BY SESSION;

審計對象權限
AUDIT ALL on hr.employees;
AUDIT UPDATE,DELETE ON hr.employees BY ACCESS;

關閉審計
NOAUDIT DELETE ON HR.JOBS;

SHUTDOWN IMMIDEATE;
ALTER SYSTEM SET AUDIT_TRAIL=NONE SCOPE=SPFILE;
STARTUP OPEN;

基于值的審計
用戶進行了更改--觸發(fā)器觸發(fā)--觸發(fā)器創(chuàng)建了審計記錄--在審計線索表中插入審計記錄


細粒度審計
根據內容監(jiān)視數(shù)據訪問
審計SELECT,INSERT,UPDATE,DELETE和MERGE
可鏈接到表和視圖,也可鏈接到一列或多列
可能會觸發(fā)過程
使用DBMS_FGA程序包進行管理

FGA策略
定義:
--審計標準
--審計操作
使用DBMS_FGA.ADD_POLICY創(chuàng)建的

begin
dbms_fga.add_policy(
object_schema=>'HR',
object_name=>'EMPLOYEES',
policy_name=>'audit_emps_salary',
audit_condition=>'department_id=10',
audit_column=>'SALARY',
handler_schema='secure',
handler_module=>'log_emps_salary',
enable=>TRUE,
statement_types=>'SELECT');
end;

關閉FGA審計
begin
dbms_fga.drop_policy(
object_schema=>'HR',
object_name=>'EMPLOYEES',
policy_name=>'audit_emps_salary',
);
end;


審計的DML語句:注意事項
--如果滿足FGA謂詞并且引用了相關列,則會審計記錄
--不管指定列是什么,都會審計DELETE語句
會審計MERGE語句以及基礎INSERT或UPDATE生成語句

FGA準則
--要審計所有的語句,請使用null條件
--策略名必須唯一
--創(chuàng)建策略時,審計的表或視圖必須已經存在
--如果審計條件語法無效,則訪問審計對象時會發(fā)生ORA-28112錯誤
--如果表中不存在審計的列,則不會審計任何行
--如果時間處理程序不存在,則不會返回任何錯誤但仍會創(chuàng)建審計記錄

DBA審計
具有SYSDBA或SYSOPER權限的用戶可在關閉數(shù)據庫時進行連接
--審計線索必須存儲在數(shù)據庫外部
--總是審計以SYSDBA或SYSOPER身份進行的連接
--可使用AUDIT_SYS_OPERATIONS啟用SYSDBA或SYSOPER操作的附加審計
--可使用AUDIT_FILE_DEST控制審計線索

ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=TRUE SCOPE=SPFILE;
ALTER SYSTEM SET TRACEFILE_IDENTIFIER=TRAIN SCOPE=SPFILE;--在生成審計文件前加上TRAIN的標記
關閉DBA審計
ALTER SYSTEM SET AUDIT_SYS_OPERATIONS=FALSE SCOPE=SPFILE;
ALTER SYSTEM SET TRACEFILE_IDENTIFIER='' SCOPE=SPFILE;

維護審計線索
應該維護審計線索。遵循下列最佳方案準則
--復查和存儲舊記錄
--避免出現(xiàn)存儲問題
--避免記錄丟失



-------------------------L11

ORACLE NET SERVICES
應用程序ORACLE NET<------監(jiān)聽程序----->數(shù)據庫服務器

<ORACLE_HOME>/network/admin/listener.ora

要建立客戶機或中間層連接,oracle net要求客戶機了解下列事件
--運行監(jiān)聽程序的主機
--監(jiān)聽程序監(jiān)視的端口
--監(jiān)聽程序使用的協(xié)議
--監(jiān)聽程序處理的服務名

用戶進程---------->服務器進程PGA------------->數(shù)據庫

配置和管理ORACLE NETWORK的工具
--ENTERPRISE MANAGER的NET SERVICES ADMINISTRATION頁
--ORACLE NET MANAGER
--由ORACLE UNIVERSAL INSTALLER 啟動的ORACLE NET CONFIGURATION ASSISTANT(NETCA)
--命令行

lsnrctl start;
lsnrctl stop;
lsnrctl status;

alter system resgiter;--動態(tài)注冊服務

數(shù)據庫服務注冊

SHOW PARAMETER SERVICE_NAMES;
ALTER SYSTEM SET SERVICE_NAMES='SALES,PUR,FIN,HR';--由PMON進程動態(tài)注冊
SHOW PARAMETER DOMAIN;

靜態(tài)注冊
編輯listener.ora

命名方法
ORACLE NET支持多重解析連接信息的方法
--簡便連接命令:使用TCP/IP連接字符串
--本地命名:使用本地配置文件
--目錄命名:使用符合LDAP的集中式目錄服務器
--外部命名:使用支持的非ORACLE命名服務

簡便連接
--默認情況下已啟動
--不需要進行客戶機配置
--僅支持TCP/IP(無SSL)
--不支持高級連接選項,如:
連接時故障轉移
源路由
負載均衡

connect hr/hr@book.oracle.com:1521/hr.oracle.com

本地命名
tnsnames.ora


測試ORACLE NET 連接性

tnsping使用程序用于測試oracle net服務別名
--確?蛻魴C與oracle net監(jiān)聽程序之間的連接性
--不驗證所請求的服務是夠可用
--支持簡便連接名稱解析
tnsping book.oracle.com:1521/hr.oracle.com
--支持本地和目錄命名
tnsping orcl

用戶會話:專用服務器





--------------------------L12

PROACTIVE MAINTENANCE
自動工作負載信息庫

每隔一個小時對數(shù)據進行一次快照
抓取每個小時的數(shù)據庫運行情況。

AWR:AUTOMATIC WORKLOAD REPOSITORY

BASELINE

METRIC:累計統(tǒng)計信息的變化速率

STATISTICS:數(shù)據庫的活動情況

THRESHOLD:設定一個上限

優(yōu)化器統(tǒng)計信息

--靜態(tài)的.
--10g開始自動創(chuàng)建一個JOB,去收集每個表的優(yōu)化統(tǒng)計信息
--自動收集

參數(shù):STATISTICS_LEVEL   值:BASIC,TYPICAL,ALL
控制整個數(shù)據庫的自動化功能,缺省為TYPICAL

視圖:V$STATISTICS_LEVEL
DESC V$STATISTICS_LEVEL
SELECT STATISTICS_NAME,ACTIVATION_LEVEL FROM V$STATISTICS_LEVEL ORDER BY 2;

AWR:每隔一個小時對數(shù)據庫進行一個快照
SGA----MMON----AWR
快照管理7天

AWR SNAPSHOT SETS:AWR快照生成
DBMS_WORKLOAD_REPOSITORY.CREATE_BASELINE(
    start_snap_id IN NUMBER,
    end_snap_id IN NUMBER,
    baseline_name IN VARCHAR2);

MMON進程,DBMS_WORKLOAD_REPOSITORY包,200多張表三部分組成

exec DBMS_WORKLOAD_REPOSITORY.create_snapshot;

ADDM:AUTOMATIC DATABASE DIAGNOSTIC MONITOR
自動數(shù)據庫診斷監(jiān)控進程
--在每次收集完快照后自動運行
--監(jiān)控實例,診斷性能問題
--存儲結果在AWR的表中


分析最近兩個快照之間的性能問題,是否有性能瓶頸,有的話會把這個瓶頸交給ADVISORS去調整。
如果ADVISORS有優(yōu)化方案的話。就會執(zhí)行優(yōu)化,放入AWR的表中

ADDM 建議

Advisory Framework 顧問框架

--SQL TUNING ADVISOR--優(yōu)化SQL語句
--MENORY--內存管理
PGA,SGA
--SQL ACCESS ADVISOR--優(yōu)化DML
--SPACE--表空間
UNDO ADVISOR,SEGMENT ADVISOR
--BACKUP--備份恢復
MTTR ADVISOR

DBMS_ADVISOR 包

CREATE_TASK,
SET_TASK_PARAMETER,
EXECUTE_TASK,
GET_TASK_REPORT,
......

SERVER-GENERATED ALERTS
表空間利用率告警

設置告警上限

自動維護任務
--數(shù)據庫創(chuàng)建完后自動生產一些JOB



-------------------------L13

性能管理

FAST_START_MTTR_TARGET to 0  ---Automatic tuning of checkpoint would be disabled.





-------------------L14

管理員的職責
--盡量便面數(shù)據庫出現(xiàn)故障
--提高平均故障間隔時間MTBF
--減少平均恢復時間MTTR
--最大程度減少丟失數(shù)據

故障類別
--語句錯誤
典型問題            可能的解決辦法
嘗試在表中輸入無效的數(shù)據    與用戶合作來驗證
嘗試在權限不足時執(zhí)行操作    提供適當?shù)膶ο蠡蛳到y(tǒng)權限
嘗試分配未成成功的空間        1.啟用可恢復的空間分配2.增加所有者限額3.增加表空間的空間
應用程序中的邏輯錯誤        與開發(fā)人員合作來更正程序錯誤

--用戶進程錯誤
典型問題            可能的解決辦法
用戶執(zhí)行了異常斷開連接操作    通常不需要DBA操作就可以解決
用戶會話已異常終止        
用戶遇到了終止會話的程序錯誤    觀察變化趨勢

--網絡故障
典型問題            可能的解決辦法
監(jiān)聽程序失敗            配置備份監(jiān)聽程序和連接時故障轉移
網絡接口卡(NIC)故障        配置多個網卡
網絡連接失敗            配置備份網絡連接

--用戶錯誤
典型問題            可能的解決辦法
用戶無意中刪除或修改了數(shù)據    回退或使用閃回查詢進行恢復
用戶刪除了表            從回收站恢復表

--實例錯誤
典型問題            可能的解決辦法
斷電                使用STARTUP命令重新啟動實例,從實例錯誤中恢復時是自動執(zhí)行的,其中包括前滾重做日志中的更改和回退任何未提交的事務處理。
硬件故障
有一個后臺進程出現(xiàn)錯誤        通過使用預警日志,跟蹤文件和ENTERPRISE MANAGER調查出現(xiàn)錯誤的原因。
緊急關閉進程

--后臺進程和恢復:檢查點CKPT
CKPT負責:
在檢查點上發(fā)出DBWn信號
使用檢查點信息更新數(shù)據文件頭
使用檢查點信息更新控制文件

--后臺進程和恢復:重做日志文件和LOGWRITER
重做日志文件
-記錄數(shù)據庫的更改
-應多路復用以避免文件丟失
LogWriter何時執(zhí)行寫入
-提交時
-達到三分之一滿度時
-每隔三秒
-DBWn執(zhí)行寫入之前

--后臺進程和恢復:歸檔程序ARCn
歸檔程序ARCn
-是一個可選的后臺進程
-在為數(shù)據庫設置了ARCHIVELOG模式后自動歸檔練級重做日志文件
-保留對數(shù)據庫進行的所有更改的記錄

實例恢復或崩潰恢復
--原因是嘗試打開的數(shù)據庫中的文件在關閉時不同步
--是自動執(zhí)行的
--使用重做日志組中存儲的信息來同步文件
--設計到兩個不同的操作
-前滾:數(shù)據文件還原到出現(xiàn)實例錯誤之前所處的狀態(tài)
-回退:已執(zhí)行但尚未提交的更改會返回到初始狀態(tài)

實例恢復的階段
1.數(shù)據文件不同步
2.前滾(重做)
3.文件中的提交和未提交數(shù)據
4.回退(還原)
5.文件中的提交數(shù)據

優(yōu)化實例恢復
--在實例恢復期間,必須將檢查點為孩子與重做日志末尾之間的事務處理應用到數(shù)據文件。
--通過控制檢查點位置與重做日志末尾之間的差異可優(yōu)化實例恢復。

檢查點位置----實例恢復-----重做日志末尾


使用MTTR指導
--以秒或分鐘為單位指定所需要的事件
--默認值為0(禁用)
--最大值為3600秒

show parameter fast_mttr_target
show parameter fast_start_mttr_targrt
alter system set fast_start_mttr_target=30;

--介質故障
典型問題            可能的解決辦法
磁盤驅動器故障            1.從備份中還原受影響的文件
磁盤控制器故障            2.如果需要,通知數(shù)據庫關于新文件的位置
刪除或損壞了數(shù)據庫文件        3.如果需要,通過應用重做信息來恢復文件

配置可恢復性
要配置數(shù)據庫的最大可恢復性,必須:
--計劃常規(guī)備份
--多路復用控制文件
--多路復用重做日志組
--保留重做日志的歸檔副本

控制文件
通過多路復用控制文件來避免出現(xiàn)數(shù)據庫故障,建議數(shù)據庫滿足一下條件:
--至少有控制文件的兩個副本。
--每個磁盤上一個副本
--至少在單獨的磁盤控制器上有一個副本

--重做日志文件
多路復用重做日志組可避免介質故障和數(shù)據丟失。建議重做日志組滿足以下條件
--每個組至少有兩個成員(文件)
--在每個磁盤驅動器上有一個成員
--在每個磁盤控制器上有一個成員
注:由于不能在事務處理信息寫入日志之前完成提交,寫入重做日志會嚴重影響性能。

歸檔日志文件
要保留重做信息,請通過執(zhí)行一下步驟,創(chuàng)建重做日志文件的歸檔副本
1.指定歸檔日志命名慣例
2.指定一個或多個歸檔日志文件的信息
3.將數(shù)據庫切換到ARCHIVELOG模式

ARCHIVELOG模式
--將數(shù)據庫置于ARCHIVELOG模式下,請執(zhí)行以下步驟:
1.選中ARCHIVELOG MODE復選框
2.單擊APPLY,只能在MOUNT狀態(tài)下將數(shù)據庫設置為ARCHIVELOG模式
3.詢問是否需要啟動數(shù)據庫時,單擊YES
4.備份數(shù)據庫
--處于ARCHIVELOG模式下的數(shù)據庫可訪問所有備份和恢復選項



-------------------------L15  數(shù)據庫備份

使用以下各項可執(zhí)行備份:
--Recovery Manager
--Oracle Secure Backup
--用戶慣例的方案

ORACLE SECURE BACKUP
--ORACLE SECURE BACKUP 和RMAN一起為ORACLE環(huán)境提供了端到端備份解決方案
-對文件系統(tǒng)數(shù)據和ORACLE數(shù)據庫使用集中式磁帶備份管理
-對RMAN備份使用最合理集成的介質管理層
-可備份網絡任何位置的任何數(shù)據
--在整個解決方案中只使用一種技術支持資源可加速問題的解決
--確保在成本和復雜性比較低時提供可靠的數(shù)據保護

用戶慣例的備份
用戶慣例的方案
--指通過手動過程來跟蹤備份需求和狀態(tài)
--需要DBA來編寫腳本
--需要為了備份將數(shù)據庫文件置于正確的模式
--依賴操作系統(tǒng)命令來備份數(shù)據

術語
--備份策略可包括
-整個數(shù)據庫(整體備份)
-部分數(shù)據庫(部分備份)
--備份類型可指示包含:
-所有數(shù)據文件中的所有信息 (完全備份)
-只限自以前某次備份依賴更改過的信息(增量備份)
--備份模式可分為:
-脫機(一致備份或冷備份)
-聯(lián)機(非一致備份或熱備份)

備份可存儲為:
--映像副本
--備份集

RMAN
--在ENTERPRISE MANAGER中使用RECOVERY MANAGER(RMAN)執(zhí)行備份和恢復操作
--RMAN
-是可提供高級功能的命令行客戶機
-具有功能強大的操作控制能力和腳本編寫語言
-具有公布的,可通過接口與多數(shù)常用備份軟件鏈接的API
-可備份數(shù)據,控制文件,歸檔日志文件和服務器參數(shù)文件
-可將文件備份到磁盤和磁帶






----------------------------L16  執(zhí)行數(shù)據庫恢復

更改實例狀態(tài)
使用DATABASE CONTROL更改實例狀態(tài)
start the database
mount the database
open the database

使數(shù)據庫保持打開狀態(tài)
打開實例后,實例在丟失以下項時會失效
--任何控制文件
--屬于系統(tǒng)或還原表空間的數(shù)據文件
--整個重做日志組。只要組中至少有一個成員可用,實例就會保持打開狀態(tài)

丟失了控制文件
如果丟失或損壞了控制文件,實例通常會中止,此時必須執(zhí)行以下步驟
1.關閉實例
2.通過復制現(xiàn)有控制文件還原確實的控制文件。
3.啟動實例

丟失了重做日志文件
如果丟失了重做日志文件組中的某個成員,只要組中至少還有一個成員,那么:
1.不會影響實例的正常操作
2.預警日志中會收到一條信息,通知您無法找到某個成員。
3.通過從同一組中止一個剩余文件可還原缺失的日志文件

在NOARCHIVELOG模式下丟失了數(shù)據文件
如果數(shù)據庫處于NOARCHIVELOG模式下,并且丟失了任何數(shù)據文件。請執(zhí)行以下任務:
1.關閉實例
2.從備份中還原整個數(shù)據庫,包括所有數(shù)據和控制文件
3.打開數(shù)據庫
4.讓用戶重新輸入自從上一次備份依賴做的所有更改

在ARCHIVELOG模式下丟失了非關鍵數(shù)據文件
如果丟失或損壞了某個數(shù)據文件,且改文件不屬于SYSTEM或UNDO表空間,則只還原并恢復缺省的數(shù)據文件

在ARCHIVELOG模式下丟失了系統(tǒng)關鍵數(shù)據文件
如果丟失或損壞了某個數(shù)據文件,且該文件屬于SYSTEM或UNDO表空間,請執(zhí)行以下操作
1.實例不一定是自動關閉了,如果沒有關閉,請使用SHUTDOWN ABORT關閉實例
2.裝載數(shù)據庫
3.還原并恢復缺失的數(shù)據文件
4.打開數(shù)據庫




-----------------------L17  閃回

閃回技術:優(yōu)點
--閃回技術是恢復技術的革新性的進步
--傳統(tǒng)的恢復技術速度比較慢
-必須還原整個數(shù)據庫或文件
-必須檢查數(shù)據庫日志的每項更改
--閃回技術的速度比較快
-執(zhí)行和事務處理對更改建立了索引
-只還原更改數(shù)據
--閃回命令易于操作
--不涉及復雜的多步驟過程

何時使用閃回技術
對象層次    方案示例            閃回技術    使用        影響數(shù)據
數(shù)據庫        截斷表:發(fā)生了以外多表更改事件    數(shù)據庫        閃回日志    是
表        刪除表                刪除        回收站        是
        使用了錯誤的where子句進行了更新    表        還原數(shù)據    是
        將當前數(shù)據與過去數(shù)據進行比較    查詢        還原數(shù)據    否
        比較行版本            版本        還原數(shù)據    否
TX        查看數(shù)據的一些歷史狀態(tài)        事務處理    還原數(shù)據    否


閃回任何錯誤(邏輯錯誤)
--閃回數(shù)據庫通過還原自先前某個時間點以來做的所有更改,將數(shù)據庫恢復到較早的時間點
--閃回表可將表恢復到過去的某個時間點,而不必從備份中還原
--閃回刪除可還原以外刪除的表

閃回數(shù)據庫操作:
--作用類似于數(shù)據庫的倒回按鈕
--可在用戶造成了邏輯數(shù)據損壞的情況下使用

閃回數(shù)據庫:注意事項
--閃回數(shù)據庫操作完成后,必須使用以下一種方式打開數(shù)據庫
-在只讀模式下檢驗是否使用了正確的目標時間或SCN
-使用RESETLOGS參數(shù)才允許進行更新
--閃回對應的是恢復

閃回數(shù)據庫:限制
--不能在下列情況下使用閃回數(shù)據庫
-已還原或重新創(chuàng)建了控制文件
-已刪除了表空間
-已收縮了數(shù)據文件

SHOW PARAMETER FLASHBACK;
ALTER DATABASE FLASHBACK ON;

SELECT FLASHBACK_ON FROM V$DATABASE;

ALTER DATABASE OPEN;

--在mount狀態(tài)才能進行閃回
STARTUP MOUNT;
FLASHBACK DATABASE TO TIMESTAMP TO_DATE('2010-06-04 10:33:54','yyyy-mm-dd hh24:m1:ss');


閃回表:概述
--閃回表可將表恢復到特定的時間點
--閃回表是一個原位操作
--數(shù)據庫保持聯(lián)機

閃回表
--使用閃回表,可將一個或多個表恢復到特定的時間點,而不需要還原備份
--從還原表空間檢索數(shù)據后可執(zhí)行閃回表操作
--執(zhí)行閃回表操作需要FLASHBACK TABLE權限
--必須對要執(zhí)行閃回操作的表啟用行移動

alter table empnew ENABLE ROW MOVEMENT;

FLASHBACK TABLE EMPNEW TO TIMESTAMP TO_DATE('2010-06-04 10:33:54','yyyy-mm-dd hh24:m1:ss');


閃回表:注意事項
--FLASHBACK TABLE命令可作為單個事務處理執(zhí)行,從而可獲取DML互斥鎖
--不閃回統(tǒng)計信息
--保留當前縮影和相關對象
--閃回表操作
-不能對系統(tǒng)表操作
-不能跨DDL操作
-會寫入預警日志文件
-會生成還原和重做數(shù)據

DROP TABLE EMPNEW;

SHOW RECYCLEBIN;--查看被刪除的表的名字

FLASHBACK TABLE HR."BIN$0ihnfc79Reqh2XpVBu26eQ==$0" TO BEFORE DROP

flashback table empnew to before drop;--閃回到刪除前的狀態(tài)

閃回刪除:注意事項
--閃回刪除不適于:
-駐留在SYSTEM表空間中的表
-使用細粒度審計或虛擬專用數(shù)據庫的表
-駐留在字典管理表空間中的表
-已清除的表,無論是手動清楚的,還是在空間壓力下自動清楚的
以下相關對象不受保護
-位圖聯(lián)接索引
-實體化視圖日志
-引用完整性約束條件
-在刪除表前刪除的索引

閃回時間瀏覽
--閃回查詢
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
2010-08-08 11:08:32

select count(1) from empnew where department_id=60;

delete from empnew where department_id=60;

select * from hr.empnew as of timestamp to_date('2010-08-08 10:01:04','yyyy-mm-dd hh24:mi:ss') where department_id=60;

update employees set salary=(
select salary from employees
as of timestamp to_timestamp
('2010-08-08 10:01:04','yyyy-mm-dd hh24:mi:ss')
where employee_id=200)
where employee_id=200;

--閃回一部分的記錄
insert into hr.empnew
select * from hr.empnew as of timestamp to_date('2010-08-08 10:01:04','yyyy-mm-dd hh24:mi:ss') where department_id=60;

閃回版本查詢:概述
select version_xid,salary from employees
VERSIONS BETWEEN TIMESTAMP t1 and t2
where employee_id=200;

閃回版本查詢:注意事項
VERSIONS子句不能用于查詢
--外部表
--臨時表
--固定表
--視圖
VERSIONS子句不能跨DDL命令使用
段收縮操作已過濾掉


閃回事務處理查詢:概述
FLASHBACK_TRANSACTION_QUERY

閃回事務查詢:注意事項
--DDL被視為字典更新
--刪除對象顯示為對象編號
--刪除用戶顯示為用戶表示符



-------------------------L18 移動數(shù)據
移動數(shù)據:一般體系結構
SQL*Loader
expdp
impdp
其他客戶端

SQL*Loader:概述
輸入數(shù)據文件,控制文件,SQL*Loader字段處理,記錄選擇,
放棄文件(可選),壞文件,

SQL*Loader的文件都是文本文件
SQL*Loader 控制文件通知SQL*Loader以下信息
--要加載數(shù)據的位置
--數(shù)據格式
--配置詳細信息
-內存管理
-記錄拒絕
-中斷的加載處理詳細信息
--數(shù)據操縱詳細資料

加載方法

常規(guī)加載                直接路徑加載
使用COMMIT                使用數(shù)據保存(操作速度更快)
始終生成重做項                只在特定條件下生成重做項
強制所有約束條件            只強制PRIMARY KEY,UNIQUE和NOT NULL
觸發(fā)INSERT觸發(fā)器            不觸發(fā)INSERT觸發(fā)器
可加載到集簇表中            不加載到簇表中
允許其他用戶在加載操作過程中修改表    阻止其他用戶在加載操作過程中更改表

數(shù)據泵:概述
數(shù)據泵作為一個基于服務器的,可用于告訴移動數(shù)據與元數(shù)據的設備:
--是通過DBMS_DATAPUMP調用的
--可提供以下工具:
-expdp
-impdp
-基于web的界面
--可提供以下數(shù)據訪問方式
-直接路徑
-外部表
--可與長時間運行的作業(yè)分離后重新掛接
--可重新啟動數(shù)據泵作業(yè)

數(shù)據泵:優(yōu)點
--細粒度級對象和數(shù)據的選擇
--顯式指定數(shù)據庫版本
--并行執(zhí)行
--估計到處作業(yè)占用的空間
--分布式環(huán)境中的網絡模式
--導入過程中的重新映射功能
--數(shù)據取樣率和元數(shù)據壓縮

數(shù)據泵實用程序:接口與模式
--數(shù)據泵導出和導入接口
-命令行
-參數(shù)文件
-交互式命令行
-database control
--數(shù)據泵導出和導入模式
-完成
-方案
-表
-表空間
-可移動表空間
expdp help=y

vi exp.par

userid=system/gull
directory=mydir
dumpfile=emptest.dmp
#tables=(hr.emptest)
schemas=(hr)
logfile=exptest.log
job_name=exptest

expdp parfile=exp.par


數(shù)據泵導入:轉換
您可以:
--實用REMAP_DATAFILE重新映射數(shù)據文件
--實用REMAP_TABLESPACE重新映射表空間
--實用REMAP_SCHEMA重新映射方案

REMAP_DATAFILE='C:\oradata、tbs6.f':'/u1/tbs6.f'

create user hsj identfied by oracle;
grant dba to hsj;

vi imp.par
userid=system/gull
directory=mydir
dumpfile=emptest.dmp
#tables=(emptest)
schemas=(hr)
remap_schema=hr:hsj
logfile=imptest.log
job_name=imptest

impdp parfile=imp.par

drop table emptest purge;--PURGE繞過回收站,直接物理刪除

數(shù)據泵導入:轉換
實用TRANSFROM,還可以:
--從表和索引中:
-排除STORAGE和TABLESPACE子句
-只排除STORAGE子句
--重新創(chuàng)建抽象數(shù)據類型的對象標示符
--更改區(qū)分配和文件大小
TRANSFROM=
SEGMENT_ATTRIBUTES|STORAGE|OID|PCTSPACE:{y|n|v}[:objecttype]

數(shù)據泵:性能注意事項
實用PARALLEL參數(shù)最大化作業(yè)性能
expdp hr/hr FULL=y
DUMPFILE=dp_dir1:full1%U.dmp,dp_dir2:full2%U.dmp
FILESIZE=2G PARALLEL=3
LOGFILE=dp_dir1:expfull.log JOB_NAME=expfull

性能初始化參數(shù)
--以下設置會影響數(shù)據泵性能
DISK_ASYNCH_IO=TRUE
DB_BLOCK_CHECKING=FALSE
DB_BLOCK_CHECKSUM=FALSE
--以下參數(shù)應設置得更大些才能實現(xiàn)最大并行度:
PROCESSES
SESSIONS
PARALLEL_MAX_SERVERS
--應大幅度調整以下參數(shù)的大小
SHARED_POLL_SIZE
UNDO_TABLESPACE

數(shù)據泵訪問路徑:注意事項
數(shù)據泵會自動選擇以下其中一種訪問路徑:
--直接路徑
--外部表,如果數(shù)據包括:
加密列
集簇表
卸載和加載時的不同分區(qū),以及其他條件

外部表填充
--實用ORACLE_DATAPUMP訪問驅動程序將數(shù)據卸載到外部文件
--不修改外部表

將數(shù)據插入到外部表中,拷貝數(shù)據文件到目標主機,再進行導入

CREATE TABLE emp_ext
(first_name,last_name,department_name)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY mydir
LOCATION ('emp1.exp','emp2.exp','emp3.exp')
)
PARALLEL
AS
SELECT e.first_name,e.last_name,e.department_name
FROM employees e,departments d
WHERE e.department_id=d.department_id
AND d.department_name in('Marketing','Purchasing');


到目標主機

CREATE TABLE imp_ext
(first_name varchar(30),last_name varchar(30),department_name varchar(30))
ORGANIZATION EXTERNAL
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY targetdir
LOCATION ('emp1.exp')
);

--將導入的外部表的數(shù)據插入到正常的表中
create table emp as select * from imp_ext;

實用ORACLE_LOADER填充外部表

CREATE TABLE extab_employees
(emp_id NUMBER(4),
first_name VARCHAR(30),
last_name VARCHAR(30),
hire_date DATE)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER DEFAULT DIRECTORY extab_dat_dir
ACCESS PARAMETERS
(records delimited by newline
 badfile extab_bad_dir:'empxt%a_%p.bad'
 logfile extab_log_dir:'empxt%a_%p.log'
 fields terminated by ','
 missing field values are null
(employee_id,first_name,last_name,
hire_date char date_format date mask "dd-mon-yyyy"))
LOCATION ('empxt1.dat','empxt2.dat'))
PARALLEL REJECT LIMIT UNLIMITED;


數(shù)據字典
在以下位置查看關于外部表的信息:
--[DBA|ALL|USER]_EXTERNAL_TABLES
--[DBA|ALL|USER]_EXTERNAL_LOCATIONS
--[DBA|ALL|USER]_TABLES,以及其他位置

暫停導出
ctrl+C
輸入stop_job

重新啟動導出
expdp attach=exptest
再輸入用戶名和密碼就可以恢復導出工作
您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術有限公司. 版權所有 京ICP備16024965號-6 北京市公安局海淀分局網監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉載本站內容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP