Oracle 12C的新特性(1)--备份的增强
我们还记得之前的版本8i,9i里的i是代表internet,10g, 11g里的g是代表grid,而12c里面的C是cloud,也就是代表云计算的意思。因此12C相对于11g还是有一些功能的添加和增强的。不过我觉得最大的不同就是整个数据库的架构跟以前很不一样了.以前是一个instance对应一个database,然后database下面又有不同的schema,而shcema和用户也是一一对应的关系。而12 c中一个instance 下面有多个独立的database了。新引入了CDB和PDB的概念,个人认为更像MS SQL Server了。而Oracle中创建用户还跟以前类似.里面的database之间可以完成独立,不像sql server中那么有关联. oracle中不同的database要互相访问还得通过db link访问.所以其实针对普通用户的一般操作来说跟以前是一样的,面对的还是只有一个database,只不过从DBA的角度来讲才很不一样,要维护多个database了。
用一张网上抠来的图看下吧:)
言归正传 12C的新特性总结:
1.三个新的系统用户SYSBACKUP、SYSDG、SYSKM
SYSBACKUP
对于RMAN备份在12cR1 之前备份用户需要授权SYSDBA, 没有较好的职责安全分享方案,在12C R1版本中引入了SYSBACKUP允许用户使用RMAN或SQLPLUS 备份恢复,但无权查看业务数据和其它越权操作。如备份登录方式是:
rman target '" / as sysbackup"'
SYSDG
与RMAN类似,Oracle还在版本12cR1中引入了一个名为SYSDG的专用权限,可以与Data Guard Broker和DGMGRL命令行界面一起使用,负责DATAGUARD相关的操作。
SYSKM
还有一个成员SYSKM,将负责所有TDE(Transparent Data Encryption)和Data Vault相关的管理操作。
SYSRAC
无法向用户授予SYSRAC权限,它只是用于Oracle Clusterware连接到数据库时的Oracle AGENT用它使用操作系统身份验证的一种方式,如srvctl 工具。 同时密码文件中也不包含该权限。
连接时的语法:
CONN[ECT] [logon] [AS {SYSOPER | SYSDBA | SYSBACKUP | SYSDG | SYSKM | SYSRAC}]
CONNECT / AS SYSDBA
CONNECT / AS SYSOPER
CONNECT / AS SYSBACKUP
CONNECT / AS SYSDG
CONNECT / AS SYSKM
注:SYSBACKUP, SYSDG, SYSKM, SYSRAC 用户不可以删除。
2.数据泵的增强:
关闭redo日志的生成
在导入大型表时可以通过增加TRANSFORM选项,关闭redo日志的生成,从而加快导入。
impdp test/oracle@test directory=dump dumpfile=test.dmp logfile=test.log schemas=test TRANSFORM=DISABLE_ARCHIVE_LOGGING:Y
导出将视图转换为表
expdp test/oracle@test directory=dump dumpfile=test.dmp logfile=test.log views_as_tables=view_test
3.RMAN 表级恢复:
在Oracle 12C之前RMAN只能在数据库级(数据文件)、表空间级进行完全恢复或者不完全恢复。如果是某张表发生了截断或者删除,可通过闪回表或者闪回数据库快速恢复,或者是dmp文件。然而到了12C,RMAN可以通过备份将数据表恢复到故障时间点,而其他表不受影响。其过程是在恢复过程中创建辅助实例,还原系统数据文件(system、sysaux、undotbs),基于redo或者archivelog应用,最后通过数据泵导入目标shemas,恢复之后自动创建的辅助实例会被自动删除。
RMAN> backup as compressed backupset database format '/u01/rman/%d_%T_%U.bak';
Starting backup at 2018-08-13 12:48:14
Finished backup at 2018-08-13 12:49:25
RMAN> RECOVER TABLE test.t1 of pluggable database orcl2
UNTIL time "to_date('2019-11-04 12:52:03','yyyy-mm-dd hh24:mi:ss')"
#指定时间drop之前(12:52:03)
AUXILIARY DESTINATION '/u01/inst'
#auxiliary为oracle自动创建辅助实例的目录
datapump destination '/u01/dump';
#datapump为oracle恢复数据之后再导入到原数据库
DUMP FILE 'tablename.dmp'
#(可选)NOTABLEIMPORT 此选项避免自动导入表
(1).12c的RMAN表级恢复可以恢复到被删除之前的任意时间点。假设表在drop之前,执行了truncate操作,表删除之后,可以恢复到truncate之前,其他表数据无影响。
(2).表级恢复只能用cdb RMAN备份。
(3).恢复期间会自动创建辅助实例,会还原system,sysaux,undo表空间,恢复目录需要有充足空间,最后通过数据泵把数据导入到原数据库。
4.在线移动并重命名数据文件
当数据文件正在传输时,终端用户可以执行查询,DML 以及 DDL 方面的任务.
(1)移动数据文件并且重命名
SQL> alter database move datafile '/u01/app/oracle/oradata/orcl/users02.dbf' to '/oradata/users02.dbf';
备注:容器数据只能移动自己所属数据文件
(2)文件系统移动到ASM磁盘
SQL> alter database move datafile '/oradata/users02.dbf' to '+DATA/orcl/datafile/users02.dbf';
备注:如果rac环境中数据文件创建在某个节点,移动数据文件之后,需要在另外节点重启cdb。