数据库oracle常用命令

更新时间:2023-07-28 14:39:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

系统管理 启动停止数据库 启动停止监听器 查询错误码解释 删除数据库

创建用户

查看用户 删除用户 帐号解锁 角色授权 删除表数据 调整参数 调整连接数 删除数据文件 移动数据文件 表空间信息 表空间所属数据文件 表空间可用大小 创建表空间 扩展表空间 创建临时表空间 移动表空间

删除表空间

改变数据文件大小

表空间存储情况

确定可用空间 表空间碎片整理 表空间更名

表空间数据文件更名

关闭数据文件自动扩展功能 回收空闲空间 日志文件 日志切换 checkpoint 增长日志组 增长在线日志成员 修改在线日志位置 删除在线日志组 删除在线日志成员 更新索引 重整索引 重建索引 取得特定行记录 数据库全局分析

oracle下杀用户的连接

导入大批量数据

导入导出数据库exp/imp

导入导出用户数据

安装数据库补丁

查看opatch版本 查看系统中已经打上的one-off补丁 停止命令自动加immediate oracle数据库备份

查询锁的状况的对象

计算一个表占用的空间的大小 查看表的大小 查看索引的大小 查看数据库版本信息 查看数据库实例 查看最大会话数 普经达到的最大会话数 修改最大会话数 算SQL执行的I/O数

算SQL执行的I/O数

查询做比较大的排序的进程的SQL语句

监控事例的等待 长时间运行超过6秒的事务 回滚段的争用情况

监控表空间的 I/O 比例

监控数据文件的 I/O 比例

监控 SGA 的命中率

监控 SGA 中字典缓冲区的命中率

监控 SGA 中共享缓存区的命中率,应该小于1%

显示所有数据库对象的类别和大小

监控 SGA 中重做日志缓存区的命中率,应该小于1%

监控内存和硬盘的排序比率,最好使它小于.10,增加sort_area_size 查询当前正在运行的SQL语句 监控字典缓冲区,后者除以前者,此比率小于1%,接近0%为好

用户session的CPU占用率

查看占io较大的正在运行的session

查看碎片程度高的表

查找前十条性能差的sql 查看登陆oracle机器信息 得到触发器、过程、函数的创建脚本 查看系统被锁的事务时间 查询锁的状况的对象有 解锁 查询当前用户对象 获取错误信息 查看数据库字符 把select出来的结果导到一个文本文件中 测试SQL语句执行所用的时间

查看回滚段状态 备份表

修改数据库字符集

重组数据

打开/关闭归档日志

手动加锁 手动解锁

ORACLE性能监控:配置SQL*PLUS的Autotrace

运行AWR报告

经常用到的视图

卸载ORACLE oracle安装无法加载libons.so

关闭审计功能

ORACLE归档日志问题

设置不使用归档日志 重建控制文件 自动内存管理AMM 自动共享内存管理ASMM 自动PGA管理 创建密码文件 AIX上使用操作系统鉴权必须加入dba组 控制文件备份

数据库坏块的处理

共享池大小计算方

法 Shared_Pool_Size

SQLPLUS / 登陆不了

置dbconsole的步骤 配

重新配置dbconsole的步骤

Oracle EM 配置常用命令

AWR(自动工作负载信息库) ORACLE的JOB不自动执行 增加pga_aggregate_target提高查询速度

使用IOT提高查询速度

表压缩

跟踪SQL执行

如何在sqlload入库时指定某字段函数操作

cost值计算

如何删除表大量数据

如何快速创建索引

收集表部分统计信息 exceptions表 查找主键名称 启用/停用主键

使用文件工具修改spfile

SQL操作还要多久完成

查查Oracle进行执行的SQL

获得表高水平位 重新编译存储过程 重新编译数据中所有invalid对象

tnsname.ora文件配置注意

更新数据字典

ORACLE RAC备机启动报:ORA-01618: redo thread 2 is not enabled - cannot mount

ORACLE RAC备机启动报:ORA-01618: redo thread 2 is not enabled - cannot mount 修改数据库用户密码

如何将命令提示符改成用户@实例的形式

计算一个表占用的空间的大小

如何得到索引高度 更改trace文件标识 将表缓存在keep中

查询数据库的top 5的SQL语句

查找数据对象DDL

commit后恢复数据

体系结构

共享池

SGA(System Global Area 系统全局区) Large Pool 大对象池 自动内存管理(ASSM)配置

SGA状态及调优

进程全局区PGA和用户全局区UGA

进程全局区PGA和排序

客户端获取的结果集比较大时要设置prefetchsize 后台进程DBWR

后台进程LGWR

SCN(System Change Number)

后台进行CKPT SMON 系统监控进程 PMON 进程监控进程 ARCn 归档进程

三类文件

ORACLE数据库逻辑结构 数据块、区和段的关系

数据块结构

表空间概述

索引聚簇表Cluster Table

为什么不用我的索引

位图索引

在设计开发系统时使用的优化原则

等待事件

ORACLE的执行计划

收集执行计划

ROWID伪例

链接行

产生和消除链接行

recursive sql 不要在经常被更新的字段上建索引 Default Locking Behaviour

Multiple Locks on the same rows with LOCK TABLE

DDL(DATABASE DEFINITION LANGUAGE) DML(DATABASE MODIFICATION LANGUAGE)

ORACLE锁

ORACLE里锁模式

一条数据漫游记

数据库常见的索引方法

日志文件管理 表的高水平位 数据字典和同义词的建立 scn与timestamp的相互转换

SQL相关 查询重复记录 删除重复行

运行时表

随机数函数 何给表、列加注释 字符串里加回车 使select语句使查询结果自动生成序号 某个表所在的表空间

插入全年日期

表中记录横放 禁止、恢复触发器 查看表结构

sql语句优化经验

常用函数

SQL中转义字符 锁表 十进行和十六进行互转 IOT

循环写法

行数 最高的insert 系统时间

ORACLE外键语句

执行脚本或者sql命令是保存屏幕输出的方 法

sqlplus/as sysdba SQL> startup SQL> shutdown immediate lsnrctl start;lsnrctl stop host oerr ora 123 drop user userdb2 cascade; create user lizhogu

ang_name identified by lzg_password default tablespace workdbs temp quota 10m on data password expire ; temporary tablespace

select username from dba_users SQL> drop user DXSYSDB cascade; cascade表示要删除用户下的所有对象和数据。 SQL> ALTER USER XDJ ACCOUNT UNLOCK; grant dba to username TRUNCATE TABLE TABLENAME show parameter alter system set log_buffer=10485760 scope=spfile; alter system set processes=500 scope=spfile; SQL> alter database datafile 'd: \test.dbf' offline drop; SQL > alter database open; 方法一 1. 关闭数据库,利用os拷贝 shutdown immediate关闭数据库 select * from dba_tablespaces; SELECT * FROM DBA_DATA_FILES; select tablespace_name,sum(bytes)/(1024*1024) from sys.dba_free_space group by tablespace_name; 裸设备:create tablespace cbs_default_dat datafile '/dev/rlv_cbs_d_dat' size 2048m reuse autoextend on next 128m maxsize 4096m; 文件系统:create tablespace cbs_default_dat datafile '/orainst/oracle/db/oradata/ora253/cbs_default_dat.dbf' size 2048m; alter tablespace TBS_1 add datafile '/orainst/oracle/db/oradata/ora254/TBS_1.dbf' size 1024m; create temporary tablespace temp tempfile 'c:\oracle\oradata\temp01.dbf' size 500m extent management local uniform sizeTABLE_NAME MOVE TABLESPACE_NAME; ALTER TABLE 10m; ALTER INDEX INDEX_NAME REBUILD TABLESPACE TABLESPACE_NAME; 可以使用如下命令删除表空间,其中如果没有including contents and datafile,则表空间的内容及 数据文件需要手工删除: SQL>alter database drop tablespace 表空间名 including contents and datafile; 不能删除数据库的默认表空间和默认临时表空间 不能删除SYSTEM表空间和SYSAUX表空间 alter database datafile 'c:\oracle\oradata\app_data.dbf' resize 200m; col tablespace format a20 ; select segment_name,sum(bytes),count(*) ext_quan from dba_extents where tablespace_name='&tablespace_name' and segment_type='TABLE' group by tablespace_name,segment_name; select segment_name,count(*) from dba_extents where segment_type='INDEX' and owner='&owner' group by segment_name; select tablespace_name,count(blocks) blocks,sum(bytes/1024/1024) max_chunk from sys.dba_free_space group by tablespace_name; 其中,CHUNKS列表示表空间中有多少可用的空闲块(每个空闲块是由一些连续的Oracle数据块组成),如果这样的空闲块过 多,比如平均到每个数据文件上超过了100个,那么该表空间的碎片状况就比较严重了,可以尝试用以下的SQL命令进行表 空间相邻碎片的接合:alter tablespace 表空间名 coalesce; alter tablespace 表空间名 coalesce,进行表空间相邻碎片的接合 alter tablespace 表空间名称 rename to 新名称 将数据文件从一个地方挪到另外一个地方后,需要在数据库中修改一下数据文件的名称(含文件的绝对路径)。修改方法 如下: SQL>shutdown immediate; SQL>startup mount; SQL> alter database rename file '/old path/old_filename.dbf' to '/new path/new_fi

lename.dbf'; SQL> recover database; SQL> alter database open;

ALTER DATABASE DATAFILE '/opt/HUAWEI/cgp/workshop/omu/database/undotbs01.dbf' AUTOEXTEND OFF MAXSIZE 200M; from table_name;只删除了表数据 delete truncate table table_name drop storage; 删除表定义空间 alter table table_name deallocate unused;删除表未使用的空间,即highwater-used=unused $ORACLE_BASE/diag/rdbms/DB_NAME/INSTANCE_NAME/trace/*.log alter system switch logfile; alter system checkpoint; sql> alter database add logfile [group 4] ('/disk3/log4a.rdo','/disk4/log4b.rdo') size 500m; sql> alter database add logfile member '/disk3/log1b.rdo' to group 1, '/disk4/log2b.rdo' to group 2; sql> alter database rename file 'c:/oracle/oradata/oradb/redo01.log' to 'c:/oracle/oradata/redo01.log'; sql> alter database drop logfile group 3; sql> alter database drop logfile member 'c:/oracle/oradata/redo01.log'; analyze table cbe_account_dyn compute statistics for all indexes; analyze table cbe_account_dyn compute statistics for all indexes; alter index index_name rebuild tablespace ts_name Alter index indexname rebuild SELECT ROW_NUM,EMPNO,SALARY,FIRSTNME FROM (SELECT ROW_NUMBER() OVER(ORDER BY SALARY) AS ROW_NUM,EMPNO,SALARY,FIRSTNME FROM EMPLOYEE) AS TEMP WHERE ROW_NUM BETWEEN 10 AND 20 用dbms_stats包中的存储过程gather_schema_stats,它不仅 重新分析索引,还会分析表等。执行这个存储过程可能会需 要非常长的时间。 sqlplus /nolog; SQL>connect / as sysdba; SQL>select SID, SERIAL#,USERNAME from v$session; SID SERIAL# USERNAME ---------- ---------- -----------------------------91 46790 SYSDB1 SQL>alter system kill session '91,46790'; 1.首先编写一个控制命令的脚本文件,通常以ctl结尾,内容如下: numservice.ctl: load data

exp/imp适合于同类型数据库之间数据转换 共有四种不同模式:表,用户,表空间,数据库 现分别举例说明 1.表级别 $ exp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp $ imp hr/hr tables=jobs direct=y file=/data/table_jobs.dmp 2.用户级别 $ exp "'sys/sys as sysdba'" owner=hr direct=y file=/data/owner_hr.dmp $ imp "'sys/sys as sysdba'" fromuser=hr touser=hr file=/data/owner_hr.dmp 3.表空间级别 $ exp "'sys/sys as sysdba'" transport_tablespace=y direct=y tablespaces=examples file=/data/ts_examples.dmp 4.数据库级别 $ exp "'sys/sys as sysdba'" full=y file=/data/db.dmp 说明:如要使用as sysdba或as sysoper进行操作,则必须使 用如下用法: "'sys/sys as sysdba'" "'system/system as sysoper'"

exp "'sys/sys as sysdba'" owner=sysdb9 direct=y file=owner_sysdb9.dm imp "'sys/sys as sysdba'" fromuser=sysdb9 touser=zhlsysdb file=owner_sysdb9.dm commit=y ignore=y

%vi .cshrc 修改PATH行在该行添加如下内容: :$ORACLE_HOME/Opatch: %cd 6650132 %opatch apply opatch version opatch lsinventory vi $ORACLE_HOME/bin/dbshut "6") sqldba command=shutdown immediate;; 以root用户登录实际物理库所在主机,执行下面操作 $mkdir -p /ba

ckup/bin $mkdir -p /backup/log $/backup/bin目录放置备份脚本程序 SELECT S.SID SESSION_ID, ERNAME, DECODE(LMODE, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(LMODE)) MODE_HELD, DECODE(REQUEST, 0, 'None', 1, 'Null', 2, 'Row-S (SS)', 3, 'Row-X (SX)', 4, 'Share', 5, 'S/Row-X (SSX)', 6, 'Exclusive', TO_CHAR(REQUEST)) MODE_REQUESTED, O.OWNER||'.'||O.OBJECT_NAME||' ('||O.OBJECT_TYPE||')', S.TYPE LOCK_TYPE, L.ID1 LOCK_ID1, L.ID2 LOCK_ID2 FROM V$LOCK L, SYS.DBA_OBJECTS O, V$SESSION S select owner,table_name, NUM_ROWS,BLOCKS*db_block_size /1024/1024 "Size M", EMPTY_BLOCKS, LAST_ANALYZED from dba_tables ; select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&table_name'); select sum(bytes)/(1024*1024) as "size(M)" from user_segments where segment_name=upper('&index_name'); select * from v$version SELECT * FROM V$INSTANCE; SELECT * FROM V$PARAMETER WHERE NAME LIKE 'proc%'; 或者show parameter processes select * from v$license; alter system set processes=500 scope=spfile; SQL>SET AUTOTRACE ON ; SQL>SELECT * FROM TABLE; OR SQL>SELECT * FROM v$filestat ; SELECT b.tablespace, b.segfile#, b.segblk#, b.blocks, a.sid, a.serial#, ername, a.osuser, a.status FROM v$session a,v$sort_usage b WHERE a.saddr = b.session_addr ORDER BY b.tablespace, b.segfile#, b.segblk#, b.blocks ; select /*+ ORDERED */ sql_text from v$sqltext a where a.hash_value = ( select sql_hash_value from v$session b where b.sid = &sid and b.serial# = &serial) order by piece asc ; select event,sum(decode(wait_Time,0,0,1)) "Prev", sum(decode(wait_Time,0,1,0)) "Curr",count(*) "Tot" from v$session_Wait group by event order by 4; select * from v$session_longops select name, waits, gets, waits/gets "Ratio" from v$rollstat C, v$rollname D where n = n; select B.tablespace_name name,B.file_name "file",A.phyrds pyr, A.phyblkrd pbr,A.phywrts pyw, A.phyblkwrt pbw from v$filestat A, dba_data_files B where A.file# = B.file_id order by B.tablespace_name; select substr(C.file#,1,2) "#", substr(,1,30) "Name", C.status, C.bytes, D.phyrds, D.phywrts from v$datafile C, v$filestat D where C.file# = D.file#;

本文来源:https://www.bwwdw.com/article/ujhm.html

Top