Oracle12c 使用总结

时间:2021-09-06 04:43:33

/*创建临时表空间 */
create temporary tablespace BBB tempfile ‘D:APPoracleoradataorclBBB.dbf‘ size 500m autoextend on next 500m maxsize 20480m extent management local;

/*创建数据表空间 */
create tablespace CCC logging datafile ‘D:APPoracleoradataorclCCC.dbf‘ size 500m autoextend on next 500m maxsize 20480m extent management local;

/*创建用户并指定表空间*/
create user c##st identified by p123 default tablespace CCC temporary tablespace BBB; --用户名必须添加c##

/*给用户授予权限 */
grant connect,resource,dba to c##st;

/*创建数据泵目录*/
create or replace directory dp_dir as ‘D:oracle‘;

/*数据泵导入dmp文件 */
impdp c##pension_st/[email protected] directory=dp_dir dumpfile=ORCL.DMP logfile=ORCL.log;

/*数据泵导入dmp文件需要切换用户和表空间*/
impdp c##st/[email protected] directory=dp_dir dumpfile=ORCL.DMP remap_tablespace=AAA:CCC remap_schema=AA:c##st logfile=ORCL.log; -AAA是dmp文件来源的表空间,AA是dmp文件来源的数据库用户名

/*删除表空间*/
drop tablespace CCC including contents and datafiles;

/*删除临时表空间*/
drop tablespace BBB including contents and datafiles;

/*查看使用表空间*/
select default_tablespace,temporary_tablespace from DBA_USERS;

/*创建用户时遇到ORA-65048*/
shoe pdbs
alter session set container=orclpdb; --切换会话
create tablespace CCC logging datafile ‘D:APPoracleoradataorclCCC01.dbf‘ size 500m autoextend on next 500m maxsize 20480m extent management local;
create temporary tablespace BBB tempfile ‘D:APPoracleoradataorclBBB01.dbf‘ size 500m autoextend on next 500m maxsize 20480m extent management local;
alter session set container=cdb$root;

/*数据泵导入时遇到ORA-12154*/
如果先装数据库的客户端再装数据库的服务端,那么数据库的服务端将不会生成tnsnames.ora文件。
使用数据库工具Net Manager配置服务信息,保存网络配置本地就会在服务端生成tnsnames.ora文件,修改环境变量,将服务端的环境变量放到客户端之前,否则每增加一个服务就得把客户端的tnsnames.ora文件信息拷贝到服务端中。

/*文件夹中多文件名称导出生成多处理脚本*/
创建一个Bat脚本,输入命令:
(1)@echo off
dir /s/b *.* > b.txt --输出的文件名
exit
(2)将输出的内容拷贝到Excel中,选择数据-分列-固定宽度,切分单元格。
(3)设置一列内容为@@ 路径,两列合并
(4)粘贴到sql文件中。

/*PLSQL命令窗口执行脚本*/
进入PLSQL的命令窗口,输入命令:
SQL>set serveroutput on;
SQL>@D:QYNJdoc 4开发管理SQL脚本管理全量脚本Bat.sql -- 要执行的脚本路径

/*oracle 12c中的CDB和PDB*/
CDB与PDB是Oracle 12C引入的新特性,在ORACLE 12C数据库引入的多租用户环境(MultitenantEnvironment)中,允许一个数据库容器(CDB)承载多个可插拔数据库(PDB)。
在ORACLE12C之前,实例与数据库是一对一或多对一关系(RAC):即一个实例只能与一个数据库相关联,数据库可以被多个实例所加载。而实例与数据库不可能是一对多的关系。当进入ORACLE 12C后,实例与数据库可以是一对多的关系。

在CDB中可以有多个PDB,其中存在一个root根容器(PDB$ROOT)、一个种子容器(PDB$SEED)和多个PDBS。所有的PDB共用一个硬件系统资源、sga和pga、redo、临时段、控制文件、参数文件、还原段(还可对每个PDB单独指定)。

PDB$ROOT:根容器用来做所有容器的跟,用来对每个PDB进行统一管理,sqlplus / as sysdba连接进来默认是连接的根容器,需要切换到其他的PDB容器才可以对单独的PDB操作。其中有 system数据文件、sysaux数据文件、(undo数据文件、temp数据文件、redo、控制文件)。一般不存放生产数据文件

PDB$SEED:种子容器作为插入PDB的模板而存在,每个CDB都有一个种子容器,且不可对其中对象进行修改。其中有 system数据文件、sysaux数据文件、其他数据文件。

PDB:新插入容器,该容器用来存放数据库。其中有 system数据文件、sysaux数据文件、其他数据文件。12c中可以插入多个容器进行统一管理,来减少BDA的工作量。其中的数据库可以插入或拔出。

用户:12c中PDB$ROOT中的普通目录可以通过权限分配来访问一个或多个指定的PDB容器,最大权限用户是sysdba。其中PDB也可单独创建普通用户来管理该容器的数据库。

PDB资源管理:12c中将多个数据库运行在一个硬件资源上,CDB性能上得到优化。在CDB中为每个PDB确定使用CPU最低份额,CDB会按照一个PDB份额/分配的总份额数*100%,来保证PDB最低份额数。

查询该容器是CDB 还是非CDB:select name,cdb,open_mode,con_id from v$database;

查看当前容器:show con_name;

查看所创建的PDB:show pdbs;

创建一个新PDB:create pluggable database pdb1 admin user pdb1 identified by pdb1 file_name_convert=(‘/u01/app/oracle/oradata/orcl/pdbseed/‘,‘/u01/app/oracle/oradata/orcl/pdb1/‘);

启动一个创建好的PDB: alter pluggable database pdb1 open;