oracle数据库

oracle 常用调优方法

你。 提交于 2020-04-02 05:57:25
Oracle 数据库应用系统的调优主要包括十个方面: (1)、优化 数据库 内存; (2)、在Oracle共享池中固定应用程序代码; (3)、优化数据存储; (4)、优化数据排序的技术; (5)、优化 SQL 语句; (6)、优化回退段; (7)、优化索引; (8)、优化磁盘I/O; (9)、定期生成数据库对象的状态统计信息; (10)、优化操作系统环境。 其实质就是降低CPU负载、改善I/O性能。 1、化磁盘I/O 数据库的作用就是实现对数据的 管理 和查询,所以必然存在对数据的大量读写操作,其I/O问题也往往是导致Oracle数据库性能问题的重要原因。 1.1、Oracle中I/O的产生 1.2、优化OS存储 一、在UNIT环境下,采用裸设备(Raw Device)作为Oracle数据文件的存储设备比采文件系统(File System)存储Oracle数据文件具有较高的读写效率。 二、采用异步IO(Asynchronous IO)方式。在异步IO模式下,进程发出IO请求后无需等待IO完成,可以去处理其它事情;IO请求被放入一个队列中,一旦IO完成,系统会发出信号通知进程。异步IO可以使需要大量写的Oracle进程(如DBWn进程)将IO请求队列化,以充分利用硬件的IO带宽,从而使它们能最大程度实现并行处理。确认操作系统已经设置支持AIO后,还需要设置Oracle初始化参数

oracle审计功能启动关闭

天涯浪子 提交于 2020-04-01 07:31:46
一 审计功能的参数控制 audit_trail 参数的值可以设置为以下几种 1. NONE:不开启 2. DB:开启审计功能 3. OS:审计记录写入一个操作系统文件。 4. TRUE:与参数DB一样 5. FALSE:不开启审计功能。 这个参数是写道spfile里面的,需要重启数据库 二 查看是否审计功能是否启动 SQL> show parameter audit NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_file_dest string /u01/app/oracle/admin/ORCL/adump audit_sys_operations boolean FALSE audit_syslog_level string audit_trail string NONE 三 开启审计 SQL> conn /as sysdba SQL> show parameter audit NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ audit_file_dest string /u01

plsql 导出oracle数据库

会有一股神秘感。 提交于 2020-04-01 05:20:58
plsql 导出数据库有两个问题,一个是只导出结构,一个是导出表结构加数据这样的,首先人家让我导成sql语句 这不是简单,首先打开PLSQL 一、导出结构 1、然后tools->Export User Objects.. 然后出来一片空白 2、要选择哪个User 3、上面会出现好多表,选择一下你要导出的表,然后选择哪个选择文件的按钮,填写一下文件名称,选择一下目录 4、点击export,就好了,这样就导完了。 贼简单啊,结果小姐姐温柔地说,你导的是建表语句,真是一顿操作猛如虎,其实是个二百五啊,人家要的是数据加结构的 二、导出结构及数据 1、首先写好查询语句,然后全选数据,点击左上角的小框框就能全选了 2、对着小框右键,找到Export Results->SQL file 3、然后就是填写一下文件名称,选择一下目录,就OK啦。 还有一种导出是把数据导出到表格里面,也挺简单的,一块写了吧,要不下次又忘了 三、导出数据到表格 就是上面的步骤和上线的一样, 1、写SQL语句,然后选择要导出的数据 2、右键选择 Copy to Excel ->Copy as xls 或者Copy as xlsx 其实这个导出挺简单的,就是plsql好多是英文版的,好多看不懂啊,英语真是硬伤啊,有空写个导入的 来源: https://www.cnblogs.com/xbxxf/p/11097688.html

ORACLE监听配置及测试实验

断了今生、忘了曾经 提交于 2020-04-01 04:53:16
实验一: 修改 db_domain和service_name 我们将Db_name和Db_domain两个参数用’.’连接起来,表示一个数据库,并将该数据库的名称称为Global_name 即等于 service_name ,即它扩展了Db_name。 SYS@VDEDU > show parameter db_domain --查看db_domain NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ db_domain string SYS@VDEDU > alter system set db_domain='oracle.com' scope=spfile; System altered. tnsnames.ora是Oracle客户端的网络服务名配置文件,用于存放该客户端配置的可连接实例的参数 可以在 tnsname里修改service_name,加上.oracle.com lsnrctl status LSNRCTL for Linux: Version 11.2.0.4.0 - Production on 31-MAY-2018 16:27:17 Copyright (c) 1991, 2013, Oracle. All

Oracle单表备份三种方案

最后都变了- 提交于 2020-03-31 14:49:23
备份方案一: 1. 备份 create table [备份名] as select * from [表名]; 2. 恢复 truncate table org_group; insert into org_group select * from [备份名] ; 3. 说明 此种情况适用于,同一个数据库,需要备份某张表。 备份方案二: 1. 备份 oracle用户终端执行: exp [用户名]/[密码] tables=[表一],[表二] file=/home/oracle/table.dmp 2. 恢复 oracle用户终端执行: imp [用户名]/[密码] grants=y commit=y full=y ignore=y file=/home/oracle/table.dmp 备份方案三: 1. 备份 登录sqlplus: sqlplus / as sysdba 创建directory: create directory dpdata as '/home/oracle/'; 目录创建以后,就可以把读写权限授予特定用户: grant read, write on directory dpdata to [用户名]; oracle用户终端执行: expdp [用户名]/[密码] tables=[表一],[表二] directory=dpdata dumpfile=table.dmp

虚拟机VMWARE上ORACLE License 的计算

半城伤御伤魂 提交于 2020-03-31 08:28:11
Oracle License的计算有两种方式:按照用户数和CPU个数. 其中按CPU计算方式如下: License Number = The Number of CPU Cores * Core Factor 其中Core Factor 可以参考官方文档 Oracle Processor Core Factor 。 如果Oracle 安装在VMWARE 上,是否也是按照这个方式计算呢? 也就是说,在虚拟机VMWARE上Oracle的License计算是否也是按照分配CPU核数来计算的呢? 关于虚拟机上ORACLE的License计算,ORACLE 引入了下面 Soft partitioning (软分区)和Hard partitioning (硬分区)概念(如下所示),而且明确规定 VMware是软分区,并且规定 Soft partitioning is not permitted as a means to determine or limit the number of software licenses required for any given server。 也就是说在一台物理机上,假如如下所示,虚拟了一台Linux服务器做Oracle Database Server, 虚拟了另外一台Windows服务器做SQL Server服务器,物理机上有2个物理CPU,每个4

在Ubuntu Server下安装Oracle XE

心已入冬 提交于 2020-03-31 06:28:49
以前都是在开发环境中使用Oracle的轻量级服务器oracle xe。在Linux上安装Oracle是一件痛苦的事情。因为需要为安装做很多准备工作。另外,就是Oracle的安装都是基于RedHat版本的。 Ubuntu Server是很好的Linux服务器版本,但是得到的企业支持较少,比如Oracle,比如其他软件提供商。 公司需要移植以前Oracle数据库的东西出来。为了应急,在Ubuntu Server上安装一个express edition(XE)。这个版本在Ubuntu上安装十分容易。 首先需要设置Oracle XE版本的源: sudo vim /etc/apt/sources.list 在该文件中增加: deb http://oss.oracle.com/debian unstable main non-free然后需要将该源服务器的公钥添加在本地 apt 系统的密钥库中: wget http://oss.oracle.com/el4/RPM-GPG-KEY-oracle -O- | sudo apt-key add -然后,更新apt库: apt-get update安装oracle xe服务器: apt-get install oracle-xe这样就安装好oracle服务器了。会有提示,启动前作配置。 sudo /etc/init.d/oracle-xe

查询oracle数据库的数据库名、实例名、ORACLE_SID

假装没事ソ 提交于 2020-03-30 08:44:01
连接ORACLE 数据库 SQL> conn risenet/1@//192.168.130.99:1521/risenet 或 sqlplus anxintg/anxintg@//10.7.82.122:1521/orcl 查询表 select * from ESSENWEB.T_ANXINMALL_TG; 数据库名、实例名、数据库域名、全局数据库名、服务名 , 这是几个令很多初学者容易混淆的概念。相信很多初学者都与我一样被标题上这些个概念搞得一头雾水。我们现在就来把它们弄个明白。 一、数据库名 什么是数据库名? 数据库名就是一个数据库的标识,就像人的身份证号一样。他用参数DB_NAME表示,如果一台机器上装了多全数据库,那么每一个数据库都有一个数据库名。在数据库安装或创建完成之后,参数DB_NAME被写入参数文件之中。格式如下: DB_NAME=myorcl ... 在创建数据库时就应考虑好数据库名,并且在创建完数据库之后,数据库名不宜修改,即使要修改也会很麻烦。因为,数据库名还被写入控制文件中,控制文件是以二进制型式存储的,用户无法修改控制文件的内容。假设用户修改了参数文件中的数据库名,即修改DB_NAME的值。但是在Oracle启动时,由于参数文件中的DB_NAME与控制文件中的数据库名不一致,导致数据库启动失败,将返回ORA-01103错误。 数据库名的作用

Oracle中字符串连接的实现方法

邮差的信 提交于 2020-03-30 07:23:13
1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。 例如: SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee WHERE FName IS NOT NULL 2.除了“||”,Oracle还支持使用CONCAT()函数进行字符串拼接,比如执行下面的SQL语句: SELECT CONCAT('工号:',FNumber) FROM T_Employee 如果CONCAT中连接的值不是字符串,Oracle会尝试将其转换为字符串,比如执行下面的SQL语句: SELECT CONCAT('年龄:',FAge) FROM T_Employee 与MYSQL的CONCAT()函数不同,Oracle的CONCAT()函数只支持两个参数,不支持两个以上字符串的拼接,比如下面的SQL语句在Oracle中是错误的: SELECT CONCAT('工号为',FNumber,'的员工姓名为',FName) FROM T_Employee WHERE FName IS NOT NULL 运行以后Oracle会报出下面的错误信息: 参数个数无效 3.如果要进行多个字符串的拼接的话,可以使用多个CONCAT()函数嵌套使用,上面的SQL可以如下改写: SELECT

oracle后台进程详解

烈酒焚心 提交于 2020-03-30 06:29:30
oracle后台进程伴随实例的启动而启动,他们主要是维护数据库的稳定,相当于一个企业中的管理者及内部服务人员。他们并不会直接给用户提供服务。 一:database write--数据写入 DBWR 作用:把SGA中被修改的数据同步到磁盘文件中。保证Buffer Cache中有足够的空闲数据块数量。 PS:如果LGWR出现故障,DBWR不会听从CKPT命令罢工,因为Oracle在将数据缓存区数据写到磁盘前,会先进行日志缓冲区写进日志文件的操作,并耐心的等待其先完成,才会去完成这个内存刷到磁盘的动作,这就是所谓的凡事有记录。 触发条件: 1、检查点CKPT 2、一个服务进程在设定的时间内没有找到空闲块 3、每三秒自动唤醒一次。 设置:DB_WRITER_PROCESS用来定义DBWn进程数量。(commit命令只是把记录修改写入日志文件,不是把修改后的数据写入数据文件) 二:log write:LGWR--日志文件写入 (劳模,很重要很忙碌的一个进程) 作用:把log buffer中的日志内容写入联机的日志文件中,释放log用户buffer空间。 触发条件:1、用户发出commit命令。(在oracle中称为快速提交机制(fast commit)):把redo log buffer中的记录写入日志文件,写入一条提交的记录 2、三秒定时唤醒。 3、日志缓冲区log buffer超过1/3