oracle12c
目錄
oracle12c 1
一、oracle架構 2
1.1總體結構 2
1.1.1內存結構 2
1.1.2進程結構 3
1.1.3 oracle存儲結構 4
二、 oracle管理工具 4
三、數據庫實例 5
3.1 instance啟動停止 6
3.2 參數文件錯誤處理 7
四、oracle network 7
五、管理存儲 9
六、data concurrency 數據並發(locks) 12
七、adminstering user security 13
八、implementing oracle database auditing 數據庫審計 15
九、數據庫的backup 17
9.1 moving data(數據泵) 17
9.2 Sql*loader 18
9.3 back and recovery (物理備份) 20
9.4 back and recover concepts (概念) 22
9.5 rman (revover manager) 23
Restore恢復 29
Redo 日志恢復 33
不完全恢復(整體還原) 35
disaster recovery --災難性恢復 38
還原到新主機--不完全恢復 40
rman加密恢復 44
pitr 基於時間點的還原 47
Transporting data 可傳輸表空間 49
Rman 調優 51
十、 閃回 51
1、閃回查詢 52
2、閃回版本查詢(兩點之間的變化) 52
3、閃回事務查詢 53
4、閃回表 54
5、閃回drop 54
6、閃回數據歸檔 55
7、閃回數據庫 56
十一、managing spaces 57
Block space management 57
Tablespace monitoring 58
Shrinking segments 58
Managing Resumable space allocation 61
Memory manager 64
Install grid 65
archive log list;
backup database plus archivelog delete input;
alter system archive log current;
Report schema;
Report obsolete; --查看過期備份
delete obsolete; --刪除過期文件(包括過期歸檔日志)
刪除找不到的文件。
Crosscheck copy(類型);--檢查一下
Delete expired copy; --expired 找不到文件的源數據記錄
List copy;
---刪除了所有的歸檔日志處理辦法
List archivelog all;
Crosscheck archivelog all;
Delete archivelog all;
backup database plus archivelog delete input;
備份后--alter system archive log current;--對日志進行歸檔
配置退格鍵支持
# echo "stty erase '^H'" >> /home/oracle/.bashrc
# echo "stty erase '^H'" >> /home/grid/.bashrc
一、oracle架構
oracle database architecture 架構
user process 客戶端進程
server process 服務端進程(前台進程)
1.1總體結構
server
instance = sga、pga + process structures(代碼程序)
database (storage structures)
cdb pdb
session
1.1.1內存結構
memory stuctures 內存結構
sga :
shared pool 共享池 :
library cache(sql area和執行計划)、
data dictionary cache (數據庫表記錄各種對象記錄) 字典緩存
v$ dba_
server result cache 服務器結果緩存
reserved pool 保留池
database buffer cache (數據塊data blocks):
redo log buffer (數據庫變更日志緩存):
large pool :
session memory for the shared server and the oracle XA interace
io
backup
parallel query
流技術
java pool :
streams pool :
pga :(共享服務器模式uga 會放到sga的large pool里面)
stack space:
user global area :
12c新特性:in-memory column store(列式存儲)
full database in-memory caching(全庫緩存)
1.1.2進程結構
process architecture (進程結構)
user process
database processes
daemon / application processes
1、database writer process(dbwn)(把數據寫到磁盤)(modified - dirty)(有時間就寫臟塊)
全局檢查點(full checkpoint):
shutdown immediate;
alter system checkpoint;
增量檢查點 (incremental checkpoint)(每三秒寫一次):
其他檢查點:
switch logfile;
begin backup;
offline datafile;
2、log writer process(lgwr):(寫日志進程)
什么時候寫日志
提交時commit:
日志切換時:
日志到規定存儲寫(1/3 或者1M):
dbwn寫贓塊之前寫:
每三秒:
3、checkpoint process(ckpt)
記錄檢查點
sinals dbwn to write blocks to disk
4、system monitor process(smon)
實例恢復
cleans up unused temporary segments
5、process monitor process(pmon)進程監視
回收用戶process
動態注冊(11g前)
監視會話超時時間(idle session)
6、recoverer process(reco)(多個數據庫)
恢復分布式事務(distributed transactions)
7、listener registration process(lreg)(12c動態注冊)
8、archiver processes(arcn)(歸檔進程)
非歸檔模式(日志不保存)
----------------------
desc dict--字典表
--內存視圖
desc v$sgainfo;--sga
v$memory_dynamic_components
--進程視圖
v$process;
1.1.3 oracle存儲結構
database storage architecture --oracle存儲結構
control files (記錄數據庫的物理信息、物理文件在哪)(可以有一份或多份,每一份都是一樣的)
1、查看控制文件select name from v$controlfile;
2、show parameter control
strings /u01/app/oracle/oradata/orcl/control01.ctl
數據庫文件路徑
歸檔日志文件路徑
備份數據路徑
數據庫檢查點信息
data files (dba_data_files、v$datafile)
online redo log files (redo)(v$logfile)
archive redo log files (v$archived_log)
parameter file(參數文件)(show parameter pfile)
backup files(備份文件)
password file (密碼文件、sys的密碼)$oracle_home/dbs/orapw-sid-db
alert log and trance files (警告和追蹤文件)(v$diag_info)
----
logical and physical database strure
--邏輯架構
database - tablespaces - segment(段、表) - extent(區) - oracle data block(標准大小8k)
二、 oracle管理工具
sql-plus
sql developer
oracle enterprise manager database express
oracle enterprise manager cloud control
sql-plus 運行腳本
1、sqlplus / as sysdba
@aa.sql
2、sqlplus / as sysdba @aa.sql
shell 腳本
./patch_sqlplus.sh
sqlplus / as sysdba <<EOF | sed -n '/----------/,+1p'|tail -n 1|awk '{print $1}'
select count(*) from v\$process;
quit;
EOF
三、數據庫實例
--initialization parameter files --參數文件配置
分類:
spfile --spfile<sid>.ora (二進制文件)
pfile --ini<sid>.ora (字符串)
show parameter pfile; --查看使用的類型
show parameter --查看所有生效的參數(內存的參數)
show spparameter --查看文件中的參數
desc v$parameter -參數表(內存)
desc v$spparameter --參數表(物理)
set lines 400; --設置列寬
col name for a20; --設置結果name的顯示寬
set pages 800; --設置頁大小
參數分類:basic、高級參數 (v$parameter isbasic)
changing initialization parameter values
--分類
static parameter (靜態參數)
dynamic parameter (動態參數)
(v$parameter) issys_modifiable(global,memory) --全局修改內存(immediate 、false、deferred)
immediate --- can modify memory
false -- can not modify memory (can only modify the spfile or pfile, restart the instance)
deferred --- new session
isses_modifiable(session,memory) --會話修改內存的參數
--session的參數修改方式: alter session set 參數名稱='';
--system 的參數修改(immediate(立即生效的)、false(必須加上spfile重啟生效))
alter system set 參數名稱='' [scope=both|spfile|memory]
3.1 instance啟動停止
startup
shutdown - nomount(instance started) - mount - open
startup nomount
--找到參數文件,啟動實例 $ORACLE_HOME/dbs
先找spfile<sid>.ora 沒得
再找 init<sid>.ora (該文件可以手動修改)
--打開alert_<sid>.log
$ORACLE_BASE/diag/rdbms/dbname/instance_name/trace
alter database mount
--讀取控制文件(不檢查控制文件存在性(控制文件有多份)
show parameter control
alter database open
--打開數據文件和日志文件
--selet status from v$instance;(started\mounted\open)
-------
shutdown
A-abort --掉電--啟動時日志可以還原
I-immediate --沒提交的都回滾,立即關閉
T-transactional --只要有人做事就不關閉
N-normal --只要有鏈接就不關閉
(ITN一致性關閉)
startup force = shutdown abort + startup
--viewing the alert log
--日志文件路徑
find / -name alert_<sid>.log
$ORACLE_BASE/diag/rdbms/dbname/instance_name/trace
--日志內容
關於數據庫的報錯、全局操作
12c-ddl.log --新特性
reference 手冊、參考
--動態性能視圖 v$XXX 內存中(不同狀態內容不同)
dba_*s --所有的
all_*s --權限內所有的
user_*s --用戶所有的
3.2 參數文件錯誤處理
1、確定以前用的哪一類 pfile 可以直接修改
sql>create pfile from spfile;
sql>create spfile from pfile;
2、找到pfile進行參數修改
vi $ORACLE_HOME/dbs/init<sid>.ora
3、修改錯誤參數
4、啟動數據庫
四、oracle network
--監聽文件 $ORACLE_HOME/network/admin/listener.ora
LISTENER =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=100.98.100.225)(PORT=1521))
)
lsnrctl status
--創建監聽
netca
--register database
1、自動注冊auto:1521(start instance,every 60s、alter system register;)
server name = db_unlque_name.db_domain
2、手動注冊manual:該配置文件$ORACLE_HOME/network/admin/listener.ora
netmgr
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME = mylisner)--(服務名稱)
(SID_NAME = orcl) --(實例名稱)
(ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
)
)
--查看oralce錯誤 oerr ora 1515
--EZ connect:
sqlplus sys/passwd@192.168.100.1:1521/orcl(監聽服務名稱) as sysdba;
--local naming:(客戶端配置文件)
$ORACLE_HOME/network/admin/tnsnames.ora
orcl2=
(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=192.168.100.1)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=orcl))
)
netca/netmgr
sqlnet.ora --特殊配置 超時、加密
tnsping--測試tns的配置文件語法
__________________________________________________________________________________________
1、共享服務器模式:不能用的情況
a、管理員操作
b、備份恢復
c、批處理大數據處理
d、數據倉庫操作
2、專有服務器模式
數據庫與數據庫之間通訊
dblink 高低版本之間連接問題:有的需要打補丁
CREATE DATABASE LINK locallink
CONNECT TO hr IDENTIFIED BY hr
USING 'orcl2';
--
CREATE DATABASE LINK link1
CONNECT TO hr IDENTIFIED BY hr
USING
'(DESCRIPTION=
(ADDRESS=(PROTOCOL=TCP)(HOST=100.98.100.225)(PORT=1521))
(CONNECT_DATA=(SERVICE_NAME=orcl))
)';
五、管理存儲
dba_tablespaces --所有表空間
3 classer permanet,undo ,tmporary
permanet --永久表空間
查詢表空間使用率
set lines 800;
set pages 800;
col tablespace_name for a30;
col used_pct for a10;
select total.TABLESPACE_NAME TABLESPACE_NAME,
total.MAX_SIZE_MB MAX_SIZE_MB, total.SIZE_MB-free.USED_FREE_MB USED_SIZE_MB,
round(((total.SIZE_MB-free.USED_FREE_MB)/total.MAX_SIZE_MB)*100,2)|| '%' USED_PCT,
total.MAX_SIZE_MB-(total.SIZE_MB-free.USED_FREE_MB) Free_MB
from
(select TABLESPACE_NAME,
sum(BYTES)/1024/1024 SIZE_MB,
sum(decode(MAXBYTES, 0 , BYTES,MAXBYTES ))/1024/1024 MAX_SIZE_MB
from dba_data_files
group by TABLESPACE_NAME) total,
(select TABLESPACE_NAME,
sum(BYTES)/1024/1024 USED_FREE_MB
from dba_free_space
group by TABLESPACE_NAME) free
where total.TABLESPACE_NAME=free.TABLESPACE_NAME
and total.TABLESPACE_NAME not like 'UNDO%' ;
創建表空間
select file_name from dba_data_files;
create tablespace cs datafile '/u01/app/oracle/oradata/orcl/cs1.dbf' size 1g autoextend on maxsize 30g;
--大塊表空間創建
alter system set db_16k_cache_size=20M;
create tablespace cs datafile '/u01/app/oracle/oradata/orcl/cs1.dbf' size 1g autoextend on maxsize 30g blocksize 16k;
--添加表空間數據文件
alter tablespace cs add datafile...;
--刪除表空間
drop tablespace cs including contents and datafiles;
--縮放表空間
alter database datafile '/u01/app/oracle/oradata/orcl/cs1.dbf' resize 20M;
dba_tablespaces 字段解析
extent_management -區管理 local、dictionary(不常用)
allcation_type --區管理方式autoallocate(system)、uniform
segment_space_management -- 段空間管理 manual(freelist->dictionary)、(segment header,bitmap)auto(常用)
blocksize --表空間默認大小(8k)
show parameter block_dize;
show parameter db_cache;
show parameter cache_size;
--數據文件類型
bigfile/smallfile(默認創建方式)(多個數據文件)
8k-->32T bigfile(單個數據文件)(只能一個)
create bigfile tablespace name....;
--表空間的ofline 、online
--offline
normal:all dirty buffer cache sync to disk,then offline
temporary:sync the buffer cache as most,the ofline
immediate:offline immediate,no sync
--語法
alter talespace tablesname offline [normal\temporary\immediate];
alter talespace tablesname online;
archive log list;--查看歸檔模式
--表空間
system:dictionary、所有系統信息用戶表
sysaux:輔助表空間awr(statistics統計信息)、em
users:default permanetn tablespace 默認的永久表空間(先放用戶的默認表空間,然后建表沒有指定表空間則放這表空間)
temp:temporary data 臨時表空間
undo:undo data
--ofa(oracle flxiable architecture)
/u01/app/oracle/oradata...
--omf(oracle managed files)
db_create_file_dest-參數-指定數據文件目錄
--moving or renaming an onlin data file (移動數據文件,或重命名)
11g需要關閉數據庫或者offline datafile
1、方法
shutdown
移動文件到新目錄
statup mount
alter database rename file '路徑' to '新路徑'
alter database open
12c在線移動(新特性)
alter database move datafile '路徑' to '新路徑';
dba_temp_files
臨時表空間datafile 生成方式
1、restart instance
2、新增數據文件,刪除錯誤數據文件
--temporary tablespace
1、temporary data(sort)(pga不夠-磁盤)
order by
group by
set(except(排查) union all)
join
create index
2、temporary table
--消失數據
a、commit
b、session end
create temporary tablespace temp2 tempfile ' ' size 5m;
create GLOBAL temporary table aa(id number(20)) tablespace temp2;
select * from aa
insert into aa values(1);
commit
drop tablespace _name
--database_properties --數據庫屬性表(字符集)
---tablespace group(建臨時表空間 指定組就生成了)
表 dba_tablespace_group
alter tablespace temp2 tablespace group grp;
select * from dba_tablespace_groups
-------managing undo data-undo 表空間
a copy of original ,premdified data (修改之前,的數據)
undo 數據什么時候回收commit+900秒(事務沒有結束不會被覆蓋)
select * from v$undostat;
--作用 roolback operations
redad-consistent queries (一致性查詢)
oracle falshback query,oracle flashback(閃回)
recovery from failed trancefil
each transaction is assigned to only one undo 段
一個undo 段可以多transaction
一個undo只能一個instance
一個instance只能一個undo生效
undo 閃回 一致性查詢
redo 恢復
undo 表空間 固定 fixed size:ingnore undo_retention(忽略undo配置時間)
alte tablespace undotbs1 retention guarantee;--強制保證900秒
_____________________________________________________________________________
六、data concurrency 數據並發(locks)
--locks
prevent-防止
escalate 升級
--locking mechanism
行級鎖
查詢沒有鎖
自動隊列管理
事務提交解鎖
--dml locks
tm -rx表鎖(防止表結構變更alter drop)
x 行鎖
lock tables emplyess in exclusive mode;-手動加鎖
--鎖轉換不用重新排隊
--
數據庫監控項目(找出阻塞者殺掉)
active session:
session wait;
process number;
host memory;
host cpu;
db time;
-lock confilicts 鎖沖突
原因 uncommitted changes
long-running
鎖升級
v$session -視圖;
字段 -blocking_session -堵塞的會話id
select distinct sid from v$mystat--查看自己的session id
serial#-串號
alter system kill session 'sid,serial#';--殺掉鎖
---------
desc v$session;
select distinct blocking_session from v$session where blocking_session is not null; --查看堵塞的會話id
select SID,SERIAL#,USERNAME,OSUSER,MACHINE,TERMINAL,PROGRAM,SQL_ID from v$session WHERE sid='125';
ALTER SYSTEM KILL SESSION '125,29489'; --殺掉堵塞會話
select * from v$session where blocking_session is not null; --查看哪個會話被堵塞了
-----------
--dead locks 死鎖(互相等)(oracle會殺死前一個等待的session,程序還是不能運行需要前一個會話rollback才能保持數據一致性)
----------
七、adminstering user security
--select * from dba_users;--查看用戶屬性
schema:--某個人的對象(用戶)
用戶sys、system 12c sysbackup、sysdg、syskm
sysdg --主從用戶
權限 sysdba、sysoper(實例管理員)、sysbackup、sysdg、syskm(管理秘鑰)
用戶認證方式
password 、external、global
管理員認證
密碼文件(網絡連接@)select * from v$pwfile_users;
(as sysdba)操作系統認證(用戶在定義的組中就可以)
cat $ORACLE_HOME/rdbms/lib/config.c
$ mv config.o config.o.orig
$ make -f ins_rdbms.mk ioracle
--------------------
--普通用戶管理
create user app identified by app;
grant connect,resource,unlimited tablespace,create view to app; --一般普通用戶權限
alter user app default tablespace cs;
alter user app account lock;
alter user app identified by oracle; --改密碼
--普通用戶的操作系統認證ops$name
--權限分類
system:database(system) --select * from system_privilege_map;
object:privileges on object(某一個數據庫對象)
select * from system_privilege_map; --所有的系統權限
select * from dba_sys_privs; --用戶的系統權限配置情況
select * from table_privilege_map --對象權限
select * from dba_tab_privs; --用戶的對象權限
--分配權限
分配系統權限:grant xx to xx;[with admin option]
分配對象權限:grant xx on bb to yyy;[with grant option(可以傳給別人)] grant select on app.t to py;
--回收
系統和對象權限回收后 對對象(如建立的表)不影響
系統權限回收 不牽連其他
對象權限回收 級聯停用下發的權限
revoke create session from sys01;
--roles 角色(當成system權限)
select * from dba_roles;
grant select_catalog_role to app;--查詢數據字典的權限(巡檢用戶配置這個權限)
show parameter audit;--顯示審計文件路徑
create role role_name;
grant connect to role_name;
grant select any table to role_name;
--建用戶
grant role_name to app;
select * from dba_role_privs; --角色分配情況
--查看用戶權限
1、查看用戶system權限
2、查看用戶object權限
3、查看用戶角色。
select * from dba_sys_privs where grantee='APP';
select * from dba_tab_privs where grantee='APP';
select * from dba_role_privs where grantee='APP';
--secure roles
set role vacationdba;啟用角色
---profiles and users
作用
管理用戶密碼策略
管資源的限制 --resource_limit參數 必須為true 才生效
----密碼策略
文件模板$ORACLE_HOME/rdbms/admin |grep pwd --utlpwdmg.sql
ALTER PROFILE DEFAULT LIMIT
failed_login_attempts --幾次數鎖定
password_lock_time --1--1天
password_life_time 過期時間
password_grace_time 過期后幾天可以登錄
password_reuse_time 密碼從用時間
password_reuse_max 密碼從用次數
PASSWORD_VERIFY_FUNCTION ora12c_verify_function;
alter profile default limit password_life_time unlimited;
select * from dba_profiles;--查看profile詳情
--密碼復雜度檢查
-----------------------------------
--------------quota 配額
1、unlimite tablespace:grant unlimited tablespace to yh;
2、quota on some tablespace:alter user yh quota 10m/unlimited on users;
--least privilege--最小權限
public 對所有人的權限
administrator privilege
八、implementing oracle database auditing 數據庫審計
--數據庫安全
用戶認證
權限
監控可疑活動
--審計分類
審計路徑文件 show parameter audit(沒有開統一審計前)
audit_sys_operations-參數--管理員(基本操作)審計(12c默認開啟)
mandatory auditing 強制審計日志 (默認開啟)
和審計相關的操作
alter table against audsys(用戶的表)
管理員的開啟、關閉實例
standard database auditing -標准數據庫審計
value-based auditing 值的審計(基本不用了)(觸發器)
fine-grained auditing(FGA) 細粒度的審計
1、審計的dml 操作
---v$option 數據庫有什么功能視圖
--12c打開統一審計模式(geno進程)
SHUTDOWN IMMEDIATE
lsnrctl stop
cd $ORACLE_HOME/rdbms/lib
make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME
lsnrctl start
startup
SELECT value FROM v$option WHERE parameter = 'Unified Auditing'
------默認審計規則
select * from audit_unified_policies;
---編寫審計規則、啟用規則、停用審計、查看審計
--創建統一審計:
CREATE AUDIT POLICY my_audit_policy
ACTIONS SELECT ON app.bb;
AUDIT POLICY my_audit_policy;
noaudit POLICY my_audit_policy;
--創建fga審計
begin
dbms_fga.add_policy (
object_schema => 'APP',
object_name => 'bb',
policy_name => 'audit_emps_salary',
audit_column => 'id',
enable => TRUE,
statement_types => 'SELECT,UPDATE');
end;
/
--查詢審計信息
select * from unified_audit_trail order by event_timestamp desc;
九、數據庫的backup
9.1 moving data(數據泵)
greneral architecture
data pump --數據泵
expdp 、impdp (exp、imp客戶端和字符集相關)
--目錄對象創建 dba_directories -目錄表 默認目錄名稱:data_pump_dir
create directory mydir as '/u01/app/oracle';
grant read,write on directory mydir to app;
--導出expdp help=y
full、 schema 、table、tablespace
expdp \'/ as sysdba\' directory=mydir tablespaces=users ESTIMATE_ONLY=y --計算導出文件大小
expdp \'/ as sysdba\' directory=mydir dumpfile=app.dump logfile=mydir:app.log
tables=app.bb --倒表
schemas=app --倒用戶(常用)
exclude=statistics --排除統計數據
tablespaces=cs1 --導出表空間
full=y --倒數據庫
expdp \'/ as sysdba\' directory=mydir dumpfile=app_%u.dump logfile=app_%u.log parallel=n --並行數量
compression=all --壓縮
version=11.2.04 --指定導出的版本
content=all[data_only|metadata_only(表結構)]
expdp parfile=app.para --執行參數文件
------------------------
cat app.para
userid=app/app
directory=mydir
dumpfile=apppara.dump
tables=app.bb
QUERY=bb:"WHERE id = 7"
-------------------------
--schema導入先建表空間、建用戶
--導入impdp help=y| grep -i -C 3 table
impdp app/app directory=mydir dumpfile=app.dump tables=bb;
TABLE_EXISTS_ACTION=[APPEND, REPLACE, [SKIP] and TRUNCATE] --存在處理方式
remap_table='employees':'emp' ----remap 更名導入的對象
impdp app/app parfile=impdp.para
--cat impdp.para
directory=mydir
dumpfile=apppara.dump
tables=app.bb
remap_table=app.bb:aa
9.2 Sql*loader
Sql*loader -將文本文件導入數據庫
Input data files-> control file->sql*load(field processing(列選擇bad file)、record selection(行選擇discard file))-.>database
將/etc/group 導入數據庫
1、文件需要加后綴(拷貝文件加后綴)cp /etc/group group.txt
2、建表 create table linuxgroup(
groupname varchar2(30),
grouppasswd char,
groupid number(10),
groupmem varchar2(20))
3、寫control file
load data
infile 'group.txt' "str '\n'"
into table linuxgroup
fields terminated by ':'
TRAILING NULLCOLS
(groupname char(30),grouppasswd char(1),groupid INTEGER EXTERNAL,groupmem char(20))
--(TRAILING NULLCOLS 空值插入null)
--modtime date ‘yyyy-mm-dd hh24:mi:ss’ --日期格式定義
4、導入命令 sqlldr app/app control=linuxgroup.ctl
Truncate table linuxgroup;
--loading methods
Conventional load --一條一條加載commit
Direct path load --以塊方式保存 data saves

--external tables(只讀)
--表的定義在數據庫中,表的數據在操作系統的文件上
文本文件(oracle_loader驅動)
--建表文本文件的外部表
CREATE TABLE linuxgrouptxt
(groupname varchar2(30),
grouppasswd char,
groupid number(10),
groupmem varchar2(20))
ORGANIZATION EXTERNAL --定義外部表
( TYPE ORACLE_LOADER DEFAULT DIRECTORY mydir --定義類型和文件路徑
ACCESS PARAMETERS
( records delimited by newline
badfile mydir:'linuxgrouptxt.bad'
logfile mydir:'linuxgrouptxt.log'
fields terminated by ':'
missing field values are null --空值設為null
( groupname,grouppasswd,groupid,groupmem)) --對應表字段
LOCATION ('group.txt') ) --讀取文件名稱
PARALLEL REJECT LIMIT UNLIMITED;
二進制文件(oracle_datapump)
--導出二進制文件
CREATE TABLE linuxgroupdump
ORGANIZATION EXTERNAL --定義外部表
(
TYPE ORACLE_DATAPUMP
DEFAULT DIRECTORY mydir
LOCATION ('group.exp')
)
PARALLEL
AS
SELECT * from linuxgroup; --根據查詢建表
--導入二進制文件的外部表
CREATE TABLE linuxgroupimp
(
groupname varchar2(30),
grouppasswd char,
groupid number(10),
groupmem varchar2(20))
ORGANIZATION EXTERNAL --定義外部表
(
TYPE ORACLE_DATAPUMP --外部文件為二進制
DEFAULT DIRECTORY mydir --文件路徑
LOCATION ('group.exp') --文件名稱
);
9.3 back and recovery (物理備份)
(物理備份)
Configuring for recoverability(配置可還原配置)
--定期備份
--控制文件的復用
Show parameter control
Alter system set control_files=’’,’’,’’ scop=spfile;
Shutdown IMMEDIATE;
Cp file
startup
--
Fra:(閃回區)(內容)
1、控制文件的復用
2、redo的復用
3、backup files
4、歸檔日志
5、flashback log(flashback database)
配置(路徑和大小)
Show parameter recover;
db_recover_file_dest_size
db_recover_file_dest
--開啟閃回區
alter system set db_recovery_file_dest_size=1024M;
alter system set db_recovery_file_dest='/u01/app/oracle/fast_recovery_area';
查看閃回區大小
Show parameter recover
V$FLASH_RECOVERY_AREA_USAGE --查看各個閃回文件大小
V$RECOVERY_FILE_DEST --查看整個閃回區大小
Redo log files
復用(日志組)
V$log --查看組
V$logfile --查看組成員
創建日志組
Alter database add logfile group 4 ('xx.log','xx.log') size 50M [reuser];
增加組成員(文件)
Alter database add logfile memeber ‘xx.log’ to group 1
刪除成員
Alter database drop logfile memeber ‘xx.log’;
刪除組
Alter database drop logfile group 4;
Select status from v$log --查看日志狀態
Current --正在用
Acitive --bufer cach的日志的臟塊沒有落盤
Inactive --寫了庫了
Unused --沒有用的
Alter system switch logfile; --切換日志
Alter sysetm checkpoint; --切換檢查點,dbwn
Redo & omf --默認日志路徑
Show parameter db_create
Archived redo log file --歸檔日志
archive log list; --current log sequence --日志的切換次數
開啟歸檔
1、shutdown immediate;
2、startup mount;
3、alter database archivelog;
4、alter database open;
5、archive log list;
Log_archive_dest_1 --參數歸檔日志路徑
Fra:fra ---歸檔日志開啟了閃回區日志放閃回區
No fra:$ORACLE_HOME/dbs --沒有開啟閃回就放軟件目錄
--設置歸檔日志路徑
(企業版、配置log_archive_dest_n)
alter system set log_archive_dest_1='location=/u01/app/oracle/archive_area' mandatory(必須成功)|[optional](默認可以成功);
alter system set log_archive_dest_2=’service=remotedb’
(標准版、配置log_archive_dest/log_archive_duplex_dest='/u01/app/oracle/archive_area')
--log_archive_min_succeed_dest --歸檔日志最小成功系統才能用 默認值 1
作業:
Redo :添加日志組、日志文件、修改日志組大小、路徑管理
archive :打開歸檔、修改路徑
9.4 back and recover concepts (概念)
Mtbf(在線時長) mttr
--失敗的分類
1、語句級失敗(定義、權限、沒空間、業務邏輯)
2、用戶進程失敗select * from v$process
3、網絡失敗
4、用戶error(例如:錯誤刪除):閃回
5、實例故障 kill -9 pmon 啟動startup 恢復
Ckpt (檢查點):實例恢復的起點
檢查點隊列: 按照臟塊第一次對臟的順序串起來
前滾 (將日志回寫到內存)、回滾(undo(表空間))(沒提交的寫到內存撤銷)

作業 :歸檔多份 歸檔必須成功幾份 實例恢復過程
6、media failure(完全恢復、不完全恢復(重點))
Point-in-time recover ptr
--備份恢復類型
Rman
Flashback
Adg
9.5 rman (revover manager)
Rman target / --連接目標數據庫
命令
Standalone --單條命令
Job
Run{
....
}

Whole --全備
Partial --部分備
Offline --冷備 (可以直接用)
Online --熱備 (必須日志)
Full --對某個數據文件 所有備份
Incremental --對某個數據文件 增加的備
Cumulative累計增量備份(和第一次備份做比較)
Differential差異增量備份(和上一次比較)
--osb:oracle secure back:nbu
Rman:
Image copies(鏡像拷貝)
Backup sets (備份集)(多個backup pice)
----using the rman recovery catalog (數據庫)
Rman>backup spfile;
--備份文件兩部分
--backup metadata --備份的源數據
1、放在控制文件中(有時間限制)
2、放catlog里面
--backup files --備份文件
--創建catlog
1、創建數據庫、表空間
2、創建用戶分權限


Grant unlimited tablespace to cataadmin;
3、創建calog數據庫
rman catalog cataadmin/oracle --鏈接catalog數據庫
create catalog;
drop catalog;
4、注冊
--數據庫端
rman target / catalog cataadmin/oracle@100.98.100.215:1521/xe
register database;
unregister database;
--catalog端進行注冊
rman target sys/123qweQWE@100.98.100.225:1521/orcl catalog cataadmin/oracle
register database;
backup spfile;
作業:catalog概念 創建catalog數據庫
create tablespace catlog datafile '/u01/app/oracle/oradata/orcl/catlogspace.dbf' size 20m autoextend on maxsize 30g;
create user cataadmin identified by oracle default tablespace catlog;
grant recovery_catalog_owner,unlimited tablespace to cataadmin;
rman catalog cataadmin/oracle
RMAN> create catalog
---partial 、full
--using rman stored scripts (使用rman腳本)
Delete backup
List backup;
Run {
Backup spfile;
Backup current controlfile;
}

----creating and using virtual private catalogs
---catalog command (手動添加源文件,收錄到數據庫)
Catalog start with ‘路徑’

--收錄某類的文件

作業:注冊數據庫、創建腳本 、收錄
--建立catalog數據庫
-- 1、建表空間
create tablespace catlog datafile '/u01/app/oracle/oradata/xe/catlogspace.dbf' size 20m autoextend on maxsize 30g;
-- 2、建用戶分權限
create user cataadmin identified by oracle default tablespace catlog;
grant recovery_catalog_owner,unlimited tablespace to cataadmin;
--鏈接catalog建catalog庫
rman catalog cataadmin/oracle
RMAN> create catalog
--源端鏈接catalog數據庫進行注冊
Rman target sys/123qweQWE@100.98.100.225/orcl catalog cataadmin/oracle
Register database;
--創建備份腳本、查看
create script backup_controlfile{
backup spfile;
Backup current controlfile;
}
list script names;
print script backup_controlfile;
--運行腳本
RUN { EXECUTE SCRIPT backup_controlfile;
}
--收錄備份文件的源到catalog庫
catalog start with '/u01/app/oracle/fast_recovery_area/ORCL/backupset/2019_09_08';
--刪除查看備份
delete backup;
list backup;
---performing backups
backup (show all 顯示rman所有配置)
1、spfile,controlifile,datafile,(online redo),archive log,(password file),(alert),(trace) --rman不能備份打括號的
2、備份命令
CONFIGURE BACKUP OPTIMIZATION ON; --打開備份的時候備份控制文件和參數文件的參數
spfile :backup spfile
Controlfile :
Rman> backup [as backupset] current controlfile;
Rman> backup as copy current controlfile;
--鏡像拷貝
SQL> alter database backup controlfile to '/tmp/control.ctl';
SQL> alter database backup controlfile to trace as '/tmp/control.trc';
Datafile:
Rman>report schema;
Rman>backup datafile 8|’xxxwjm’;
Sql>backup as copy datafile 8|’xxxwjm’;
Tablespace,database:
Rman>backup tablespace xxx;
Rman>backup database;--包含spfile,controlifile,datafile
Rman>backup database plus archivelog delete input(刪除備份了的歸檔); --全庫備份
Archivelog:
Rman>backup archivelog all [delete input];
9.6 incrementally updated backups (增量備份)
Rman target /
Rman >Report schema;
backup incremental level 0 datafile 7;
Backup [Differential/cumulative] incremental level 1 datafile 5;
Differential(差異增量)/cumulative(累計增量和0比)
List backup of datafile 5
Fast incrementall back (快速備份)
--啟用快速備份(塊跟蹤)ctwf進行塊寫
Alter database
{enable|disable} block change tracking
[using file ‘...’] (開啟了omf可以不用寫該文件,軟件自己放路徑)

SELECT file#, avg(datafile_blocks),
avg(blocks_read),
avg(blocks_read/datafile_blocks)
* 100 AS PCT_READ_FOR_BACKUP,
avg(blocks)
FROM
v$backup_datafile
WHERE used_change_tracking = 'YES'
AND
incremental_level > 0
GROUP BY file#;
--查看備份塊情況
查看備份情況
List back of ...
List copy of ..
Report schema;
Report obsolete; --查看過期備份
Delete obsolete --刪除過期文件
刪除找不到的文件。
Crosscheck copy(類型);--檢查一下
Delete expired copy; --expired 找不到文件的源數據記錄
List copy;
備份壓縮
備份集才可以壓縮(鏡像拷貝不能壓縮)
Backup [as copy|as compressed backupset] datafile 5;
備份大文件方法
Backup daafile 5 section size =25M;(一般和並行用如下)

作業:增量備份、開啟塊追蹤、刪除過期、壓縮備份、大文件備份
backup incremental level 0 datafile 7;
backup cumulative incremental level 1 datafile 7;
list backup of datafile 7;
alter database enable block change tracking;
report obsolete;
List copy;
Crosscheck copy;
Delete expired copy;
backup as compressed backupset datafile 5;
對備份集的備份
Backup backupset all;
Backup backupset 4;
備份多份
方法1、修改rman 配置,指定備份地方

還原rman的配置用
CONFIGURE DATAFILE BACKUP COPIES FOR DEVICE TYPE DISK TO clean;
方法2、命令方式

Archival backups (打破默認的保存策略)指定過期時間


1、配置自動備份控制文件
2、開啟歸檔模式
3、全庫備份

Restore恢復
Resore & recovery
1、parameter file 參數文件問題
方法一、
Create pfile from spfile;
改pfile,啟動數據庫
方法二、自己配置參數文件
2、password file 密碼文件恢復(遠程的管理員用戶)
Cd $ORACLE_HOME/dbs
Orapwd file=orapw<sid>
作業:備份多份、參數文件密碼文件恢復
backup database plus archivelog delete input;
backup copies 2 format '/tmp/datafile%U','/home/oracle/datafile%U' datafile 7;
3、crcial (關鍵性文件)
Control file, system tbs,undo tbs,online redo log
4、datafile (數據文件損壞恢復)
Creater table a(id int) tablespaces cs;
--清理緩存

--查看損壞文件
Rman >Select * from v$recover_file;
Rman >validate database;
方法rman:
1、離線數據文件
Alter database datafile 2 offline;
2、恢復
Restore datafile 2;
3、跑日志
Recover datafile 2;
4、Alter database datafile 2 online;
Tablespces

數據庫恢復

System\undo:

Archvie log(恢復歸檔文件)
List backup of Archivelog all;
Restore archivelog all |sequence 65;
--查看數據文件和控制文件的頭 必須一樣才能啟動

作業:數據庫文件恢復、表空間恢復、歸檔文件恢復
select table_name,TABLESPACE_NAME from dba_tables where TABLESPACE_NAME='USERS';
mv /u01/app/oracle/oradata/prod/users01.dbf /u01/app/oracle/oradata/prod/users01.dbf.bak
SQL> select * from OJDS$BINDINGS$;
select * from OJDS$BINDINGS$
*
ERROR at line 1:
ORA-01116: error in opening database file 6
ORA-01110: data file 6: '/u01/app/oracle/oradata/prod/users01.dbf'
ORA-27041: unable to open file
Linux-x86_64 Error: 2: No such file or directory
Additional information: 3
Rman>validate database;
--恢復
Rman>Alter database datafile 6 offline;
restore datafile 6;
recover datafile 6;
alter database datafile 6 online;
----------表空間恢復
rm -rf example01.dbf
restore tablespace example;
recover tablespace example;
alter database open;
------數據庫的恢復
rm -rf system01.dbf
alter system flush buffer_cache;
alter system flush shared_pool;
Rman>validate database;
Restore database;
recover database;
Alter database open;
-----------controlfile控制文件恢復
Parameter ,controlfile:nomount模式下
Rman>

作業:刪除參數文件 控制文件 進行數據庫恢復
/u01/app/oracle/fast_recovery_area
/u01/app/oracle/oradata/orcl/control01.ctl
/u01/app/oracle/ fast_recovery_area/orcl/control02.ctl
----恢復參數、控制文件
rman target /
Startup nomount;
restore spfile from autobackup recovery area = '/u01/app/oracle/fast_recovery_area/' db_name = 'ORCL';
Startup nomount force;
restore controlfile from autobackup;
Alter database mount;
Recover database;
Alter database open resetlogs;
----
-重新進行備份
Rman>backup database plus archivelog delete input;
控制文件沒有備份如何恢復
1、另外一台oracle 生成模板

2、修改配置
修改庫名稱
修改日志文件、數據文件路徑


Redo 日志恢復(v$log \v$logfile)

(思路 建正在用的變成用過的,用過的變成沒在用的,然后clear日志)
如果不能實現,只能不完全恢復
1、只是某個logdata損壞,刪除新建
2、某個日志組損壞。
一、Inactive模式的日志
A、做了歸檔
B、直接 Alter database clear logfile group 4;
二、active模式的日志
寫庫 checkpoint 變成 inactive
Alter system checkpoint;
Clear日志
Alter database clear logfile group 4;
三、curent模式的日志
日志切換 log switch
Alter system switch logfile;
變成 active,進行寫盤
Alter system checkpoint;
Clear日志
Alter database clear logfile group 4;
作業:通過模板恢復控制文件、redo日志的恢復
---inactive 日志文件恢復
select GROUP#,STATUS from v$log;
select group#,member from v$logfile;
alter database clear logfile group 1;
--active 日志文件恢復
SQL> select GROUP#,STATUS from v$log; --查看到3日志組待寫盤
GROUP# STATUS
---------- ----------------
1 CURRENT
2 INACTIVE
3 ACTIVE
rm -rf redo03.log --刪除3日志組
Alter system checkpoint; --進行寫盤操作
SQL> select GROUP#,STATUS from v$log; --日志組3變成了用過的日志
GROUP# STATUS
---------- ----------------
1 CURRENT
2 INACTIVE
3 INACTIVE
SQL> alter database clear logfile group 3; --clear 將日志resetlog,生成新日志文件
--CURRENT 正在用的日志恢復
Alter system switch logfile;
變成 active,進行寫盤
Alter system checkpoint;
Clear日志
Alter database clear logfile group 4;
----手動編寫控制文件
alter database backup controlfile to trace as '/tmp/contro.ctl';
不完全恢復(整體還原)

1、找時間點(time、scn、sequence#、restore point)
相關人員告訴
分析日志
Select group#, Firest_time,next_change# from v$log;
還原
Run{
Startup mont force;
Set until scn 1323434;
Restore database;
Recover database;
Alter database open resetlogs;
}
Oracle 備份進度查看
作業 :不完全恢復
--插入表數據
insert into a select * from a;
Cmmit;
--查看正在用的日志組
SQL> select GROUP#,STATUS from v$log;
GROUP# STATUS
---------- ----------------
3 CURRENT
2 INACTIVE
1 INACTIVE
--刪除日志組
rm -rf /u01/app/oracle/oradata/orcl/redo3.log
--找到可以還原的時間點
SQL> select GROUP#,FIRST_CHANGE#,NEXT_CHANGE# from v$log;
GROUP# FIRST_CHANGE# NEXT_CHANGE#
---------- ------------- ------------
1 4976405 4977820
2 4977820 4979576
3 4979576 2.8147E+14
--全庫還原
Run{
startup mount force;
set until scn 4979576;
restore database;
recover database;
alter database open resetlogs;
}
--進行全庫備份
backup database plus archivelog delete input;
-----建備份還原到新環境中
Set newname for datafile and set newname for tempfile
Set newname for tablespace
Set newname for database

作業:nolong、newname
---nolong表情況 example is nolong表空間。
create table b (id int) tablespace EXAMPLE;
Rm-rf /u01/app/oracle/oradata/prod/example01.dbf
alter database datafile 5 offline drop;
Restore datafile 5;
recover datafile 5;
alter database datafile 5 online;
--newname 還原到新地方
Run {
Sql 'alter tablespace example offline immediate';
Set newname for tablespace example to '/home/oracle/%b';
Restore tablespace example;
Switch datafile all;
Recover tablespace example;
Sql 'alter tablespace example online';
}
RMAN> report schema;
--鏡像拷貝恢復(建現在用的文件用備份的鏡像直接替換)
List copy of datafile 5;
alter database datafile 5 offline drop;
--用copy的鏡像替換datafile'/home/oracle/example01.dbf'
switch datafile '/home/oracle/example01.dbf' to copy;
recover datafile 5;
alter database datafile 5 online;

recover copy of database with tag 'daily_inc';
Backup incremental level 1 for recover of copy with tag 'daily_inc' database;
---非歸檔模式的備份恢復alter database noarchivelog;
Noarchivelog:
Full-全備:
Backup: mount -->backup(backup database;backup current controlfile;)
Restore: mount-->restore database;-->alter database open resetlogs;
增量:
Backup: mount -->
第一天
backup incremental leve 0 database;
Backup current controlfile;
第二天
backup incremental leve 1 database;
Backup current controlfile;
...........
Restor:
Restore latest controlfile;
Mount;
Restore database;
Recover database noredo;
alter database open resetlogs;
disaster recovery --災難性恢復
最小需求
Backups of data files
Corresponding archived redo logs files
At least one control file autobackup
----數據文件不在、控制文件不在、參數文件不在
步驟
1、恢復參數文件
Rman
A、啟動啞實例:startup nomount
B、恢復參數文件:

2、以參數文件啟動實例
Startup nomount force;
恢復控制文件

3、使用控制文件啟動到mount;
Alter database mount;
恢復庫(日志沒丟完全恢復、丟日志不完全恢復)
Restore database & recover database;
4、alter database open resetlogs;(改變了控制文件需要重寫日志)
------alter system archive log current;--對日志進行歸檔
---刪除了所有的歸檔日志處理辦法
List archivelog all;
Crosscheck archivelog all;
Delete archivelog all;
backup database plus archivelog delete input;
備份后--alter system archive log current;--對日志進行歸檔
作業:災難性恢復
刪除數據文件、控制文件、參數文件。
Shutdown abort;
Startup nomount;
恢復參數文件
restore spfile from autobackup recovery area='/u01/app/oracle/fast_recovery_area/' db_name='orcl';
以參數文件啟動實例
Startup nomount force;
恢復控制文件
restore controlfile from autobackup ;
Alter database mount;
恢復數據庫
Restore database;
Recover database;
打開數據庫;
alter database open resetlogs;
還原到新主機--不完全恢復
Archivelog mode+whole database;
archive log list;
backup database plus archivelog delete input;
alter system archive log current;
1、控制文件
Create pifile from spfile;
Scp pifile 到新機器對應目錄
修改pifile 建目錄
export ORACLE_SID=prod
Rman 啟動到nomount
2、恢復controlfile文件
Prod
List backup of controlfile;
Scp controlfile 到新主機
Restore controlfile from ‘控制文件路徑’;
Alter database mount;
List backup;--找最新的archlog的 scn用於不完全恢復
3、恢復數據庫
拷貝prod的最新備份文件到新主機相同目錄下(建目錄)
Restore & recover database
Run{
Set until scn 15454;
Restore database;
Recover database;
}
alter database open resetlogs;
作業:還原到新主機
1、還原參數文件
Prod
create pfile from spfile;
scp initprod.ora oracle@192.168.20.251:/u01/app/oracle/product/12.1.0/dbhome_1/dbs/
修改新主機的initprod.ora
mkdir -p /u01/app/oracle/admin/prod/adump /u01/app/oracle/oradata/prod /home/oracle/mydir /u01/app/oracle/fast_recovery_area /u01/app/oracle
新主機
export ORACLE_SID=prod
rman target /
startup nomount;
2、恢復controlfile文件
Prod
List backup of controlfile;
scp /u01/app/oracle/fast_recovery_area/PROD/autobackup/2019_10_13/o1_mf_s_1021547306_gt559b8s_.bkp oracle@192.168.20.251:/home/oracle/
新主機
Restore controlfile from '/home/oracle/o1_mf_s_1021547306_gt559b8s_.bkp';
Alter database mount;
Prod
List backup;--找最新的archlog的 scn用於不完全恢復
List of Archived Logs in backup set 25
Thrd Seq Low SCN Low Time Next SCN Next Time
---- ------- ---------- --------- ---------- ---------
1 29 2848763 13-OCT-19 2848803 13-OCT-19
3、恢復數據庫
拷貝prod的最新備份文件到新主機相同目錄下(建目錄)
新主機:mkdir -p /u01/app/oracle/fast_recovery_area/PROD/backupset
Prod:scp -r /u01/app/oracle/fast_recovery_area/PROD/backupset/2019_10_13 oracle@192.168.20.251:/u01/app/oracle/fast_recovery_area/PROD/backupset/
新主機:
Restore & recover database
Run{
Set until scn 2848803;
Restore database;
Recover database;
}
4、啟動庫
alter database open resetlogs;
Duplicate database --復制數據庫
在線復制
基於備份的復制(對生產沒有影響)--(連接生產、不連接生產)--連接新主機
12c新概念
The push process is based on image copies; 鏡像拷貝
The pull process is based on backup sets;12c 新特性 (備份集拷貝)
---在線復制-復制成新實例名稱
1、復制initorclt.ora到新主機
2、修改initoraclt.ora 的實例名稱和路徑、建立路徑
3、啟動到nomount
4、啟動監聽alter system register;
5、靜態注冊,改配置文件
6、准備腳本http://www.xuwang.online/index.php/archives/57/
7、准備密碼文件 orapwd file=$ORACLE_HOME/dbs/orclpwdb01
8、
9、運行腳本
作業:在線復制數據庫
11的prod 復制到251成orcl
1、復制initorclt.ora到新主機
scp initprod.ora oracle@192.168.20.251:/u01/app/oracle/product/12.1.0/dbhome_1/dbs/initorcl.ora
2、修改initoraclt.ora 的實例名稱和路徑、建立路徑
:%s/prod/orcl/g
Mkdir -p /u01/app/oracle/admin/orcl/adump /u01/app/oracle/oradata/orcl/
3、啟動到nomount
export ORACLE_SID=orcl
sqlplus / as sysdba
Startup nomount;
4、啟動監聽alter system register;
靜態注冊,改配置文件
LISTENER =
(DESCRIPTION=
(ADDRESS=(PROTOCOL=tcp)(HOST=192.168.20.251)(PORT=1521))
)
SID_LIST_LISTENER=
(SID_LIST=
(SID_DESC=
(GLOBAL_DBNAME = orclzc)
(SID_NAME = orcl)
(ORACLE_HOME=/u01/app/oracle/product/12.1.0/dbhome_1)
)
)
6、准備腳本http://www.xuwang.online/index.php/archives/57/
run{
SET NEWNAME FOR DATABASE TO '/u01/app/oracle/oradata/orcl/%b';
DUPLICATE TARGET DATABASE TO orcl
FROM ACTIVE DATABASE
NOFILENAMECHECK
logfile
group 1 ('/u01/app/oracle/oradata/orcl/redo01a.log') SIZE 50M REUSE,
group 2 ('/u01/app/oracle/oradata/orcl/redo02a.log') SIZE 50M REUSE,
group 3 ('/u01/app/oracle/oradata/orcl/redo03a.log') SIZE 50M REUSE;
}
7、rman連接目標庫和還原庫
orapwd file=$ORACLE_HOME/dbs/orapworcl password=oracle
rman target sys/oracle@192.168.20.11:1521/prod auxiliary sys/oracle@192.168.20.251:1521/orclzc
backup-based duplicate (orcl ---> cfopdb)
1. Create an Oracle password file for the auxiliary instance. (optional)
$ orapwd file=orapwcfopdb
2. Establish Oracle Net connectivity to the auxiliary instance. (optional)
3. Create an initialization parameter file for the auxiliary instance.
4. Start the auxiliary instance in NOMOUNT mode.
[oracle@demo dbs]$ export ORACLE_SID=cfopdb
[oracle@demo dbs]$ rman target /
startup nomount;
5. Mount or open the target database.
SQL> select status from v$instance;
6. Ensure that backups and archived redo log files are available.
$ scp /u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_10_13/* 192.168.20.10:/u01/app/oracle/fast_recovery_area/ORCL/archivelog/2019_10_13/
7. Allocate auxiliary channels if needed.
8. Execute the DUPLICATE command.
$ rman target sys/oracle@192.168.20.250:1521/orcl auxiliary /
RMAN> RUN
{SET NEWNAME FOR DATABASE TO '/u01/app/oracle/oradata/cfopdb/%b';
DUPLICATE TARGET DATABASE to cfopdb NOFILENAMECHECK
logfile
group 1 ('/u01/app/oracle/oradata/cfopdb/redo01a.log') SIZE 50M REUSE,
group 2 ('/u01/app/oracle/oradata/cfopdb/redo02a.log') SIZE 50M REUSE,
group 3 ('/u01/app/oracle/oradata/cfopdb/redo03a.log') SIZE 50M REUSE;
}
rman加密恢復
TDE(錢夾的方式 基於鑰匙的加密)
1、基於口令的加密

恢復

2、基於鑰匙的加密
http://www.xuwang.online/index.php/archives/140/
A、建鑰匙目錄
Mkdir /u01/wallet
B、配置錢夾位置
More $ORACLE_HOME/network/admin/sqlnet.ora

Lsnrctl stop / start
C、創建秘鑰
Sqlplus / as sysdba



作業:秘鑰加密、錢夾方式加密、雙棧模式
Rman
--密碼加密備份
SET ENCRYPTION ON IDENTIFIED BY 'oracle' only; run{
Backup datafile 6; }
alter database datafile 6 offline;
rm /u01/app/oracle/oradata/prod/users01.dbf;
--密碼提供恢復
SET DECRYPTION IDENTIFIED BY 'oracle';run{
restore datafile 6;
recover datafile 6;}
--錢夾加密
--建目錄
Mkdir /home/oracle/wallet
--編輯sqlnet.ora
--重啟監聽實例
--sqlplus / as sysdba
--創建keystore文件
--打開keystore文件
--生成key
--打開wallet
ADMINISTER KEY MANAGEMENT CREATE KEYSTORE '/home/oracle/wallet' IDENTIFIED BY oracle;
ADMINISTER KEY MANAGEMENT SET KEYSTORE OPEN IDENTIFIED BY oracle;
ADMINISTER KEY MANAGEMENT SET KEY IDENTIFIED BY oracle WITH BACKUP USING 'for_12c';
ALTER SYSTEM SET ENCRYPTION WALLET OPEN IDENTIFIED BY "oracle";
rman
SET ENCRYPTION ON;
run {
backup datafile 6;
}
alter database datafile 6 offline;
restore datafile 6;
--diagnosing failures
Adr(repository倉庫)/ dra(advisor顧問)
考--參數diagnostic_dest 指定adr 的路徑
Dra 只支持單實例 不支持rac
支持主從切換
Dra 功能作用
Dra 步驟
Validate database; --對數據庫進行校驗、檢查是否有錯誤。
Rman
List failure;
Advise failure;
Repair failure;
---cure日志出問題實例直接掛了
啟動到mount;
不完全恢復
--block 恢復
物理壞塊
--查看壞塊
1、Ora-01578 物理壞塊
2、告警日志
3、看視圖
防止壞塊參數(性能)

恢復壞塊:
1、制作壞塊

2、人為校驗 rman > validate database;
Validate datafile 5;
Select * from v$database_block_corruption;

3、修復
Recover datafile 5 block 150;
recover corruption list;
ADG 主備庫
邏輯壞塊
作業:物理壞塊修復
1、制作壞塊
dd if=/dev/zero of=/u01/app/oracle/oradata/prod/users01.dbf count=2 seek=150 bs=8192 conv=notrunc
2、人為校驗
rman > validate database;
Select * from v$database_block_corruption;
3、修復壞塊
Recover datafile 6 block 150;
Recover datafile 6 block 151;
recover corruption list;
pitr 基於時間點的還原
Tspitr:表空間基於時間點的還原(啟動輔助實例-導出源數據-修改原來的datafile)
Tpirt:表基於時間點的還原 (12c)(啟動輔助實例-導出表數據-導入數據表)
Target time:目標點
Recover set:需要恢復的表空間集合
Auxiliary set:輔助完成需要的集合
Auxiliary destination --輔助實例目錄
操作:
1、Backup database;
2、Select to_char(sysdate,’yyyy-mm-dd hh24:mi:ss’) from dual;
3、Drop table name;
4、-檢查表空間是否self-contain(是否獨立是否和其他表空間關聯)

5、--check lost object --檢查是否有丟失數據

6、還原表空間到時間點

Users是永久表空間,不能刪除,需要換一個表空間進行實驗
作業:表空間、表的時間點的恢復
--表空間的時間點恢復
create tablespace cytbs datafile '/u01/app/oracle/oradata/prod/cytbs01.dbf' size 10m;
backup database;
create table hr.regionscp tablespace cytbs as select * from hr.regions;
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-10-19 15:45:27
drop table hr.regionscp;
1. self-contain
exec DBMS_TTS.TRANSPORT_SET_CHECK ('CYTBS');
SELECT * FROM TRANSPORT_SET_VIOLATIONS;
2. check lost object
select owner, name,to_char(creation_time,'yyyy-mm-dd hh24:mi:ss') create_time
from ts_pitr_objects_to_be_dropped
where tablespace_name = 'CYTBS' and
creation_time > to_date('2019-10-19 15:45:27','yyyy-mm-dd hh24:mi:ss');
3. 還原表空間
mkdir /home/oracle/aux
rman target /
RECOVER TABLESPACE cytbs
UNTIL TIME "to_date('2019-10-19 15:45:27','yyyy-mm-dd hh24:mi:ss')"
AUXILIARY DESTINATION '/home/oracle/aux';
4、alter tablespace cytbs online;
--表的時間點恢復
Backup database
1、創建表
2、查找時間點
3、drop table (truncate 表不能還原(提示表存在,可以再次把表刪除再還原))
4、檢查self-contain和check lost object
4、還原表
create table hr.regionscp tablespace cytbs as select * from hr.regions;
SQL> select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;
TO_CHAR(SYSDATE,'YY
-------------------
2019-10-19 16:01:16
drop table hr.regionscp;
recover table hr.regionscp
until time "to_date('2019-10-19 16:01:16','yyyy-mm-dd hh24:mi:ss')"
auxiliary destination '/home/oracle/aux';
Transporting data 可傳輸表空間
跨平台功能 版本10.0以上

表空間傳輸操作:
1、查看系統是否支持
2、檢查表空間自包含
3、修改表空間read only
Alter tablespace tabales_name read only;
4、倒源數據

5、轉換數據 (不同系統)
Rman >

注:%U唯一名稱
6、讓生產庫表空間可讀
Alter tablespace tabales_name read write;
7、傳輸源和轉換后的數據文件到新主機
8、源數據放到data_pump_dir 目錄下
Select * from dba_directories
9、新主機導入

Alter tablespace tabales_name read write;
exclude=statistics ---不導入統計信息
content=metadata_only --只導出源數據
作業:傳輸表空間
1、select * from v$transportable_platform;
execute dbms_tts.transport_set_check('CYTBS',true);
select * from transport_set_violations;
2、Alter tablespace CYTBS read only;
3、expdp system/oracle dumpfile=cytbs.tbs.metadata transport_tablespaces=CYTBS
******************************************************************************
Dump file set for SYSTEM.SYS_EXPORT_TRANSPORTABLE_01 is:
/u01/app/oracle/admin/prod/dpdump/cytbs.tbs.metadata
******************************************************************************
Datafiles required for transportable tablespace CYTBS:
/u01/app/oracle/oradata/prod/cytbs01.dbf
新主機
4、select * from dba_directories where directory_name='DATA_PUMP_DIR';
5、新主機導入
impdp system/123qweQWE dumpfile=cytbs.tbs.metadata transport_datafiles='/u01/app/oracle/oradata/orcl/cytbs01.dbf';
Alter tablespace CYTBS read write;
Rman troubleshooting rman告警
Debuge 選項
Rman 三個階段Read、 process、 write 讀、 處理、 寫
Backup validate database 只進行讀 處理 不寫 (測試速度)
V$backup_async_io v$backup_sync_io --異步io 同步io視圖
V$session_longops --時間很長的語句

注 :rman 看進度
Rman 調優
BEST PRACTISE
1. whole ---> partial --部分備份
2. increamtal backups (block change tracking) --增量備份
3. multile channel( parallel) --多通道 並行
RMAN>run{
ALLOCATE CHANNEL c1 DEVICE TYPE disk;
ALLOCATE CHANNEL c2 DEVICE TYPE disk;
ALLOCATE CHANNEL c3 DEVICE TYPE disk;
backup database;
SQL 'ALTER SYSTEM ARCHIVE LOG CURRENT';
}
-----手工指定通道
BACKUP
INCREMENTAL LEVEL = 0
(DATAFILE 1,4,5 CHANNEL c1)
(DATAFILE 2,3,9 CHANNEL c2)
(DATAFILE 6,7,8 CHANNEL c3);
---
4. Compress --壓縮
5. section size + parallel --大文件分塊+並行
6.
a.CONFIGURE BACKUP OPTIMIZATION ON --rman自動優化參數(備了的就不備份了)
b.backup archivelog delete input;
c.backup archivelog;
delete archivelog until time "sysdate-1/24" --刪除一小時以前的所有歸檔
7. large pool --配置大池
8. minnus backup or restore --最小備份恢復
Use block media recovery for isolated block corruptions.
十、閃回

准備配置:
Flashback privileges
Show parameter undo;
undo_management string AUTO
--顯示當前數據庫的scn號

1、閃回查詢

2、閃回版本查詢(兩點之間的變化)

作業:閃回查詢
create table a(id int);
insert into a values(1);
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3615339
update a set id=10 where id=1;
SQL> select current_scn from v$database;
CURRENT_SCN
-----------
3615366
--閃回查詢
select * from a as of scn 3615339 where id=1;
--閃回版本查詢
select versions_xid,VERSIONS_STARTSCN,VERSIONS_ENDSCN,id from a versions between scn 3615339
and 3615366;
--閃回查詢 做了ddl語句就不能生效
發生段的收縮 不能查詢
3、閃回事務查詢
(分析作用)(里面有undo sql)
Flashback_transaction_query --閃回事務查詢表
select * from FLASHBACK_TRANSACTION_QUERY where table_name='REGIONS';
需要開附加日志
Alter database Add supplemental log data;
閃回事務
select * from FLASHBACK_TRANSACTION_QUERY where table_name='A';
Dbms_falshback.transaction_backout (調用閃回存儲方法)
declare
xids sys.xid_array;
begin
xids := sys.xid_array('04000D00A9050000');
dbms_flashback.transaction_backout(1,xids,options=>dbms_flashback.nocascade);
end;
/
注意:閃回事務不自帶提交
Write-after-writer 多個事務更新,閃回前一個的時候
Primary key depend 多個事務delet-insert,主鍵沖突 (對delete事務閃回)
Foreign key depend 多個事務多張表 表一insert 表二引用表一的insert數據(對表一的事務閃回)
Cascade(級聯)、nocascade、nocascade_force、nonconflict_only(閃回不沖突的)
作業:閃回事務
--打開閃回事務日志(日志會變大)
Alter database Add supplemental log data;
--查詢閃回信息記錄表
select * from FLASHBACK_TRANSACTION_QUERY where table_name='A';
--輸入xid閃回事務
declare
xids sys.xid_array;
begin
xids := sys.xid_array('0200180082100000');
dbms_flashback.transaction_backout(1,xids,options=>dbms_flashback.nocascade);
end;
/
--進行事務提交
Commit;
4、閃回表
In-place
相關權限
Alter table table_name enable row movement; --開啟表移動

select current_scn from v$database;
update hr.regions set region_name='sc';
commit;
flashback table hr.regions to scn 2476463;
自帶提交
注意:統計信息不能閃回
操作時要鎖表
系統表不能閃回
Ddl 不能跨越
產生undo redo data
5、閃回drop
Recycle bin(放在回收站)(默認開啟)show parameter recycle
Show recyclebin;
Flashback table emjployes to before drop;
flashback table regionscp to before drop rename to oldregionscp;
flashback table "BIN$lT6QVYSWd+DgU/r+Gawd/A==$0" to before drop;
Show recyclebin;--顯示回收站信息
Dba_free_space ---數據庫空間
Purge table regionscp; --清理回收站最老的數據
System\sys 用戶操作沒有回收站
6、閃回數據歸檔
Temporal history(11g)
把某個表的操作歸檔到表中(閃回歸檔)
1、建表空間
2、創建閃回歸檔
3、表關聯數據歸檔
create tablespace fdatbs datafile '/u01/app/oracle/oradata/orcl/fdatbs01.dbf' size 10m;
CREATE FLASHBACK ARCHIVE fda1 TABLESPACE fdatbs QUOTA 10M RETENTION 1 YEAR;
ALTER TABLE HR.REGIONS FLASHBACK ARCHIVE fda1;

表做了閃回歸檔,就不能刪除了
Temporal validity and history(12c)--數據自動歸檔
作業:閃回表、閃回drop、配置某表的閃回歸檔
--閃回表
create table hr.cs(id int,name varchar2(20));
insert into hr.cs values (1,'zhangs');
SQL> select current_scn from v$database; --查詢scn號
CURRENT_SCN
-----------
3736392
insert into hr.cs values (2,'zhangs');
Commit;
Alter table hr.cs enable row movement; --配置行移動
flashback table hr.cs to scn 3736392; --閃回表到某個點
--閃回drop
drop table hr.cs;
Show recyclebin; --查看回收站
Flashback table hr.cs to before drop; --閃回表
--配置某表的閃回歸檔
create tablespace fdatbs datafile '/u01/app/oracle/oradata/prod/fdatbs01.dbf' size 10m; --創建表空間
CREATE FLASHBACK ARCHIVE fda1 TABLESPACE fdatbs QUOTA 10M RETENTION 1 YEAR; --創建閃回歸檔
ALTER TABLE HR.cs FLASHBACK ARCHIVE fda1; --表關聯數據歸檔
ALTER TABLE HR.cs no FLASHBACK ARCHIVE ; --撤銷關聯
7、閃回數據庫
邏輯閃回 rman物理還原

前提: 開閃回區
開歸檔
開閃回數據庫
Shutdown immediate;
Starup mount;
Show parameter recover;
archive log list;
Alter database flashback on;
Alter database open;
使用:
select current_scn from v$database;
Drop user hr cascade; --刪除用戶及表
Startup mount force;
Flashback database to scn 3750985;
Alter database open read only; --只讀模式后可以多次進行閃回
Alter database open resetlogs;
--查詢最早閃回時間

Guaranteed restore points --強制還原點

十一、managing spaces
Block space management
(ASMM)

(pctfree 作用) Row chain/row migrate 行連接(insert時) 行遷移(update)
Select chain_cnt,avg_row_len from user_tables where table_name='hr.cs';
analyze table hr.cs compute statistics;--表分析
alter table hr.cs move ; --表移動可以消除塊和指針分離的情況,提高查詢速度 (表遷移索引會失效)
Segments 段
Understanding deferred segment creation --延遲段分配
Show paramater defer; --參數
下面三類不能延遲段分配:
Iot表 (索引表)
分區表
字典類型表空間的表
Alter index test_1 rebuild online;--在線建索引,不加online會鎖表
Unusable 不分配表空間,回收空間
Table compression--表壓縮
Direct-path insert operations --基本壓縮(一次性導入,其他在次insert沒什么用)(直接路徑加載)
-默認-pctree=0 --內容不經常變得表

Advanced row compression for dml dperations --高級壓縮,所有的操作都可以(寫數據要慢點、很耗cpu)
(12c語法)
高級壓縮使用情況:
堆表、分區表、nested table
不能用情況:
多余255列的表、基本壓縮不能刪除列,高級壓縮可以刪除列
Select * from dba_segments;--段表
作業表壓縮:基本壓縮、高級壓縮
create table big as select * from dba_objects;
insert into big select * from big;
commit;
create table nocompresst as select * from big;
create table compresst COMPRESS BASIC as select * from big;
create table compresst_oltp ROW STORE COMPRESS ADVANCED as select * from big where 1=2;
insert into compresst_oltp select * from big;
commit;
--查看
select segment_name,bytes/1024/1024 from dba_segments where segment_name in ('NOCOMPRESST','COMPRESST','COMPRESST_OLTP');
Tablespace monitoring --表空間監控
Shrinking segments
--收縮表空間
操作(不能對sys表空間的表進行操作)
Alter table table_name enable row movement;--行移動
Alter table table_name shrink space compact; --移數據
Alter table bable_name shrink space; --移水位線(鎖表)
Rowid 變動 索引失效
--shrinking
自動維護索引
不會觸發 觸發器
節省空間
Iot表 建議重修rebuit二級索引
Assm segments 自動表空間管理
段顧問(只能用在自動段空間管理的表空間)
自動跑
手動運行段顧問
--分析表是否有空的高水位線
variable id number;
begin
declare
name varchar2(100);
descr varchar2(500);
obj_id number;
begin
name:='advisor_cy test3';
descr:='Segment Advisor Example';
dbms_advisor.create_task (
advisor_name => 'Segment Advisor',
task_id => :id,
task_name => name,
task_desc => descr);
dbms_advisor.create_object (
task_name => name,
object_type => 'TABLE',
attr1 => 'HR',
attr2 => 'BIGT',
attr3 => NULL,
attr4 => NULL,
attr5 => NULL,
object_id => obj_id);
dbms_advisor.set_task_parameter(
task_name => name,
parameter => 'recommend_all',
value => 'TRUE');
dbms_advisor.execute_task(name);
end;
end;
/
tablespace-based:
object_type:TABLESPACE
attr1: <tablespace-name>
attr2: NULL
----查看分析結果
col task_name format a10
col segname format a10
col partition format a10
col type format a10
col message format a30
select af.task_name, ao.attr2 segname, ao.attr3 partition, ao.type, af.message
from dba_advisor_findings af, dba_advisor_objects ao
where ao.task_id = af.task_id
and ao.object_id = af.object_id
and lower(af.message) like '%shrink%';
作業:創建一個大表,刪除數據 分析是否有空高水位線,進行shrink
create table hr.big as select * from dba_objects;
insert into hr.big select * from hr.big;
Commit;
Delete hr.big;
---進行分析
variable id number;
begin
declare
name varchar2(100);
descr varchar2(500);
obj_id number;
begin
name:='advisor_cy test3';
descr:='Segment Advisor Example';
dbms_advisor.create_task (
advisor_name => 'Segment Advisor',
task_id => :id,
task_name => name,
task_desc => descr);
dbms_advisor.create_object (
task_name => name,
object_type => 'TABLE',
attr1 => 'HR',
attr2 => 'BIG',
attr3 => NULL,
attr4 => NULL,
attr5 => NULL,
object_id => obj_id);
dbms_advisor.set_task_parameter(
task_name => name,
parameter => 'recommend_all',
value => 'TRUE');
dbms_advisor.execute_task(name);
end;
end;
/
--查看結果
col task_name format a10
col segname format a10
col partition format a10
col type format a10
col message format a30
select af.task_name, ao.attr2 segname, ao.attr3 partition, ao.type, af.message
from dba_advisor_findings af, dba_advisor_objects ao
where ao.task_id = af.task_id
and ao.object_id = af.object_id
and lower(af.message) like '%shrink%';
--進行shrink
Alter table hr.big enable row movement;--行移動
Alter table hr.big shrink space compact; --移數據
Alter table hr.big shrink space; --移水位線(鎖表)
Managing Resumable space allocation
--空間不夠暫停jobs 可喚醒表空間管理
操作
Show parameter resum;
Alter session enable resumable timeout 3600;
Select * from dba_resumable; --查看等待多少時間

使用喚醒表空間的情況
The following operations are resumable:
Queries: SELECT statements that run out of temporary
space (for sort areas)
DML: INSERT,
INSERT UPDATE,
UPDATE and DELETE statements
The following DDL statements:
CREATE TABLE ... AS SELECT
CREATE INDEX
ALTER INDEX ... REBUILD
ALTER TABLE ... MOVE PARTITION
ALTER TABLE ... SPLIT PARTITION
ALTER INDEX ... REBUILD PARTITION
ALTER INDEX ... SPLIT PARTITION
CREATE MATERIALIZED VIEW
Automat tasks --自動任務
Schedule(時間) ---job ---program(任務塊)
SELECT t.* FROM dba_jobs t; --查看所有的job
--創建job任務
1. create program
BEGIN
DBMS_SCHEDULER.CREATE_PROGRAM(
program_name =>'my_pro1',
program_action =>'begin
insert into hr.job_test1 values(sysdate);
commit;
end;',
program_type =>'PLSQL_BLOCK',
number_of_arguments =>0,
comments =>'insert sysdate into table',
enabled =>TRUE);
END;
/
2. create schedule
BEGIN
dbms_scheduler.create_schedule(
repeat_interval => 'FREQ=SECONDLY;INTERVAL=30',
start_date => sysdate,
comments => 'Start Every 30 seconds',
schedule_name => 'my_sch1');
END;
/
3. create job
BEGIN
dbms_scheduler.create_job(
job_name => 'my_job1',
program_name=> 'my_pro1',
schedule_name => 'my_sch1',
comments=> 'insert sysdate into table',
enabled=> TRUE);
END;
/
Job chain -很多job 鏈接在一起
Resource manager --資源管理器
多個系統使用同一個數據庫
作用對象 資源使用者組
資源計划
Using advanced scheduler features

Thresholds
Memory manager
Amm-->asmm-->手動管理方式
--內存管理
Amm (automaitc memory managerment) --自動管理所有內存
Show parameter memory
Memory_max_target --最大限制,不給就以下面為准
Memory_target --以這個參數為准(啟用了amm)(60-80%)
Asmm (automatic shared memory management) --自動管理sga內存
Memory_target = 0
Show parameter sga --開啟asmm
Sga_max_size
Sga_target ---設置memory的80%

Log buffer --修改后要重啟實例(一般不改)
Pga_aggregate_target --pga參數(沒什么用)
-------查看內存管理
先看memory (amm)
再看sga (asmm)
----如果memory、sga 都設置了值 sga設置的值為最小值
Amm-->asmm-->手動管理方式
重置內存參數,修改spfile
Huge page --開大頁(2M)
設置
關閉amm(memory)
Sga_max_size
1、算頁 Sga_max_size/2 + 100
2、打開限制
More /etc/security/limits.conf
Oracle soft memlock -1
Oracle hard memlock -1
3、設置參數
More /etc/sysctl.conf
vm.nr_hugepages = ‘算出的頁大小’
Sysctl -p (配置大頁 很慢) --建議重啟主機
查看大頁
grep -i huge /proc/meminfo
Ipcs
Rac: off transparent hugepage --rac 關閉透明大頁
作業:開啟huge page
Show parameter target
--關閉amm
Alter system set memory_target=0;
--計算大頁個數
Sga_max_size/2 + 100 = 260
--打開限制,添加參數
# vi /etc/security/limits.conf
oracle soft memlock -1
oracle hard memlock -1
--設置參數,添加配置
# tail -n 1 /etc/sysctl.conf
vm.nr_hugepages = 260 [sysctl -a --查找參數]
--reboot host and review
Install grid
優點:
1、進程重啟
2、資源放asm上
Oracle restart
Install db software
Dbca
Install grid software
Register to cluster software
1、建目錄
mkdir -p /u01/app/grid/12.1 /u01/app/grid_base
2、解壓
3、Root
xhost +
Echo $DISPLAY
Su - oracle
Export DISPLAY=:0
4、安裝
執行root命令時注意。
5、環境變量
6、注冊
加數據庫、加監聽(先關監聽)
srvctl add database -db prod -oraclehome /u01/app/oracle/product/12.1.0/dbhome_1
Lsnrctl stop
srvctl add listener
7、集群軟件管理數據庫
srvctl start database -d orcl --啟動數據庫
srvctl status database -d orcl
crsctl stat res -t
select open_mode,status from v$database,v$instance;
Asm
Raw(udev)
http://www.xuwang.online/index.php/archives/124/
Asmlib
asmca
冗余級別
High (3份)
Normal (2份)
Externam(none) (1份)
Rebalance(power) --加磁盤到組 oracle會自動平衡數據
刪除盤 自動遷移數據到其他盤
Failgroup 失敗組(不同磁盤分到同一個組)
Grid 實例
Sqlplus / as sysasm
V$asm_disk \ V$asm_diskgroup
Show parameter asm_dis; --默認查找磁盤路徑
--統計信息收集(系統定時晚上收集)(即字典對表信息的顯示 如表多少行)
--手動收集統計信息(查詢慢可以進行統計信息收集)
http://www.xuwang.online/index.php/archives/146/
作業:手動收集統計信息
select * from DBA_AUTOTASK_CLIENT;
select owner,table_name,num_rows from dba_tables where
table_name='REGIONS';
select count(*) from hr.regions;
insert into hr.regions values(13,'1');
commit;
--查看統計信息沒有變
select owner,table_name,num_rows from dba_tables where
table_name='REGIONS';
--收集表統計信息
exec dbms_stats.gather_table_stats(ownname => 'HR',tabname => 'EMPLOYEES',estimate_percent => 10,method_opt=> 'for all indexed columns') ;
--再次查看統計信息變化了
select owner,table_name,num_rows from dba_tables where
table_name='REGIONS';
Awr
Mmon-->60minutes -->awr
--查看快照
Select * from Dba_hist_snapshot
--拍攝快照(默認快照8天)

--基線(一段時間的快照集合)
生成awr 報告
--配置起始快照位置
@?/rdbms/admin/awrrpt.sql
Addm
--monitor
--識別和修復不可用的對象
Cdb pdb
http://www.xuwang.online/index.php/archives/46/

