【2017/4/10】认识oracle db体系结构
来源:互联网 发布:mac怎么格式化存储卡 编辑:程序博客网 时间:2024/05/22 05:00
oracle server=实例+数据库
也就是=(内存结构+后台进程)+物理存储文件
一般情况1个oracle server--》1个实例
集群情况1个oracle server--》多个实例
查询有几个oracle server
ps -ef | grep ora_|cut -d '_' -f 3|sort|uniq
[root@wyzc ~]# ps -ef |grep ora_|cut -d '_' -f3 |sort |uniq
wyzc10g
wyzc11g
12c中
一个CDB包含多个PDB
PDB具备了oracle server的完整功能,共享使用了CDB的undo,control,日志文件,共享了实例名
CDB是一个完整的oracle server
实例=内存结构+后台进程
后台进程是用来访问内存数据与磁盘数据交互用的
当数据库启动时分配实例
数据库=物理文件+构造物理文件的逻辑结构
[root@wyzc ~]# su - oracle
[oracle@wyzc ~]$ 10g
[oracle@wyzc ~]$ sqlplus / as sysdba
SQL*Plus: Release 10.2.0.5.0 - Production on Fri Mar 3 15:27:26 2017
Copyright (c) 1982, 2010, Oracle. All Rights Reserved.
Connected to:
Oracle Database 10g Enterprise Edition Release 10.2.0.5.0 - 64bit Production
With the Partitioning, Oracle Label Security, OLAP, Data Mining Scoring Engine
and Real Application Testing options
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
wyzc10g
SQL> select name from v$database;
NAME
---------
WYZC10G
SQL>
一个实例访问了一个数据库,这才算一个完整的oracle server,open(物理+逻辑)状态,才能发挥RDBMS的功能。
此时是mount状态,只能访问物理结构,不能逻辑结构
SQL> shutdown immediate
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
ORACLE instance started.
Total System Global Area 398458880 bytes
Fixed Size 2096568 bytes
Variable Size 134218312 bytes
Database Buffers 255852544 bytes
Redo Buffers 6291456 bytes
Database mounted.
SQL> select instance_name from v$instance;
INSTANCE_NAME
----------------
wyzc10g
SQL> select name from v$database;
NAME
---------
WYZC10G
SQL> select * from tab;
select * from tab
*
ERROR at line 1:
ORA-01219: database not open: queries allowed on fixed tables/views only
SQL>
SQL> conn scott/tiger
ERROR:
ORA-01033: ORACLE initialization or shutdown in progress
Warning: You are no longer connected to ORACLE.
SQL>
SQL> conn / as sysdba
Connected.
SQL>
SQL> alter database open;
Database altered.
SQL> alter user scott account unlock;
User altered.
SQL> conn scott/tiger
Connected.
SQL>
conn / as sysdba
alter database open;
conn scott/tiger
SQL> select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
DEPT TABLE
EMP TABLE
BONUS TABLE
SALGRADE TABLE
SQL>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
如何连接到oracle数据库
若使用客户端调用数据库,会涉及到中间层(asp,java,等)翻译工具。
sqlplus也有相应的翻译工具,或者客户端工具。
翻译工具:
10g、11g、12c
[oracle@wyzc ~]$ ls /u01/oracle/10g/jdbc/lib/
classes12dms.jar classes12.zip ojdbc14dms_g.jar ojdbc14_g.jar
classes12.jar nls_charset12.jar ojdbc14dms.jar ojdbc14.jar
[oracle@wyzc ~]$
/u01/oracle/10g/jdbc/lib/class12.jar
/u01/oracle/10g/jdbc/lib/ojdbc14.jar
这些oracle驱动去调用相关软件
在linux下使用isql访问oracle需要unixodbc驱动
[oracle@wyzc ~]$ ls /u01/oracle/10g/odbc/lib/
env_odbc.mk ins_odbc.mk
[oracle@wyzc ~]$
客户端工具:
sqlplus
sqldevelop
toad
pl/sql develop
ORACLE NET-->监听、本地命名
[oracle@wyzc ~]$ 10g
[oracle@wyzc ~]$ lsnrctl status查看监听状态
LSNRCTL for Linux: Version 10.2.0.5.0 - Production on 03-MAR-2017 16:00:37
Copyright (c) 1991, 2010, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wyzc.com)(PORT=1522)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 10.2.0.5.0 - Production
Start Date 03-MAR-2017 12:11:45
Uptime 0 days 3 hr. 48 min. 52 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/oracle/10g/network/admin/listener.ora
Listener Log File /u01/oracle/10g/network/log/listener.log
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wyzc.com)(PORT=1522)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC0)))
Services Summary...
Service "PLSExtProc" has 1 instance(s).
Instance "PLSExtProc", status UNKNOWN, has 1 handler(s) for this service...
Service "wyzc10g" has 2 instance(s).
Instance "wyzc10g", status UNKNOWN, has 1 handler(s) for this service...
Instance "wyzc10g", status READY, has 1 handler(s) for this service...
Service "wyzc10gXDB" has 1 instance(s).
Instance "wyzc10g", status READY, has 1 handler(s) for this service...
Service "wyzc10g_XPT" has 1 instance(s).
Instance "wyzc10g", status READY, has 1 handler(s) for this service...
The command completed successfully
客户端登录scott tiger IP:1522/wyzc10gXDB(服务名)
服务名默认是实例名
11g 装了grid,在grid里查看监听
没装的 ,在database查看监听
[oracle@wyzc ~]$ grid11g
[oracle@wyzc ~]$ lsnrctl status
LSNRCTL for Linux: Version 11.2.0.3.0 - Production on 03-MAR-2017 16:04:06
Copyright (c) 1991, 2011, Oracle. All rights reserved.
Connecting to (DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=wyzc.com)(PORT=1523)))
STATUS of the LISTENER
------------------------
Alias LISTENER
Version TNSLSNR for Linux: Version 11.2.0.3.0 - Production
Start Date 03-MAR-2017 13:13:49
Uptime 0 days 2 hr. 50 min. 17 sec
Trace Level off
Security ON: Local OS Authentication
SNMP OFF
Listener Parameter File /u01/grid/11g/network/admin/listener.ora
Listener Log File /u01/oracle/diag/tnslsnr/wyzc/listener/alert/log.xml
Listening Endpoints Summary...
(DESCRIPTION=(ADDRESS=(PROTOCOL=tcp)(HOST=wyzc.com)(PORT=1523)))
(DESCRIPTION=(ADDRESS=(PROTOCOL=ipc)(KEY=EXTPROC1523)))
Services Summary...
Service "wyzc11g" has 1 instance(s).
Instance "wyzc11g", status READY, has 1 handler(s) for this service...
Service "wyzc11gXDB" has 1 instance(s).
Instance "wyzc11g", status READY, has 1 handler(s) for this service...
The command completed successfully
sqlplus scott/tiger@wyzc.com:1523/wyzc11gXDB(共享连接)
~~~~~~~~~~~~~~~~~~~~~~
用户进程,在客户端产生的进程
首先sqlplus工具与server进行tcp/ip通信,建立会话并保存在PGA。
IPC通信互联网进程调用,本地连接os认证。
怎么找出用户进程--》sqldevelop打开
10g
sqlplus / as sysdba
desc v$session
SID
PADDR
USERNAME
TADDR---事务
SCHEMA
OSUER------客户端上的用户
PROCESS----进程号
MACHINE----客户端主机名
program----软件
select osuser,process,machine,program from v$session where username='scott';
col osuser for a15
col process for a15
col machine for a15
col program for a15
[oracle@wyzc ~]$ sqlplus scott/tiger
[oracle@wyzc ~]$ sqlplus / as sysdba
SQL> col osuser for a15
SQL> col process for a15
SQL> col machine for a15
SQL> col program for a15
SQL>
SQL> select osuser,process,machine,program from v$session where username='SCOTT';
OSUSER PROCESS MACHINE PROGRAM
--------------- --------------- --------------- ---------------
oracle 63861 wyzc.com sqlplus@wyzc.co
m (TNS V1-V3)
SQL>
10g
sqlplus scott/tiger
select server,process,machine,program from v$session where username='scott';
DEDICATED-->专有连接--1个服务器进程对应1个用户进程
SQL> select server,process,machine,program from v$session where username='SCOTT';
SERVER PROCESS MACHINE PROGRAM
--------- --------------- --------------- ---------------
DEDICATED 63861 wyzc.com sqlplus@wyzc.co
m (TNS V1-V3)
SQL>
select server,process,machine,program,paddr from v$session where username='scott';
select spid from v$process where addr='paddr的值';
ho ps -ef|grep 4407
local=yes-->本地连接
SQL> select server,process,machine,paddr from v$session where username='SCOTT';
SERVER PROCESS MACHINE PADDR
--------- --------------- --------------- ----------------
DEDICATED 63861 wyzc.com 0000000077AFA5A8
SQL>
SQL> select spid from v$process where addr='0000000077AFA5A8';
SPID
------------
63862
SQL>
SQL> ho ps -ef|grep 63862
oracle 63862 63861 0 16:57 ? 00:00:00 oraclewyzc10g (DESCRIPTION=(LOCAL=YES)(ADDRESS=(PROTOCOL=beq)))
若sqlplus scott/tiger@wyzc.com:1522/wyzc10g
此时有两个paddr的值,找出local=no
[oracle@wyzc ~]$ sqlplus scott/tiger@wyzc.com:1522/wyzc10gXDB
SQL> select server,process,machine,paddr from v$session where username='SCOTT';
SERVER PROCESS MACHINE PADDR
--------- --------------- --------------- ----------------
NONE 70708 wyzc.com 0000000077AF3E10
sqlplus scott/tiger@wyzc.com:1522/wyzc10gXDB
NONE-->共享连接--1个服务器进程对应多个用户进程
vi /u01/oracle/10g/network/admin/tnsnames.ora
WYZC10GS
SERVER=shared
SERVICE_NAME=wyzc10gXDB
sqlplus scott/tiger@wyzc.com:1523/wyzc10gs
~~~~~~~~~~~~~~
服务器进程
接受用户进程并作处理。每个用户进程对应一个pga
建立连接,建立的会话信息存放在PGA。
paddr的值对应PGA中的ADDR
desc v$process
SQL> select spid from v$process where addr in (select paddr from v$session where username='SCOTT');
SPID
------------
72306
SQL>
SQL> ho ps -ef|grep 72306
oracle 72306 1 0 18:09 ? 00:00:00 oraclewyzc10g (LOCAL=NO)
select spid from v$process where addr in (select paddr from v$session where username='scott');
ho ps -ef |grep 2036进程信息查看
top -p 2306
11g进程的跟踪文件
11g
sqlplus / as sysdba
desc v$process
TRACEFILE
查看pga内存大小 32bit 1.7g 64bit
show parameter pga_a
修改alter system set pga_aggregate_target=5G;
12c
show parameter pga_aggregate_limite限制pga避免过多使用sga
~~~~~~~~~~~~~~~~~~~~~~~~~~
SGA&PGA
show parameter sga_target
select * from v$sgainfo;
granule size-->小于1g以4M为单位,大于1g以16M为单位
desc v$process
background
desc v$dbprocess
select paddr,name from v$bgprocess where paddr<>'00';当前正在使用的后台进程
ho ps -ef|grep ora_|grep wyzc10g
SQL> select paddr,name from v$bgprocess;
PADDR NAME
---------------- -----
00 ASMB
00 GMON
0000000077AF2E20 MMON
0000000077AF3618 MMNL
158 rows selected.
SQL> select paddr,name from v$bgprocess where paddr<>'00';
PADDR NAME
---------------- -----
0000000077AEE668 PMON
0000000077AEEE60 PSP0
0000000077AEF658 MMAN
0000000077AEFE50 DBW0
0000000077AF0648 LGWR
0000000077AF0E40 CKPT
0000000077AF1638 SMON
0000000077AF1E30 RECO
0000000077AF2628 CJQ0
0000000077AF55F8 QMNC
0000000077AF2E20 MMON
PADDR NAME
---------------- -----
0000000077AF3618 MMNL
12 rows selected.
SQL>
查看数据文件
select name from v$datafile;
select member from v$logfile;
select name from v$controlfile;
show parameter spfile;
1.查询过程
2.事务提交、DML/DCL/DDL过程
3.补充
- 【2017/4/10】认识oracle db体系结构
- Oracle DB内存体系结构
- Oracle DB进程体系结构
- Oracle DB存储体系结构
- Oracle DB 体系结构
- Oracle学习笔记-第四章-认识Oracle体系结构
- oracle 10g 体系结构
- oracle 10g 体系结构
- Oracle 10 体系结构
- Oracle 10g 体系结构
- oracle 10g体系结构
- 先对oracle 体系结构有个总体的认识
- oracle 10g的体系结构
- Oracle Database 10g体系结构
- oracle学习之体系结构4
- 软件体系结构认识
- 【软件工程】认识软件体系结构
- oracle学习之--4oracle的体系结构
- 函数work3
- 5.1判断两个字符串是否互为变形词(输入流)
- 矩阵快速幂模板
- 微信公众号,微信模版发送信息(java)
- 在php模版文件和html文件中引入js,css文件错误解决
- 【2017/4/10】认识oracle db体系结构
- G
- 剪切大的TIFF图片生成小的TIFF图片
- java异常总结
- 4-10
- jquery总结备忘
- windows 64位 创建MongoDB 服务
- LeetCode 376. Wiggle Subsequence 题解
- linux学习9练习题及答案