第一課?
第5章 觸發器介紹
創建數據庫
創建數據字典
catproc.sql? 用于創建oracle的內置過程
ddl觸發器舉例:
create or replace trigger log_logon
? after logon on database
? when (user='SYS' OR user like 'OPS$%')
BEGIN
? insert into sys.event_log values('Logon '|| user ||' at '||to_char(sysdate,'yyyy-mm-dd HH24:mi:ss'));
? commit;
end;
??
$ORACLE_HOME\rdbms\admin下的一些常用腳本說明
--存儲了oracle系統表的創建語句及注釋說明,例如bootstrap$、props$、tab$、user$等等
D:\oracle\ora92\rdbms\admin\sql.bsq
--創建數據字典視圖
D:\oracle\ora92\rdbms\admin\catalog.sql
--創建審計用的數據字典視圖
D:\oracle\ora92\rdbms\admin\cataudit.sql
--創建關于locks的視圖,包括DBA_KGLLOCK、DBA_LOCKS、DBA_LOCK_INTERNAL、DBA_DML_LOCKS、DBA_DDL_LOCKS、DBA_WAITERS、DBA_BLOCKERS
D:\oracle\ora92\rdbms\admin\catblock.sql
--建立EXP和IMP所需的數據字典視圖
D:\oracle\ora92\rdbms\admin\catexp.sql
--解決不同版本EXP問題
D:\oracle\ora92\rdbms\admin\catexp7.sql
--建立PL/SQL功能的使用環境
D:\oracle\ora92\rdbms\admin\catproc.sql
--創建關于job的視圖
D:\oracle\ora92\rdbms\admin\catjobq.sql
http://www.wzsky.net/html/Program/DataBase/101416.html
? Oracle 10g手工創建數據庫個人經驗
http://database.51cto.com/art/201002/184885.htm
???????? 詳解Oracle手動創建數據庫幾大步驟
第6章 控制文件
控制文件使用:
?1.小的二進制文件
?2.要求書庫啟動到mountzhuangtai
?3.連接到一個實例
?4.控制文件鏡像
?5.控制文件恢復
控制文件的內容:
?數據庫的名字和標識符?? 環境變量--》初始化參數文件--》啟動實例--》找到控制文件--》打開數據庫
??????? 數據庫創建日期
?數據文件、redo log的位置
??????? 表空間名稱
??????? log 歷史信息
?備份恢復信息
?當前的序列號(日志)
?checkpoint 信息
Multiplexing the Control File
?control_file= 指定控制文件的位置????? 建議三個控制文件不要放在同一個盤符中
控制文件的原則
?多個控制文件的拷貝
?control_files
?備份控制文件
?備份控制大小
?重用
控制文件的信息:
?V$controlfile
?v$controlfile_record_section
?v$datafile
?v$tempfile
?v$tablespace
?v$log
?other$
?v$是動態視圖,數據庫在mount狀態時就可以使用
備份控制文件:
?shutdown;??????? 關閉數據庫
?復制任意一組(個)控制文件到另一個目錄,
?修改初始化參數文件init.ora,在control_files中添加第4個控制文件
?startup force;?? 重啟數據庫?
?
第7章 redo log files 重做日志文件
使用redo log files?
?redo log Groups and members
?dml(iud)語句都會被記錄在redo log files中
?log switch? 指在redo log Groups中間切換
?archive log list;
?members 即組內的成員,組內的成員互為鏡像
oracle 架構
?dbwr --datafiles
?lgwr-- redo log files
??????? arch -- archived log files
?ckpt -- control files 和 data files
??ckpt的發生時機 log switch
非歸檔方式
?數據庫恢復時備份文件(點)至當前數據庫(點)之間的內容會丟失
歸檔模式
?通過備份文件恢復到備份點,在通過歸檔的redo log 恢復到日志切換點,在通過在線日志文件恢復到數據庫的崩潰點
archive log list; 當發生日志切換時,舊的redolog文件將被覆寫,所以在非歸檔模式下舊的redolog文件的內容將丟失
v$database;
v$instance;
V$thread;
v$log;
v$logfile;
alter system switch logfile;? 進行日志切換的命令
alter database add logfile ('disk3/log3a.rdo','disk4/log3b.rdo') size 1M;增加日志文件組
?新加的組處于unuser狀態,進行日志切換時,改組被使用
alter database add logfile member 'disk4/log1b.rdo' to group 1,'disk4/log2b.rdo' to group 2;? 給組增加成員
?新加的日志文件處于invalid 狀態,當發生日志切換時(改組成為當前組),該文件會被使用
alter database rename file '原始的redolog文件' to '新的redolog文件'; 注意:當前有效的日志組不能夠更名。
alter database drop logfile group 3;刪除組? 注意:當前有效的日志組不能夠刪除
alter database drop logfile member 'disk4/log1b.rdo';? 刪除成員? 注意:當前有效的日志組不能夠刪除成員
alter database clear logfile 'disk4/log1b.rdo';? 清除日志文件
?
log_checkpoint_interval??? 多少bolck,設一次checkpoint?
log_checkpoint_timeout????? 多長時間設一次checkpoint
fast_start_io_target??????? 規定了下一次數據庫(崩潰后)啟動的時間
怎樣重命名、重定位在線的redo log files
?shutdown;
?拷貝日志文件到其他路徑
?startup mount ; 例程已經啟動
?alter database rename file '原始的redolog文件' to '新的redolog文件';?? 注意:當前有效的日志組不能夠更名。
?alter database open ;? 打開數據庫
redo log 配置
?組要求一樣大,
?組中至少(應該有兩個成員)
?組中成員要求分布在不同的磁盤空間
logminer
?創建目錄 utl_fife_dir --定義一個目錄 如:'C:\temp
?創建文件字典
?execute dbms_logmnr_d.build('dict.ora','C:\temp');//注意:區分大小寫
?select * from v$logfile;
?添加日志文件
?execute dbms_logmnr.add_logfile('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO01.LOG',dbms_logmnr.new);
?execute dbms_logmnr.add_logfile('C:\ORACLE\PRODUCT\10.2.0\ORADATA\ORACLE\REDO02.LOG',dbms_logmnr.addfile);
?分析
?execute dbms_logmnr.start_logmnr(dictfilename=>'C:\temp\dict.ora');
?查看內容:
?select * from v$logmnr_contents
?SQL> desc v$logmnr_contents;
?Name Type Nullable Default Comments
?---- ---- -------- ------- --------
?關閉
?execute dbms_logmnr.end_logmnr;
?試圖:
?v$logmnr_dictionary
?v$logmnr_parameters
?v$logmnr_contents
第三課
第8章 表空間和數據文件
?數據庫邏輯結構
?臨時段的問題
?創建表空間及調整表空間的大小及狀態改變
?臨時段空間的分配
?改變表空間的儲存設置及重定位表空間
oracle存儲體系
?邏輯層次database-->tablespace-->segment-->extent-->oracle block
?物理層次?????????? ??datafile-->OS block
?含義:一個數據庫(實例)包含多個表空間,...包含多個segment(segment是指可增長的對象,如:表、索引),...包含多個擴展,...包含多個數據庫塊,
?????? 一個表空間包含多個數據文件,一個數據文件包含多個擴展,一個數據文件包含多個操作系統塊,一個數據庫塊包含多個操作系統塊。
?????? segment與datafile之間是多對多的關系,即一張表的數據可以同時存放在多個數據文件上并且一個數據文件可以存放多張表的數據,所以需要抽象出表空間的概念作為segment與datafile的上級層次。
?????? 為什么不將segment與datafile做成一對一呢?是因為操作系統對自身的文件大小都是有限制的,不同的操作系統數據文件的大小限制也不同,如:2G、4G、32G等,
?????? 如果segment增加過大超過操作系統的文件限制,將導致溢出。extent是指表超出空間后,每次擴展的空間大小。
系統表空間和非系統表空間
系統表空間:由數據庫創建、包含數據字典和系統回滾段。
非系統表空間:由管理員創建、由用戶申請、用于存放用戶數據。
8.1創建表空間
create tablespace app_data
datafile 'disk4/app_data_01.dbf' size 100M,
???????????????? 'disk5/app_data_02.dbf' size 100M
minimun extent 500k????????????????????????? 表空間extent大小的設置(最小化的extent)
default storage ( initial 500k???????????????????????? 表的默認存貯設置,初始化500k(一個extent)
next 500k?????????????????????????每次擴展的空間大小(即一個extent的大?。?
maxextents 500???????????????? 表最大的extent數量
pctincrease 0);???????????????? 空間擴展指數,現已經不使用。
本地管理表空間和數據字典管理的表空間
數據字典管理的表空間:表空間的擴展記錄在數據字典表中,為系統默認設置。
本地管理表空間:通過位圖管理表空間的擴展,用位圖的值記錄塊是否可用。注意:10個數據庫的表空間默認是本地管理。
8.2創建本地管理表空間
create tablespace user_data
datafile 'disk2/user_data_01.dbf' size 100M
extent management local??????????????? 本地管理表空間?????
uniform size 10m;?????????????????????????? 統一的大小(extent大小統一)
優點:不產生遞歸的空間管理(不寫數據字典,不占用額外空間);
?????????不產生數據字典表的爭用(使用位圖,減輕了數據字典的訪問量);不產生回滾段(不寫系統回滾段);不需要聚合(即extent大小一致,不需要合并)。
?8.3臨時表空間
臨時表空間用于排序,使用本地管理以減少碎片。uniform size=排序區的n倍(sort_area_size * n)
create temporary tablespace temp
tempfile 'disk2/temp_01.dbf' size 500m
extent management local
uniform size 10M;
數據庫關閉臨時表空間被刪除,當有排序需求是在創建臨時表空間。
速度比較慢,現已不使用。
擴大排序區不能有效提高系統速度。
8.4 修改存貯設置
alter tablespace app_data minimum extent 2M;
alter tablespace app_data default storage (initial 2M next 2m maxextents 1000?); 修改不影響已經創建的表,在下次申請擴展時才受影響。
8.5表空間的狀態
表空間有 在線、離線兩種狀態。
離線狀態時表空間無效,其下數據不能被訪問。
系統表空間、帶有活動回滾段表空間不能被離線。
alter tablespace APTS online;
alter tablespace APTS offline;
8.6表空間只讀
表空間只讀即:不允許用戶修改,可以drop表空間下的對象。
alter tablespace APTS read only;
alter tablespace APTS rename datafile??
表空間只讀是表空間必須在線;不能包含有活動回滾段;不能轉入在線備份。
8.7 刪除表空間
表空間從數據字典中刪除,表空間下的對象從數據字典中刪除,操作系統文件不刪除。
drop tablespace app_data including contents;
8.8 重新設置表空間大小
數據文件可以自動擴展(缺點:導致系統速度慢);可以手工擴展,還可以增加數據文件。
alter tablespace app_data add datafile 'disk6/app_data_04.dbf' size 200M autoextend on next 10m maxsize 500m;
alter tablespace datafile? 'disk5/app_data_02.dbf' resize 200m;
8.9移動數據文件
表空間下的限制:表空間必須離線(offline);目標數據文件必須存在。離線后可以拷貝數據文件到新的磁盤空間并作為目標數據文件。
alter tablespace app_data rename datafile 'disk4/app_data_01.dbf' to 'disk5/app_data_01.dbf';
數據庫下的限制:數據庫啟動到mounted狀態;拷貝數據庫控制文件到新的目錄作為存在的目標文件。
alter tablespace rename file '/disk1/system_01.dbf' to '/disk2/system_01.dbf';
8.10 表空間信息(視圖)
?????? 靜態試圖:dba_tablesoaces,dba_data_files,dba_temp_files
?????? 動態視圖:v$tablespace,v$datafile,v$tempfile
8.11表空間管理原則
?????? 使用多個表空間;
?????? 為表空間指定默認的存貯參數(存貯子句);
?????? 用戶配額(quotas),限制用戶對空間的占用;
???????數據文件使用全路徑;
?????? 使用最小的extent數;
???????使用本地管理的表空間(效率高);
?????? 表空間下最多1023個數據文件。
8.12 總結
??????? 可以收縮表空間的大小。
????????建議使用本地管理的表空間,不推薦使用臨時表空間。
??????? 用位圖索引管理extent。位圖索引只能針對列的取值固定且數量較少時使用(如列是性別,取值只有男、女兩種);位圖索引修改麻煩,查詢的速度很快(位運算效率高)。
第四課
第9章 Storage Structure and Relationships? 存貯結構和關系
描述了數據庫的邏輯結構
segment的類型和用法
block空間的使用
數據字典中存貯結構的視圖信息
segment的分配原則(segment與tablespace的存放關系)
9.1 segment(可增長對象)的類型
segment有:table,table partition(分區表的每個分區),cluster(分為索引cluster和哈希cluster),index,index-organized table(索引組織的表,增刪改慢,查詢快,不適合大表),index partition(分區索引的每個分區),rollback segment(回滾段),temporary segment(臨時段),LOB segment (大對象段),LOB index(大對象索引),Nested table(嵌套表),Bootstrap segment(系統啟動段)。
主要的是:table,index,rollback segment
9.2存貯子句(extent的使用規格)定義(使用)順序
segment-->tablespace-->oracle default?? (默認 5個db block,目前oracle的block為8k)
??????建議在tablespace中統一定義。
9.3 extent Allocation and Deallocation 擴展的分配和回收
??????擴展extent的分配:在segment的創建(created)、擴展(extended)、改變(altered)時被分配。
??????擴展extent的回收:在segment的注銷(dropped)、改變(altered)、截斷(Truncated,重新初始化,只保留一個extent)、回滾段的自動收縮(rollback segment Automatically resized)時被回收。
9.4 extent的使用和空置
data file包括:file header,used extent,free extent
小的extent不會自己合并。
9.5 database block (dbblock 數據塊)概念
????? 最小的i/o單元;
????? 是os block(操作系統塊)的倍數;
????? 通過參數 DB_BLOCK_SIZE 進行設置(目前dbblock設置為8k);
????? 在數據庫創建時就已經起效(如果要調整dbblock的大小必須要重新創建數據庫實例)。
9.6 dbblock組成
??????組成:header(頭部),free space(空閑空間,用于update操作),data(數據)。
????? 參數:initrans(初始化開辟的事務槽),maxtrans(最大的事務槽限制),pctfree(用來定義空閑空間的大?。琾ctused(用來定義數據空間的最大使用率)。
??????????????事務需要占用一個事務槽,事務槽就是在header頭部對事物的管理,事務槽越多,可并行訪問的事務就越多,就有可能產生沖突(死鎖)。事務槽要占用header頭部的空間。
pctfree? =20%? 空余空間定義
pctused? =40%? 使用空間底線
對不足pctused的dbblock則認為是空閑的塊,空閑塊則被連接到freelist鏈表中;共下次insert使用;對已滿足pctused的dbblock則認為是該塊已滿,不可繼續插入。
pctfree定義的空閑用于update操作,對于update操作比較多的表pctfree應該定義大一些,負責會導致在update操作時發現已沒有空閑空間,將在更新行的為產生一個指針,指向其他的dbblock進行更新操作,即一行數據遷移至多個dbblock塊,影響系統效率。
9.7 數據字典中的相關視圖
??????????? dba_tablespaces (tablespace)
????? dba_segments???? (segment)???? dba_data_files (data_file)
????? dba_extents??(used extents) dba_free_space (free_extents)
?????? (從上到下都是一對多的關系)
9.8 表空間的碎片問題
????? system? 數據字典????????????????????????????? ? 碎片率 0
??????Tools???? Applications?(用于oracle程序)非常低
?????? Data?????數據段 (用于業務數據)?????????? 低
???????Index??? 索引段?(用于業務數據索引)?????低
?????? Rbs?????? 回滾段?(用于事務尚未提交)?????高
?????? temp???? 臨時段(用于排序)?????????????????非常高
9.10 總結
?????? extent,dbblock的存貯。
第5課???
第10章 Managing Rollback Segments 回滾段的管理
?????? 創建、維護回滾段;
????????計劃回滾段的大小和數量;
??????? 計算數據字典視圖;
??????? 排除回滾段對大小數據dml操作量的錯誤。
10.1 回滾段的作用
????? 在進行dml操作時需要將舊的信息(old image)寫到回滾段中。
????? 讀一致性(Read consistency):A執行update操作,尚未commit之前,A可以看到new image,其余人員只能看到old image,old image 存貯在回滾段中。
????? 事務的回滾(Transaction rollback):A執行update操作,尚未commit之前,有進行rollback操作,old image 從rollback segment中更新到物理表中。
????? 事務的恢復(Transaction recovery):數據庫崩潰后,再次啟動時系統進程先做前滾操作,再數據庫open,最后做回滾操作。
10.2 回滾段的類型
????? 系統回滾段:用于system tablespace下的對象的dml操作。
????? 非系統回滾段:由系統管理員創建,供所有用戶使用。
??????非系統回滾段分為:私有回滾段(單個實例使用)和公有回滾段(所有實例使用)。
注意 :41分鐘 從第10章跳到了第12章
第12章 索引的管理 managing indexes
??? 回滾段和索引由系統控制使用。
??? 索引的類型;
??? B-tree(普通索引)和bitmap(位圖索引);
??? 重組索引(Reorganize indexes);
??? 刪除索引 drop index
??? 數據字典中索引相關的視圖
12.1 索引分類
??? 邏輯分類
?????????????? 單列索引和組合索引
???????????????唯一索引和非唯一索引
???????????????基于函數的索引:可以對列的運算建索引
??? 物理分類
?????????????? 分區索引和非分區索引
??????????????? B-tree(二叉樹)索引:葉子節點包括:索引頭、列字段、列的值、rowid。
????????????????Normal(正常索引)和reverse key(反鍵索引):將索引字段的值反寫(左右對調)后建b-tree索引,目的是擴大索引列的取值范圍,構造大的樹形結構,以便于后期插入操作。
??????????????? Bitmap(位圖)索引:根據索引列的取值建立位圖,每種取值都需要建立位圖索引,對于dml操作很困難,對查詢操作性能很好。
12.2 B-tree 和Bitmap索引比較
???????Bitmap適用于列的取值少,dml操作少,select操作多(與、或運算速度快),多用于數據倉庫。
?????? B-tree適用于列的取值多,dml操作多,select操作少,多用于OLTP。
第6課
13章 Constraint? 約束
??? 13.1約束的類型
?????????? not null :
???????????unique:
?????????? primary key:
?????????? foreign key:
?????????? check:
??????13.2 約束的狀態
???????????? disable
?????????????enable
?????????????validate
?????????????novalidate
disable??????? enable??? 約束(對已有數據)是否啟用
novalidate???? validate? 約束是否檢查已有數據
????? 13.3 約束的延時
???????????? dml statement-->check nondeferred constraints(非延時約束)-->commit-->check deferred constraints(檢查延時約束)
????? 13.4 定義立即約束和延時約束
??????????????需要在語句定義時是否可以延時,在session中設置是否可以延時。
????????????? alter session set constraint[s] = {immediate|deferred|default}
??????13.5 主鍵和唯一鍵
???????13.6 外鍵約束
????????????? Drop 父表 Cascade constraints (刪除父表時需要級聯刪除約束);
??????????????Truncate 父表 時,需要提前使外鍵失效或刪掉外鍵。
??????????????drop 包含父表的表空間?Cascade constraints (刪除包含父表的表空間時需要級聯刪除約束,注意:父子表可以不在同一個表空間,但必須在同一個數據庫。)
????????????? 在對父表進行dml操作時會鎖定子表,為了避免鎖定,可以給外鍵建索引。
??????????????在對子表進行dml操作時需要確保父表的索引在online狀態。
??????? 13.7 表創建的約束定義
create table summit.employee (
id number(7) constraint empoyee_id_pk primary key deferrable --可延時的
???????????????????????? using index storage (initial 100k next 100k) tablespace index,
???? last_name varchar2(25) constraint employee_last_name_nn not null,
???? dept_id number(7))
tablespace data;
??????? 13.8 定義約束的規則
??????????? 將主鍵、唯一鍵的索引放在指定的表空間中;
??????????? 在加載大量數據時使用非唯一的索引,即將將主鍵、唯一鍵的索引定義成延時索引,或者將主鍵、唯一鍵約束刪掉、將主鍵、唯一鍵索引disable或刪掉。
?????????? 自引用外鍵索引在初始化數據加載完成之后定義或啟用,并定義延時的約束檢查。
???????13.9 啟用約束 enable
?????????? enable novalidate條件:不鎖定表;主鍵和唯一鍵必須使用非唯一索引;?對以前的數據不檢查,對以后的數據檢查。
?????????? alter table summit.department enable novalidate constraint dept_pk;?
????????? enable validate條件:鎖定表;可以使用唯一索引、非唯一索引;?對以前的數據檢查(數據必須滿足約束),對以后的數據檢查。
?????????? alter table tt.rightcert enable validate constraint rightcert_certid_pk;?
??????? 13.10 使用exceptions表(例外表)?
??????? alter table...enable validate... 可以加上exceptions子句,將不滿足約束的數據記錄記錄在exception表中,等將數據調整到滿足約束時,在進行alter table...enable validate操作。
??????? 13.11 drop 約束
??????????? alter table summit.employee drop constraint emp_ln_uk;
????????????drop table department cascade constraints;
??????? 13.12 約束的視圖
????????????dba_constraints
??????????? dba_cons_columns
第7課
14章? load data 加載數據
?? export inport
?? direct-load inserts? 直接路徑插入
?? sql * loader
?? 14.1直接路徑插入
exp:
insert /*+APPEND */ into scott.emp nologging
?select * from scott.old_emp;
?nologging表示不寫redo日志,/*+APPEND */是一個提示,提示系統將數據插入在高水點之后(高水點是連續空間,這樣可以提高插入速度)
create table tt1 as select empno,ename ,sal from emp where 1=2;?
alter session enable parallel DML;
insert /*+parallel(scott.emp,2) */ into scott.emp nologging select * from scott.old_emp;? 并行插入,起用2個并行進程
???? 14.2 sql * loader
sql*loader?? 作用:將少量文本型數據加載到數據庫中
?? Conventional Load 普通路徑的加載,轉換為insert,需要commit進行提交,記redo日志,對所有約束有效,可以觸發trigger,使用clustered tables,不鎖定tables。
?? Direct Path Load? 直接路徑的加載,使用data saves技術(直接將數據文件遷移到數據庫的數據文件中),不需要commit進行提交,不記redo日志,只支持所主鍵、唯一鍵和not null約束,不觸發trigger,不能使用clustered tables,鎖定tables。
exp:
sqlldr scott/tiger control=ulcase6.ctl log=ulcase6.log direct=true;? ulcase6.ctl是控制文件,需要手工編寫,大體如下:
??? load data
??? infile 'ulcase6.dat'
??? insert into table emp
???? (empno position(01:04) integer external nullif empno=blanks,...)
? bindsize? 普通路徑的加載時數組的大小設置。
控制文件舉例:
??? load data
??? infile *
??? insert into table scott.dept?
???? fields terminated by ',' optionally enclosed by '"'
???? (deptno,dname,loc)
??? begindata
???? 10,account,new york
???? 20,research,dallas
???? 30,sales,chigago
15章 reorganize tables 重組數據
??? export import
??? 可傳輸的表空間
????15.1 export import
???????? 重組表
???????? 在不同用戶下移動數據
?????????不同數據庫下移動數據
???????? 不同操作系統下移動數據
???????? 不同版本的數據庫下移動數據
????????? 邏輯備份
導出表? (table data index trigger constraints Grants AnalyzeMethod)
exp
scott/tiger@orcl
tables=(dept,emp) file=c:\emp.dmp log=c:\exp.log compress=n direct=y
compress 壓縮
direct?? 直接導出
imp scott/tiger tables=(dept,emp) file=emp.dmp log=exp.log ignore=y
ignore? 忽略錯誤
導入順序 table-->data-->B-tree indexes-->constraints,triggers,bitmap,indexes? 相同表空間『默認表空間』
consistent=y? 在回滾段中鏡像所有導出表 (保持了一致性,只能用于小表),默認consistent=n
compress=y??? 可以使用在連續的,沒有刪除操作的表上,能夠提高速度。對于被刪除的行,compress=y 時則被導出,從而不能重組數據,所以默認>compress=n
導入導出字符集的問題:
?? 1.導入導出字符集一致即可;2.如果不一致,默認低字節向高字節轉換。oracle自帶有7位單字節、8位單字節、16位雙字節、24位三字節字符集。
??????? 15.2 可傳輸表空間
可傳輸表空間:
?1.使表空間只讀 alter tablespace sales_ts read only;
??????? 2.將表空間的定義信息導成操作系統文件????? exp sys/... file=xxx.dmp transport_tablespace=y tablespaces=sales_ts triggers=n constraints=n
?3.將表空間的數據文件拷貝到目標機器
?4.將表空間的定義信息文件拷貝到目標機器???? (導入導出的路徑要求是全路徑)
?5.將表空間的定義信息文件導入到目標數據庫? imp sys/... file=xxx.dmp transport_tablespace=y datafiles=(/disk1/sales01.dbf,/disk2/sales02.dbf)
??????? 6.將表空設置為可讀寫 alter tablespace sales_ts read write;
?7.限制:相同的操作系統,oracle的版本在8i以上,數據塊大小一致(8192),相同的字符集,表空間中的對象必須全部屬于本表空間(自包含),嵌套表、位圖索引不能被導出
????????? 驗證自包含的方法: exec DBMS_TTS.TRANSPORT_SET_CHECK(ts_list =>'sales_ts',incl_constraints=>TRUE);
第8課
16章 數據庫安全
???? 表空間限(配)額
???? 缺省表空間
???? 排序表空間的使用
???? 賬號鎖定??????? account locking
???? 資源的限制
???? 直接權限
???? 角色權限 role
???? 操作系統驗證數據庫驗證
?參數:failed_login_attempts? 密碼嘗試登陸次數的設定
????????????? password_lock_time???? 密碼鎖定的天數
????????????? password_life_time???? 密碼生命期(天數)
????????????? password_grace_time??? 優雅時間:密碼過期后,用戶第一次登陸后,修改密碼的時間
????????????? password_reuse_time??? 密碼重用間隔天數
??????????????password_reuse_max???? 密碼重用次數
????????????? password_verify_function? 密碼校驗函數
? 密碼管理:
???? alter user hanne identified by rue account lock; 給用戶加鎖解鎖
???? alter user hanne identified by rue account unlock;
第9課? 直接跳到了18章
20章 (11課 36分) 字符集與國際語言字符集
單字節 7-bit,8-bit
雙字節 16-bit
三字節 24-bit
unicode (utf8,al24utffss)
字符集的定義層次:
?? 會話層???????? session(級別最高)
?? 環境變量?????? nls_lang=<language>_<territory>.<charset>?? charset 字符集? SIMPLIFIED CHINESE_CHINA.ZHS16GBK
?? 初始化參數
?? nls_language?
?? nls_date_language
?? nls_sort
?? nls_territory??????
?? nls_currency??????? $
?? nls_iso_currency??
?? nls_date_format???? yyyy-mm-dd
?? nls_numeric_characters
?create database ... character set <charset> national character set <ncharset> ... 創建數據庫時設置字符集
??????? alter session set nls_date_format='yyyy-mm-dd';????? 設置會話的日期格式
??????? dbms_session.set_nls('nls_date_format',"'yyyy-mm-dd'");
??????? alter session set nls_sort=Eanglish;?? 設置按什么語言排序
12課 9分鐘??? 開始講 sql
17課? 12分鐘? 開始講 oracle網絡知識? (2天 10章)
21課? oem 備份與恢復
????? 備份策略:商務需求,硬件環境
????? fast_start_io_target=10000??????????? 系統崩潰后,下次啟動后要讀寫多少個塊,設大恢復慢,設小影響速度。
???? 影響checkpoint的因素:
??????? 達到 fast_start_io_target設定的數據塊
??????? 達到最小的redo log 的90%
??????? log_checkpoint_timeout
??????? log_checkpoint_interval blocks
??? archived 歸檔
??????? 歸檔到本地磁盤
??????? 歸檔到遠程數據庫(standby site)
?? 各種類型的失?。?
?????? 語句類型的失?。ㄕZ法錯誤)
?????? 用戶進程失敗()
?????? 用戶可能的錯誤操作(用戶錯誤刪除表中數據)
?????? instance失敗 (系統自動恢復操作)
?????? 媒體(物理介質)的失敗
?? fast_start_parallel_rollback 并行回滾
歸檔模式 archivelog
??? log_archive_start 是否啟用歸檔; log_archive_dest_n 歸檔的目錄(n是歸檔路徑的路徑個數,即支持多路徑歸檔);? log_archive_format 歸檔文件的名字;
scott/tiger 下的emp表的創建語句
create table EMP
(
? EMPNO??? NUMBER(4) not null,
? ENAME??? VARCHAR2(10),
? JOB????? VARCHAR2(9),
? MGR????? NUMBER(4),
? HIREDATE DATE,
? SAL????? NUMBER(7,2),
? COMM???? NUMBER(7,2),
? DEPTNO?? NUMBER(2)
)
tablespace SYSTEM
? pctfree 10
? pctused 40
? initrans 1
? maxtrans 255
? storage
? (
??? initial 64K
??? minextents 1
??? maxextents unlimited
? );
-- Create/Recreate primary, unique and foreign key constraints
alter table EMP
? add constraint PK_EMP primary key (EMPNO)
? using index
? tablespace SYSTEM
? pctfree 10
? initrans 2
? maxtrans 255
? storage
? (
??? initial 64K
??? minextents 1
??? maxextents unlimited
? );
alter table EMP
? add constraint FK_DEPTNO foreign key (DEPTNO)
? references DEPT (DEPTNO);
startup force;?? 重啟數據庫
shutdown;??????? 關閉數據庫
shutdown abort;? 例程已經關閉
startup mount ; 例程已經啟動??? mount啟動后動態試圖就可以查看了
alter database open ;? 打開數據庫
alter system switch logfile;? 切換logfile
EXECUTE DBMS_LOGMNR_D.BUILD('merrydict.ora','C:\redo');
EXECUTE dbms_logmnr.start_logmnr(DICTFILENAME=>'c:\redo\REDO03.LOG')
drop tablespace APTS oncluding contents;? 注銷表空間
alter tablespace APTS add datafle '' size 200M autoextend on next 10M maxsiza 500M;
alter tabl resize
alter tablespace APTS rename datafile '' to '';
alter database rename file '' to '';
dba_tablespaces
v$tablespace
v$instance
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
