zoukankan      html  css  js  c++  java
  • 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: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学习的总结与收获,如有问题请留言讨论。

  • 相关阅读:
    初学mysql数据库
    类与对象课堂总结
    CNN网络的基本介绍(三)
    CNN网络的基本介绍(二)
    CNN网络的基本介绍(一)
    Android studio界面布局的简单介绍
    Android studio初见及结构分析
    JDBC实现Mysqual的增删改查
    BufferedReader统计TXT文本
    JAVA的异常处理
  • 原文地址:https://www.cnblogs.com/rogersma/p/11003314.html
Copyright © 2011-2022 走看看