1Z0-052 Oracle Database 11g: Administration I

LESSON 1:
Database architecture

3 structures: Memory/Process/storage


SGA (System global area)

1. Shared pool
     1.1 Library cache : Shared SQL area (使用相同的sql會存在這,節省記憶體)
     1.2 Data dictionary cache
     1.3 Control structures

2. Database buffer cache (儲存從datafile讀出來的block) (使用LRU機制決定哪些block留比較久)
3. KEEP buffer pool (調校功能)
4. RECYCLE buffer pool (調校功能)
5. nK buffer cache (可設定block的size)

6. Redo log buffer (存放DDL,DML改變的資訊)
7. Large pool (session memory/ IO server process/ backup&restore/ parallel query/ advanced query)
8. Java pool
9. Stream pool

PGA (Program global area)
1.stack space
2.UGA (User global area)

可使用兩個參數, 其餘讓oracle自動控制及分配memory
1. memory_target
2. memory_max_target

Server Process: 執行sql, 讀block from datafile,回傳結果

Background Process:
1. DBWn : 將dirty buffer寫到disk。也會寫dirty buffer到SCN order, redo log也在SCN order中, 所以會使checkpointer前進, 稱為incremental checkpointing。

DB_WRITER_PROCESSES 設定DBWn的數量(1-36), 不指定則由oracle根據cpu決定

2. LGWR : 將redo log buffer寫入redo log file。當commit, 或是DBWn寫入disk, 或是1/3滿, 或是每3秒

3. CKPT : 紀錄checkpoint資訊到control file, 以及datafile的header

4. SMON : 執行recovery(當instance啟動時), 清除沒在用的暫存segment

5. PMON : 執行user端的recovery, 監控session idle timeout, 動態註冊監聽器
6. RECO
7. CJQ0
8. Jnnn
9. ARCn : 將redo log file複製到某個特定位置,當log switch發生時
10. QMNn

可用 v$bgprocess 查看

Grid Infrastructure processes
1. ohasd
2. ocssd
3. diskmon
4. cssdagent
5. oraagent
6. orarootagent

Storage Structure
1. Control files
2. Data files
3. Online redo log files
4. Parameter file
5. Password file
6. Backup files
7. Archived redo log files
8. Trace files
9. Alert log file

Database :: Tablespace :: Segment :: Extent :: data block
                    (Data File)

SYSTEM跟SYSAUX是必要的tablespace, 必須為online, 且不建議儲存一般的data

ASM (Automatically Storage Management)


LESSON 2: Install
安裝需求
記憶體: 1G for instance, 1.5G for ASM
硬碟: 18G

建立GROUP
oinstall
dba

oper
asmdba
asmoper
asmadmin

建立USER
oracle

設定環境變數
ORACLE_BASE  (/u01/app/oracle)
ORACLE_HOME (/u01/app/oracle/product/11.2.0/dbhome_1)
ORACLE_SID
NLS_LANG

OUI安裝
到路徑下 ./runInstaller

Grid Infrastructure
1. 安裝ASM
預設兩個user: 
SYS : 加到password file, 並給予SYSDBA, SYSOPER, SYSASM的權限
ASMSNMP : 加到password file, 並給予SYSDBA
權限

定義ASM的群組與OS群組的對照

安裝過程會需要用root執行兩個script (程式會提示)

最後在執行 asmca 去新增FRA的disk group

ASM的redundency level
HIGH: 3-way mirror, 建立3各group(需要至少3顆硬碟), 會浪費掉2/3空間
NORMAL: 2-way mirror, 建立2各group(2顆硬碟), 1/2空間
EXTERNAL: disk group are not mirrored by ASM (ex:有自己的RAID)

2. 安裝ORACLE
定義oracle群組與OS群組的對照
OSDBA, OSOPER

安裝過程會需要用root去執行一個script
完成

也可以用silent mode
./runInstaller -silent -responsefile <filename>  (可編輯的text檔)

LESSON 3: Creating a database using DBCA
透過DBCA建立資料庫

先確認要用哪一種Character sets
支援single bite: 7-bit, 8-bit
支援multibite: unicode

判斷 Client 的 NSL_LANG 設定
不同平台下使用不同的character sets就需要轉換, 通常是自動轉換


LESSON 4: Manage oracle instance
3各主要的Framework: instance, listener, console

Enterprise Manager Database Control (EM dbconsole)
預設port: 1158, 也可改port, 路徑在$ORACLE_HOME/install/portlist.ini
如果一台host有多台database就可用不同port

Server parameter file : spfile<SID>.ora
Text initialization file: init<SID>.ora

Initialization parameters: example
1. CONTROL_FILES: controlfile name, (1-8組)
2. DB_FILES: 最大可以被open的file, 預設200
3. PROCESSES: 最大連線到oracle的數量, 預設100
4. DB_BLOCK_SIZE: (2048 - 32768) 預設8192
5. DB_CACHE_SIZE: buffer cache, 預設是0如果SGA_TARGET有設定 (16MB-48MB, 4MB*cpu_count)

如果SGA_TARGET有設定, share pool, large pool, buffer cache, java pool, stream pool 會自動給size,
也可以給最小size, 由ASMM (Automatic shared memory management)使用

MEMORY_TARGET 有設定, 自動控制SGA, PGA
如果MEMORY_MAX_TARGET沒設定, 預設是用MEMORY_TARGET的值
如果MEMORY_TARGET沒設定, 就是0

PGA_AGGREGATE_TARGET:  PGA的記憶體大小 (10M ~ 4096G-1)
SHARED_POOL_SIZE: 預設是0如果SGA_TARGET有設定
UNDO_MANAGEMENT: AUTO/MANUAL

查看parameter
SQL> Select name, value from v$parameter
SQL> Show parameter xxx

V$SPPARAMETER <- spfile
V$PARAMETER2  <-目前此session生效的參數
V$SYSTEM_PARAMETER <- 目前此instance生效的參數


靜態參數 : 可在參數檔中被改變/ 需要重啟/ 大約110各

動態參數 : 可在Online時改變/ 可改session/system level/ 大約234各
Alter session ...
Alter system ...

SCOPE=SPFILE/ MEMORY/ BOTH

開啟資料庫
SRVCTL

NOMOUNT: 
1. 找spfile<SID>.ora --> spfile.ora --> init<SID>.ora --> 
2. allocate SGA
3. 開始background processes
4. 開啟alert<SID>.log以及trace file

MOUNT:
1. 開啟所有的controlfile (parameter file裡面指定的)
2. 讀control file 得到datafile與online redo log file的資料及狀態

database 在mounted, 不在opened的情況下可執行: data file改名/ 變更archivelog mode/ 執行full database recovery

OPEN:
1.開啟data files
2.開啟online redo log files

SQL> startup
SQL> startup nomount
SQL> alter database mount;
SQL> alter database open;

$ srvctl start database -d orcl -o mount

關閉資料庫
shutdown [abort , immediate, transactional, normal]
Normal : 不允許新的連線進來, 等連線中的斷線不用instance recovery
Transactional : 不允許新的交易, 執行中的交易結束就斷線, 不用instance recovery
Immediate : 執行中的SQL終止, 連線終止, 不用instance recovery
(Enterprise版本預設是Immediate)
Abort : 立即終止, 需要instance recovery

$ srvctl stop database -d orcl -o abort

查看alert<sid>.log
預設路徑 $ORACLE_BASE/diag/rdbms/<db_name>/<sid>/trace/
是text format
也會放一份在alert, 是xml format

可select V$DIAG_INFO 查看


TRACE FILE
存放在ADR (automatic diagnostic repository)
預設路徑 查看 DIAGNOSTIC_DEST 若沒設定 > ORACLE_BASE > ORACLE_HOME/log

./diag/rdbms/orcl/orcl/

Dynamic performance view: v$ 開頭
1. SYS user所擁有
2. 透過 v$fixed_table 看所有的view

跟DBA_開頭的view有點像
v$的view通常是單數的, DBA_開頭的通常是複數的

Dictionary view

LESSON 5: Manage ASM instance
ASM instance: SGA, backgroup process

SGA: shared pool, large pool, ASM cache, free memory

Primary Processes:
RBAL, ARBn, GMON, Mark, Onnn, PZ9n

ASM有一些初始參數 Initialization parameter

ASM instance: Dynamic performance view
一些 v$ASM_ 開頭的view

權限, 可以與系統群組做對應
SYSASM  - OSASM (asmadmin)
SYSBDA - OSDBA (asmdba)
SYSOPER - OSOPER (asmoper)

連線到ASM instance
先切換環境變數 . oraenv 到 +ASM
$ sqlplus / as sysasm
SQL> startup [ force | mount | open | nomout | restrict ]
SQL> shutdown abort

$ srvctl status asm
$ srvctl start asm -o mount
$ srvctl stop asm -f

也可用 $asmcmd 

ASM Disks
Allocate Unit (AU) 預設是1M

ASM Files

SQL> create diskgroup dgroupA NORMAL REDUNDANCY
FAILGROUP controller1 DISK 
'/devices/A1' NAME diskA1 size 120G FORCE,
'/devices/A2',
FAILGROUP controller2 DISK
'/devices/B1',
'/devices/B2';


SQL> drop diskgroup dgroupA including contents;

SQL> alter diskgroup dgroupA add disk '/devices/A*';

ASM disk group compatibility: 三種
RDBMS:
ASM:
ADVM:

LESSON 6: Configure Oracle Network Environment
Oracle Net 負責client跟server的連線跟溝通

Oracle Net Listener : 
一個可以服務多個database instances以及數以千計的client連線, listener一旦幫user process與server process連線後, 就不在處理user process的事
若有安裝Grid, 預設路徑 <Grid Home>/Network/admin/listener.ora 或 sqlnet.ora
可用編輯器編輯

Server Process: 
1. 解析與執行SQL
2. 檢查buffer cache
3. 如果要讀的block不在SGA, 則從data file讀資料到buffer cache
4. 管理所有的排序行為(sorting), 管理一個跟PGA相關的記憶體位置
5. 回傳結果給user process
6. 讀取稽核選項及紀錄user process到audit destination

可用 lsnrctl 指令
$ lsnrctl start [-l listener_name]
LSNRCTL> start [listener_name]
or
LSNRCTL> set cur [listener_name]
LSNRCTL> start

利用EM建立listener
1. 開一個新的listener0, 給帳密
2. 設定protocol 跟port跟host name
3. (optional) 也可靜態服務註冊, service name, oracle home, SID

easy connect: 
SQL> connect <username>/<password>@<hostname>:<listener port>/<service name>

local naming (tnsname.ora) 有支援
1. connect-time failover
2. source routing
3. load balance

檢查Net service可以用 tnsping 指令
tnsping orcl

User session - listener - dispatcher - server process

不使用shared server的時機
1. database administration
2. backup / recovery
3. batch / bulk load
4. data warehouse

Database Link:
CREATE DATABASE LINK remote
CONNECT TO hr identity by hr
USING 'remote_orcl';

LESSON 7: Manage Oracle Storage structure
查看Tablespace
DBA_TABLESPACES
v$tablespace

預設的Tablespace
1. SYSTEM
2. SYSAUX
3. TEMP
4. UNDOTBS1
5. USERS

Tablespace的三種狀態
Read Write
Read Only: SYSTEM與SYSAUX不可設為read only
Offline: normal / temporary / immediate / For recover

可修改tablespace的空間, 透過新增datafile或增加datafile的大小
不可在bigfile的tablespace新增

Actions with tablespaces
1. Add datafile
2. Create link
3. Create DDL
4. Make locally managed
5. Make read only
6. Make writable
7. Place online
8. Reorganize
9. Run Segment Advisor
10. Show dependencies
11. Show tablespace contents
12. take offline

查看Datafile
DBA_DATA_FILES
v$datafile  (以前版本: v$dbfile)

查看Temp file
DBA_TEMP_FILES
v$tempfile

Oracle-Managed File (OMF)
使用OMF可簡化系統檔案的管理, 但須先設定下面參數
建立Data file時, 檔案放置在路徑 DB_CREATE_FILE_DEST
檔案有命名規則 <destination_prefix>/ ol_mf_%t_%u.dbf
不要去改OMF產生的檔名

範例: 變更檔案位置以及建立一個tablespace與datafile
SQL> alter system set db_create_file_dest '/u01/oradata';
SQL> create tablespace tbs_1;


LESSON 8: Administering User security
預設帳號
1.SYS
2.SYSTEM
3.DBSNMP
4.SYSMAN
5.

兩種權限: system, object

Grant <System privilege> to <User> [with admin option]  
with admin option表示被授權的人也可以授權給別人
Grant <Object privilege> on <Object> to <User>  [with grant option]
with grant option表示被授權的人也可以授權給別人

Revoke create table from <user> 

Revoke System privileges from <User> [WITH ADMIN OPTION]
with admin option表示可以revoke任何人的權限,不一定是自己授權的,沒有cascade的效果

Revoke Object privileges WITH GRANT OPTION
除了有grant any object的權限之外的使用者, 都只能revoke自己授權的權限
有cascade效果

預先定義好的role
1. connect
2. resource  (包含unlimited tablespace權限)
3. scheduler_admin
4. dba
5. select_catalog_role

profile : 可以控制資源的耗用, 管理帳號狀態與密碼過期
一個User只能有一個profile
RESOURCE_LIMIT 參數要設定為TRUE才有效

帳號 locking:
FAILED_LOGIN_ATTEMPTS
PASSWORD_LOCK_TIME

密碼 aging & expiration:
PASSWORD_LIFE_TIME  密碼到期的時間
PASSWORD_GRACE_TIME  到期後第一次登入算起幾天內會過期

密碼 history:
PASSWORD_REUSE_TIME  幾天內不能重複使用
PASSWORD_REUSE_MAX  幾次內不能重複使用

密碼複雜性驗證, ORACLE提供兩種: verify_function, verify_function_11g

給空間額度 (預設是沒有給任何空間額度)

盡量給最低權限
07_dictionary_accessibility 預設為 false, 不要去改它



LESSON 9: Manage data concurrency
使用 LOCK 機制

預設是row-level 也可以手動 lock 整個 table
SQL> lock table <tablename> in exclusive mode;

LOCK MODE
1. row share
2. row exclusive
3. share
4. share row exclusive
5. exclusive

NOWAIT 不等待

DML交易有兩個lock:
1.  exclusive row lock
2. Table lock (TM) in ROW exclusive (RX) mode

ENQUEUE 機制

Lock conflicts

刪除 lock
SQL> select sid, serial#, username from v$session where sid in (select blocking_session from v$session)
SQL> alter system kill session  'sid,serial#' immediate;



LESSON 10: Manage Undo data
Undo就是把改變前的資料copy一份

用途:
1. Rollback
2. Read-consistent
3. Flashback就是利用Undo的資料
4. Recovery from fail 交易

可用 v$transaction 去查看哪個交易被assign到哪個undo segments
只能存在undo tablespace, 且undo tablespace同一時間只能指定一個current
Own by SYS
undo tablespace只能在MOUNT的狀態被recovery

UNDO 跟 REDO 的差異

Automatic Undo Management <- Oracle建議使用預設的自動管理

undo_retention 參數使用時機:
1. undo tablspace的autoextend有開
2. LOBs
3. 有設定 retention guarantee

(只能用command line)
SQL> ALTER TABLESPACE undotbs1 rentention guarantee;

設定undo tablespace 為 fixed size, 原因為:
1. support flashback
2. 防止成長過大

但要設定夠大空間, 如果不夠大可能造成error
1. DML failure
2. snapshot too old -> 空間不夠支援 read consistency




Lesson11: Auditing

Mandatory Auditing
Standard Auditing: AUDIT_TRAIL 預設參數
set to DB --> DBA_AUDIT_TRAIL view  (稽核資料放在AUD$這個table, 在SYSTEM tablespace)
set to XML --> AUDIT_FILE_DEST 參數裡面的路徑, 放置檔案
可用 v$XML_AUDIT_TRAIL view查看目錄

若用DBCA建立資料庫, AUDIT_TRAIL預設set to DB
若用command : create database則預設sett to NONE

ORACLE建議使用set to OS

DBA_COMMON_AUDIT_TRAIL view有standard跟fine-grained audit log紀錄
(DBA_AUDIT_TRAIL, DBA_FG_AUDIT_TRAIL)

SQL statement auditing -> 稽核DDL的指令

System-privilege auditing 預設 by access
AUDIT select any table, create any trigger;
AUDIT select any table BY hr BY SESSION;

Object-privilege auditing 預設 by session
AUDIT ALL on hr.employees;
AUDIT UPDATE,DELETE on hr.employees BY ACCESS;

Value-based auditing 看值的改變

Fine-grained auditing 可看到完整SQL stmt
dbms_fga.add_policy(
object_schema => 'HR',
object_name => 'EMPLOYEES',
policy_name => 'unique_name',
audit_condition => 'department_id=10',
audit_column => 'SALARY,COMMISSION_PCT',
handler_schema => 'secure',
handler_module => 'log_emps_salary',
enable => TRUE,
statement_types => 'SELECT,UPDATE');

FGA的稽核紀錄是放在FGA_LOG$這個table (在SYSTEM這個tablespace)

sysdba auditing
SYSDBA, SYSOPER
檔案儲存在資料庫外, 因為可以在DB沒起來時連線
參數要開, 預設是FALSE
AUDIT_SYS_OPERATIONS=TRUE
檔案放在: Window(Event log), UNIX(AUDIT_FILE_DEST)

LESSON 12: Database maintenance
Automatic Workload Repository (AWR)
每個database都有AWR, 蒐集,分析資料, ASH=Active session history

AWR baseline: 蒐集一段時間後, 一個效能的比較值
Metric: 改變率, 在一段累積的統計內
Statistics: 
Optimizer - query   (有兩個名稱query optimizer, automatic tuning optimizer)
Database - performance
Threshold: 臨界值

System moving window baseline 蒐集八天的資料

Oracle Optimizer : 決定最有效率的execution plan
(也可稱 query optimizer 或 Automatic tuning optimizer)

Optimizer statistics: 
1.可以手動收集
2.restore to a point in the past
3. lock / unlock
4. delete

參數 STATISTICS_LEVEL 要設定為TYPICAL or ALL

可以透過EM或是 DBMS_STATS package設定收集
SQL> exec dbms_stats.gather_table_status('HR','employees');
Best practice
SQL> exec dbms_stats.gather_system_status('NOWORKLOAD');

可設定不同等級的範圍(SCOPE), 以及 一些參數 preferences 
exec dbms_stats.set_table_prefs('SH','SALES','STALE_PERCENT','13');

Preferences: 
CASCADE
DEGREE
PUBLISH
STALE_PERCENT
INCREMENTAL
METHOD_OPT
GRANULARITY
NO_INVALIDATE
ESTIMATE_PERCENT


AWR: 每60分鐘snapshot一次, 保留八天
MMON背景作業, 屬於SYS schema, 資料存放在 SYSAUX tablespace
用EM查看, 或是 DBMS_WORKLOAD_REPOSITORY package, 不能直接DML

AWR baseline: 一段區間的snapshot

Statistics level:
BASIC  (Optimizer statistics 自動收集沒生效)
TYPICAL
ALL

ADDM (automatic database diagnostic monitor)
自動分析前兩次的snapshot, 偵測問題瓶頸, 提供建議
Advisors:
Memory advisors
Mean-time-to-recover advisor
Segment advisor
SQL access advisor
SQL tuning advisor
Undo management advisor
Data recovery advisor
SQL repair advisor

DBMS_ADVISOR package

自動維護程序&工作
Weekday: 晚上10點, 維持4小時
Weekend: 早上6點, 維持20小時

有自動通知功能, 可設定Metrics with thresholds

Alert type: threshold, non-threshold

DBA_OUTSTANDING_ALERTS 未解決的告警
DBA_ALERT_HISTORY  設定為clear的告警

LESSON 13:
Performance management
AMM
ASMM

Dynamic performance statistics

Troubleshooting and tuning view:
分四大類, v$開頭的view

Invalid PL/SQL objects 跟 unusable index 會大幅影響效能

找出 Invalid PL/SQL objects
SQL> select object_name, object_type from dba_objects where status ='INVALID';
發現有invalid object後 有兩件事情可做:
1. Do nothing -> 當被執行時會自動 recompile
2. 手動 recompile 
ALTER PROCEDURE hr.add_job_history compile;

ALTER PACKAGE hr.maintainmp COMPILE;
ALTER PACKAGE hr.maintainmp COMPILE BODY;

找出 Invalid Index
SQL> select index_name, table_name from dba_indexes where status='UNUSABLE';
(For partitioned indexes: 則在 dba_ind_partitions 中)

ALTER INDEX hr.emp_empid REBUILD;
ALTER INDEX hr.emp_empid REBUILD ONLINE;  <- 使用者可以insert/update 不用等 rebuild 結束)
ALTER INDEX hr.email REBUILD TABLESPACE USERS;


LESSON 14:
Backup and recovery concept

Instance failure
CKPT儲存資料在control file中, DBWr從SGA寫到disk的資料, 稱為incremental checkpoint
也會更新datafile的header
資訊包含SCN, online redo log file的location

CKPT執行時機:
1. redo log switch
2. Tablespace offline
3. hot backup
4. drop 一個物件
5. 關閉DB


DBWn執行時機:
1. LRU機制: 當Dirty list滿了(沒有free buffer)
2. 每3秒
3. 當Check point發生時

Redo log file
LGWR: log writer 執行時機: 
當commit, 或是 1/3滿 或是 每3秒 或是 DBWn寫入之前 或是 clean shutdown之前
會執行

LGWR會將redo log buffer寫到一個redo log group的所有member, 滿了後才會寫下一個group, 或是下log witch指令

自動recover
1.當files資料不同步時所導致
2.使用redo log file去同步檔案
3.直行roll forward及roll back

設定MTTR (mean time to recover)

設定成可復原性
1. 定期備份
2.多份control file
3.多份redo log groups
4.archive log mode

FRA = fast recovery area

複製多份control file步驟
1.SQL> alter system set control_files='/u02/oradata/orcl/control01.ctl','/u02/oradata/orcl/control02.ctl' scope=spfile;  --因為control_files為靜態參數
2.SQL> shutdown immediate; --因為controlfile的multiplex之間必須完全相同,shutdown之後controlfile內容不會再被改變
3.$ cp /u02/oradata/orcl/control01.ctl /u02/oradata/orcl/control02.ctl  --使用os command複製controlfile到剛剛新增的位置
4.SQL> startup  --將透過spfile得知,在nomount->mount階段必須同時讀寫這兩個controlfile,而且這些controlfile內容必須相同.
現在就有兩份controlfile

複製多份redo log group
建議一個group至少2個member, 而且將member放在不同disk
注意: 多份redo log會嚴重影響效能, 因為在commit完成之前, 交易資料要寫到redo log

新增 member 到 log group
SQL> ALTER DATABASE  ADD LOGFILE MEMBER 'u02/oradata/redo04.log'  TO GROUP1;

可查看member的 狀態: v$LOGFILE

ARCn process

Archive log File: naming & destinations
Naming: 
%s -> sequence
%t -> thread
%r -> resetlogs
%d -> database ID

Destinations: 可以設定多達10個位置


啟用Archivelog mode
sqlplus / as sysdba
shutdown immediate
startup mount
alter database archivelog;
alter database open;
archive log list
改變後記得備份資料庫

LESSON 15
Performing Database backups

Recovery Manager (RMAN)
Oracle Secure Backup
User-Managed Backup

Whole database backup
Partial database backup
Full backup
Incremental backup
Offline backup
Online backup

Backups: 
image copies 類似檔案備份 (優點: 可指定restore哪一個datafile)
backup sets 空的block不會備份,減少空間, 可壓縮, 可直接備份到硬碟或磁帶

設定 Backup Schedule

Backup the control file to a trace file (雖然control全部lost的機率很低, 可用EM去執行也可command)
SQL> ALTER DATABASE BACKUP CONTROLFILE TO TRACE;

Manage current backups:
1.Catalog additional files  從別的地方備份過來的, RMAN沒有catalog的
2.Crosscheck all  沒透過RMAN刪除, 而是直接從OS端刪除備份檔案
3.Delete all obsolete  刪除超過retention policy的
4.Delete all expired  刪除crosscheck後發現已不存在的

Monitor Fast Recovery Area
可設定路徑, Size
設定 retention time 保留時間

使用RMAN command line
$ rman target /
RMAN> CONFIGURE ......
RMAN> BACKUP DATABASE PLUS ARCHIVELOG DELETE INPUT; (備份資料庫及archive log, 然後刪掉archive log)


LESSON 16
Performing Database recovery

Startup一個 instance時 : nomount > mounted > open
當找不到Data files時, 錯誤訊息會顯示第一個找不到的Data file

若要找出所有需要的Data file, 可下此指令:
SQL> select name, error from v$datafile join v$recovery_file using (file#);

維持database open的條件:
1. 所有的control file
2. 在system及undo tablespace中的 data file
3. redo log group (其中一個group 的member存在即可)

Data recovery advisor
快速檢測, 分析, 修復錯誤
支援 single instance, not RAC

RMAN target /
RMAN> list failure all;

*** Lose of a control file ***
1. 如果是存放在ASM
 a) 用EM執行 guided recovery 
 b) put database in NOMOUNT 然後執行
RMAN> restore controlfile from '+DATA/orcl/controlfile/current.260.695209463';

2. 如果是存放在一般硬碟
 a) shutdown database
 b) copy 現存的control 取代原本的 lost control file 然後startup

*** Lose of a redo log file ***
如果只有其中一個group的其中一個member遺失, 則不影響運作
可以從alert log看到member遺失
Restore遺失的member即可: Drop -> Recreate
SQL> ALTER DATABASE DROP LOGFILE MEMBER '+DATA/orcl/onlinelog/group_1.261.691672257';
SQL> ALTER DATABASE ADD LOGFILE MEMBER '+DATA' TO GROUP 2;

如果要用OMF則要Drop/Recreate整個GROUP

如果group已經archived了(或是在noarchivelog mode): 
SQL> ALTER DATABASE CLEAR LOGFILE GROUP #;

*** Lose of a Data file in noarchive mode ***
Shutdown instance > Restore > 請使用者補資料

*** Lose of a noncritical Data file in archive mode ***
Data file 不是在SYSTEM or UNDO tablespace, 則不影響其他Data file運作
(EM) 可以用perform recover

*** Lose of a system-critical Data file in archive mode ***
Shutdown abort > Mount > Restore and recover the missing data file > open

健康監控的資料是存在ADR (automatic Diagnostic Repository)
可以用DRA去修復 (Data recovery advisor)

LIST Failure
v$ir_failure

ADVISE Failure
v$ir_manual_checklist
v$ir_repair

Cross-reference of  failure and advise identifier
v$ir_failure_set

LESSON 17
Moving data
主要功能性元件:
DBMS_DATAPUMP
Direct Path API (DPAPI)
DBMS_METADATA
External Table API
SQL*Loader
expdp/impdp
Other Clients

Data Pump: 快速
可用EM跟command line: expdp/impdp

有四種方法:
Data file copying
Direct Path
External Table
Network link support

會自動決定存取方式, 如果有clustered table, referential integrity constraints, encrypted columns or a number of items 就會用external table 而不是direct path

Directory Object : 定義一個指定到OS路徑的物件

操作Data Pump時 會有一個Master Table (MT)

以前的imp與exp
自動mapping的參數
consistent = {y/n} -> flashback_time
grants=n -> exclude=grant
indexes=n -> exclude=index
log -> logfile
file -> datafile


SQL*Loader
使用兩個檔案
Input data files: stream/fixed/variable record format
Control file:在INFILE參數中
Log file:
Bad file:
Discard file:

Conventional / Direct path loads
Direct path比較快, 從HWM之後開始寫

External tables
使用兩個access drivers
ORACLE_LOADER ->text file
ORACLE_DATAPUMP -> binary file
優點: 


LESSON 18
Working with support

留言

這個網誌中的熱門文章

1Z0-061 Oracle Database 12c: SQL Fundamentals

Change Auditor 6.9.4 新特點

Change Auditor 功能介紹