首页 / 娱乐 / 电视剧 / 正文

oraclesequence(关于Oracle数据库12c 新特性总结)

放大字体  缩小字体 来源:智能卡上市公司 2026-04-17 17:03  浏览次数:6

概述

参考:

https://docs.oracle.com/database/121/NEWFT/chapter12101.htm#NEWFT348


1、不可见字段(Invisible columns)

实例:

1.1、建表

create table emp (id number,name varchar2(20) invisible);insert into emp(id,name) values(1,'tom');insert into emp(id,name) values(2,'mike');commit;


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

1.3、PLSQL查看



2、相同字段上的多重索引(Multiple indexes on the same set of columns)

实例:


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

2.2、如果要使bitmap索引生效,将btree索引设为隐藏

alter index idx_dup_adr invisible;alter index bitidx_dup_adr visible;


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

DDL log开启之后可在记录的xml文件中找到对应的时间戳以及主机ip。

以下的 DDL 语句可能会记录在 xml 或日志文件中:

  • CREATE|ALTER|DROp|TRUNCATE TABLE
  • DROP USER
  • CREATE|ALTER|DROP PACKAGE|FUNCTION|VIEW|SYNonYM|SEQUENCE

3.1、开启 DDL 日志功能

 ALTER SYSTEM|SESSION SET ENABLE_DDL_LOGGING=TRUE;

3.2、删除表dup

 drop table dup;


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

3.3、查看日志

 $cat  /u01/app/oracle/diag/rdbms/srm/SRM/log/ddl/log.xml 


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">


4、新的备份用户特权

5.1、关闭redo日志的生成

在导入大型表时可以通过增加TRANSFORM选项,关闭redo日志的生成,从而加快导入。

impdp admin/oracle@pdb directory=dump dumpfile=admin.dmp logfile=admin_nolog.log \schemas=admin TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y

5.2、导出将视图转换为表

expdp admin/oracle@pdb directory=dump dumpfile=admin.dmp logfile=admin.log \views_as_tables=view_test



6、完整可传输导出/导入 迁移数据库(Full transportable export/import)

可以使用full transportable export/import功能将整个数据库从一个数据库实例复制到另一个数据库实例。可以使用Data Pump来生成一个导出dump文件,如果需要将这个dump文件传输到目标数据库,然后导入dump文件。另外也可以使用Data Pump跨网络来复制数据库。

这种传输数据库的方法要求直到完成导出dump文件之前所要传输的用户创建的表空间必须设置为只读状态。如果不能满足这个条件那么可以使用备份功能来完成传输表空间。

使用导出dump文件方式来传输数据库必须执行以下步骤:
1)在源数据库上,将每个用户表空间设置为只读状态。在执行导出操作时要确保设置参数transportable=always与full=y。如果源数据库的版本是11.2.0.3或11G之后的版本,那么还必须设置version=12或更高版本号。导出的dump文件包含了存储在用户表空间中对象的元数据与存储在管理表空间(比如system与sysaux)中用户创建对象的元数据与实际数据。

3)将所有用户表空间的所有数据文件传输到目标数据库,如果源平台与目标平台不同,那么需要检查字节编码,可以通过查询v$transportable_platform视图进行查看。如果源平台与目标平台的字节编码不一样,那么使用以下方法来转换数据文件:
(1)使用dbms_file_transfer包中的get_file或put_file过程来传输数据文件。这些过程会将源数据文件自动转换为目标平台的字节编码方式。
(2)使用rman的convert命令将源数据文件转换为目标平台的字节编码方式

5)在目标数据库中导入数据,当导入完成后,用户表空间将会设置为读写状态。

VARCHAR2, NAVARCHAR2 以及 RAW 这些数据类型的 大小可以从 4K 以及 2K 字节扩展至32K 字节。

7.1、关闭cdb

 alter pluggable database SRMPDB close;

7.2、启动数据库到upgrade模式

 startup upgrade;

7.3、在cdb内修改初始化参数MAX_STRING_SIZE

ALTER SESSION SET ConTAINER=CDB$ROOT;ALTER SYSTEM SET max_string_size=extended SCOPE=SPFILE;

7.4、以sys用户执行扩展脚本

 @?/rdbms/admin/utl32k.sql

7.5、重启数据库到normal模式

shutdown immediate;startup;



8、在SQL语句中通过with语句定义函数(12.1.0.2)

如下创建一个函数,用来判断输入数据是否是数字,如果是数字输出Y,如果不是输出N.

with function Is_Number      (x in varchar2) return varchar2 is        Plsql_Num_Error exception;         pragma exception_init(Plsql_Num_Error, -06502);     begin       if (To_Number(x) is NOT null) then         return 'Y';       else         return '';      end if;    exception     when Plsql_Num_Error then       return 'N';    end Is_Number;



9、在线移动并重命名数据文件



10、高级索引压缩(COMPRESS ADVANCED LOW)

场景实验;a表普通索引,b表压缩索引,简单看看段大小


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

10.2、b表创建压缩索引

create table b(id int,object_name varchar2(20));insert into b values(1,'hwb');create index idx_obname_b on b(object_name) COMPRESS ADVANCED LOW;select segment_name,bytes/1024/1024 from dba_segments where segment_name =upper('idx_obname_b');


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

在12C之前,对于PGA内存的管理是使用PGA_AGGREGATE_TARGET参数来控制的,但这个参数只是一个目标值,可以超过设定的大小,无法直接对pga限定大小。

备注:如果使用ASMM,PGA_AGGREGATE_LIMIT大小为2G(初始化参数未超过2G)或者PGA_AGGREGATE_TARGET的2倍(超过2G)


12、RMAN 表级恢复

启用IMO非常简单,12.1.0.2及之后版本下,设置INMEMORY_SIZE 为非0值便可启用IM column store特性。

通常情况下,sys用户下的对象及SYSTEM、SYSAUX表空间上的对象无法使用IMO特性,但通过设置“_enable_imc_sys”隐含参数也可以使用

1)修改INMEMORY_SIZE参数:

2)检查sga参数的设置,确保在设置完inmemroy_size参数之后数据库实例还可以正常启动。如果数据库使用了ASMM,则需要检查sga_target参数。如果使用了AMM,则需要检查MEMORY_TARGET参数,同时也需要检查SGA_MAX_TARGET(或MEMORY_MAX_TARGET)。

3)重启数据库实例

通常情况下,Oracle会决定哪些数据会留在缓冲区中。当没足够的空间时,数据会被写出内存。此外,为了避免大量读取将有用的信息挤出缓冲区,Oracle对有些操作也许会采取绕过缓冲区的措施。Oracle12cR1 (12.1.0.2)引入了全数据缓冲的概念。如果Oracle认为缓冲区大的足以容纳整个数据库,那么,它将会缓冲所有的数据块。此外,可以强制启用全数据缓冲模式。

开启强制全库缓存模式数据库兼容性级别必须是12.0.0或者更高;

14.1、查看是否启用全数据库缓存


关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

Oracle Sharding是Oracle 12.2版本推出的新功能,也称为数据分片,适用于online transaction processing (OLTP). Oracle Sharding基于表分区技术,是一种在数据层将数据水平分区存储到不同的数据库的技术. Sharding可以实现将一个分区表的不同分区存储在不同的数据库中,每个数据库位于不同的服务器,每一个数据库都称为shard, 这些shard组成一个逻辑数据库,称为sharded database (SDB). 这个table也称为sharded table, 每个shard数据库中保存该表的不同数据集(按照sharding key分区), 但是他们有相同的列(columns)。



16、在线把非分区表转为分区表(12.2.0.1)

1)建好分区表然后insert into select 把数据插入到分区表中;

Oracle12cR2版本中提供了一种新特性,一条语句就可以把非分区表转换为分区表,例如:

alter table tablename modifypartition by range (字段) interval (10)( partition p1 values less than (10),partition p2 values less than (20)) online;

在11g以及12C R1,如果通过alter table move降低高水位,表的索引在move之后会失效。在12C R2中可通过独有关键字online子句以及update indexes在线移动表,并且索引不会失效。

 alter table tablename move online;

在Oracle 12C中可以通过rman指定网络服务名方式,在主备库之间恢复数据库文件,有如下几种方式:

  • 数据库级别: restore database from service <服务别名>恢复数据文件、控制文件、参数文件。
  • 表空间: restore tablespace from service <服务别名>
  • 控制文件: restore controlfile to ‘指定的位置’ from service <服务别名>
  • SPFILE: restore spfile from service <服务别名>

通常,在应用程序开发中对表做设计时,不可避免的会对表中的数据做删除处理,如果直接使用硬删除,则不能有效地对已删除的数据进行追踪;如果采用软删除(例如表中增加了删除标记的字段delete_flag),虽然可以对已删除的字段进行追踪,但如果使用未删除的数据时,需要加上delete_flag='N',这种带删除标记的数据对应用来说是可见的,而且占用一定的存储空间。




关于Oracle数据库12c 新特性总结nerror="javascript:errorimg.call(this);">

打赏
0相关评论
热门搜索排行
精彩图片
友情链接
声明:本站信息均由用户注册后自行发布,本站不承担任何法律责任。如有侵权请告知立立即做删除处理。
违法不良信息举报邮箱:115904045
头条快讯网 版权所有
中国互联网举报中心