Oracle DBA 学习总结
对于学习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:\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;
- --
- --创建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; --
- show parameter block_size; --
- --创建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;
- --
- --切换还原表空间
- 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';
- --
- 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;
- --
- --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;
- --
- --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;
- --
- --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;
- --
- --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;
- --
- --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学习的总结与收获,如有问题请留言讨论。
Oracle DBA 学习总结的更多相关文章
- Oracle DBA学习篇之SQL_TRACE
SQL_TRACE ; ; set serveroutput on; alter session set sql_trace=true; select count(*) from firefox; a ...
- Oracle DBA的学习(笔记)
1.软件任务分组:系统分析师.系统设计师.程序员.测试人员.开发dba.系统架构师.实施人员. 2.常用设计图:活动图.用例图.类图.序列图. 2010-9-15(dba学习) 1.1 Oracle产 ...
- Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据
Oracle DBA的神器: PRM恢复工具,可脱离Oracle软件运行,直接读取Oracle数据文件中的数据 PRM 全称为ParnassusData Recovery Manager ,由 诗檀软 ...
- Oracle RAC学习笔记:基本概念及入门
Oracle RAC学习笔记:基本概念及入门 2010年04月19日 10:39 来源:书童的博客 作者:书童 编辑:晓熊 [技术开发 技术文章] oracle 10g real applica ...
- Oracle DBA面试突击题
一份ORACLE DBA面试题 一:SQL tuning 类 1:列举几种表连接方式 答: Oracle的多表连接算法有Nest Loop.Sort Merge和Hash Join三大类,每一类又可以 ...
- oracle Dba之路
如何快速的成为一个合格的 DBA? 2010年11月03日 11:25:00 阅读数:584 原文来自:http://topic.csdn.net/u/20101031/21/A78B2EA1-6F2 ...
- Oracle RMAN 学习:恢复
Oracle RMAN 学习:恢复 6 rman恢复 Rman中的恢复对应restore,recover Restore,数据修复,利用备份集的数据文件来替换已损坏的数据文件或将其恢复到另外一个位置, ...
- Oracle基础学习笔记
Oracle基础学习笔记 最近找到一份实习工作,有点头疼的是,有阶段性考核,这...,实际想想看,大学期间只学过数据库原理,并没有针对某一数据库管理系统而系统的学习,这正好是一个机会,于是乎用了三天时 ...
- Asp.Net MVC4 + Oracle + EasyUI 学习 序章
Asp.Net MVC4 + Oracle + EasyUI 序章 -- 新建微软实例 本文链接:http://www.cnblogs.com/likeli/p/4233387.html 1. 简 ...
随机推荐
- 八十九:redis之python操作redis
安装:pip install redis 连接 字符串操作 插入值 获取 删除值 列表操作,更多操作见源码 添加 获取 集合操作,更多操作见源码 哈希操作,更多操作见源码 事务操作:cache.pip ...
- c# Selenium ExpectedConditions 不存在
Selenium中的显示等待指的是,等待某一元素出现或者等待页面加载完成后,才执行下一步.需要用到WebDriverWait类. 例如: , , )); var element = wait.Unti ...
- Linux 源码安装nginx
编译参数详解:https://www.cnblogs.com/houyongchong/p/compileArgs.html 配置参数详解:https://www.cnblogs.com/houyon ...
- JWT With NetCore WebApi
1 什么是JWT? JWT是一种用于双方之间传递安全信息的简洁的.URL安全的表述性声明规范.JWT作为一个开放的标准(RFC 7519),定义了一种简洁的,自包含的方法用于通信双方之间以Json对象 ...
- spring boot密码管理
1.引入依赖 <dependency> <groupId>com.github.ulisesbocchio</groupId> <artifactId> ...
- Python爬虫学习==>第十一章:分析Ajax请求-抓取今日头条信息
学习目的: 解决AJAX请求的爬虫,网页解析库的学习,MongoDB的简单应用 正式步骤 Step1:流程分析 抓取单页内容:利用requests请求目标站点,得到单个页面的html代码,返回结果: ...
- postman关联及读取文件进行参数化
场景:登录后获取响应数据中的key.token..以便在接下来的接口调用.... 一.发送请求.查看响应 二.在Tests里使用响应的js代码来使其成为全局变量......... >>&g ...
- MSSQL 索引
INCLUDE索引作用:减少 key lookup所带来的性能开销. 效率主要体现在覆盖查询(建的索引为覆盖索引),在查询时把SELECT显示列放在INCLUDE里作为非索引健列,不用于查询只显示在结 ...
- mysql的root密码忘了
忘记密码:https://www.cnblogs.com/ryanzheng/p/9348723.htmlmy.cnf的[mysqld]下加:skip-grant-tables重启 mysql -ur ...
- Docker 运行的 应用程序无法连接Oracle数据库的解决办法
1. 最近公司使用docker化部署运行 app 发现一个部门的 多数据源取数的功能连接不上 oracle数据库 报错提示为: 2. 公司平台部同事给出两个解决方案: https://blog.cs ...