oracle数据库常用命令一详细版,带图

创建PDB2
CREATE PLUGGABLE DATABASE pdb2 ADMIN USER pdb_adm IDENTIFIED BY aabb123
FILE_NAME_CONVERT=(‘D:\app\Administrator\oradata\CDB1\pdbseed’,
‘D:\app\Administrator\oradata\CDB1\pdb2’);
在这里插入图片描述
创建PDB3
ALTER SESSION SET PDB_FILE_NAME_CONVERT=‘D:\app\Administrator\oradata\CDB1\pdbseed’,
‘D:\app\Administrator\oradata\CDB\pdb3’;
CREATE PLUGGABLE DATABASE pdb3 ADMIN USER pdb_adm IDENTIFIED BY aabb123;
在这里插入图片描述
查看存在PDB
SELECT pdb_name, status FROM dba_pdbs;
在这里插入图片描述
SELECT name, open_mode FROM v$pdbs;
在这里插入图片描述
show pdbs
在这里插入图片描述
将创建状态为“ NEW”的PDB。必须以READ WRITE模式至少打开一次它们,才能完成PDB到CDB的集成
ALTER PLUGGABLE DATABASE pdb2 OPEN READ WRITE;
ALTER PLUGGABLE DATABASE pdb3 OPEN READ WRITE;
在这里插入图片描述
SELECT pdb_name, status FROM dba_pdbs;
在这里插入图片描述

连接到CDB和PDB

SELECT name, pdb FROM v$services;
在这里插入图片描述
在这里插入图片描述
SHOW CON_NAME 显示当前容器的名称
在这里插入图片描述
SHOW CON_ID 显示当前容器的ID
在这里插入图片描述
SELECT SYS_CONTEXT(‘USERENV’, ‘CON_NAME’)FROM dual;
在这里插入图片描述
SELECT SYS_CONTEXT(‘USERENV’, ‘CON_ID’)FROM dual;
在这里插入图片描述
ALTER SESSION SET CONTAINER = pdb1; 在容器之间切换
SHOW CON_NAME
ALTER SESSION SET CONTAINER = pdb1;
SHOW CON_NAME
在这里插入图片描述

SHOW CON_NAME
ALTER SESSION SET CONTAINER=cdb$root;
SHOW CON_NAME
在这里插入图片描述
增加TNS
conn sys/aabb123@pdb3
在这里插入图片描述
在这里插入图片描述
PDB3 =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = zhu)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = pdb3)
)
)
必须每个pdb都配置TNS
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

CDB和PDB的启动和关闭

ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE; 关闭所有
show pdbs
ALTER PLUGGABLE DATABASE ALL CLOSE IMMEDIATE;
show pdbs
在这里插入图片描述
ALTER PLUGGABLE DATABASE ALL OPEN; 打开所有
show pdbs
ALTER PLUGGABLE DATABASE ALL OPEN;
show pdbs
在这里插入图片描述
ALTER PLUGGABLE DATABASE pdb3, pdb2 CLOSE IMMEDIATE; 关闭pdb3和pdb2
show pdbs
ALTER PLUGGABLE DATABASE pdb3, pdb2 CLOSE IMMEDIATE;
show pdbs
在这里插入图片描述
ALTER PLUGGABLE DATABASE pdb3, pdb2 OPEN READ ONLY FORCE; 只读打开PDB
show pdbs
ALTER PLUGGABLE DATABASE pdb3, pdb2 OPEN READ ONLY FORCE;
show pdbs
在这里插入图片描述
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE; 除了PDB1剩下的关闭
show pdbs
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 CLOSE IMMEDIATE;
show pdbs
在这里插入图片描述
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN; 除了PDB1剩下的打开
show pdbs
ALTER PLUGGABLE DATABASE ALL EXCEPT pdb1 OPEN;
show pdbs
在这里插入图片描述
SHUTDOWN IMMEDIATE; 关闭数据库
在这里插入图片描述
STARTUP; 打开数据库
在这里插入图片描述
在次查看,PDB已经关闭了*
在这里插入图片描述
设置自动启动PDB
在这里插入图片描述
SELECT con_name, instance_name, state FROM dba_pdb_saved_states;
在这里插入图片描述
ALTER PLUGGABLE DATABASE pdb1 SAVE STATE;
在这里插入图片描述
在这里插入图片描述
修改pdb2 pdb3
在这里插入图片描述
关闭打开测试,查看结果
SHUTDOWN IMMEDIATE;
STARTUP;
show pdbs
在这里插入图片描述
在这里插入图片描述

表空间

CDB中的表空间创建
show CON_NAME
CREATE TABLESPACE lh
DATAFILE ‘D:\app\Administrator\oradata\CDB1\lh01.dbf’ SIZE 1M
AUTOEXTEND ON NEXT 1M
在这里插入图片描述
在这里插入图片描述
增加数据文件
ALTER TABLESPACE lh ADD
DATAFILE ‘D:\app\Administrator\oradata\CDB1\lh02.dbf’ SIZE 1M
AUTOEXTEND ON NEXT 1M;
在这里插入图片描述
在这里插入图片描述
管理PDB中的表空间
连接到PDB
ALTER SESSION SET CONTAINER = pdb3;
SHOW CON_NAME
在这里插入图片描述
创建表空间和数据文件
CREATE TABLESPACE lh
DATAFILE ‘D:\app\Administrator\oradata\CDB\PDB3\lh01.dbf’ SIZE 1M
AUTOEXTEND ON NEXT 1M;

ALTER TABLESPACE lh ADD
DATAFILE ‘D:\app\Administrator\oradata\CDB\PDB3\lh02.dbf’ SIZE 1M
AUTOEXTEND ON NEXT 1M;
在这里插入图片描述
SELECT name FROM v$datafile; 表空间的数据文件
在这里插入图片描述

SELECT name FROM v$tempfile; 临时表空间的数据文件
在这里插入图片描述
创建临时表空间组
CREATE TEMPORARY TABLESPACE temp2
TEMPFILE ‘D:\app\Administrator\oradata\CDB\pdb3\temp02.dbf’ SIZE 5M
AUTOEXTEND ON NEXT 1M;
在这里插入图片描述
SELECT tablespace_name FROM dba_tablespaces;
在这里插入图片描述
删除临时表间
DROP TABLESPACE temp2 INCLUDING CONTENTS AND DATAFILES;
在这里插入图片描述
在这里插入图片描述
设置默认表空间和默认临时表空间
ALTER DATABASE DEFAULT TABLESPACE lh;
ALTER DATABASE DEFAULT TEMPORARY TABLESPACE temp2;
在这里插入图片描述

用户和角色

创建通用用户
当前容器必须是根容器。
普通用户的用户名必须以“ C ##”或“ c ##”为前缀,并且只能包含ASCII或EBCDIC字符。
用户名在所有容器中必须唯一。
您可以指定该CONTAINER=ALL子句,也可以忽略它,因为当当前容器为根时,这是默认设置。
ALTER SESSION SET CONTAINER=cdb$root;
show CON_name
CREATE USER c##test_lh1 IDENTIFIED BY aabb123 CONTAINER=ALL;
GRANT CREATE SESSION TO c##test_lh1 CONTAINER=ALL;
在这里插入图片描述
查看创建的用户
在这里插入图片描述

不加CONTAINER=ALL
ALTER SESSION SET CONTAINER=cdb$root;
show CON_name
CREATE USER c##test_lh2 IDENTIFIED BY password1;
GRANT CREATE SESSION TO c##test_lh2;
在这里插入图片描述
查看创建的用户
在这里插入图片描述
创建本地用户
本地用户的用户名不得以“ C ##”或“ c ##”作为前缀。
用户名在PDB中必须是唯一的。
您可以指定该CONTAINER=CURRENT子句,也可以忽略它,因为当当前容器是PDB时,这是默认设置。
创建用户
ALTER SESSION SET CONTAINER=pdb3;
show CON_name
CREATE USER test_lh3 IDENTIFIED BY aabb123 CONTAINER=CURRENT;
GRANT CREATE SESSION TO test_lh3 CONTAINER=CURRENT
在这里插入图片描述
在这里插入图片描述
ALTER SESSION SET CONTAINER=pdb3;
show CON_name
CREATE USER test_lh4 IDENTIFIED BY aabb123;
GRANT CREATE SESSION TO test_lh4;
在这里插入图片描述
在这里插入图片描述
创建通用角色
当前容器必须是根容器。
通用角色的角色名称必须以“ C ##”或“ c ##”为前缀,并且仅包含ASCII或EBCDIC字符。
角色名称在所有容器中必须唯一。
使用CONTAINER=ALL子句创建角色

ALTER SESSION SET CONTAINER=cdb$root;
show CON_name
CREATE ROLE c##test_role1;
GRANT CREATE SESSION TO c##test_role1;
在这里插入图片描述
查看创建
在这里插入图片描述
GRANT c##test_role1 TO c##test_lh1 CONTAINER=ALL;角色给用户
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
角色授权本地用户
ALTER SESSION SET CONTAINER = pdb3;
GRANT c##test_role1 TO test_lh3;
在这里插入图片描述
查看用户角色
在这里插入图片描述
创建本地角色
如果您连接到普通用户,则必须将容器设置为本地PDB。
本地角色的角色名称不得以“ C ##”或“ c ##”为前缀。
角色名称在PDB中必须唯一。
ALTER SESSION SET CONTAINER = pdb3;
show con_name
CREATE ROLE test_role1;
GRANT CREATE SESSION TO test_role1;
在这里插入图片描述
查看创建的角色和权限
在这里插入图片描述
在这里插入图片描述
角色给用户
GRANT test_role1 TO c##test_lh2;
GRANT test_role1 TO test_lh4;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

创建一个新的通用用户,并向其授予所有容器中的DBA角色
ALTER SESSION SET CONTAINER=cdb$root;
show CON_name
CREATE USER c##lihao IDENTIFIED BY aabb123;
GRANT CREATE SESSION, DBA TO c##lihao CONTAINER=ALL;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

查询容器数据对象

CONN c##lihao/aabb123@cdb1
SELECT name from v$datafile;
在这里插入图片描述

CONN c##lihao/aabb123@PDB1
SELECT name from v$datafile;
在这里插入图片描述

ALTER SESSION SET CONTAINER=cdb$root;
ALTER USER c##lihao SET CONTAINER_DATA=ALL CONTAINER=CURRENT;
在这里插入图片描述
SELECT username,owner,object_name,all_containers,container_name
FROM cdb_container_data
WHERE username = ‘C##LIHAO’
ORDER BY 1,2,3;
在这里插入图片描述
在这里插入图片描述
ALTER USER c##LIHAO SET CONTAINER_DATA=DEFAULT CONTAINER=CURRENT;
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

性限制为特定的可插入数据库。该CONTAINER_DATA属性必须始终包含CDB$ROOT容器

ALTER USER c##lihao SET CONTAINER_DATA=(CDB$ROOT,PDB3) CONTAINER=CURRENT;
在这里插入图片描述

SELECT name from v$datafile;
在这里插入图片描述

添加特定的容器名称
ALTER USER c##lihao ADD CONTAINER_DATA=(PDB$SEED) CONTAINER=CURRENT;
在这里插入图片描述
在这里插入图片描述

删除特定的容器名称
ALTER USER c##lihao REMOVE CONTAINER_DATA=(PDB$SEED) CONTAINER=CURRENT;
在这里插入图片描述
在这里插入图片描述
覆盖所有现有设置(恢复默认设置)ALTER USER c##lihao SET CONTAINER_DATA=DEFAULT CONTAINER=CURRENT;
在这里插入图片描述

特定的容器数据对象
ALTER USER c##lihao SET CONTAINER_DATA=(CDBKaTeX parse error: Expected group after '_' at position 21: …PDB1) FOR sys.v_̲datafile CONTAINER=CURRENT;
在这里插入图片描述
查看
在这里插入图片描述
恢复为默认值
ALTER USER c##lihao SET CONTAINER_DATA=DEFAULT FOR sys.v_$datafile CONTAINER=CURRENT;
在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/weixin_39568073/article/details/114692531