oracle 12c 13姨
搞了一下oracle 12c。有些体会还是先记下来。
12c搞搞新意思,弄了个CDB(容器数据库,可不是商务中心CBD哟)和PDB(可插拔数据库)。PDB插在CDB里。
简单而言,CDB就是一个数据库实例,而PDB就是实例里一个个的数据库。这跟SQL SERVER是类似的。据说在oracle 11g或以前,一个数据库实例只能承载一个数据库(甚至一个数据库分布于不同的数据库实例中),然后不同的账户对应不同的表空间,在这里,表空间就类似SQL SERVER的数据库。
有位大虾说的好:“其实大家如果对SQL SERVER比较熟悉的话,这种CDB与PDB是不是感觉和SQL SERVER的单实例多数据库架构是一回事呢。像PDB$SEED可以看成是master、msdb等系统数据库,PDBS可以看成用户创建的数据库。而可插拔的概念与SQL SERVER中的用户数据库的分离、附加其实就是那么一回事。看来ORACLE也“抄袭”了一把SQL SERVER的概念,只是改头换面的包装了一番。”
以下是一些操作语句,仅作个人学习记录
1、创建可插拔数据库
可以通过界面来操作,命令行则如下:
--'pdbseed'是模板数据库 pdb$seed 所在路径最后一个文件夹的名称。猜测如果数据库文件存放在系统默认路径下,则可以用最后一个文件夹来作为参数。本来应该是 file_name_convert('模版库路径','新建库路径')
CREATE PLUGGABLE DATABASE HNHY12 ADMIN USER hydg IDENTIFIED BY hydg file_name_convert=('pdbseed','hnhy');
原本我开始是酱紫写的:
CREATE PLUGGABLE DATABASE gdlhjd ADMIN USER coder IDENTIFIED BY coder STORAGE(MAXSIZE 2G MAX_SHARED_TEMP_SIZE 100M) DEFAULT TABLESPACE hydg DATAFILE 'E:\GDLHJD\gdlhjd.dbf' SIZE 25M AUTOEXTEND ON;
这句代码会报错,因为还没有指定file_name_convert
file_name_convert是什么鬼?我找来找去,在网上寻寻觅觅,都找不到确切的答案。隐约得到的大意是,按照模板来生成PDB。这个倒好理解,SQL SERVER里就是这样的,有master、msdb等系统数据库。
file_name_convert=(‘模板路径’,’新PDB所在路径’)
如果路径为oracle默认存放路径,可以简化为
file_name_convert=(‘模板路径所在文件夹名称’,’新PDB所在文件夹名称’)
问题是,既然是系统模板,为啥还要用户指定?我们哪知道是哪个模板?或者模板文件存放在哪个路径?
可以运行以下语句,获得pdb$seed的文件路径
select * from v$dbfile;
细想,oracle的本意是,可以根据模板库来生成新的库,并且这个模版库不一定是系统默认那个。这点比SQL SERVER要灵活。但用途不大,且难度大。
2、激活PDB
SQL> col pdb_name for a20
SQL> select pdb_name,status from dba_pdbs;
SQL> alter pluggable database gdlhjd open;
SQL> select pdb_id,pdb_name,dbid,status,creation_scn from dba_pdbs;
SQL> alter pluggable database HNHY12 open;
有一个问题,就是这样的激活是临时性的,下次数据库重启的时候,PDB只是挂载(mounted)状态,仍然需要手动运行 开启语句。一劳永逸的做法是保存这个开启的状态:
col pdb_name for a20
select pdb_name,status from dba_pdbs;
show pdbs;
alter pluggable database PDBGZFBC open;--开启
show pdbs;
ALTER PLUGGABLE DATABASE PDBGZFBC SAVE STATE;--保存开启状态
3、删除PDB
alter pluggable database hnhy12 close;
drop pluggable database hnhy12 including datafiles;
但好像,物理文件并没删除。
4、为默认用户指定表空间
请注意,以下语句必须切换到相应插拔数据库下:
请注意,以下语句必须切换到相应插拔数据库下:
请注意,以下语句必须切换到相应插拔数据库下:
创建PDB语句中有指定管理(?)账户
CREATE PLUGGABLE DATABASE HNHY12 ADMIN USER hydg IDENTIFIED BY hydg 。。。
而我们通常都是创建用户的时候,同时指定表空间。那么创建PDB之时,这个ADMIN USER是否已经有表空间了呢?似乎并没有。
咋办?
建一个表空间,然后指定给它即可(记得先切换数据库。我们创建数据库的时候,应该是在容器数据库里;那么在这个新建的PDB里建表空间,要先切换到相应的PDB):
create tablespace hydg datafile 'D:\HNHY\db\HNHY12C\hydg.ora' size 500m autoextend on;
ALTER USER hydg DEFAULT TABLESPACE hydg;
参考文章:
ORACLE 12C新特性——CDB与PDB
oracle 12c 13姨的更多相关文章
- Oracle 12c 使用scott等普通用户的方法
目录: 一.前言 二.使用普通用户 三.自动启动PDB 一.前言 最近电脑上安装了oracle 12c数据库,想体验下新特性.安装完后,便像11g一样在dos窗口进行下面的操作: SQL Produc ...
- ORACLE 12C PDB 维护基础介绍
来自:http://www.xifenfei.com/2013/05/oracle-12c-pdb-%E7%AE%A1%E7%90%86%E4%BB%8B%E7%BB%8D1.html CDB和PDB ...
- Oracle 12C RAC的optimizer_adaptive_features造成数据插入超时
问题分析 使用10046事件追踪方式,直接生成上传时的数据库事件日志进行分析,发现主要区别在于以下两条sql语句在每次长时间上传时都有出现,并且执行用户不是上传用户,而是数据库SYS用户. ***** ...
- Oracle 12c Dataguard 数据库恢复
http://allthingsoracle.com/rolling-forward-a-physical-standby-database-using-the-recover-command/ 当主 ...
- Windows 下安装 Oracle 12c 教程
原文 Windows 下安装 Oracle 12c 教程 申明:本文原作者:Jmq 本文给大家带来的是 Oracle 12C 的安装教程. 1.准备 1.1 下载 Oracle 12c 安装程序 ...
- 转 Oracle 12c 使用scott等普通用户的方法
一.前言 最近电脑上安装了oracle 12c数据库,想体验下新特性.安装完后,便像11g一样在dos窗口进行下面的操作: SQL*Plus: Release 12.1.0.2.0 Productio ...
- Oracle 12C 新特性之 恢复表
RMAN的表级和表分区级恢复应用场景:1.You need to recover a very small number of tables to a particular point in time ...
- Oracle 12c(12.1.0.5)OEM server agent 安装配置
注意: 此文档为生产上操作文档,省略了IP,oracle用户server,agent 端至少需要sudo,ping,ssh,创建目录权限. 一.安装要求 1.1. 系统情况一览 IP 数据库 OEM ...
- windows Sever 2012下Oracle 12c安装配置方法图文教程
windows Sever 2012下Oracle 12c安装配置方法图文教程 Oracle 12c安装配置方法图文教程,具体内容如下 1.我们开启虚拟机 2.Windows Sever 2012启动 ...
随机推荐
- (7) 将tomcat HTTP连接器启动在80端口(jsvc使用详解)
让tomcat在80端口上运行 法一: 修改连接器的端口8080为80 <Connector port="8080" protocol="HTTP/1.1" ...
- Go:文件操作
一.打开文件和关闭文件 os包File结构体的两个方法: func Open(name string) (file *File, err error) Open打开一个文件用于读取.如果操作成功,返回 ...
- python3.6以上 asyncio模块的异步编程模型 async await语法
这是python3.6以上版本的用法,本例是python3.7.2编写使用asyncio模块的异步编程模型,生产这消费者,异步生产,用sleep来代替IO等待使用async和await语法来进行描述a ...
- 如何用 CSS 创作一个立体滑动 toggle 交互控件
效果预览 在线演示 按下右侧的"点击预览"按钮在当前页面预览,点击链接全屏预览. https://codepen.io/zhang-ou/pen/zjoOgX 可交互视频教程 此视 ...
- python 装饰器模拟京东登陆
要求: 1.三个页面:主页面(home).书店(book).金融页面(finance)2.有两种登陆方式:主页面和书店页面使用京东账户登陆,金融页面使用微信账户登录2.输入:1 ,进入主页面,以此类推 ...
- 剑指Offer(书):实现单例模式
题目:设计一个类,我们只能生成该类的一个实例. 生成一个单例模式,有下列几种常用解法. 1.双重检查锁. 当运行在多线程环境中,此方法可以正常实现单例模式. public class Singleto ...
- 2016年工作中遇到的问题41-50:Dubbo注册中心奇葩问题,wifi热点坑了
41.获得JSON中的变量.//显示json串中的某个变量,name是变量名function json(json,name){ var jsonObj = eval(json); return jso ...
- 【02】SASS与SCSS
SASS语法 SASS语法也称之为SASS的缩进语法,其目的是担供一个更简洁的语法.对于一些人来说,更多的是基于于CSS的美学吸引力,用SASS来代替SCSS语法. SASS语法和CSS语法不一样,他 ...
- bootspring网站项目,Date类型插入数据库始终比正确时间早一天问题的解决
bug描述 昨天的Date插入不进去问题解决后,一直没发现其实插入的时间一直比正确的时间早一天 输出sql语句,发现insert语句还是对的,不知道为什么插入数据库之后结果就早了一天 https:// ...
- js如何获取点击<li>标签里的值