第六讲Oracle数据库服务器例程

合集下载

linux系统oracle 数据库创建实例

linux系统oracle 数据库创建实例

linux系统oracle 数据库创建实例在Linux系统上创建Oracle数据库实例,可以按照以下步骤进行操作:1. 安装Oracle数据库软件。

首先,下载适用于Linux系统的Oracle数据库软件,并按照安装步骤进行安装。

2. 设置环境变量。

将Oracle数据库软件的安装路径添加到PATH环境变量中,以便系统可以找到相关的Oracle命令和工具。

3. 创建数据库实例目录。

选择一个合适的目录用于存储数据库实例文件,例如:/u01/app/oracle/oradata/。

4. 使用Oracle用户登录系统。

在Linux系统上创建一个拥有合适权限的Oracle用户,并使用该用户登录系统。

5. 使用dbca命令创建数据库实例。

在终端中输入以下命令启动数据库配置助手(Database Configuration Assistant):dbca6. 选择创建数据库实例选项。

根据实际需求,选择创建新的数据库实例或者基于现有的模板来创建数据库实例。

7. 配置数据库实例参数。

在配置向导中,按照提示设置数据库实例的名称、监听器、字符集、内存大小等参数。

8. 创建数据库。

根据向导的指示,输入数据库管理员(DBA)密码,并完成数据库的创建过程。

9. 启动数据库实例。

使用以下命令启动数据库实例:sqlplus / as sysdba,然后输入startup命令。

10. 验证数据库实例。

输入以下命令验证数据库实例是否成功创建:sqlplus / as sysdba,然后输入select * from v$version命令,查看数据库版本信息。

以上就是在Linux系统上创建Oracle数据库实例的基本步骤。

具体操作可能会因Oracle软件版本和Linux发行版的不同而略有差异,可以根据具体情况进行调整。

Oracle数据库应用课件6

Oracle数据库应用课件6
表空间信息查询
CONN system/systempwd@orcl SET PAGESIZE 30 COL tablespace_name FORMAT A12
select tablespace_name, block_size, segment_space_management, status, contents, allocation_type, bigfile
6.1 创建Oracle数据库
创建Oracle数据库的先决条件
安装需要的Oracle软件 设置操作系统环境变量 在磁盘建立目录结构 获得相应的操作系统权限和Oracle的SYSDBA系统特权 充足的磁盘存储空间
创建数据库的方法
工具——DBCA 手工——使用SQL命令
使用DBCA创建数据库—推荐使用
Oracle数据库配置助手(DBCA),是一个图形用户界 面(GUI)工具,它可与Oracle通用安装程序进行交互 ,也可以单独使用,主要作用是简化数据库的创建 过程。
DBCA能完成的操作
➢ 创建数据库 ➢ 配置数据库选项 ➢ 删除数据库 ➢ 数据库创建模板管理 ➢ 配置自动存储管理(ASM)
操作方法:
手工创建Oracle数据库
在磁盘上建立相应的目录结构 设置操作系统环境变量 其他主要步骤如下:
➢ (1)决定实例标识符(Instance IDentifier,SID) ➢ (2)建立数据库管理员验证方法 ➢ (3)创建初始化参数文件 ➢ (4)在SQL*Plus中连接到实例 ➢ (5)启动实例 ➢ (6)发布CREATE DATABASE语句创建数据库 ➢ (7)创建其他表空间 ➢ (8)运行脚本来构建数据字典视图 ➢ (9)运行脚本来安装其它的选项
50M reuse uniform size 128k;

oracle数据库创建实例

oracle数据库创建实例

oracle数据库创建实例Oracle数据库是目前世界上使用最广泛的商业数据库之一,它的稳定性和数据处理能力备受业界推崇。

在使用Oracle数据库时,首先需要创建一个实例,本文将介绍Oracle数据库创建实例的步骤和注意事项。

1. 配置环境变量在创建Oracle实例之前,需要先配置好相关的环境变量,确保Oracle数据库可以正常运行。

首先需要设置ORACLE_BASE,这是Oracle的基础路径,一般情况下设为/opt/oracle。

其次需要设置ORACLE_HOME,这是Oracle的安装路径,一般情况下设为/opt/oracle/product/11.2.0/dbhome_1。

最后需要设置PATH和LD_LIBRARY_PATH,将Oracle相关的二进制文件路径和库文件路径加入到系统环境变量中。

2. 创建实例创建Oracle实例需要使用dbca命令行工具,该工具可以通过Oracle安装程序自动安装。

在使用dbca之前,需要确保Oracle 数据库服务已经启动。

执行以下命令启动Oracle服务:$ su - oracle$ sqlplus / as sysdbaSQL> startup在Oracle服务启动后,使用dbca创建实例。

执行以下命令:$ dbca在dbca的图形界面中,选择创建数据库。

在创建数据库的过程中,需要指定实例名称、数据库名称、数据库字符集、数据库管理员密码等信息。

需要注意的是,实例名称和数据库名称可以不同,但是实例名称必须唯一。

3. 配置监听器在创建Oracle实例后,需要配置监听器。

监听器是Oracle数据库服务的入口,它负责监听客户端的连接请求,并将请求转发给相应的实例。

在Oracle中,监听器可以使用lsnrctl命令进行管理。

执行以下命令启动监听器:$ lsnrctl start在监听器启动后,需要将实例注册到监听器中。

执行以下命令:$ lsnrctl status$ sqlplus / as sysdbaSQL> alter system register;4. 连接实例在实例和监听器配置完成后,可以使用sqlplus命令连接Oracle实例。

C#Oracle数据库操作类实例详解

C#Oracle数据库操作类实例详解

C#Oracle数据库操作类实例详解本⽂所述为C#实现的Oracle数据库操作类,可执⾏超多常⽤的Oracle数据库操作,包含了基础数据库连接、关闭连接、输出记录集、执⾏Sql语句,返回带分页功能的dataset 、取表⾥字段的类型和长度等,同时还有哈稀表⾃动插⼊数据库等⾼级任务。

需要特别指出的是:在执⾏SQL语句,返回 DataReader之前⼀定要先⽤.read()打开,然后才能读到数据,再⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"。

本⽂所述为C#实现的Oracle数据库操作类,可执⾏超多常⽤的Oracle数据库操作,包含了基础数据库连接、关闭连接、输出记录集、执⾏Sql语句,返回带分页功能的dataset 、取表⾥字段的类型和长度等,同时还有哈稀表⾃动插⼊数据库等⾼级任务。

需要特别指出的是:在执⾏SQL语句,返回 DataReader之前⼀定要先⽤.read()打开,然后才能读到数据,再⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"。

完整的C# Oracle数据库类实例代码如下:using System;using System.Data;using System.Data.OracleClient;using System.Collections;using System.Reflection;namespace MyOraComm{/// ConnDbForOracle 的摘要说明。

public class ConnForOracle{protected OracleConnection Connection;private string connectionString;public ConnForOracle(){string connStr;connStr = System.Configuration.ConfigurationSettings.AppSettings["connStr"].ToString();connectionString = connStr;Connection = new OracleConnection(connectionString);}#region 带参数的构造函数/// 带参数的构造函数/// 数据库联接字符串public ConnForOracle(string ConnString){string connStr;connStr = System.Configuration.ConfigurationSettings.AppSettings[ConnString].ToString();Connection = new OracleConnection(connStr);}#endregion#region 打开数据库/// 打开数据库public void OpenConn(){if(this.Connection.State!=ConnectionState.Open)this.Connection.Open();}#endregion#region 关闭数据库联接/// 关闭数据库联接public void CloseConn(){if(Connection.State==ConnectionState.Open)Connection.Close();}#endregion#region 执⾏SQL语句,返回数据到DataSet中/// 执⾏SQL语句,返回数据到DataSet中/// sql语句/// ⾃定义返回的DataSet表名/// 返回DataSetpublic DataSet ReturnDataSet(string sql,string DataSetName){DataSet dataSet=new DataSet();OpenConn();OracleDataAdapter OraDA=new OracleDataAdapter(sql,Connection);OraDA.Fill(dataSet,DataSetName);// CloseConn();return dataSet;}#endregion/// Sql语句/// 每页显⽰记录数/// <当前页/param>/// 返回dataset表名/// 返回DataSetpublic DataSet ReturnDataSet(string sql,int PageSize,int CurrPageIndex,string DataSetName){DataSet dataSet=new DataSet();OpenConn();OracleDataAdapter OraDA=new OracleDataAdapter(sql,Connection);OraDA.Fill(dataSet,PageSize * (CurrPageIndex - 1), PageSize,DataSetName);// CloseConn();return dataSet;}#endregion#region 执⾏SQL语句,返回 DataReader,⽤之前⼀定要先.read()打开,然后才能读到数据/// 执⾏SQL语句,返回 DataReader,⽤之前⼀定要先.read()打开,然后才能读到数据/// sql语句/// 返回⼀个OracleDataReaderpublic OracleDataReader ReturnDataReader(String sql){OpenConn();OracleCommand command = new OracleCommand(sql,Connection);return command.ExecuteReader(mandBehavior.CloseConnection);}#endregion#region 执⾏SQL语句,返回记录总数数/// 执⾏SQL语句,返回记录总数数/// sql语句/// 返回记录总条数public int GetRecordCount(string sql){int recordCount = 0;OpenConn();OracleCommand command = new OracleCommand(sql,Connection);OracleDataReader dataReader = command.ExecuteReader();while(dataReader.Read()){recordCount++;}dataReader.Close();//CloseConn();return recordCount;}#endregion#region 取当前序列,条件为seq.nextval或seq.currval////// 取当前序列public decimal GetSeq(string seqstr){decimal seqnum = 0;string sql="select "+seqstr+" from dual";OpenConn();OracleCommand command = new OracleCommand(sql,Connection);OracleDataReader dataReader = command.ExecuteReader();if(dataReader.Read()){seqnum=decimal.Parse(dataReader[0].ToString());}dataReader.Close();// CloseConn();return seqnum;}#endregion#region 执⾏SQL语句,返回所影响的⾏数/// 执⾏SQL语句,返回所影响的⾏数public int ExecuteSQL(string sql){int Cmd=0;OpenConn();OracleCommand command = new OracleCommand(sql,Connection);try{Cmd =command.ExecuteNonQuery(); //ExecuteNonQuery⽅法,返回受影响的⾏数,适⽤于insert/update/delete }catch{}}return Cmd;}#endregion//==⽤hashTable对数据库进⾏insert,update,del操作,注意此时只能⽤默认的数据库连接"connstr"#region 根据表名及哈稀表⾃动插⼊数据库⽤法:Insert("test",ht)public int Insert(string TableName,Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int size=0;int i=0;while ( et.MoveNext() ) // 作哈希表循环{GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),otype,size,et.Value.ToString()); Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetInsertSqlbyHt(TableName,ht); // 获得插⼊sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion#region 根据相关条件对数据库进⾏更新操作⽤法:Update("test","Id=:Id",ht);public int Update(string TableName,string ht_Where, Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int size=0;int i=0;// 作哈希表循环while ( et.MoveNext() ){GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),otype,size,et.Value.ToString()); Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetUpdateSqlbyHt(TableName,ht_Where,ht); // 获得插⼊sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion#region del操作,注意此处条件个数与hash⾥参数个数应该⼀致⽤法:Del("test","Id=:Id",ht)public int Del(string TableName,string ht_Where,Hashtable ht){OracleParameter[] Parms=new OracleParameter[ht.Count];IDictionaryEnumerator et = ht.GetEnumerator();DataTable dt=GetTabType(TableName);System.Data.OracleClient.OracleType otype;int i=0;int size=0;// 作哈希表循环while ( et.MoveNext() ){GetoType(et.Key.ToString().ToUpper(),dt,out otype,out size);System.Data.OracleClient.OracleParameter op=MakeParam(":"+et.Key.ToString(),et.Value.ToString());Parms[i]=op; // 添加SqlParameter对象i=i+1;}string str_Sql=GetDelSqlbyHt(TableName,ht_Where,ht); // 获得删除sql语句int val=ExecuteNonQuery(str_Sql,Parms);return val;}#endregion// ========上⾯三个操作的内部调⽤函数==================#region 根据哈稀表及表名⾃动⽣成相应insert语句(参数类型的)/// 根据哈稀表及表名⾃动⽣成相应insert语句/// 要插⼊的表名/// 哈稀表/// 返回sql语句int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();string before="";string behide="";while ( myEnumerator.MoveNext() ){if (i==0){before="("+myEnumerator.Key;}else if (i+1==ht_Count){before=before+","+myEnumerator.Key+")";}else{before=before+","+myEnumerator.Key;}i=i+1;}behide=" Values"+before.Replace(",",",:").Replace("(","(:");str_Sql="Insert into "+TableName+before+behide;return str_Sql;}#endregion#region 根据表名,where条件,哈稀表⾃动⽣成更新语句(参数类型的)public static string GetUpdateSqlbyHt(string Table,string ht_Where,Hashtable ht){string str_Sql="";int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();while ( myEnumerator.MoveNext() ){if (i==0){if (ht_Where.ToString().ToLower().IndexOf((myEnumerator.Key+"=:"+myEnumerator.Key).ToLower())==-1) {str_Sql=myEnumerator.Key+"=:"+myEnumerator.Key;}}else{if (ht_Where.ToString().ToLower().IndexOf((":"+myEnumerator.Key+" ").ToLower())==-1){str_Sql=str_Sql+","+myEnumerator.Key+"=:"+myEnumerator.Key;}}i=i+1;}if (ht_Where==null || ht_Where.Replace(" ","")=="") // 更新时候没有条件{str_Sql="update "+Table+" set "+str_Sql;}else{str_Sql="update "+Table+" set "+str_Sql+" where "+ht_Where;}str_Sql=str_Sql.Replace("set ,","set ").Replace("update ,","update ");return str_Sql;}#endregion#region 根据表名,where条件,哈稀表⾃动⽣成del语句(参数类型的)public static string GetDelSqlbyHt(string Table,string ht_Where,Hashtable ht){string str_Sql="";int i=0;int ht_Count=ht.Count; // 哈希表个数IDictionaryEnumerator myEnumerator = ht.GetEnumerator();while ( myEnumerator.MoveNext() ){if (i==0){if (ht_Where.ToString().ToLower().IndexOf((myEnumerator.Key+"=:"+myEnumerator.Key).ToLower())==-1) {str_Sql=myEnumerator.Key+"=:"+myEnumerator.Key;}if (ht_Where.ToString().ToLower().IndexOf((":"+myEnumerator.Key+" ").ToLower())==-1){str_Sql=str_Sql+","+myEnumerator.Key+"=:"+myEnumerator.Key;}}i=i+1;}if (ht_Where==null || ht_Where.Replace(" ","")=="") // 更新时候没有条件{str_Sql="Delete "+Table;}else{str_Sql="Delete "+Table+" where "+ht_Where;}return str_Sql;}#endregion#region ⽣成oracle参数////// ⽣成oracle参数/// 字段名/// 数据类型/// 数据⼤⼩/// 值public static OracleParameter MakeParam(string ParamName,System.Data.OracleClient.OracleType otype,int size,Object Value) {OracleParameter para=new OracleParameter(ParamName,Value);para.OracleType=otype;para.Size=size;return para;}#endregion#region ⽣成oracle参数public static OracleParameter MakeParam(string ParamName,string Value){return new OracleParameter(ParamName, Value);}#endregion#region 根据表结构字段的类型和长度拼装oracle sql语句参数public static void GetoType(string key,DataTable dt,out System.Data.OracleClient.OracleType otype,out int size){DataView dv=dt.DefaultView;dv.RowFilter="column_name='"+key+"'";string fType=dv[0]["data_type"].ToString().ToUpper();switch (fType){case "DATE":otype= OracleType.DateTime;size=int.Parse(dv[0]["data_length"].ToString());break;case "CHAR":otype= OracleType.Char;size=int.Parse(dv[0]["data_length"].ToString());break;case "LONG":otype= OracleType.Double;size=int.Parse(dv[0]["data_length"].ToString());break;case "NVARCHAR2":otype= OracleType.NVarChar;size=int.Parse(dv[0]["data_length"].ToString());break;case "VARCHAR2":otype= OracleType.NVarChar;size=int.Parse(dv[0]["data_length"].ToString());break;default:otype= OracleType.NVarChar;size=100;break;}}#endregion#region动态取表⾥字段的类型和长度,此处没有动态⽤到connstr,是默认的!by/⽂少public System.Data.DataTable GetTabType(string tabnale){string sql="select column_name,data_type,data_length from all_tab_columns where table_name='"+tabnale.ToUpper()+"'";OpenConn();return (ReturnDataSet(sql,"dv")).Tables[0];public int ExecuteNonQuery(string cmdText, params OracleParameter[] cmdParms) {OracleCommand cmd = new OracleCommand();OpenConn();cmd.Connection=Connection;mandText = cmdText;if (cmdParms != null){foreach (OracleParameter parm in cmdParms)cmd.Parameters.Add(parm);}int val = cmd.ExecuteNonQuery();cmd.Parameters.Clear();//conn.CloseConn();return val;}#endregion}}。

oracle创建实例步骤

oracle创建实例步骤

oracle创建实例步骤一、概述Oracle数据库是一种关系型数据库管理系统,可以通过创建实例来进行数据库的管理和操作。

本文将介绍Oracle创建实例的步骤,以帮助读者快速掌握实例创建的过程。

二、安装Oracle数据库软件在创建Oracle实例之前,首先需要安装Oracle数据库软件。

安装过程可以参考Oracle官方文档或者相关教程进行操作。

三、配置Oracle数据库参数文件1. 打开Oracle数据库软件所在的安装目录,找到数据库参数文件的位置。

一般情况下,参数文件位于$ORACLE_HOME/dbs目录下。

2. 复制一个参数文件的备份,命名为init<实例名>.ora,例如initORCL.ora。

3. 打开备份的参数文件,根据实际需求修改其中的配置项。

例如,可以修改数据库名称、监听端口、内存分配等参数。

4. 保存修改后的参数文件。

四、创建Oracle实例1. 打开命令行窗口或者终端,使用sysdba权限登录到Oracle数据库。

可以使用以下命令登录:sqlplus /nologconn / as sysdba2. 输入以下命令创建实例:create database <实例名>例如,create database ORCL3. 等待实例创建完成,创建过程中会显示进度信息。

五、配置Oracle实例参数1. 使用以下命令打开实例参数配置界面:sqlplus /nologconn / as sysdbaalter system set <参数名>=<参数值> scope=spfile;例如,alter system set memory_target=2G scope=spfile;2. 根据实际需求,修改实例的配置参数。

例如,可以修改内存分配、并发连接数、表空间大小等参数。

3. 使用以下命令使参数配置生效:shutdown immediatestartup六、创建Oracle数据库用户1. 使用以下命令登录到Oracle数据库:sqlplus /nologconn / as sysdba2. 输入以下命令创建数据库用户:create user <用户名> identified by <密码>;例如,create user test identified by test123;3. 授予用户权限:grant connect, resource to <用户名>;例如,grant connect, resource to test;4. 提交更改:commit;七、测试连接Oracle实例1. 使用以下命令登录到Oracle数据库:sqlplus <用户名>/<密码>@<实例名>例如,sqlplus test/test123@ORCL2. 如果能够成功登录到数据库,说明实例创建和配置成功。

oracle数据库概述课件

oracle数据库概述课件
用开发
第 9章数据库启动与关闭
oracle数据库第 概1 1述章 安 全 管 理
第 13 章 网 络 管 理
基础篇
第1章 Oracle数据库概述
oracle数据库概述
教学目标:
• 掌握数据库的基础知识
• 了解Oracle发展、产品组成、性能特点 • 了解计算机与信息社会 • 了解Oracle数据库的应用架构
oracle数据库概述
1.1.4关系数据库功能
采用关系模型的数据库系统,主要功能: • 数据定义 • 数据操作 • 数据库运行与控制 • 数据库的建立与维护 • 数据库接口
oracle数据库概述
1.1.5主流数据库简介
• ORACLE:开发商为美国甲骨文公司.它是目前最 流行、应用最广泛的客户端/服务器(C/S)体系 结构的关系数据库。
• DB2:开发商为IBM。 • Sybase:开发商为Sybase公司。可运行于
UNIX\Window。 • Microsoft SQL Server:开发商微软公司。 • My SQL:开发商My SQL公司。是开源数据库。
oracle数据库概述
1.2 Oracle数据库系统
1.2.1Oracle数据库简介 Oracle数据库是1979年发布在世界上第 一个关系数据库管理系统,前身由Larry Ellison, Bob Miner, Ed Oates在硅谷 创办的一家软件开发实验室的计算机公 司发展来。目前, Oracle是业界领先的 数据库企业,世界第二大独立软件企业 ,仅次于微软。
– 位于操作系统与用户之间的一层数据管理软 件
• 数据库系统
– 数据库、数据库管理系统与计算机系统结合 后就形成了一个or数acle数据据库库概述系统

Oracle数据库应用教程

Oracle数据库应用教程

Oracle数据库应用教程第一章:Oracle数据库介绍1.1 Oracle数据库的定义和特点1.2 Oracle数据库的应用领域1.3 Oracle数据库的版本和发展历程第二章:Oracle数据库体系结构2.1 Oracle数据库的逻辑结构2.2 Oracle数据库的物理结构2.3 Oracle数据库的内存结构第三章:Oracle数据库的安装与配置3.1 安装Oracle数据库软件3.1.1 硬件和软件要求3.1.2 安装程序的运行和设置3.2 创建数据库实例3.2.1 创建数据库参数文件3.2.2 初始化数据库实例3.3.1 配置监听器3.3.2 配置网络服务名称第四章:Oracle数据库的基本操作4.1 数据库连接和断开4.2 数据库对象的创建和管理4.2.1 表的创建和管理4.2.2 索引的创建和管理4.2.3 视图的创建和管理4.3 数据的插入、查询、更新和删除4.3.1 SELECT语句的使用4.3.2 INSERT、UPDATE和DELETE语句的使用 4.4 数据库事务的管理4.4.1 事务的定义和特性4.4.2 事务的并发控制4.4.3 事务的隔离级别和锁机制第五章:Oracle数据库的高级功能5.1.1 数据库查询优化5.1.2 索引的优化5.1.3 SQL语句的优化5.2 数据库备份与恢复5.2.1 数据库备份策略和工具5.2.2 数据库恢复操作5.3 数据库的高可用性和容灾5.3.1 Oracle Data Guard5.3.2 Oracle RAC第六章:Oracle数据库的安全管理 6.1 用户和角色的管理6.1.1 创建和授权用户6.1.2 分配和管理角色6.2 数据库对象的权限管理6.2.1 授予和撤销权限6.2.2 角色的权限管理6.3 数据库的审计和监控6.3.1 审计功能的开启和配置6.3.2 监控数据库活动6.4 数据库的加密和脱敏6.4.1 数据的加密和解密6.4.2 敏感数据的脱敏处理第七章:Oracle数据库的高级开发技术 7.1 存储过程和函数的开发7.1.1 存储过程和函数的定义和调用 7.1.2 存储过程和函数的调试和优化 7.2 触发器的开发和使用7.2.1 触发器的定义和触发条件7.2.2 触发器的应用场景和注意事项 7.3 数据库连接池的使用7.3.1 数据库连接池的定义和特点7.3.2 数据库连接池的配置和管理第八章:Oracle数据库的监控和调优8.1 数据库的运行状态和性能监控8.1.1 数据库性能指标和监控工具8.1.2 监控和优化查询性能8.2 SQL Trace和AWR报告的分析8.2.1 生成和分析SQL Trace文件8.2.2 使用AWR报告进行性能优化第九章:Oracle数据库的备份与恢复9.1 数据库备份策略和方案9.1.1 磁盘备份和恢复9.1.2 磁带备份和恢复9.2 数据库故障和灾难的恢复9.2.1 数据文件损坏的恢复9.2.2 表空间丢失的恢复结语:本教程详细介绍了Oracle数据库的应用,包括数据库的安装与配置、基本操作、高级功能、安全管理、高级开发技术、监控和调优以及备份与恢复等方面。

Oracle数据库搭建手册

Oracle数据库搭建手册

Oracle数据库搭建手册一、数据库服务器端(oracle10g)安装1.Oracle10g版本是10.2.0.1.02.选择Oracle安装目录(D:\oracle\product\10.2.0\db_1),全局数据库名:ats,数据库口令:ats,如下图中红色标识。

3.如果是windwows server2008系统下,点击“下一步”安装Oracle10g会提示“程序异常终止,发生未知错误”。

如下图所示:关于此问题的解决方法如下:3.1点击取消按钮,退出安装程序。

3.2.修改Oracle10G(安装文件)\database\stage\prereq\db\refhost.xml当打开refhost.xml文件在后面添加<OPERATING_SYSTEM><VERSION VALUE="6.1"/></OPERATING_SYSTEM>3.3.到install目录中找到oraparam.ini文件,把#Windows=4.0,5.0,5.1,5.2修改成#Windows=4.0,5.0,5.1,5.2,6.1并在后面添加[Windows-6.1-required]#Minimum display colours for OUI to runMIN_DISPLAY_COLORS=256#Minimum CPU speed required for OUI#CPU=300[Windows-6.1-optional]4.右键setup.exe,属性->兼容性->以兼容模式运行这个程序Windows Server2003,并以管理员身份运行。

如下图所示:5.运行程序后,安装步骤2填写完后,点击“下一步”即可进入安装界面。

如下图所示:6.安装过程中,会有一段等待时间,此时需保持机器不要待机。

如下图:安装到77%时,会等约5分钟后,才进入下一步安装过程。

oracle数据库使用教程

oracle数据库使用教程

oracle数据库使用教程Oracle数据库是一种关系型数据库管理系统,广泛用于企业级应用程序的开发和数据管理。

它提供了强大的功能和高效的性能,同时也具有可靠性和安全性。

本教程将介绍Oracle数据库的主要特点和使用方法,并提供一些示例来帮助读者更好地理解和应用。

首先,我们需要安装Oracle数据库软件。

您可以从Oracle官网上下载并安装适合您操作系统的版本。

安装过程中需要注意选择合适的选项并设置正确的参数。

安装完成后,我们需要创建一个数据库实例。

Oracle数据库支持多实例的部署架构,每个实例可以独立运行并管理自己的数据。

创建实例时需要指定数据库的名称、存储路径和相关配置,例如内存分配和网络连接等。

创建实例后,我们可以使用SQL*Plus或SQL开发工具来连接和操作数据库。

SQL*Plus是Oracle提供的命令行界面工具,可以直接在命令行中输入SQL语句并执行。

SQL开发工具则是一种图形化界面工具,提供更直观的操作和显示方式。

在Oracle数据库中,数据以表的形式进行组织和存储。

我们可以使用SQL语句来创建、查询、修改和删除表。

例如,创建一个名为"employee"的表,可以使用以下SQL语句:CREATE TABLE employee (id INT,name VARCHAR(50),age INT,department VARCHAR(50));这个语句将创建一个包含id、name、age和department四个字段的表。

字段的数据类型可以根据实际需求进行选择。

除了表,我们还可以创建索引来提高查询的性能。

索引是一种特殊的数据结构,可以加快数据的查找和访问。

例如,为"employee"表中的"name"字段创建一个索引,可以使用以下SQL语句:CREATE INDEX idx_employee_name ON employee (name);查询数据是数据库应用中最常见的操作之一。

oracle数据库实用教程

oracle数据库实用教程

05 Oracle数据库的性能优化
Oracle数据库的性能监控工具
Oracle Enterprise Manager: 提供全面的数据库管理功能, 包括性能监控、配置管理、作 业调度等。
Automatic Workload Repository (AWR):收集、 处理和存储性能统计信息,为 性能分析和调优提供数据支持。
其他类型
包括BLOB、CLOB等类型,用于存储二进制 数据和字符大段数据。
Oracle数据库的表创建与维护
创建表
使用CREATE TABLE语句创建表,定义表的结构和数据类型。
修改表
使用ALTER TABLE语句修改表的结构,如添加、删除或修改列。
删除表
使用DROP TABLE语句删除表及其所有数据。
备份存储位置等。
A 数据备份概述
介绍Oracle数据库数据备份的概念、 目的和重要性。
B
C
D
恢复操作
介绍如何使用Oracle数据库提供的工具和 命令进行数据恢复,包括点时间恢复、全 量恢复和增量恢复等。
备份操作
介绍如何使用Oracle数据库提供的工具和 命令进行数据备份,包括全量备份、增量 备份和差异备份等。
退出
使用SQL*Plus命令行工具,输入`exit`或`quit`命令退出 Oracle数据库。
Oracle数据库的数据类型
数值型
包括整数、小数、浮点数等类型,如 NUMBER、INT、FLOAT等。
字符型
包括VARCHAR2、CHAR等类型,用于存储 字符串数据。
日期型
包括DATE、TIMESTAMP等类型,用于存储 日期和时间数据。
oracle数据库实用教程

oracle数据库基本操作讲义

oracle数据库基本操作讲义

• SQL> select * from test; NAME ---------scott SQL> select owner ,table_name from dba_tables where table_name=upper(‘test’); OWNER TABLE_NAME ------------------------------ -----------------------------SCOTT TEST SYSTEM TEST --在使用上,shcema与user完全一样。
• <4>定义表列时,应该选择合适的数据类型 和长度,为了节省存储空间,应该将可以取 Null值的列放在后面.
• <5>确定表中所需的完整性约束。 • <6>在合适的情况下,使用簇表以节省存储
空间并提高特定类型的SQL语句的性能.
预备知识2:管理表的策略
• 2、规划表的类型
• 在Oracle数据库中,存储用户数据可以使用标准表 索 引表 簇表 和分区表.
• Oracle数据库中不能新创建一个schema,要想创 建一个schema,只能通过创建一个用户的方法解 决
• 在创建一个用户的同时为这个用户创建一个与用 户名同名的schem并作为该用户的缺省shcema。
• schema的个数同user的个数相同,而且schema 名字同user名字一一 对应并且相同(别名,不准确 )。
– 标准表:数据按堆组织,以无序方式存放在单独表的表段中 .这种表是最基础最常用的数据库表类型,是默认情况下创 建的表.
– 索引表:数据是以”B-树”结构存放在主键约束所对应的索引 段中.使用索引表时,索引叶子节点不仅包含了键列的数据 还包含了其他非键列的数据。

ORACLE数据库教程

ORACLE数据库教程

ORACLE数据库教程ORACLE数据库是目前最为流行和广泛应用的关系型数据库管理系统之一、它由美国ORACLE公司开发,被广泛应用于各种企业级应用系统,包括金融、电信、教育、医疗等领域。

具有高性能、高可靠性和可扩展性等特点,因此学习和掌握ORACLE数据库成为许多软件开发人员和数据库管理员的基本要求之一本教程将为大家介绍ORACLE数据库的一些基本概念、特点和基本操作等内容,帮助读者了解和学习ORACLE数据库。

一、ORACLE数据库的基本概念1.关系型数据库:ORACLE数据库是一种关系型数据库,数据以表的形式进行存储和组织,通过表之间的关联和连接实现数据的查询和操作。

2.数据库管理系统:ORACLE数据库是一种数据库管理系统,它提供了一系列的管理工具和接口,可以对数据库进行创建、管理、维护和操作。

3.数据库实例:ORACLE数据库的运行实例称为数据库实例,它是数据库在内存中的表示,包括进程、内存结构和数据文件等。

4.数据库对象:ORACLE数据库中的数据和结构统称为数据库对象,包括表、视图、索引、序列等。

5.查询语言:ORACLE数据库支持SQL语言进行数据的查询、插入、更新和删除等操作,其中包括DDL语句(数据定义语言)和DML语句(数据操作语言)。

二、ORACLE数据库的安装和配置2.配置ORACLE数据库:安装完成后,需要进行一些配置工作,包括设置数据库实例的参数、创建管理员用户、设置监听器等。

三、ORACLE数据库的基本操作1.创建表:使用CREATETABLE语句创建表格,包括表的字段和数据类型等。

2.插入数据:使用INSERTINTO语句向表中插入数据,包括插入单条数据和批量插入数据。

3.查询数据:使用SELECT语句查询数据,可以通过WHERE子句、ORDERBY子句和JOIN子句等进行数据的筛选、排序和关联查询。

4.更新数据:使用UPDATE语句更新表中的数据,可以根据条件更新指定的数据。

Oracle 数据库操作实例讲解

Oracle 数据库操作实例讲解

Oracle 数据库操作实例讲解一、数据库系统配置数据库系统配置主要包括初始化参数配置和网络服务配置。

初始化参数的配置方法有以下几种方式:1、直接更改初始化参数文件。

在ORACLE9i和ORACLE10g中参数文件有两种形式,一种是文本格式,一种是二进制格式。

数据库启动后,可以通过下列SQL语句查找数据库使用的是哪种格式的初始化参数。

Show parameter spfile;更改文本格式的初始化参数,可以利用文本编辑工具,如vi 等打开,然后进行编辑。

要使编辑后的参数生效,一定要重新启动数据库,并应用此初始化参数文件。

2、命令行修改参数。

不能直接使用编辑工具打开二进制格式的初始化参数文件(即使可以打开),这样会损坏参数文件,导致下次数据库不能正常启动。

可以通过下面的SQL 语句进行参数修改。

ALTER SYSTEM parameter name =value SCOPE=[BOTH|MEM]3、使用图形化通过EM console进行修改。

登录EM console http://ip address :1158/em 在图形化工具里面,可以看到哪些参数是静态参数(不能修改,修改后要重新启动数据库才能生效),哪些是动态参数(可以直接修改,并生效)。

网络服务配置主要包括侦听(listener)配置和客户端服务(tnsnames)配置。

侦听配置在服务器端(安装了ORACLE数据库的服务器),客户端服务配置在需要连接ORACLE数据库的客户机上(当然也可以在服务器端进行配置)。

这两个配置文件都可以利用文本编辑工具直接打开修改。

修改侦听后,用下列命令把侦听服务重新启动:$ lsnrctl start用下列命令查看侦听是否正常:$lsnrctl status下面给出实例。

listener.oraSID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = /oracle/app/10.2)(PROGRAM = extproc))(SID_DESC =(SID_NAME = CLRExtProc)(ORACLE_HOME = /oracle/app/10.2)(PROGRAM = extproc)))LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.70.93)(PORT = 1521))(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC0))))tnsnames.oraTEST =(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL = TCP)(HOST = 10.136.70.93)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =test)))二、性能调优1、查找失效对象并修复SQL> select owner,object_name,object_type from dba_objects where status = ’INVALID’;SQL> alter object_type object_name complie;2、查找无用索引并修复SQL> select owner, index_name from dba_indexes where status='UNUSABLE';SQL> alter index index_name rebuild online nologging;3、使用ORACLE指导中心进行调优首先修改参数statistics_level=typical 主要用于收集数据。

第六讲Oracle数据库服务器例程

第六讲Oracle数据库服务器例程

注意: 直到Oracle在LGWR完成将重做信息从 重做缓冲区刷新到联机重做日志文件之 后, Oracle才认为一个事务已完成。在 LGWR成功地将重做日志项写入联机重 做文件时(并不是改变数据文件中的数 据时),将一个成功码返回给服务器进 程。
写日志文件


当提交事务处理时( Commit ) 当重做日志缓冲区的三分之一已满时 当重做日志缓冲区中记录了超过1 MB 的更改时 在DBWR将数据库缓冲区高速缓存中修 改的块写入数据文件以前 发生LGWR超时(3秒)
Java池

Oracle8i引入的一项新特性(从8.1.5版本 后开始出现的),用于支持数据库中java 的运行,负责容纳与会话有关的Java代码, 以及要由Java虚拟机(JVM)用到的一些 数据。
大小由初始化参数文件中的java_pool_size 指定

大缓冲池(Large pool)
这个内存结构最早是在Oracle 8.0引入的,其大 小由LARGE_POOL_SIZE决定,在以下情况使 用: 使用MTS配置时,因为要在SGA中分配UGA来 保持用户的会话,就是用Large_pool来保持这个 会话内存 在执行并行处理语句(如并行查询)的时候,要 分配进程间消息缓冲区的内存,就是用这个内存 结构来协调并行处理。 使用RMAN做备份的时候,要使用Large_pool这 个内存结构来做磁盘I/O缓存器。



程序全局区 ( PGA )
服务进程
PGA
程序全局区(PGA) 是一块内存区域, 它包含一个服务进程或后台进程的数 据和控制信息。PGA 又称为进程全局 区( process global area),即一个 进程独占的区域,在进程创建时分配, 进程终止时释放,其他进程不能访问。

Oracle服务器与Oracle实例

Oracle服务器与Oracle实例

Oracle基于客户端/服务器技术,处理多个客户端对同一数据的并发访问Oracle服务器由Oracle数据库和Oracle实例组成Oracle实例管理数据库的后台进程和内存结构的集合称为Oracle 实例实例启动时分配SGA并启动后台进程,一个实例只能打开一个数据库内存结构包含系统全局区(SGA)和程序全局区(PGA)系统全局区(SGA)数据库信息存储于SGA,由多个数据库进程共享包含共享池,数据缓冲区,日志缓冲区共享池共享池是对SQL、PL/SQL程序进行语法分析、编译、执行的内存区域共享池由库缓存和数据字典缓存组成。

共享池的大小直接影响数据库的性能数据缓冲区用于存储从磁盘数据文件中读入的数据,所有用户共享。

服务器进程将读入的数据保存在数据缓冲区中,当后续的请求需要这些数据时可以在内存中找到,不需要再从磁盘读取,提高了读取速度。

数据缓冲区的大小对数据库的读取速度有直接的影响。

日志缓冲区日志记录数据库的所有修改信息,日志信息首先产生于日志缓冲区。

当日志缓冲区的日志数据达到一定数量时,由后台进程将日志数据写入日志文件中。

相对来说,日志缓冲区对数据库的性能影响较小程序全局区(PGA)--用户私有程序全局区(PGA)包含单个服务器进程所需的数据和控制信息PGA是在用户进程连接到数据库并创建一个会话时自动分配该内存区,保存每个与Oracle 数据库连接的用户进程所需的信息PGA为非共享区,只能单个进程使用,当一个用户会话结束,PGA释放实例进程--用户进程服务器进程后台进程用户进程用户请求连接服务器时启动服务器进程当用户建立会话时启动后台进程是Oracle数据库为了保持最佳系统性能和协调多个用户请求而设置的。

Oracle 实例启动时即创建一系列后台进程Oracle数据库包括逻辑结构和物理结构逻辑结构指数据库创建之后形成的逻辑概念之间的关系会话用户与Oracle 服务器的单个连接Oracle 物理组件数据文件控制文件日志文件Oracle 逻辑组件数据库----表空间----段----区----数据块表空间是数据库中最大的逻辑单位,一个Oracle 数据库至少包含一个表空间,就是名为SYSTEM的系统表空间每个表空间是由一个或多个数据文件组成的,一个数据文件只能与一个表空间相关联表空间的大小等于构成该表空间的所有数据文件大小之和CREATE TABLESPACE tablespacenameDATAFILE ‘filename’ [SIZE integer [K|M]] [AUTOEXTEND [OFF|ON]];段段是构成表空间的逻辑存储结构,段由一组区组成。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

PMON SMON RECO
Shared Pool
SGA
Database Buffer Cache
Redo Log Buffer
CKPT
DBWR
LGWR
GMS ARCH
Remote DB
2021/1/15
DB Files
Log Files
Archive Logs
数据库写入进程DBWR
服务器进程在数据缓冲区中记录回退和 数据块的更改。数据库写入程序(DBWn) 将数据缓冲区中所有修改过的缓冲块数 据写到数据文件中,它确保有足够数量 的空闲缓冲区在数据缓冲区中可用。该 进程在启动实例时自动启动。
大缓冲池(Large pool)
这个内存结构最早是在Oracle 8.0引入的,其大 小由LARGE_POOL_SIZE决定,在以下情况使 用: • 使用MTS配置时,因为要在SGA中分配UGA来保 持用户的会话,就是用Large_pool来保持这个会 话内存 • 在执行并行处理语句(如并行查询)的时候,要 分配进程间消息缓冲区的内存,就是用这个内存 结构来协调并行处理。 • 使用RMAN做备份的时候,要使用Large_pool这 个内存结构来做磁盘I/O缓存器。
2021/1/15
重做日志缓冲区的查询
• 在初始化参数文件中查找log_buffer参 数
• 查询数据字典v$parameter
sql>select name,value from v$parameter where name like '%buffer'; • 使用show命令查询
sql>show parameter log_buffer
2021/1/15
Oracle 服务器
应用/网络服务器
2021/1/15
服务器
用户
6.2.2 服务进程
服务器进程处理与应用程序相连的用户 进程的请求,它与用户进程相通讯,为 相连的用户进程的Oracle请求服务。
2021/1/15
连接数据库
客户
Server process
服务器
User process
2021/1/15
SGA
Shared pool Library cache
Data dict. cache
Data buffer cache
Large pool
Redo log buffer
Java pool
2021/1/15
共享池(share pool)
共享池
库缓冲
字典缓冲
– 大小由 SHARED_POOL_SIZE 定义 – 库缓冲包含语句文本, 编译后的代码以及
2021/1/15
DBWn延迟写入事件
• 灰数据缓冲区的数量达到阈值。 • 当进行扫描而无法找到任何空闲缓冲区
时 • DBWR 后台进程发生超时(大约每3秒
) • 发生检查点
2021/1/15
日志写入进程LGWR
当运行DML或DDL语句时,服务器进程首 先要将事务变化记载到重做日志缓冲区,然 后才会将数据写入到数据缓冲区,并且重做 日志缓冲区的内容将来会被写入到联机重做 日志文件中,以避免系统出现意外时所带来 的数据损失。将重做日志缓冲区的重做日志 条目写入到联机重做日志文件的过程由后台 进程LGWR来完成的。
• 在事务提交时由 LGWR写入日志文件
2021/1/15
日志缓冲区 日志文件
写日志文件
L G W R执行写入操作的条件是: • 发生提交(commit) • 重做日志缓冲区满度达到三分之一或3秒 • 在DBW0 将数据库缓冲区高速缓存中修改 的块写入数据文件以前 • 写满1M
因此,太大的redo log buffer是没有意义的, 因为真正用于生产的时候,很少有3秒内没有 提交事务的应用,而且,每到1M就会写redo log file,所以,大多数情况下,超过3M的 redo log buffer几乎就浪费了。
2021/1/15
程序全局区 ( PGA )
服务进程 PGA
程序全局区(PGA) 是一块内存区域, 它包含一个服务进程或后台进程的数 据和控制信息。PGA 又称为进程全局 区( process global area),即一个 进程独占的区域,在进程创建时分配 ,进程终止时释放,其他进程不能访 问。
2021/1/15
6.2 Oracle9i进程管理
• 6.2.1 Oracle服务器 • 6.2.2 服务进程 • 6.2.3 后台进程
2021/1/15
6.2.1 Oracle 服务器
Oracle服务器是一种对象关系数据库管 理系统,由Oracle实例和Oracle数据库两 部分组成。SGA和后台进程合称为一个 Oracle实例
2021/1/15
数据库数据缓冲区 (Database Buffer Cache)
• 在oracle 9i 中, 使用DB_BLOCK_SIZE 来 决定,并且可以通过下面的命令动态的改变其 大小:
ALTER SYSTEM SET DB_CACHE_SIZE = 120M;
• 处理查询时,服务进程在数据库缓冲区 中寻 找所需的数据块。如果在缓冲区中找不到所需 数据块,服务进程从数据文件中将数据块读入 缓冲区。以后对同样数据块的请求在内存中进 行,不需物理读写。
执行计划等 – 字典缓冲包括表和列的定义和权限等
2021/1/15
库缓冲(Library cache)
• 库缓冲 保存最近用过的SQL语句和PL/SQL使 用过程中的下列信息: – 语句文本 – 分析树,即编译后的语句 – 执行计划,即优化器定义的语句执行步骤
• 库缓冲 又称为共享SQL区。由于 库缓冲 保存 了这些信息,所以当一查询在执行计划被换出 之前重新执行时,服务进程不必重新分析语句 ,因此 库缓冲 能改善应用的性能。.
2021/1/15
SGA
服务器进程 服务器进程
用户进程
用户进程
专用服务器进程响应用户进程过程
• 客户端应用程序向Oracle例程发出一个连接 请求
• 服务器上的监听程序探测到用户请求,并生成 一个专用服务进程来对用户登陆信息加以确认
• 用户执行查询操作 • 专用进程执行用户查询操作中的所有源代码程
当LGWR停止向一个联机重做日志文件组写入并开始 向另一个联机重做日志组写入时,就发生了日志切换 。 • 当已通过正常事务处理或者立即选项关闭例程时( normal, transactional, immediate )
第六讲 Oracle数据库服务器例程
本章学习目标 Oracle数据库服务器是一个对象关系型 数据库管理系统,由数据库文件和实例 组成。本章将介绍Oracle服务器的例程 结构,包括内存管理和后台进程。
2021/1/15
6.1.1 系统全局区(SGA)
系统全局区是ORACLE系统为实例分配的一 组共享缓冲存储区,用于存放数据库数据 和控制信息,以实现对数据库数据的管理 和操作。
2021/1/15
数据字典缓冲(Data Dictionary Cache)
• 数据字典缓冲 保存最近使用过的数据字 典信息如表和列的定义,用户名口令和 权限。
• 在分析阶段,服务进程 查找缓冲中的信 息以解释语句中指定的对象名并验证访 问权限。如有必要服务进程可请求从数 据文件中装入这些信息
2021/1/15
2021/1/15
检查点发生的条件
• 当数据库管理员手动请求时。 即使用SQL 命令:
ALTER SYSTEM CHECKPOINT • 当达到初始化参数LOG_CHECKPOINT_INTERVAL、
LOG_CHECKPOINT_TIMEOUT 和FAST_START_IO_TARGET 设置时 • 每次日志切换时(Log Switch)
共享池大小查询
• 在参数文件中查询初始化参数 shared_pool_size
• 查询数据字典v$parameter
sql>select name,value from v$parameter where name like '%size'; • 使用show命令查询
sql>show parameter shared_pool_size
日志缓冲区(Log Buffer)
• 重做日志缓冲区用于在内存中存储未被刷新写入 联机重做日志文件的重做信息。它是循环使用的 缓冲区,当重做日志缓冲区填满时,将它的内容 写入联机重做日志文件。
• 重做日志缓冲ቤተ መጻሕፍቲ ባይዱ的大小是由L O G _ B U F F E R 初始化参数决定,以字节为单位。
• 所有服务进程(SERVER PROCESS)将重作记 录写入重作日志 缓冲
Oracle server
用户
2021/1/15
服务进程的特点
• 在ORACLE SERVER所在的机器上运行 • 在专用服务配置中只对一个用户进程服
务 • 使用不同的 PGA • 处理由客户产生 的请求 ,并将结果返回
客户
2021/1/15
专用服务器方式
后台进程
为每个用户单独开设一 个服务器进程。 不设置参数: MTS_SERVICE MTS_DISPATCHERS MTS_SERVERS MTS_LISTERNET_ADDRESS
2021/1/15
Java池
• Oracle8i引入的一项新特性(从8.1.5版本 后开始出现的),用于支持数据库中java 的运行,负责容纳与会话有关的Java代码 ,以及要由Java虚拟机(JVM)用到的一 些数据。
• 大小由初始化参数文件中的 java_pool_size指定
2021/1/15
2021/1/15
写数据文件
相关文档
最新文档