04. 数据库常用管理命令

  • 数据库的启动与停止

  1. 在cmd中,以无登录方式进入SQL*Plus控制台,然后连接数据库服务器
sqlplus /nolog
connect /as sysdba
04. 数据库常用管理命令_第1张图片
image.png
  1. 启动与停止命令
startup 启动选项
shutdowm 停止选项
  • 启动选项

NOMOUNT:
只创建例程,不装载数据库,即不能使用数据库中的任何文件,但重建控制文件或运行创建新数据库的脚本时,必须使用此模式启动.
MOUNT:
不仅创建例程,还装载数据库,在该模式下管理员可修改数据库,用户无法访问数据库.
常用于执行以下4类维护工作:

  1. 重命名数据文件;
  2. 添加,删除,重命名,重做日志文件;
  3. 执行数据库完全恢复操作;
  4. 改变数据库的归档模式

OPEN:
正常启动数据库,不仅创建例程,还装载数据库,并打开数据库,缺省启动
FORCE:
强制重启数据库,与正常模式不同,无论数据库处于什么模式,均可以强制启动,且此启动是先异常关闭数据库(无需使用shutdown关闭),然后重新启动
PESTRICT:
启动数据库,并置入OPEN模式,但只有拥有PESTRICTED SESSION权限的用户才可以访问数据库
PFILE=filename:
指定一个参数化文件来启动数据库(.ora后缀文件)

  • 停止选项

NORMAL:
正常关闭数据库,此时Oracle执行如下操作:

  1. 阻止用户新连接数据库
  2. 等待所有连接用户主动断开(未主动断开前可正常操作,提交事务等)
  3. 直到所有用户都断开连接,才进行关闭,卸载数据库.并终止例程

TRANSACTIONAL:
与NORMAL模式相比,其过程如下:

  1. 阻止用户新连接数据库,同时阻止当前连接用户开始新的事务
  2. 等待所有未提交事务提交完毕,然后立即端口用户连接
  3. 一旦所有用户都断开连接,立即进行关闭,卸载数据库,并终止例程

IMMEDIATE:
立即关闭,一般在断电或异常时使用,其过程如下:

  1. 阻止用户新连接数据库,同时阻止当前连接用户开始新的事务
  2. 所有当前未提交的事务均被退回
  3. Oracle不再等用户断开连接,而是直接关闭,卸载并终止例程

ABORT:
强制关闭数据库,一般为发生严重错误,以上三种方式无法关闭时使用此方式,其过程如下:

  1. 阻止用户新连接数据库,同时阻止当前连接用户开始新的事务
  2. 所有当前未提交的事务均不被退回
  3. 立即结束当前正则执行的SQL语句
  4. 立即断开所有连接,直接关闭,卸载和终止例程
  • 转换启动模式
alter database open或xxx
  1. 使用alter语句即可改变当前数据库的模式
  2. Windows系统下,正常的启动停止数据库,可在服务控制面板中(services.msc)启动和停止相关服务即可

  • 端口侦听操作命令

对侦听端口的操作主要包括:查看状态,启动和停止三种,使用Windows命令lsnrctl实现(cmd中操作)

  1. lsnrctl start:启动侦听端口,与启动服务OracleOraDb11g_home2TNSListener效果一样
  2. lsnrctl stop:停止侦听端口,与停止服务OracleOraDb11g_home2TNSListener效果一样
  3. lsnrctl status:查看当前侦听器的状态是否正常

  • 管理控制台操作命令

DB Console 或者 Oracle Enterprise Manager 的启动与停止(cmd中操作)

  1. 启动:emctl start dbconsole
  2. 停止:emctl stop dbconsole
  3. 状态:emctl status dbconsole

  • SQL*Plus常用命令

  1. SQL*Plus是Oracle自带的交互操作程序
  2. SQL*Plus可运行各种SQL语句或脚本
  3. PLSQL Developer,TOAD等比SQL*Plus功能更强大,界面更友好

SQL*Plus常用功能:

命令 释义
@ filename.sql 运行sql文件(批处理方式运行)
spool filename 将屏幕输出保存到文件中,直至运行到spool off
desc 用户名.表名 描述表结构
help 命令名 查看某个命令的用法
column 列名 format A20 设置列名的显示宽度为20
column 列名 heading 新列名 将列名的显示名称修改为新列名
set linesize 100 将sqlplus中每行的显示宽度设置为100字符,默认为80
set autocommit on/off 设置sql语句是否自动提交(若否,需要使用commit命令手动提交)
show 参数名 显示当前系统的各类参数值,包括系统初始化参数
alter session set nls_date_format='yyyy-mm-dd hh24:mi:ss'; 修改时间格式
alter session set nls_date_language='american'; 修改日期格式为美国格式
select sysdate from dual; 显示服务器当前时间
select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; 格式化显示系统当前日期时间
select to_char(systimestamp,'yyyy-mm-dd hh24:mi:ssXFF') from dual 格式化显示事件戳
select to_char('2018-11-2 14:15:9','yyyy-mm-dd hh24:mi:ss') from dual 格式化显示时间
select * from &tablename; 参数化的使用,提示输入tablename的值(表名)

  • Dual表简介

  1. Dual是一个系统表,只有一个Dummy Varchar2(1)字段
  2. 因Oracle语句要求必须完整,故在查询非表数据是加上Dual表
  3. Dual表无具体数据,只是用来查询无具体表数据时,用来完整sql语句的

你可能感兴趣的:(04. 数据库常用管理命令)