码迷,mamicode.com
首页 > 数据库 > 详细

oracle 12c 学习

时间:2019-12-06 09:41:36      阅读:104      评论:0      收藏:0      [点我收藏+]

标签:rds   startup   lob   指定字段   重命名   创建   学习   div   segment   

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上使用

SQL> SELECT table_name, compression, compress_for FROM user_tables;
 
TABLE_NAME       COMPRESSION   COMPRESS_FOR
---------------- ------------  -----------------
T1               DISABLED
T2               ENABLED       BASIC
T3               ENABLED       ADVANCED
T4               ENABLED       QUERY HIGH
T5               ENABLED       ARCHIVE LOW

  

 

 

oracle 12c 学习

标签:rds   startup   lob   指定字段   重命名   创建   学习   div   segment   

原文地址:https://www.cnblogs.com/omsql/p/11993133.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!