oracle sql*plus常用命令

文章转载自:https://www.cnblogs.com/csschn/p/4864653.html

一、sys用户和system用户

Oracle安装会自动的生成sys用户和system用户
(1)、sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限,该用户默认的密码是change_on_install
(2)、system用户是管理操作员,权限也很大。具有sysoper角色,没有create database的权限,默认的密码是manager
(3)、一般讲,对数据库维护,使用system用户登录就可以拉
注意:也就是说sys和system这两个用户最大的区别是在于有没有create database的权限。

二、sql*plus工具简介

sql*plus是oracle自带的工具软件,主要用于执行sql语句,pl\sql块。
操作如下:
(1)、在D:\dev\oracle\product\10.2.0\db_1\bin\目录下的sqlplusw.exe。(D:\dev\oracle\为oracle安装目录)
(2)、在运行栏中输入“sqlplus”即可

三、sqlplus dos工具简介

(1)、概述:sqlplus是在dos下操作oracle的工具,其功能和sql*plus相似。
(2)、操作如下:在运行栏中输入“sqlplus”即可

四、PLSQL Developer工具,需要自己安装,推荐大家使用

五、sql*plus常用命令

补充:有关查看PDB数据库有关命令:https://www.cnblogs.com/kerrycode/p/17039174.html

alter pluggable database all open;(打开)

1)、连接命令

1.conn[ect]

用法:conn 用户名/密码@网络服务名 [as sysdba/sysoper] (@后面加网络服务名一般用于网络连接,本地连接暂且不用了解)
说明:当用特权用户身份连接时,必须带上as sysdba或是as sysoper
eg、

SQL> show user
USER 为 "SCOTT"
SQL> conn system/oracle@orcl
已连接。
SQL> show user
USER 为 "SYSTEM"
SQL>conn sys/oracle as sysdba
已连接。

以上命令实现类似切换用户的效果

也可以直接 conn sys as sysdba,再输入口令

2.disc/disconn/disconnect

说明: 该命令用来断开与当前数据库的连接

3.pssw[ord]

说明: 该命令用于修改用户的密码,如果要想修改其它用户的密码,需要用sys/system登录。
eg、

SQL> conn scott/oracle
已连接。
SQL> passw
更改 SCOTT 的口令
旧口令:
新口令:
重新键入新口令:
口令已更改
SQL>

4.show user

说明: 显示当前用户名

show pdbs(请在sys用户下打开,保证足够权限)
说明:显示当前可用pdb数据库
SQL> show user
USER 为 "SYS"
SQL> show conn_name
CON_NAME 
------------------------------
LIBPDB1
说明:显示当前连接的数据库名
SELECT NAME FROM v$database;
说明:显示当前所有数据库实例信息(v$database 是一个 Oracle 数据字典视图,包含了有关当前数据库实例的信息, name是其中的一个列名)

5.exit

说明: 该命令会断开与数据库的连接,同时会退出sql*plus

6.clear screen

清空屏幕

7.alter session set container=CDB$ROOT;

alter session set container=orclpdb;
说明:切换连接到相应容器数据库/pdb数据库  

8.

2)、文件操作命令

1.start和@

说明: 运行sql脚本
案例: sql>@ d:\a.sql或是sql>start d:\a.sql

2.edit

说明: 该命令可以编辑指定的sql脚本
案例: sql>edit d:\a.sql,这样会把d:\a.sql 这个文件打开

3.spool

说明: 该命令可以将sql*plus屏幕上的内容输出到指定文件中去。
案例: sql>spool d:\b.sql并输入sql>spool off
eg、

sql>spool d:\b.sql;
sql>select * from emp;
sql>spool off;

3)、交互式命令

1.&

说明:可以替代变量,而该变量在执行时,需要用户输入。

select * from emp where job='&job';

4)、显示和设置环境变量

概述:可以用来控制输出的各种格式,set show 如果希望永久的保存相关的设
置,可以去修改glogin.sql 脚本

1.linesize

说明:设置显示行的宽度,默认是80个字符

show linesize
set linesize 90

2.pagesize说明:设置每页显示的行数目,默认是14

用法和linesize 一样
至于其它环境参数的使用也是大同小异

5>控制CDB和PDB数据库

1.启动和关闭CDB

[oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:05:01 2016
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
已连接到空闲例程。
SQL> startup
ORACLE 例程已经启动。
Total System Global Area  754974720 bytes
Fixed Size		    2928968 bytes
Variable Size		  524291768 bytes
Database Buffers	  222298112 bytes
Redo Buffers		    5455872 bytes
数据库装载完毕。
数据库已经打开。
SQL> set linesize 120
SQL> select instance_name,status from v$instance;
INSTANCE_NAME			 STATUS
-------------------------------- ------------------------
CDB				 OPEN
SQL> select name,cdb from v$database;
NAME		   CDB
------------------ ------
CDB		   YES
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT

2.关闭CDB

<pre class="sql" name="code">SQL> SHUTDOWN IMMEDIATE 
数据库已经关闭。
已经卸载数据库。 
ORACLE 例程已经关闭。

2.启动和关闭PDB

在CDB环境中,我们在SQL*Plus工具不用切换到PDB数据库管理模式,可以使用ALTER PLUGGABLE DATABASE命令打开单个数据PDB数据库、打开所有PDB数据库、除以外数据库,具体方法如下:

1.ALTER PLUGGABLE DATABASE命令启动PDB

oracle@localhost ~]$ sqlplus / as sysdba
SQL*Plus: Release 12.1.0.2.0 Production on 星期二 3月 15 11:55:42 2016
Copyright (c) 1982, 2014, Oracle.  All rights reserved.
连接到: 
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, OLAP, Advanced Analytics and Real Application Testing options
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> show pdbs                   
 
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB1 			  MOUNTED
	 4 PDB2 			  MOUNTED
	 5 ORCL 			  MOUNTED
SQL> alter pluggable database pdb1 open;
插接式数据库已变更。
SQL> show pdbs
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB1 			  READ WRITE NO
	 4 PDB2 			  MOUNTED
	 5 ORCL 			  MOUNTED

关闭PDB

SQL> alter pluggable database pdb1 close;
插接式数据库已变更。
SQL> show pdbs
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB1 			  MOUNTED
	 4 PDB2 			  READ WRITE NO
	 5 ORCL 			  READ WRITE NO

3.SQL*Plus启动PDB

在SQL*Plus中使用传统的STARTUP命令启动PDB数据库,需要我们连接到的CDB数据库切换到要被启动的PDB数据库,执行STARTUP命令。在执行STARTUP命令之前需要我们执行ALTER SESSION SET CONTAINER命令从CDB模式切换到PDB模式。

SQL> show pdbs
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB1 			  READ WRITE NO
	 4 PDB2 			  MOUNTED
	 5 ORCL 			  MOUNTED
SQL> show con_name
CON_NAME
------------------------------
CDB$ROOT
SQL> alter session set container=pdb2;
会话已更改。
SQL> startup
插接式数据库已打开。
SQL> show pdbs
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 4 PDB2 			  READ WRITE NO

3.随CDB启动PDB数据库

默认情况下,在CDB 启动的时候,所有的PDB 都是mount状态,也没有默认的机制,在CDB启动时自动启动PDB,我们可以在CDB数据库中创建触发器来实现PDB的自动打开。

SQL> SHOW CON_NAME
CON_NAME
------------------------------
CDB$ROOT
SQL> CREATE OR REPLACE TRIGGER open_pdbs
AFTER STARTUP ON DATABASE 
BEGIN
EXECUTE IMMEDIATE 'ALTER PLUGGABLE DATABASE ALL OPEN'; 
END open_pdbs;
触发器已创建
SQL> SHUTDOWN IMMEDIATE
数据库已经关闭。
已经卸载数据库。
ORACLE 例程已经关闭。
SQL> STARTUP
ORACLE 例程已经启动。
Total System Global Area  754974720 bytes
Fixed Size		    2928968 bytes
Variable Size		  524291768 bytes
Database Buffers	  222298112 bytes
Redo Buffers		    5455872 bytes
数据库装载完毕。
数据库已经打开。
SQL> show pdbs
    CON_ID CON_NAME			  OPEN MODE  RESTRICTED
---------- ------------------------------ ---------- ----------
	 2 PDB$SEED			  READ ONLY  NO
	 3 PDB1 			  READ WRITE NO
	 4 PDB2 			  READ WRITE NO
	 5 ORCL 			  READ WRITE NO
posted @ 2023-09-11 16:53  DawnTraveler  阅读(106)  评论(0编辑  收藏  举报