文档章节

oracle 体系简识

胡子叭槎
 胡子叭槎
发布于 2016/11/21 15:29
字数 1869
阅读 37
收藏 2

1    实例(SID)

    访问数据库的一种方式。内存结构pga和sga

    pga:pga也称为私有全局区域或者程序全局区域。每一个用户链接oracle都会分配内存,pga里面存放用户链接oracle是使用定什么工具,主机名是什么,IP地址是什么,端口,做了那些操作,等都会记录在pga中,用户推出pga回收,内存释放。注意pga是私有定。

    sga:sga又叫做“系统全局区域”,也是实例的另外一部分。共享pga里面sql的ID号,共享其他信息,这个区域也叫做共享池,共享池里面的数据块也叫做数据库告诉缓冲区。数据库定DML 语句放在日志缓冲区。

2    数据库

    存放数据的物理文件,可以理解为物理结构+逻辑结构

    逻辑结构:表空间--》段--》区--》数据块

    物理结构:日志文件,数据文件,控制文件,参数文件,密码文件(密码文件在$oracle_home下的dbs文件夹里面)

    数据库存放在磁盘中,有五大类文件,其中数据库文件,控制文件,日志文件,内存中定文件最终都会写入磁盘。

    参数文件:用来启动数据库,分配pga,sga,记录有几个控制文件,文件放在哪里。这个参数文件不是很关键,如果对参数文件丢失可以手动写一个才参数文件类启动数据库,数据是不会丢失的。

    密码文件:记录sysdba的密码。普通用户的密码是放在数据库中的,不在这里。

    归档文件:数据库要打开归档功能,用来备份链接日志。

3    数据库服务器

    数据库服务器=实例+数据库

4    监听

    动态监听,数据库安装完成之后自动启动监听

    一般如果报错ora-12541 就是监听出了问题

5    登录数据库

    查看数据库是否打开

    select open_mode from v$database;

SQL> select name,open_mode from v$database;

NAME	  OPEN_MODE
--------- --------------------
ORCL	  READ WRITE

数据库新建完成之后不一定是打开定,先用上面定select open_mode from v$database;查看数据库状态

没有挂载定可以挂载,没有打开定可以打开

 

SQL> alter database orcl mount;
alter database orcl mount
*
ERROR at line 1:
ORA-01100: database already mounted
这个数据库已经挂载
SQL> alter database orcl open;
alter database orcl open
*
ERROR at line 1:
ORA-01531: a database already open by the instance
这个数据库已经是打开的

 

sysplus 数据库链接,到底是链接的哪个数据库(实例)?这个在我们的环境变量里面有配置,也就是之前我们配置定.db 环境变量文件:

[root@wangzilong oracle]# cat .db 
export ORACLE_BASE=/u01/product
export ORACLE_HOME=/u01/product/11g
export ORACLE_SID=orcl
export PATH=$ORACLE_HOME/bin:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/root/bin
[root@wangzilong oracle]# sqlplus sys/123456 as sysdba

SQL*Plus: Release 11.2.0.3.0 Production on Mon Nov 21 14:36:10 2016

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


Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.3.0 - 64bit Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options

运行上面的环境变量文件. .db 之后登录sqlplus sys/123456 as sysdba 登录的就是环境变量配置文件里面配置的ORACLE_SID=orcl 实例就是orcl。

登录之前切换实例用:export ORACLE_SID=base1 就是在登录之前切换实例

在登录之后进行用户切换:

conn username/password 切换数据库

SQL> show user;
USER is "SYS"
SQL> conn scott/tiger
Connected.
SQL> show user;
USER is "SCOTT"

    如果密码到期,解锁并重新更新密码
    alter user scott "scott" identified by "123456" account unlock;

    DBA 查看用户下有哪些表

select table_name from dba_tables

    普通用户查看用户下有哪些表

SQL> select table_name from user_tables;

TABLE_NAME
------------------------------
SALGRADE
BONUS
EMP
DEPT

排序:能不使用排序就不使用排序,排序会严重消耗pga和cpu,如果磁盘空间不足会排序会大大影响IO

sqlplus :使用l查看上一次的sql,c/原来定字符/改变定字符 可以修改上一次定sql,a 对原来定sql进行添加

SQL> l
  1* selectt table_name from user_tables
SQL> c/selectt/select
  1* select table_name from user_tables
SQL> /

TABLE_NAME
------------------------------
SALGRADE
BONUS
EMP
DEPT

上面用c/old/new 方式更新之前的sql

SQL> l
  1* select ename from emp
SQL> a   where 1 = 2;
  1* select ename from emp  where 1 = 2
SQL> /

no rows selected

上面的用a 对上一次的字符从进行添加

SQL> l
  1  select ename,
  2  sal
  3  from
  4* emp
SQL> l2
  2* sal
SQL> i ,job
SQL> ;
  1  select ename,
  2  sal
  3  ,job
  4  from
  5* emp
SQL> /

ENAME		  SAL JOB
---------- ---------- ---------
SMITH		  800 CLERK
ALLEN		 1600 SALESMAN
WARD		 1250 SALESMAN
JONES		 2975 MANAGER
MARTIN		 1250 SALESMAN
BLAKE		 2850 MANAGER
CLARK		 2450 MANAGER
SCOTT		 3000 ANALYST
KING		 5000 PRESIDENT
TURNER		 1500 SALESMAN
ADAMS		 1100 CLERK

ENAME		  SAL JOB
---------- ---------- ---------
JAMES		  950 CLERK
FORD		 3000 ANALYST
MILLER		 1300 CLERK

14 rows selected.

如上面,如果是多行sql,可以用类l2 显示第二行,然后用i 插入

SQL> save /tmp/test.sql
Created file /tmp/test.sql

之前的操作保存成一个文件

SQL> spool /tmp/1.sql
SQL> select ename from emp;

ENAME
----------
SMITH
ALLEN
WARD
JONES
MARTIN
BLAKE
CLARK
SCOTT
KING
TURNER
ADAMS

ENAME
----------
JAMES
FORD
MILLER

14 rows selected.

SQL> spool off;

如上图所示,用spoor /tmp/1.sql 会把后面的所有操作都保存在文件中

set linesize 300 设置一行定宽度

SQL> show linesize;
linesize 80
SQL> select * from emp where sal > 4000;

     EMPNO ENAME      JOB	       MGR HIREDATE	    SAL       COMM
---------- ---------- --------- ---------- --------- ---------- ----------
    DEPTNO
----------
      7839 KING       PRESIDENT 	   17-NOV-81	   5000
	10
原来定显示比较窄,会换行
SQL> set linesize 300
SQL> select * from emp where sal > 4000;

     EMPNO ENAME      JOB	       MGR HIREDATE	    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT 	   17-NOV-81	   5000 		   10
设置行宽度就比较好了


show pagesize 看到默认定一页显示多少行

SQL> select * from emp;

     EMPNO ENAME      JOB	       MGR HIREDATE	    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 17-DEC-80	    800 		   20
      7499 ALLEN      SALESMAN	      7698 20-FEB-81	   1600        300	   30
      7521 WARD       SALESMAN	      7698 22-FEB-81	   1250        500	   30
      7566 JONES      MANAGER	      7839 02-APR-81	   2975 		   20
      7654 MARTIN     SALESMAN	      7698 28-SEP-81	   1250       1400	   30
      7698 BLAKE      MANAGER	      7839 01-MAY-81	   2850 		   30
      7782 CLARK      MANAGER	      7839 09-JUN-81	   2450 		   10
      7788 SCOTT      ANALYST	      7566 19-APR-87	   3000 		   20
      7839 KING       PRESIDENT 	   17-NOV-81	   5000 		   10
      7844 TURNER     SALESMAN	      7698 08-SEP-81	   1500 	 0	   30
      7876 ADAMS      CLERK	      7788 23-MAY-87	   1100 		   20

     EMPNO ENAME      JOB	       MGR HIREDATE	    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7900 JAMES      CLERK	      7698 03-DEC-81	    950 		   30
      7902 FORD       ANALYST	      7566 03-DEC-81	   3000 		   20
      7934 MILLER     CLERK	      7782 23-JAN-82	   1300 		   10
原来定只显示十几行就分页列,不好看


set pagesize 100 一页显示100行

SQL> set pagesize 100
SQL> select * from emp;

     EMPNO ENAME      JOB	       MGR HIREDATE	    SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7369 SMITH      CLERK	      7902 17-DEC-80	    800 		   20
      7499 ALLEN      SALESMAN	      7698 20-FEB-81	   1600        300	   30
      7521 WARD       SALESMAN	      7698 22-FEB-81	   1250        500	   30
      7566 JONES      MANAGER	      7839 02-APR-81	   2975 		   20
      7654 MARTIN     SALESMAN	      7698 28-SEP-81	   1250       1400	   30
      7698 BLAKE      MANAGER	      7839 01-MAY-81	   2850 		   30
      7782 CLARK      MANAGER	      7839 09-JUN-81	   2450 		   10
      7788 SCOTT      ANALYST	      7566 19-APR-87	   3000 		   20
      7839 KING       PRESIDENT 	   17-NOV-81	   5000 		   10
      7844 TURNER     SALESMAN	      7698 08-SEP-81	   1500 	 0	   30
      7876 ADAMS      CLERK	      7788 23-MAY-87	   1100 		   20
      7900 JAMES      CLERK	      7698 03-DEC-81	    950 		   30
      7902 FORD       ANALYST	      7566 03-DEC-81	   3000 		   20
      7934 MILLER     CLERK	      7782 23-JAN-82	   1300 		   10

14 rows selected.
设置每也显示100行就好看了


set heading on 打开显示列标题,关闭off

SQL> set heading off
SQL> select * from emp where sal > 4000;

      7839 KING       PRESIDENT 	   17-NOV-81	   5000 		   10

可以不显示表头


col col_name for a10,改变显示列的宽度


show all 可以看见很多的命令
autocommit off 自动提交关闭
autoprint off 自动打印关闭
auttrace off 自动打开执行计划关闭
colsep “ ” 表示列与列直接用空格分开
serveroutput off 输出功能不打开,plsql 要打开这个
timing off 执行时长不显示
空值nvl函数处理

© 著作权归作者所有

共有 人打赏支持
胡子叭槎
粉丝 21
博文 126
码字总数 132998
作品 0
成都
数据库管理员
.NET架构设计、框架设计系列文章总结

从事.NET开发到现在已经有七个年头了。慢慢的可能会很少写.NET文章了。不知不觉竟然走了这么多年,热爱.NET热爱c#。突然想对这一路的经历进行一个总结。 是时候开始下一阶段的旅途,希望这些...

王清培
2016/11/13
0
0
用pl/sql实现oracle数据的导出和导入

一、PL/SQL工具实现oracle数据导出 1. 数据对象导出 工具->导出用户对象,弹出如下界面: 选择用户,选择导出文件的路径,命名导出文件名称(.sql),然后点击导出即可。 注意:此方法只能导...

为自己插上翅膀
01/23
0
0
Oracle培训的建议收集

近期要组织一次新员工培训,交代了两节课的任务,主要介绍Oracle数据库,一个是针对纯小白,一个是经过一段时间的学习,针对有一定基础的,内容不限,时间不限。 介绍数据库,介绍Oracle,其...

bisal
2017/09/08
0
0
新书出版 |《数据库程序员面试笔试真题库》

新书出版 《数据库程序员面试笔试真题库》 新书出版 《数据库程序员面试笔试真题库》 书名: 数据库程序员面试笔试真题库 作者:李华荣 定价: 69.00元 出版社名称: 机械工业出版社 出版时间:...

小麦苗
08/07
0
0
初识react(四) react中异步解决方案之 redux-saga

回顾 初识react(一) 揭开jsx语法和虚拟DOM面纱 初识react(二) 实现一个简版的html+redux.js的demo 初识react(三)在 react中使用redux来实现简版计数器 今天demo是实现一个异步的计算器,探究...

言sir
09/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

deepin系统使用deepin-wine安装exe程序

deepin自带原生deepin-wine使用命令如下: deepin-wine QQBrowser.exedeepin-wine QQMusicSetup.exe 默认安装的快捷方式位置: /root/.wine/drive_c/'Program Files'/Tencent/QQBrowser/......

临江仙卜算子
47分钟前
2
0
快速get到学习Linux操作系统的点

快速get到学习Linux操作系统的点 Linux是一套免费使用和自由传播的类Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。Linux能够运行主要的UNIX工具软件...

linuxCool
54分钟前
3
0
聊聊:Linux分区的那些方案

安装linux的整体步骤其实比较简单,唯一可能值得说明的地方,大概就是linux的分区了。 下面来给大家推荐一些分区方案。 1 分两个区 实际上,很多时候我们只需要分两个区:`/`和交换分区,日常...

Linux就该这么学
今天
1
0
适配器模式和外观模式

适配器模式: 将一个类的接口,转换成客户期望的另一个接口。适配器让原本不兼容的类可以合作无间。 例子: //将Enumeration转换成Iteratorpublic class EnumerationIterator implements Iter...

王怀楼
今天
4
0
7-CXF与Spring整合发布webservice

Spring+CXF整合来管理webservice 实现步骤: 1. 添加cxf.jar 包(集成了Spring.jar、servlet.jar ),spring.jar包 ,servlet.jar 包 2. 编写业务类,通过CXF来发布webservice 员工管理: 方法...

江戸川
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部