Oracle DBA 學習總結

    對於學習Oracle 數據庫,應該先要了解Oracle 的框架。它有物理結構(由控制文件、數據文件、重作日誌文件、參數文件、歸檔文件、密碼文件組成) ,邏輯結構(表空間、段、區、塊),內存分配( SGA 和PGA)算機的實際內存中得以分配,若是實際內存不夠再往虛擬內存中寫,後臺進程(數據寫進程、日誌寫進程、系統監控、進程監控、檢查點進程、歸檔進程、服務進程、用戶進程) ,SCN(System Change Number)。sql

配置共享服務器

--鏈接信息:
-- 協議爲tcp,
-- 主機名爲127.0.0.1,
-- 鏈接端口爲1525,
alter system set local_listener='(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=127.0.0.1)(PORT=1525)))';

至少可服務共享用戶數至少爲425
alter system set dispatchers='(PROTOCOL=tcp)(DISPATCHERS=2)(SERV=D647001)';
--alter system set dispatchers='(PROTOCOL=tcp)(DISPATCHERS=2)(PROTOCOL=IPC)(DISPATCHERS=1)'; 
初始運行的共享服務器進程數設置爲2
alter system set shared_servers=2;
--alter system set shared_servers = 2 scope=both ;
--alter system set max_shared_servers = 5 scope=both ;

--最大共享服務器會話數設置爲200
alter system set shared_server_sessions=200;

--打開net manager
--修改監聽程序listener 地址2 主機:127.0.0.1
--端口 1525
--保存網絡配置
--打開 net C A 
--監聽程序配置->從新配置->下一步->下一步->使用另外一個端口號1525->下一步完成
--打開net manager
--修改服務命名s_d647001 鏈接類型 共享
--主機:127.0.0.1
--端口 1525
--保存網絡配置
--打開 net C A 
--本地網絡服務名配置>從新配置->下一步->D647001->下一步->主機名 127.0.0.1->

--使用另外一個端口號1525->測試->更改登錄->密碼改成647001

管理控制文件

--查詢控制文件
select * from v$controlfile;

shutdown immediate;
--拷貝控制文件
startup;

控制文件維護
alter system set control_files =
    'd:\ora11g\cD122723\diskb\CTN5.LCT',
    'd:\ora11g\cD122723\diskd\CTN60.LCT',
    'd:\ora11g\cD122723\diski\CTN320.LCT' scope=spfile;

shutdown immediate;
startup;

--查詢日誌文件:
select *from v$logfile;

--設置參數
alter session set sql_trace=true;

--生成trace文件
alter database backup controlfile to trace;

--顯示trace文件
show parameter user_dump_dest;

管理聯機重作日誌

--查看重作日誌組的狀態
SELECT group#, sequence#, bytes, members, status FROM v$log;
select * from v$controlfile;
--查看全部成員的位置狀態
select group#,status,type,member from v$logfile;

--添加成員到_組
alter database add logfile member
'd:\ora11g\cD122723\diskb\21122723.dro' to group 2,
'd:\ora11g\cD122723\diskd\22122723.dro' to group 2,
'd:\ora11g\cD122723\diski\23122723.dro' to group 2,
'd:\ora11g\cD122723\diskb\31122723.dro' to group 3,
'd:\ora11g\cD122723\diskd\32122723.dro' to group 3,
'd:\ora11g\cD122723\diski\33122723.dro' to group 3;


ALTER DATABASE DROP LOGFILE MEMBER 'D:\APP\26984\ORADATA\D122723\DRFC3.DDD';
ALTER DATABASE DROP LOGFILE MEMBER 'D:\APP\26984\ORADATA\D122723\RDFB4.DDD';

ALTER DATABASE ADD LOGFILE GROUP 5 ('d:\ora11g\cD122723\diskb\51122723.dro', 'd:\ora11g\cD122723\diskd\52122723.dro','d:\ora11g\cD122723\diski\53122723.dro')size 60m;

--設置聯機重作日誌組成員存放路徑
alter system set DB_CREATE_ONLINE_LOG_DEST_1='d:\ora11g\cD122723\diskb';
alter system set DB_CREATE_ONLINE_LOG_DEST_2='d:\ora11g\cD122723\diskd';
alter system set DB_CREATE_ONLINE_LOG_DEST_3='d:\ora11g\cD122723\diski';

--OMF添加聯機重作日誌組並設置大小
ALTER DATABASE ADD LOGFILE group 8 size 60m;

ALTER SYSTEM SET FAST_START_MTTR_TARGET = 1440;
ALTER SYSTEM CHECKPOINT;


--強行切換日誌組
ALTER SYSTEM SWITCH LOGFILE;

掌握歸檔重作日誌的相關信息設置方法,理解歸檔重作日誌的應用場景 

掌握可脫機表空間文件的管理方法,包括數據文件的移動、調整大小、修改自動擴展特性等操做,理解其應用場景。 

掌握不可脫機表空間文件的管理方法,包括數據文件的移動、調整大小、修改自動擴展特性等操做,理解其應用場景。

archive log list;

shutdown immediate;
startup mount;
--設置歸檔模式
alter database archivelog;

--最大歸檔進程數
alter system set log_archive_max_processes=3;

--設置三個位置
alter system set log_archive_dest_1='location=d:\arc\cD122723\diskc\ mandatory';
alter system set log_archive_dest_2='location=d:\arc\cD122723\diskd\';
alter system set log_archive_dest_3='location=d:\arc\cD122723\diskg\';

--查詢歸檔位置
select destination,binding,target,status from v$archive_dest where destination is not null;

--日誌切換前至少成功歸檔位置數爲2
alter system set log_archive_min_succeed_dest=3;

ALTER SYSTEM SWITCH LOGFILE;

--進入BIN目錄,
rman
connect target /@d122723;
backup database;
exit;


--
select * from dba_data_files ;
select * from dba_tablespaces;
select * from v$logfile;
select * from v$controlfile

--脫機
alter tablespace TC_AE7 offline;

--移動
host move D:\APP\USER\ORADATA\D647001\USERS01.DBF D:\ORA11G\CD647001\DISKD\DC562.FBD

--修改表空間數據文件位置
alter tablespace TC_AE7 rename datafile 'D:\APP\USER\ORADATA\D647001\USERS01.DBF' to 'D:\ORA11G\CD647001\DISKD\DC562.FBD';

--聯機並修改數據文件大小
alter tablespace TC_AE7 online;
alter database datafile 'D:\ORA11G\CD647001\DISKG\DDC515.FBD' resize 1524m;

--查詢塊大小
show parameter block_size;

--修改自動擴展上限 和 next
ALTER DATABASE datafile 'D:\ORA11G\CD647001\DISKD\DC562.FBD' AUTOEXTEND ON NEXT 9175040 MAXSIZE 700M;
ALTER DATABASE datafile 'D:\ORA11G\CD647001\DISKD\DC562.FBD' AUTOEXTEND off;
--不可脫機的表空間
shutdown immediate
startup mount


--修改

alter database rename file 'D:\APP\USER\ORADATA\D647001\UNDOTBS01.DBF' to 'D:\ORA11G\CD647001\DISKB\FC2.FBD';

alter database datafile 'D:\ORA11G\CD122723\DISKI\FC175.FBD' resize 700M;


--臨時表空間

select * FROM DBA_TEMP_FILES;

alter database tempfile 'D:\ORA11G\CD647001\DISKD\FC846.FBD' resize 500m;

ALTER DATABASE tempfile 'D:\ORA11G\CD647001\DISKD\FC846.FBD' AUTOEXTEND ON NEXT 170m MAXSIZE 1350M;

掌握使用常規辦法建立普通表空間及添加數據文件的方法,理解表空間涉及參數的意義。
掌握使用OMF機制建立普通表空間及添加數據文件的方法,理解使用OMF機制給表空間管理帶來的方便。
掌握建立非標準塊大小的表空間的方法,理解建立特殊塊大小表空間的思路。

--db_block_size     8192

--D:\ORA11G\CD122723\DISKB\
--D:\ORA11G\CD122723\DISKD\
--D:\ORA11G\CD122723\DISKI\

--數據字典管理
dictionary

--臨時
temporary

--表空間1
--建立表空間

create  tablespace TC_417
datafile 'D:\ORA11G\CD122723\DISKB\BCDBG.FBD' size 60M autoextend off
PERMANENT
extent management local
uniform size 270336
segment space management auto;

--像表空間添加數據文件
ALTER TABLESPACE TC_417
    ADD DATAFILE 'D:\ORA11G\CD122723\DISKD\BCBFEG.FBD' size 180M 
    autoextend on next 16384000 maxsize 790M;

--表空間2(OMF)
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKI\'; 

CREATE bigfile TABLESPACE TF_843
datafile size 110m autoextend on next 14942208 maxsize 600M
PERMANENT
extent management local
uniform size 393216
segment space management auto;


drop tablespace TSC_63 including contents and datafiles;

--表空間3(OMF)

ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKB\'; 

--塊大小
alter system set db_4k_cache_size = 4M;

CREATE bigfile TABLESPACE TSC_63
datafile size 140m autoextend off
blocksize 4k 
PERMANENT
uniform size 200704
segment space management auto;

--表空間4(OMF)

ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKD\'; 

--塊大小
alter system set db_2k_cache_size = 2M;

CREATE TABLESPACE TSC_612
datafile size 60m autoextend on next 35m maxsize 350m
blocksize 2k 
PERMANENT
uniform size 90112
segment space management MANUAL;

    

drop tablespace TSC_6108 including contents and datafiles;
--表空間5(OMF)

ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKI\'; 

--塊大小
alter system set db_16k_cache_size = 16M;

CREATE  TABLESPACE TSC_6108
datafile size 120M autoextend on next 36962304 maxsize 900m
blocksize 16k
PERMANENT
uniform size  540672
segment space management MANUAL;

drop tablespace TSC_4 including contents and datafiles;
--表空間6(OMF)

ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKI\'; 

--塊大小
alter system set db_2k_cache_size = 2M;

CREATE  bigfile  TABLESPACE TSC_4
datafile size 100M autoextend off
blocksize 2k
PERMANENT
uniform size 86016
segment space management auto;

掌握建立特殊的表空間的方法,理解特殊表空間的管理思路。
掌握管理特殊表空間的方法,掌握閃回技術,理解特殊表空間的使用場合以及閃回技術的應用場景。

--block_size    8192
--sort_area_size    65536

--D:\ORA11G\CD122723\DISKB\        TC_417        1
--D:\ORA11G\CD122723\DISKD\        TC_417        1
--D:\ORA11G\CD122723\DISKI\        TF_843        2
--D:\ORA11G\CD122723\DISKB\        TSC_63        3
--D:\ORA11G\CD122723\DISKD\        TSC_612        4
--D:\ORA11G\CD122723\DISKI\        TSC_610        5
--D:\ORA11G\CD122723\DISKI\        TSC_4        6

--biao5
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKI\'; 

show parameter sort_area_size;   //65536

show parameter block_size;  //8192
--建立temp表空間

create  bigfile TEMPORARY tablespace TSSC_548
tempfile size 1970M autoextend off
uniform size 524288;


--刪除表空間
drop tablespace TSC_444 including contents and datafiles;

--OMF
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD122723\DISKI\'; 
--建立還原表空間
create  undo tablespace  TSSC_DDA
datafile size 880M autoextend on next 13762560 maxsize 5800m;


--ALTER TABLESPACE TSSC_DB RETENTION GUARANTEE;

--OMF
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD647001\DISKG\'; 
--建立還原表空間
create bigfile undo tablespace  TSSC_3
datafile size 1330M autoextend on next 400m maxsize 6100m;

--還原保留保證
ALTER TABLESPACE TSSC_3 RETENTION GUARANTEE;

--biao3
--OMF
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD647001\DISKG\'; 

show parameter sort_area_size;

--65536

--建立temp表空間

create bigfile TEMPORARY tablespace TSSC_670
tempfile size 1020M autoextend on next 355m maxsize 7750m
uniform size 327680;


--biao4

ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD647001\DISKG\'; 

show parameter sort_area_size;


--建立temp表空間

create  TEMPORARY tablespace  TSSC_A
tempfile size 750M autoextend off
uniform size 131072;


--biao5
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD647001\DISKD\'; 

show parameter sort_area_size;   --65536

show parameter block_size;  --8192
--建立temp表空間

create  bigfile TEMPORARY tablespace  TSSC_CF
tempfile size 1350M autoextend on next 13500416 maxsize 3850m
uniform size 655360;

--biao6
--OMF
ALTER SYSTEM SET db_create_file_dest = 'D:\ORA11G\CD647001\DISKG\'; 
--建立還原表空間
create  undo tablespace  TSSC_EGB
datafile size 1380M autoextend off;

--還原保留保證
--ALTER TABLESPACE TSSC_3 RETENTION GUARANTEE;

--7
--切換還原表空間
alter system set undo_tablespace = TSSC_DDA;

--時間
alter system set undo_retention=180;

alter database default temporary tablespace TSSC_45;

--恢復目錄
alter system set  db_recovery_file_dest='D:\ora11g\cD122723\diskb\recovery';

--閃回時間
alter system set db_flashback_retention_target=60;

shutdown immediate
startup mount
alter database archivelog;
alter database flashback on;
alter database open;

掌握建立分區表的方法,理解三類分區表的應用場景。
掌握建立索引組織的表的方法,理解索引組織的表的應用場景。
掌握建立包含大對象字段的表的方法,理解包含大對象字段的表的應用場景。
掌握建立簇的方法,理解簇的應用場景。
掌握建立簇表的基本方法,理解簇表的基本應用場景。
掌握建立多個簇表的方法,理解多個簇表的存儲原理及應用場景。
掌握建立全局臨時表的方法,理解全局臨時表的應用場景。

select * from dba_tablespaces;
select * from database_properties where property_name='DEFAULT_PERMANENT_TABLESPACE';

--TC_417
--TF_843
--TSC_63
--TSC_612
--TSC_6108
--TSC_4

--default    
--TC_FA4

--biao1
create table RJSTU271(stu_no nchar(7),stu_name varchar2(18),stu_city char(15) default '上海',
stu_enter date default sysdate,stu_score number(3,0) default 510,stu_leader nchar(7),stu_depart varchar2(30))
partition by range(stu_enter)
(
partition P_RJSTU271_stu_enter_1 values less than (to_date('2014-09-01','yyyy-mm-dd')) INITRANS 28 tablespace  TF_843,
partition P_RJSTU271_stu_enter_2 values less than (to_date('2015-03-01','yyyy-mm-dd')) INITRANS 30 tablespace TC_FA4,
partition P_RJSTU271_stu_enter_3 values less than (MAXVALUE) INITRANS 8 tablespace TC_417
);
comment on table RJSTU271 is '學生表(分區表)';
comment on column RJSTU271.stu_no is '學生號';
comment on column RJSTU271.stu_name is '姓名';
comment on column RJSTU271.stu_city is '畢業地區';
comment on column RJSTU271.stu_enter is '入學時間';
comment on column RJSTU271.stu_score is '成績';
comment on column RJSTU271.stu_leader is '班長學號';
comment on column RJSTU271.stu_depart is '所屬系';

--biao2
create table RJCOU372(couid char(12),couname varchar2(36),coutype varchar2(30) default  '專業選修', 
coumoddate date default sysdate, coulevel number(1,0) default 2, coubefore char(12), couprof varchar2(33),
primary key(couid))
organization index INITRANS 15 tablespace TC_417 overflow INITRANS 7 tablespace TSC_612;

comment on table RJCOU372 is '課程表【索引組織的表】';
comment on column RJCOU372.couid is '課程號';
comment on column RJCOU372.couname is '課程名';
comment on column RJCOU372.coutype is '課程類別';
comment on column RJCOU372.coumoddate is '修訂日期';
comment on column RJCOU372.coulevel is '課學分';
comment on column RJCOU372.coubefore is '先修課程';
comment on column RJCOU372.couprof is '所屬專業';

--biao3
create table RJPAR123(parid char(8),parname nvarchar2(7),partype nvarchar2(10) default '塊狀',
parleave date default sysdate,parnum number(8,0) default 300,parsub char(8),
parwshop nvarchar2(8),
parremark clob,
parphoto blob)
--閃回支持tablespace TF_071 enable row movement initrans 29 storage(buffer_pool keep)
tablespace TSC_63 initrans 7 storage(buffer_pool recycle)
lob (parremark) store as parremark_lob (tablespace TSC_612)
lob (parphoto) store as lob_parphoto (tablespace TSC_6108);

comment on table RJPAR123 is '零件表-包含大對象字段的表';
comment on column RJPAR123.parid is '件號';
comment on column RJPAR123.parname is '工件名';
comment on column RJPAR123.partype is '零件類別';
comment on column RJPAR123.parleave is '生產時間';
comment on column RJPAR123.parnum is '生產數量';
comment on column RJPAR123.parsub is '構成零件';
--comment on column RJPAR123.parwshop is '車間名';
comment on column RJPAR123.parremark is '零件備註';
comment on column RJPAR123.parphoto is '零件圖';


--cu
create cluster RJC_BA(emp_dno nvarchar2(6)) tablespace TSC_6108 initrans 20 storage(buffer_pool keep);

--cubiao
create table RJEMP134(empno nchar(10), empname char(24),emptype varchar2(21) default '編碼',
empenter date default sysdate,empsalary number(11,0) default 1000,empmanager nchar(10),
empdeptno nvarchar2(6))
cluster RJC_BA(empdeptno);

comment on table RJEMP134 is '員工表(簇表1)';
comment on column RJEMP134.empno is '員工號';
comment on column RJEMP134.empname is '員工名';
comment on column RJEMP134.emptype is '工種';
comment on column RJEMP134.empenter is '僱傭時間';
comment on column RJEMP134.empsalary is '薪水';
comment on column RJEMP134.empmanager is '主管';
comment on column RJEMP134.empdeptno is '部門編號';

--cubiao
create table RJEMP515(
edno nvarchar2(6),
edname varchar2(36))
cluster RJC_BA(edno) enable row movement;
comment on table RJEMP515 is '部門表【簇表2】';
comment on column RJEMP515.edno is '部門編號';
comment on column RJEMP515.edname is '部門名稱';


--quanju
create global temporary table RJSTU046(stu_no nchar(7),stu_name varchar2(18),stu_city char(15) default '上海',
stu_enter date default sysdate,stu_score number(3,0) default 510,stu_leader nchar(7),stu_depart varchar2(30)) ON COMMIT PRESERVE ROWS;
comment on table RJSTU046 is '學生表〈全局臨時表〉';
comment on column RJSTU046.stu_no is '學生號';
comment on column RJSTU046.stu_name is '姓名';
comment on column RJSTU046.stu_city is '畢業地區';
comment on column RJSTU046.stu_enter is '入學時間';
comment on column RJSTU046.stu_score is '成績';
comment on column RJSTU046.stu_leader is '班長學號';
comment on column RJSTU046.stu_depart is '所屬系';

掌握使用OMF機制建立存放索引的表空間的方法,理解創建單獨存放索引的表空間的意義。
掌握在非分區表上建立普通索引的方法,理解各類索引的實現原理,明白各類索引的應用場景。
掌握在分區表上建立分區索引的方法,理解各類索引的實現原理,明白各類索引的應用場景。
掌握監控索引的方法,理解監控索引的目的及後續處理思路。

--控制文件
--D:\ORA11G\CD122723\DISKB\
--D:\ORA11G\CD122723\DISKD\
--D:\ORA11G\CD122723\DISKI\

--建立表空間
drop tablespace TCI_284 including contents and datafiles;

alter system set db_4k_cache_size=4k;

alter system set db_create_file_dest ='D:\ORA11G\CD122723\DISKB\'; 

create tablespace TCI_284 datafile size 60M autoextend off blocksize 4K; 


--建立表空間
drop tablespace TFI_628 including contents and datafiles;

alter system set db_4k_cache_size=4k;

alter system set db_create_file_dest ='D:\ORA11G\CD122723\DISKI\'; 

create tablespace TFI_628 datafile size 90M autoextend off blocksize 4K; 


--建立表空間
drop tablespace TKI_444 including contents and datafiles;

alter system set db_4k_cache_size=4k;

alter system set db_create_file_dest ='D:\ORA11G\CD122723\DISKD\'; 

create tablespace TKI_444 datafile size 150M autoextend off blocksize 4K;  


--建立索引
drop index ind_RJCOU372_couname;
create index ind_RJCOU372_couname on RJCOU372(couname) tablespace TKI_444; 

create bitmap index ind_RJSTU271_stu_enter on RJSTU271(stu_enter) local
(partition par_RJSTU271_stu_enter_1 tablespace TKI_444,
partition par_RJSTU271_stu_enter_2 tablespace TFI_628,
partition par_RJSTU271_stu_enter_3 tablespace TCI_284);


alter index ind_RJSTU271_stu_enter monitoring usage;

--刪除索引
drop index ind_RJSTU271_stu_enter;

--重建索引
alter index name

--監控索引,要求以下:
--         1)⑥索引監控:
--         2)⑥--- 索引爲分區索引,
--         3)⑥--- 監控狀態爲關閉,
--         4)⑥--- 使用狀態爲使用,
--         5)⑥--- 監控數量爲1。
alter index i_sname_RJSTU002 monitoring usage;

--查詢索引使用狀態
select * from v$object_usage ;

ALTER INDEX hr.dept_id_idx NOMONITORING USAGE

 
update RJSTU002 set sleader='76B3TA';
alter table RJSTU002 add constraint sleader_fk
foreign key(sleader) references RJSTU002(sid);

掌握建立主鍵約束的方法,理解主鍵約束的實現原理,明白主鍵約束的應用場景。
掌握建立外鍵約束的方法,理解外鍵約束的實現原理,明白外鍵約束的應用場景。

--先建立惟一索引
create unique index cid_RJCOU661_i on RJCOU661(cid) tablespace TBI_016
initrans 14 storage(buffer_pool keep);

--建立主鍵
alter table RJCOU661 add constraint pk_cid_RJCOU661 primary key(cid);

select * from user_cons_columns natural join user_constraints 
where constraint_name='pk_cid_RJCOU661';
select * from user_indexes where table_name='RJCOU661';
select * from user_constraints where table_name='RJCOU661';

--1
create unique index stu_no_RJSTU271_i on RJSTU271(stu_no) tablespace TCI_284
initrans 2 storage(buffer_pool recycle);

alter table RJSTU271 add constraint RJSTU271_stu_no_pk primary key(stu_no);

Alter table RJSTU271 drop primary key; 

ALTER TABLE RJSTU271 ENABLE NOVALIDATE CONSTRAINT RJSTU271_stu_no_pk;


--2
--RJPAR123
--parid
create unique index parid_RJPAR123_i on RJPAR123(parid) tablespace TFI_628
initrans 17 storage(buffer_pool keep);

alter table RJPAR123 add constraint pk_parid_RJPAR123 primary key(parid);

ALTER TABLE RJPAR123 ENABLE NOVALIDATE CONSTRAINT pk_parid_RJPAR123;

--3
--RJEMP134
--empno

CREATE INDEX ind_cluster_test ON cluster RJC_BA;

create unique index empno_RJEMP134_ind on RJEMP134(empno) tablespace TKI_444
initrans 28 storage(buffer_pool keep);

alter table RJEMP134 add constraint pk_empno_RJEMP134 primary key(empno);

ALTER TABLE RJEMP134 ENABLE NOVALIDATE CONSTRAINT pk_empno_RJEMP134;


--4
--RJSTU271
--stu_no
--stu_leader

alter table RJSTU271 add constraint rk_stu_leader_RJSTU271 
    foreign key(stu_leader) references RJSTU271(stu_no) deferrable initially deferred disable novalidate;

ALTER TABLE RJSTU271 ENABLE NOVALIDATE CONSTRAINT rk_stu_leader_RJSTU271;

--5
--RJPAR123
--parid
--parsub
alter table RJPAR123 add constraint rk_RJPAR123_parsub 
    foreign key(parsub) references RJPAR123(parid) on delete set null;

ALTER TABLE RJPAR123 disable novalidate CONSTRAINT rk_RJPAR123_parsub;

--6
--RJEMP134
--empno
--empmanager

alter table RJEMP134 add constraint rk_RJEMP134_empmanager 
    foreign key(empmanager) references RJEMP134(empno) on delete cascade deferrable initially deferred;
ALTER TABLE RJEMP134 disable novalidate CONSTRAINT rk_RJEMP134_empmanager;
--考覈內容
    -- 一、管理缺省的配置文件及建立口令校驗函數,要求以下: 
--         1)修改配置文件DEFAULT,設置口令校驗函數爲NULL,其它配置都爲UNLIMITED, 
--         2)建立第1個口令校驗函數,名稱爲「VF_A31」,
--         3)建立第2個口令校驗函數,名稱爲「VF_DD2」,
--         4)建立第3個口令校驗函數,名稱爲「VF_DBE」。          
--        
--        找到口令函數所在文件,修改運行就能夠了

--     二、建立第1個配置文件,要求以下:     
--         1)①建立配置文件,要求以下:
--         2)①--- 名稱爲PRO_630,
--         3)①--- 口令校驗函數設置爲第2個,
--         4)①--- 口令寬限期設置爲1個月,
--         5)①--- 舊口令可以使用最屢次數設置爲3,
--         6)①--- 每一個用戶最多會話數設置爲1,
--         7)①--- 每一個會話最長鏈接時間設置爲480分鐘,
--         8)①--- 每一個會話最長CPU時間設置爲0.10秒,
--         9)①--- 每次調用讀邏輯塊最大數設置爲50000,
--        10)①--- 私有SGA設置爲80MB,
--        11)①--- 上面未說起的全部參數,都設置爲default。
        
create profile PRO_630 LIMIT PRIVATE_SGA 80M
    PASSWORD_VERIFY_FUNCTION VF_DD2
    PASSWORD_GRACE_TIME 30
    PASSWORD_REUSE_MAX 3
    SESSIONS_PER_USER 1
    CONNECT_TIME 480
    CPU_PER_SESSION 10
    LOGICAL_READS_PER_CALL 50000;
        
--     三、建立第2個配置文件,要求以下:
--         1)②建立配置文件,要求以下:
--         2)②--- 名稱爲PRO_B67,
--         3)②--- 口令校驗函數設置爲第1個,
--         4)②--- 口令生存期設置爲4周,
--         5)②--- 舊口令再次使用間隔期設置爲8周,
--         6)②--- 鎖定帳戶前登陸失敗最屢次數設置爲3,
--         7)②--- 每一個會話最長空閒時間設置爲2小時,
--         8)②--- 每次調用最長CPU時間設置爲0.20秒,
--         9)②--- 每一個會話讀邏輯塊最大數設置爲800000,
--        10)②--- 私有SGA設置爲15MB,
--        11)②--- 上面未說起的全部參數,都設置爲default。

create profile PRO_B67 LIMIT PRIVATE_SGA 15M
    PASSWORD_VERIFY_FUNCTION VF_A31
    PASSWORD_LIFE_TIME 28
    PASSWORD_REUSE_TIME 56
    FAILED_LOGIN_ATTEMPTS 3
    IDLE_TIME 120
    CPU_PER_CALL 20
    LOGICAL_READS_PER_SESSION 800000;
    
--     四、建立第3個配置文件,要求以下:
--         1)③建立配置文件,要求以下:
--         2)③--- 名稱爲PRO_AD1,
--         3)③--- 口令校驗函數設置爲第3個,
--         4)③--- 帳戶自動解鎖期設置爲60天,
--         5)③--- 舊口令可以使用最屢次數設置爲8,
--         6)③--- 鎖定帳戶前登陸失敗最屢次數設置爲5,
--         7)③--- 每一個會話最長鏈接時間設置爲32400秒,
--         8)③--- 每次調用最長CPU時間設置爲0.10秒,
--         9)③--- 每一個會話讀邏輯塊最大數設置爲870000,
--        10)③--- 私有SGA設置爲35MB,
--        11)③--- 上面未說起的全部參數,都設置爲default。
        
create profile PRO_AD1 LIMIT PRIVATE_SGA 35M
    PASSWORD_VERIFY_FUNCTION VF_DBE
    PASSWORD_LOCK_TIME 60
    PASSWORD_REUSE_MAX 8
    FAILED_LOGIN_ATTEMPTS 5
    CONNECT_TIME 540
    CPU_PER_CALL 10
    LOGICAL_READS_PER_SESSION 870000;
    

        
---     五、建立和管理第1個用戶,要求以下:
---         1)④建立用戶,要求以下:
--         2)④--- 用戶名命名爲 RJ_844,
--         3)④--- 配置文件指定爲第1個,
--         4)④--- 臨時表空間設置爲第1個臨時表空間;
--         5)④--- 缺省表空間設置爲第1個表空間,
--         6)④--- 在缺省表空間上可以使用空間設置爲15MB。
         
CREATE USER RJ_844
    profile PRO_630
    IDENTIFIED BY "mzw3,1415"
    DEFAULT TABLESPACE TC_417
    TEMPORARY TABLESPACE TSSC_3
    QUOTA 15M ON TC_417
    PASSWORD EXPIRE;     
         
         
         
--     六、建立和管理第2個用戶,要求以下:
--         1)⑤建立用戶,要求以下:
----         2)⑤--- 用戶名命名爲 RJ_B32,
--         3)⑤--- 配置文件指定爲第2個,
---         4)⑤--- 臨時表空間設置爲第3個臨時表空間;
--         5)⑤--- 缺省表空間設置爲第6個表空間,
--         6)⑤--- 在缺省表空間上可以使用空間設置爲9MB。
         
CREATE USER RJ_B32
    profile PRO_B67
    IDENTIFIED BY "mzw3,1415"
    DEFAULT TABLESPACE TSC_4
    TEMPORARY TABLESPACE TSSC_548
    QUOTA 9M ON TSC_4
    PASSWORD EXPIRE;         
         
         
--     七、建立和管理第3個用戶,要求以下:
--         1)⑥建立用戶,要求以下:
--         2)⑥--- 用戶名命名爲 RJ_BD2,
--         3)⑥--- 配置文件指定爲第3個,
--         4)⑥--- 臨時表空間設置爲第2個臨時表空間;
--         5)⑥--- 缺省表空間設置爲第3個表空間,
--         6)⑥--- 在缺省表空間上可以使用空間設置爲1MB。
CREATE USER RJ_BD2
    profile PRO_AD1
    IDENTIFIED BY "mzw3,1415"
    DEFAULT TABLESPACE TSC_63
    TEMPORARY TABLESPACE TSSC_45
    QUOTA 1M ON TSC_63
    PASSWORD EXPIRE;     

 

--考覈目的
--     一、掌握建立外部用戶的方法,理解外部用戶的使用方式和方法。
--     二、掌握系統權限和對象權限的分配和回收方法,理解不一樣權限的應用場景。
--     三、掌握角色的建立和管理方法,理解角色的應用場景。
--     四、掌握建立序列、同義詞的方法,理解它們的應用場景。
--考覈內容
--     一、建立和管理外部驗證用戶,要求以下:
--         1)建立用戶,要求以下:
--         2)-- 用戶驗證方式爲外部驗證,
--         3)-- 配置文件指定爲第1個,
--         4)-- 臨時表空間設置爲第1個臨時表空間;
--         5)-- 缺省表空間設置爲第2個表空間,
--         6)-- 在缺省表空間上可以使用空間設置爲16MB,
--         7)-- 直接賦權給此用戶,容許登陸,
--         8)-- 以此用戶登陸數據庫後再檢查做業。


CREATE USER ops$mzw
profile PRO_630
IDENTIFIED EXTERNALLY
DEFAULT TABLESPACE TF_843
TEMPORARY TABLESPACE TSSC_3
QUOTA 16M ON TF_843;
         
grant create session to ops$mzw;     
         
--     二、管理系統權限和對象權限,要求以下:
--        
--         1)對第3個用戶僅賦如下權限:
--         2)①系統權限:
--         3)---①⑴ 建立觸發器,面向當前用戶,且不可傳遞,
--         4)---①⑵ 修改簇,面向全部用戶(不包括SYS),且可傳遞;
         select * from dba_sys_privs where grantee='RJ_BD2';
         grant create trigger to RJ_BD2;
         grant alter any cluster to RJ_BD2 with admin option;
--         5)②非字段對象權限:
--         6)---②⑴ system的索引組織的表上的查詢記錄權限,且可傳遞,
--         7)---②⑵ system的分區表上的修改結構權限,且不可傳遞,
        
        grant select on system.RJCOU372 to RJ_BD2 with grant option;
    
        grant alter on system.RJSTU271 to RJ_BD2;
        
--        8)③字段對象權限:
--        9)---③⑴ 更新system的包含大對象的表的字段「零件類別」,且可傳遞,
--        10)---③⑵ 參照system的第1個簇表的字段「員工號」,且不可傳遞。

        grant update(partype) on system.RJPAR123 to RJ_BD2 with grant option;
        grant REFERENCES(empno) on system.RJEMP134 to RJ_BD2;
        
        revoke drop tablespace from RJ_BD2;
        alter on system.RJSTU271  
        
--     三、建立和管理角色,要求以下:
--         1)④建立角色R_A60,不須要口令,而後僅賦如下權限:
--         
--         2)--④⑴系統權限:
--         3)----④⑴ 丟棄表空間,且可傳遞;
--         4)--④⑵對象權限:
--         5)----④⑵ system的「第1個簇表」的刪除記錄的權限
         
         create role R_A60;
         grant drop tablespace to R_A60 with admin option;
         grant delete on system.RJEMP134 to R_A60;
         
--         6)⑤建立角色R_B47,須要口令,而後僅賦如下權限:
--         7)--⑤⑴系統權限:
--         8)----⑤⑴ 建立配置文件,且不可傳遞;
--         9)--⑤⑵對象權限:
--        10)----⑤⑵ system的「包含大對象的表」的插入記錄的權限;
        
        create role R_B47;
        grant create profile to R_B47;
        grant insert on system.RJPAR123 to R_B47;
        
        revoke create profile from R_B47;

--        11)⑥建立角色 R_C62,不須要口令,而後僅賦如下角色:
--        12)--⑥⑴角色名爲「R_A60」:
--        13)----⑥⑴ 支配方式爲「不可管理」,
--        14)--⑥⑵角色名「R_B47」:
--        15)----⑥⑵ 支配方式「可管理」,
--        16)--⑥⑶角色「鏈接」:
--        17)----⑥⑶ 支配方式「可管理」,
        
        create role R_C62;
        grant R_A60 to R_C62;
        grant R_B47 to R_C62 with admin option;
        grant connect to R_C62 with admin option;
        
--        18)⑦對第2個用戶僅賦如下角色:
--        19)--⑦⑴角色名「R_C62」:
--        20)----⑦⑴ 支配方式「可管理」,
--        21)----⑦⑴ 此角色爲「非缺省角色」:        
--        22)--⑦⑵角色「導入所有數據庫」:
--        23)----⑦⑵ 支配方式「不可管理」,
--        24)----⑦⑵ 此角色爲「缺省角色」。
        
        grant R_C62 to RJ_B32 with admin option;
        
        grant IMP_FULL_DATABASE to RJ_B32 ;
        ALTER user RJ_B32 DEFAULT role IMP_FULL_DATABASE;
        alter user "5282" default  R_C8;
        
--     四、建立序列、同義詞,要求以下:
--         1)⑧建立序列:
--         2)⑧----  名稱爲「sq_122723」,
--         3)⑧----  擁有者爲「system」,
--         4)⑧----  最大值設置爲1100,
--         5)⑧----  最小值設置爲13,
--         6)⑧----  增量設置爲1,
--         7)⑧----  緩存數設置爲12,
--         8)⑧----  循環使用設置爲「否」,
         
         create sequence sq_122723
         maxvalue 1100
         MINVALUE 13
         increment by 1
         cache 12
         NOCYCLE;

--         9)⑨建立私有同義詞:
--        10)⑨----  目標爲第3個用戶可操做的表,
--        11)⑨----  名稱爲第1個爲s1,第2個爲s2,依此類推,按賦權前後次序排列,
--        12)⑨----  擁有者爲第3個用戶,
        
        create [or replace] sysnonym [schema.] sysnonym_name
        for [schema.]object_name;

        create synonym RJ_BD2.s1
        for RJCOU372;
        
        create synonym RJ_BD2.s2
        for RJSTU271;

--        RJPAR123,RJEMP134
        
        create synonym RJ_BD2.s3
        for RJPAR123;
        create synonym RJ_BD2.s4
        for RJEMP134;
        
--        13)⑩建立私有同義詞:
--        14)⑩----  目標爲第2個用戶可操做的表,
--        15)⑩----  名稱爲第1個爲t1,第2個爲t2,依此類推,按賦權前後次序排列,
--        16)⑩----  擁有者爲第2個用戶。
        
        select * from DBA_TAB_PRIVS where GRANTEE = "RJ_BD2";
        
        create synonym RJ_B32.t2
        for RJPAR123;

 

考覈目的

     1、掌握審計的管理方法,理解審計的應用場景。
     2、掌握建立外部表的方法,理解外部表的應用場景。
     3、掌握建立數據庫連接的方法,理解它們的應用場景。
考覈內容

select * from dba_role_privs where grantee='RJ_B32';
select * from dba_sys_privs where grantee='RJ_B32';
--     一、管理審計,要求以下:
--         1)開啓審計,知足如下要求:
--         2)--- 審計線索存儲表空間爲「缺省的永久表空間」,
--         
--         3)--- ①權限審計:
--         4)------- ①僅審計第2個用戶的「丟棄全部用戶的簇」的失敗操做;
--         5)------- ①作對應操做,僅生成2條權限審計線索,

--         6)--- ②對象審計:
--         7)------- ②僅審計system的「分區表」上的刪除記錄的對象權限,按會話審計失敗操做,
--         8)------- ②作對應操做,僅生成2條對象審計線索,
         
--         9)--- ③語句審計:
--        10)------- ③僅審計第1個用戶的「用戶」的失敗操做,
--        11)------- ③作對應操做,僅生成4條語句審計線索。
        
        alter system set audit_sys_operations=false scope=spfile;
        shutdown immediate
        startup
        --缺省表空間TC_FA4
        --select * from database_properties where property_name ='DEFAULT_PERMANENT_TABLESPACE';
        alter table aud$ move tablespace TC_FA4;
        AUDIT drop any cluster by RJ_B32  whenever not successful;
        audit delete on system.RJSTU271 whenever not successful;
        audit user by RJ_844 whenever not successful;


--     二、建立外部表,要求以下:
--         1)④以system用戶登陸,建立第7個表:外部表,要求以下:
--         2)④--  表名命名爲「RJPAR717」,
--         3)④--  表的說明設置爲「零件表-外部表」,
--         4)④--  同名表的數量爲1,
--         5)④--  如下爲字段信息,根據描述肯定合適的類型及寬度:
--         6)④--  (1)字段名命名爲 parid,
--         7)④-----  (1)字段說明設置爲「零件號」,
--         8)④-----  (1)字符集使用國家字符集,
--         9)④-----  (1)類型特徵爲性能優先,
--        10)④-----  (1)長度:有非數字字符,字符數爲7,
--        11)④--  (2)字段名命名爲 parpname,
--        12)④-----  (2)字段說明設置爲「工件名」,
--        13)④-----  (2)字符集使用國家字符集,
--        14)④-----  (2)類型特徵爲性能優先,
--        15)④-----  (2)長度:可存漢字數爲7,
        
--        16)④--  (3)字段名命名爲 partype,
--        17)④-----  (3)字段說明設置爲「零件種類」,
---        18)④-----  (3)字符集使用數據庫字符集,
--        19)④-----  (3)類型特徵爲性能優先,
--        20)④-----  (3)長度:可存漢字數爲5,
--        
--        21)④--  (4)字段名命名爲 parfinish,
--        22)④-----  (4)字段說明設置爲「生產日期」,
--        23)④-----  (4)類型特徵爲日期,
--        24)④--  (5)字段名命名爲 parquan,
--        25)④-----  (5)字段說明設置爲「生產數量」,
--        26)④-----  (5)類型特徵爲數值,
--        27)④-----  (5)小數位數爲0,
--        28)④-----  (5)有效數字個數爲6,
--        
--        29)④-- 如下爲附加信息,根據描述肯定合適的語句,
--        30)④----- 目錄名命名爲 D_506,
--        31)④----- 目錄指向文件夾設置爲d:\ORA11G,
--        32)④----- 數據文件命名爲 DB_613.TXT,
--        33)④----- 壞文件命名爲 BD_777.BAD,
--        34)④----- 廢棄文件命名爲 DS_200.DIS,
--        35)④----- 日誌文件命名爲 LG_647.LOG,
--        36)④----- 每條記錄佔一行,
--        37)④----- 字段分隔符爲「`」,
--        38)④----- 缺字段則爲空,
--        39)在數據文件中加入3條不重複記錄,每一個字段都不能爲空,而且可成功查詢。
        sqlplus system/122723@122723
        CREATE DIRECTORY D_506 as 'd:\ORA11G';
        
        create table RJPAR717(
        parid nchar(7),
        parpname nchar(7),
        partype char(15),
        parfinish date,
        parquan number(6,0))
        organization external(
        DEFAULT DIRECTORY D_506
                access parameters
                (
                    records delimited by newline
                    badfile 'BD_777.BAD'
                    discardfile 'DS_200.DIS'
                    logfile 'LG_647.LOG' 
                    fields terminated by '`'    
                    missing field values are null(
                        parid,parpname,partype,
                        parfinish date "YYYY-MM-DD HH24:MI:SS",
                        parquan
                    )
                )        
        location('DB_613.TXT')--數據文件的名字 
        )reject limit unlimited;
      
--     三、建立數據庫連接,要求以下:
--         1)⑤以system用戶登陸,建立數據庫連接,命名爲「dl_122723」,
--         2)⑤----  目標計算機IP爲對方電腦IP,
---        3)⑤----  目標計算機端口號爲1521,
--         4)⑤----  目標數據庫名爲「D<對方學號後6位>」,
--         5)⑤----  鏈接用戶名爲「system」,
--         6)⑤----  用戶口令爲對方學號後6位,
--         7)⑤以system用戶登陸,爲 v$database@dl_122723 建立私有同義詞,命名爲「sn_122723_data」。
    
    create database link dl_122723 connect to system identified by "122029" using '183.175.10.8:1521/d122029';
    create synonym sn_122723_data for v$database@dl_122723;

 

以上是Oracle DBA學習的總結與收穫,若有問題請留言討論。數據庫

相關文章
相關標籤/搜索