oracle19c创建表空间,Oracle19c 创建表空间

昨天部署好oracle19c后,用以前oracle11g的笔记来创建表空间遇到了坑。这里写一下总结。

其实之所以遇到坑是因为相比于oracle11g,oracle19c多了一个CDB和PDB的概念(从12C开始出现)。

#确定表空间文件存储目录

[oracle@localhost ~]$ su - oracle

[oracle@localhost ~]$ cd /opt/oracle/oradata/

[oracle@localhost oradata]$ ls

ORCLCDB

[oracle@localhost oradata]$ cd ORCLCDB/

[oracle@localhost ORCLCDB]$ ls

control01.ctl control02.ctl ORCLPDB1 pdbseed redo01.log redo02.log redo03.log sysaux01.dbf system01.dbf temp01.dbf undotbs01.dbf users01.dbf

[oracle@localhost ORCLCDB]$ mkdir anytxn_v2_dev

[oracle@localhost ORCLCDB]$ cd anytxn_v2_dev/

[oracle@localhost anytxn_v2_dev]$ pwd

/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev

#创建表空间文件

[oracle@localhost anytxn_v2_dev]$  sqlplus / as sysdba

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 21 13:38:42 2020

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle.  All rights reserved.

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

SQL> CREATE TEMPORARY TABLESPACE  ANYTXN_DEV_DATA_TEMP TEMPFILE '/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev/anytxn_v2_dev_temp.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

Tablespace created.

SQL> create tablespace ANYTXN_V2_DEV_DATA

logging

datafile  '/opt/oracle/oradata/ORCLCDB/anytxn_v2_dev/anytxn_v2_dev_data.dbf'

size 100M

autoextend on

next 100M maxsize 30480M

autoallocate

extent management local

segment space management auto;  2    3    4    5    6    7    8    9

Tablespace created.

#创建用户

SQL> create user anytxn_v2_dev  identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA  temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT;

create user anytxn_v2_dev  identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA  temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT

*

ERROR at line 1:

ORA-65096: invalid common user or role name

此错误是因为用户名称不符合规范,Oracle 12C开始引入了CDB与PDB的新特性。sqlplus / as sysdba命令默认登陆的是CDB数据库,而CDB数据库中要求所有新建用户用户名必须以c##开头,否则就会报以上错误,在PDB内创建用户则没有此要求

#修改用户名后创建用户

SQL> create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT;

create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT

*

ERROR at line 1:

ORA-65048: error encountered when processing the current DDL statement in

pluggable database ORCLPDB1

ORA-00959: tablespace 'ANYTXN_V2_DEV_DATA' does not exist

原因是在CDB内创建用户分配表空间时,所分配的表空间必须在PDB和CDB中同时存在,否则会报错。如果是在PDB与CDB有相同表空间的情况下给CDB用户分配表空间,则会分配CDB的表空间,给用户PDB的表空间并不受影响。所以要在PDB内创建相同的表空间,然后再回CDB创建用户

查询当前数据库名称

SQL> show con_name

CON_NAME

------------------------------

CDB$ROOT

查询PDB数据库名称

SQL> select name,open_mode from v$pdbs;

NAME

--------------------------------------------------------------------------------

OPEN_MODE

------------------------------

PDB$SEED

READ ONLY

ORCLPDB1

READ WRITE

切换数据库

SQL> alter session set container=ORCLPDB1;

Session altered.

SQL> CREATE TEMPORARY TABLESPACE ANYTXN_DEV_DATA_TEMP TEMPFILE '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/anytxn_v2_dev/anytxn_v2_dev_temp.dbf' SIZE 32M AUTOEXTEND ON NEXT 32M MAXSIZE 20480M EXTENT MANAGEMENT LOCAL;

Tablespace created.

SQL> create tablespace ANYTXN_V2_DEV_DATA

logging

datafile '/opt/oracle/oradata/ORCLCDB/ORCLPDB1/anytxn_v2_dev/anytxn_v2_dev_data.dbf'

size 100M

autoextend on

next 100M maxsize 30480M

autoallocate

extent management local

segment space management auto; 2 3 4 5 6 7 8 9

Tablespace created.

SQL> alter session set container=CDB$ROOT;

Session altered.

SQL> create user c##anytxn_v2_dev identified by "jrx12345" default tablespace ANYTXN_V2_DEV_DATA temporary tablespace ANYTXN_DEV_DATA_TEMP profile DEFAULT;

User created.

SQL> GRANT CONNECT,RESOURCE TO c##anytxn_v2_dev;

Grant succeeded.

如上所示,创建成功,尝试用新用户连接数据库

[oracle@localhost anytxn_v2_dev]$ sqlplus c##anytxn_v2_dev/jrx12345

SQL*Plus: Release 19.0.0.0.0 - Production on Fri Feb 21 20:46:04 2020

Version 19.3.0.0.0

Copyright (c) 1982, 2019, Oracle. All rights reserved.

Last Successful login time: Fri Feb 21 2020 15:33:39 +08:00

Connected to:

Oracle Database 19c Enterprise Edition Release 19.0.0.0.0 - Production

Version 19.3.0.0.0

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值