zoukankan      html  css  js  c++  java
  • oracle 12c 学习

    1、不可见字段

    SQL> create table ht (a number,b varchar2(20) invisible);
    
    Table created.
    
    SQL> desc ht;
     Name					   Null?    Type
     ----------------------------------------- -------- ----------------------------
     A						    NUMBER
    
    SQL> set colinvisible on
    SQL> desc ht;
     Name					   Null?    Type
     ----------------------------------------- -------- ----------------------------
     A						    NUMBER
     B (INVISIBLE)					    VARCHAR2(20)
    
    SQL> insert into ht values(1,'beijing');
    insert into ht values(1,'beijing')
                *
    ERROR at line 1:
    ORA-00913: too many values
    SQL> insert into ht (a,b) values(1,'beijing');
    
    1 row created.
    
    SQL> commit;
    
    Commit complete.
    
    SQL> select * from ht;
    
    	 A
    ----------
    	 1
    
    SQL> select a,b from ht;
    
    	 A B
    ---------- --------------------
    	 1 beijing

    SQL> insert into ht1 values(1,'beijing');

    1 row created.

      不可见字段的表可以强制开发人员select 语句时指定字段不能用*代替,和普通表对比起来 插入数据时必须指定字段加大拉开发的代码量。

    2、在同一列上创建不同功能索引

    SQL> create index idx_ht_b1 on ht(b);  
    
    Index created.
    
    SQL> create index idx_ht_b2 on ht(upper(b));
    
    Index created.
    

    3、ddl 语句日志记录

    SQL> show parameter enable_ddl_logging;
    
    NAME				     TYPE	 VALUE
    ------------------------------------ ----------- ------------------------------
    enable_ddl_logging		     boolean	 TRUE
    
    SQL> create table ht2 as select * from ht1;
    
    Table created.
    
    SQL> drop table ht2 purge;
    
    Table dropped.
    
    [qdtais]@ht02[/u01/app/db/diag/rdbms/qdtais/qdtais/log/ddl]$tail -10 log.xml 
     <txt>create table ht2 as select * from ht1
     </txt>
    </msg>
    <msg time='2019-12-05T18:27:42.271-05:00' org_id='oracle' comp_id='rdbms'
     msg_id='opiexe:4850:2946163730' type='UNKNOWN' group='diag_adl'
     level='16' host_id='ht02' host_addr='fe80::f9f1:ad02:b6a6:ea2f%enp0s3'
     pid='4338'>
     <txt>drop table ht2 purge
     </txt>
    </msg>
    

    4、dba保护增强--备份可以分配权限

    SQL> grant sysbackup to ht;
    
    Grant succeeded.
    
    SQL> exit
    Disconnected from Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production
    Version 19.3.0.0.0
    [qdtais]@ht02[/home/oracle]$rman target ht/ht
    
    Recovery Manager: Release 19.0.0.0.0 - Production on Thu Dec 5 18:36:46 2019
    Version 19.3.0.0.0
    
    Copyright (c) 1982, 2019, Oracle and/or its affiliates.  All rights reserved.
    
    connected to target database: QDTAIS (DBID=1154019395)
    
    RMAN> 
    

    5、expdp/impdp 增强

    impdp 避免产生大量日志
    TRANSFORM
    Metadata transform to apply to applicable objects.
    Valid keywords are: DISABLE_ARCHIVE_LOGGING, INMEMORY, INMEMORY_CLAUSE,
    LOB_STORAGE, OID, PCTSPACE, SEGMENT_ATTRIBUTES, SEGMENT_CREATION,
    STORAGE, and TABLE_COMPRESSION_CLAUSE.
    
    expdp时把视图转化为表
    VIEWS_AS_TABLES
    Identifies one or more views to be exported as tables.
    For example, VIEWS_AS_TABLES=HR.EMP_DETAILS_VIEW
    

    6、varchar2  nvarchar2 数据字段长度扩大到32K,11g以前只有4K,存大文本时避免使用 clob blob,数据库需要重启。

    SQL> show parameter max_string_size;

    NAME TYPE VALUE
    ------------------------------------ ----------- ------------------------------
    max_string_size string STANDARD

    SQL> ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;

    System altered.

    SQL> startup upgrade
    ORACLE instance started.

    Total System Global Area 1644163728 bytes
    Fixed Size 8897168 bytes
    Variable Size 637534208 bytes
    Database Buffers 989855744 bytes
    Redo Buffers 7876608 bytes
    Database mounted.
    Database opened.
    SQL> @?/rdbms/admin/utl32k.sql

    7、 在线移动并重命名数据文件,move数据文件时不影响用户ddl、dml,可以把omf文件转化为正常文件,也可以直接move到asm磁盘组

        FILE# NAME
    ---------- --------------------------------------------------------------------------------
    	 1 /u01/app/db/oradata/QDTAIS/system01.dbf
    	 3 /u01/app/db/oradata/QDTAIS/sysaux01.dbf
    	 4 /u01/app/db/oradata/QDTAIS/undotbs01.dbf
    	 5 /u01/app/db/oradata/QDTAIS/datafile/o1_mf_ht_gym38cqq_.dbf
    	 7 /u01/app/db/oradata/QDTAIS/users01.dbf
    
    SQL> alter database move datafile 5 to '/home/oracle/o1_mf_ht_gym38cqq_.dbf';
    alter database move datafile 5 to '/home/oracle/o1_mf_ht_gym38cqq_.dbf'
    *
    ERROR at line 1:
    ORA-01276: Cannot add file /home/oracle/o1_mf_ht_gym38cqq_.dbf.  File has an Oracle Managed Files file name.
    
    SQL> alter database move datafile 5 to '/home/oracle/*';
    
    Database altered.
    
    SQL> alter database move datafile 5 to '/u01/app/db/oradata/QDTAIS/ht01.dbf';
    
    Database altered.
    
    SQL> select file#,name from v$datafile;
    
         FILE# NAME
    ---------- --------------------------------------------------------------------------------
    	 1 /u01/app/db/oradata/QDTAIS/system01.dbf
    	 3 /u01/app/db/oradata/QDTAIS/sysaux01.dbf
    	 4 /home/oracle/undotbs01.dbf
    	 5 /u01/app/db/oradata/QDTAIS/ht01.dbf
    	 7 /u01/app/db/oradata/QDTAIS/users01.dbf
    

    8、高级索引压缩及表压缩,以前这些特性只在oracle亲儿子exadata上使用

    create index idx_obname_t3 on t3(object_name) COMPRESS ADVANCED LOW;

     

     

  • 相关阅读:
    IaaS、PaaS、SaaS
    hyper-V 配置
    解决linux下创建用户时出现Creating mailbox file: File exists
    iframe层级关系调用
    js,jq新增元素 ,on绑定事件无效
    js中!和!!的区别与用法
    form表单禁止button 提交
    Thinkphp5终端创建控制器和模型
    TP5的目录常量和路径
    sublime安装package controlller
  • 原文地址:https://www.cnblogs.com/omsql/p/11993133.html
Copyright © 2011-2022 走看看