对于学习Oracle 数据库,应该先要了解Oracle 的框架。它有物理结构(由控制文件、数据文件、重做日志文件、参数文件、归档文件、密码文件组成) ,逻辑结构(表空间、段、区、块),内存分配( SGA 和PGA)算机的实际内存中得以分配,如果实际内存不够再往虚拟内存中写,后台进程(数据写进程、日志写进程、系统监控、进程监控、检查点进程、归档进程、服务进程、用户进程) ,SCN(System Change Number)。
配置共享服务器
--连接信息: -- 协议为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:ora11gcD122723diskbCTN5.LCT', 'd:ora11gcD122723diskdCTN60.LCT', 'd:ora11gcD122723diskiCTN320.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:ora11gcD122723diskb21122723.dro' to group 2, 'd:ora11gcD122723diskd22122723.dro' to group 2, 'd:ora11gcD122723diski23122723.dro' to group 2, 'd:ora11gcD122723diskb31122723.dro' to group 3, 'd:ora11gcD122723diskd32122723.dro' to group 3, 'd:ora11gcD122723diski33122723.dro' to group 3; ALTER DATABASE DROP LOGFILE MEMBER 'D:APP26984ORADATAD122723DRFC3.DDD'; ALTER DATABASE DROP LOGFILE MEMBER 'D:APP26984ORADATAD122723RDFB4.DDD'; ALTER DATABASE ADD LOGFILE GROUP 5 ('d:ora11gcD122723diskb51122723.dro', 'd:ora11gcD122723diskd52122723.dro','d:ora11gcD122723diski53122723.dro')size 60m; --设置联机重做日志组成员存放路径 alter system set DB_CREATE_ONLINE_LOG_DEST_1='d:ora11gcD122723diskb'; alter system set DB_CREATE_ONLINE_LOG_DEST_2='d:ora11gcD122723diskd'; alter system set DB_CREATE_ONLINE_LOG_DEST_3='d:ora11gcD122723diski'; --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:arccD122723diskc mandatory'; alter system set log_archive_dest_2='location=d:arccD122723diskd'; alter system set log_archive_dest_3='location=d:arccD122723diskg'; --查询归档位置 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:APPUSERORADATAD647001USERS01.DBF D:ORA11GCD647001DISKDDC562.FBD --修改表空间数据文件位置 alter tablespace TC_AE7 rename datafile 'D:APPUSERORADATAD647001USERS01.DBF' to 'D:ORA11GCD647001DISKDDC562.FBD'; --联机并修改数据文件大小 alter tablespace TC_AE7 online; alter database datafile 'D:ORA11GCD647001DISKGDDC515.FBD' resize 1524m; --查询块大小 show parameter block_size; --修改自动扩展上限 和 next ALTER DATABASE datafile 'D:ORA11GCD647001DISKDDC562.FBD' AUTOEXTEND ON NEXT 9175040 MAXSIZE 700M; ALTER DATABASE datafile 'D:ORA11GCD647001DISKDDC562.FBD' AUTOEXTEND off; --不可脱机的表空间 shutdown immediate startup mount --修改 alter database rename file 'D:APPUSERORADATAD647001UNDOTBS01.DBF' to 'D:ORA11GCD647001DISKBFC2.FBD'; alter database datafile 'D:ORA11GCD122723DISKIFC175.FBD' resize 700M; --临时表空间 select * FROM DBA_TEMP_FILES; alter database tempfile 'D:ORA11GCD647001DISKDFC846.FBD' resize 500m; ALTER DATABASE tempfile 'D:ORA11GCD647001DISKDFC846.FBD' AUTOEXTEND ON NEXT 170m MAXSIZE 1350M;
掌握使用常规办法创建普通表空间及添加数据文件的方法,理解表空间涉及参数的意义。
掌握使用OMF机制创建普通表空间及添加数据文件的方法,理解使用OMF机制给表空间管理带来的方便。
掌握创建非标准块大小的表空间的方法,理解创建特殊块大小表空间的思路。
--db_block_size 8192 --D:ORA11GCD122723DISKB --D:ORA11GCD122723DISKD --D:ORA11GCD122723DISKI --数据字典管理 dictionary --临时 temporary --表空间1 --创建表空间 create tablespace TC_417 datafile 'D:ORA11GCD122723DISKBBCDBG.FBD' size 60M autoextend off PERMANENT extent management local uniform size 270336 segment space management auto; --像表空间添加数据文件 ALTER TABLESPACE TC_417 ADD DATAFILE 'D:ORA11GCD122723DISKDBCBFEG.FBD' size 180M autoextend on next 16384000 maxsize 790M; --表空间2(OMF) ALTER SYSTEM SET db_create_file_dest = 'D:ORA11GCD122723DISKI'; 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:ORA11GCD122723DISKB'; --块大小 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:ORA11GCD122723DISKD'; --块大小 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:ORA11GCD122723DISKI'; --块大小 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:ORA11GCD122723DISKI'; --块大小 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:ORA11GCD122723DISKB TC_417 1 --D:ORA11GCD122723DISKD TC_417 1 --D:ORA11GCD122723DISKI TF_843 2 --D:ORA11GCD122723DISKB TSC_63 3 --D:ORA11GCD122723DISKD TSC_612 4 --D:ORA11GCD122723DISKI TSC_610 5 --D:ORA11GCD122723DISKI TSC_4 6 --biao5 ALTER SYSTEM SET db_create_file_dest = 'D:ORA11GCD122723DISKI'; 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:ORA11GCD122723DISKI'; --创建还原表空间 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:ORA11GCD647001DISKG'; --创建还原表空间 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:ORA11GCD647001DISKG'; 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:ORA11GCD647001DISKG'; 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:ORA11GCD647001DISKD'; 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:ORA11GCD647001DISKG'; --创建还原表空间 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:ora11gcD122723diskb ecovery'; --闪回时间 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:ORA11GCD122723DISKB --D:ORA11GCD122723DISKD --D:ORA11GCD122723DISKI --创建表空间 drop tablespace TCI_284 including contents and datafiles; alter system set db_4k_cache_size=4k; alter system set db_create_file_dest ='D:ORA11GCD122723DISKB'; 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:ORA11GCD122723DISKI'; 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:ORA11GCD122723DISKD'; 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、管理缺省的配置文件及创建口令校验函数,要求如下: -- 1)修改配置文件DEFAULT,设置口令校验函数为NULL,其它配置都为UNLIMITED, -- 2)创建第1个口令校验函数,名称为“VF_A31”, -- 3)创建第2个口令校验函数,名称为“VF_DD2”, -- 4)创建第3个口令校验函数,名称为“VF_DBE”。 -- -- 找到口令函数所在文件,修改运行就可以了 -- 2、创建第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; -- 3、创建第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; -- 4、创建第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; --- 5、创建和管理第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; -- 6、创建和管理第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; -- 7、创建和管理第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、掌握角色的创建和管理方法,理解角色的应用场景。 -- 4、掌握创建序列、同义词的方法,理解它们的应用场景。 --考核内容 -- 1、创建和管理外部验证用户,要求如下: -- 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; -- 2、管理系统权限和对象权限,要求如下: -- -- 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 -- 3、创建和管理角色,要求如下: -- 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; -- 4、创建序列、同义词,要求如下: -- 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、管理审计,要求如下: -- 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; -- 2、创建外部表,要求如下: -- 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; -- 3、创建数据库链接,要求如下: -- 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学习的总结与收获,如有问题请留言讨论。