脚本+实例

监听模式

dedicated 专有

shared    共享     dispatcher  调度

dbca-->配置数据库-->共享

SQL> alter system set max_dispatchers=4 scope=both;

SQL> alter system set max_shared_servers=5  scope=both;

==============================================

oracle 默认提供了启动脚本 dbstart (但默认不可用)

1.关闭数据库,关闭监听

SQL> shutdown abort

[[email protected] bin]$ lsnrctl stop

2.[[email protected] ~]$ dbstart 报错

cd /u01/app/oracle/product/10.2.0/db_1/bin/

vi dbstart

ORACLE_HOME_LISTNER=/ade/vikrkuma_new/oracle 更为

ORACLE_HOME_LISTNER=$ORACLE_HOME

3.[[email protected] ~]$ dbstart

[[email protected] ~]$ ipcs -m (公共内存为空)

[[email protected] ~]$ ps -ef |grep ora_  (没有进程 证明没有启动成功)

4.[[email protected] ~]$ vi /etc/oratab

orcl:/u01/app/oracle/product/10.2.0/db_1:N  (把N改称Y)

5.[[email protected] ~]$ dbstart

[[email protected] ~]$ ps -ef |grep ora_

[[email protected] ~]$ lsnrctl status

成功

oracle默认关闭 脚本

[[email protected] ~]$ dbshut(直接可用)

============================================

自编 脚本

关闭数据库

1.[[email protected] bin]$ cd $ORACLE_HOME/bin

[[email protected] bin]$ vi dbshutdown

#!/bin/bash

sqlplus -S sys/123456 as sysdba <<EOF

shutdown abort

exit

EOF

2.[[email protected] bin]$ chmod 755 dbshutdown

[[email protected] bin]$ ./dbshutdown

开启数据库

[[email protected] bin]$ vi dbopen

#!/bin/bash

sqlplus -S sys/123456 as sysdba <<EOF

startup

exit

EOF

[[email protected] bin]$ chmod  755 dbopen

[[email protected] bin]$ ./dbopen

===================================================

查看sga

SQL> show sga

显示SGA的所有设置值

SQL> select pool,sum(bytes/1024/1024)from v$sgastat t where t.POOL is not null group by t.POOL

union

select name as pool,sum(bytes/1024/1024) from v$sgastat s where s.POOL is null group by s.name;

SQL> show parameter pool;

SGA是动态的并且最大值由SGA_MAX_SIZE参数控制

SQL> show parameter sga

SGA动态分配时不会超过sga_target设置的值,可以动态修改这个值

SQL> alter system set sga_target=200M;(此参数为SGA自动调整的上限值)

修改sga_max_size(注意:不能直接修改此参数,此参数修改包含两个动作:1修改到参数文件2修改到内存{这种参数不能直接修改到内存只能先修改到参数文件})

SQL> alter system set sga_max_size=300M scope=spfile;

SQL> show parameter sga(发现值没有发生变化,需要重启生效)

SQL> startup force

SQL> show parameter sga

-------------------------------------

share_pool:用于缓存SQL语句以及SQL语句中涉及的表定义(数据列以及数据类型

查看共享池

SQL> select pool,sum(bytes/1024/1024)from v$sgastat t where t.POOL is not null group by t.POOL

当执行一个sql语句,就会被记录,在生产平台上,很多sql语句会被很多人重复执行,所以,缓存了的sql语句,会被更快的执行

SQL> select count(*) from dba_objects;

SQL>  select sql_text from v$sqlarea where sql_text like ‘%dba_objects%‘;

刷新(清空)share pool

SQL> alter system flush shared_pool;

再次查看之前的命令没有了

select sql_text from v$sqlarea where sql_text like ‘%dba_objects%‘;

SQL> show parameter share

SQL> alter system set shared_pool_size=64m scope=both;(此参数可以直接修改到内存和参数文件不需要重启)

----------------------------------------------

Database buffer cache(作用:缓存数据)

Buffer cache存储从数据文件检索出来的数据块拷贝,提升数据检索速度,降低IO压力

SQL> alter system flush shared_pool;

SQL> alter system flush buffer_cache;

打开自动跟踪

SQL> set autotrace traceonly;

SQL>select count(*) from dba_objects;

结果:

5184  consistent gets (逻辑读 内存)

914  physical reads   (物理读 硬盘)

再次执行

SQL> set autotrace traceonly;(显示执行计划进行调优)

SQL>select count(*) from dba_objects;

结果:

5047  consistent gets(只有逻辑读 说明都是从内存读出的)

0  physical reads

设置buffer_cache大小

alter system set db_cache_size=100M;

9i后引入ASMM自动管理 SGA中的大小

-----------------------------

热点块块分析

Touch Count(TCH) :接触点计数

Oracle虽然是根据TCH值决定块应该在冷端还是热端,但当块的TCH值发生变化时,并不会立即改变它所处的位置。服务器进程需要读块进Buffer,它会从LRU链的尾端开始搜索自由块,如果发现搜索到的块的TCH值小于2,就重用这个块。如果TCH大于2,就把此块移到热端头部,并把它的TCH设为0。2这个数字是受隐含参数_db_aging_hot_criteria控制

Select file#,dbablk,lru_flag,tch from x$bh where obj=

(select object_id from dba_objects where object_name=‘F1‘ and owner=‘SYS‘);

---------------------------

Redo log buffer cache

Redo log buffer cache记录所有的关于数据块的变化

A主要用于数据库恢复

B 改变的数据都要依赖于redo日志条目

C redo日志条目包含数据重建于重做信息

Sga自动管理

只需设置sga_target参数,由oracle根据实际情况来分配

手动管理(设置log_buffer下限值)

SQL> alter system set log_buffer=73400320 scope=spfile;

=====================================

如何根据经验值设定SGA和PGA

SGA设置此大小的70%-80%

PGA设置此大小的20%-30%

SQL> select t.sga_size,t.estd_physical_reads from v$sga_target_advice t order by 1;

=================================

设置pga大小

SQL> select pga_target_for_estimate/1024/1024 PGAMB,pga_target_factor,

2  estd_pga_cache_hit_percentage,estd_overalloc_count

3  from v$pga_target_advice;

((estd_pga_cache_hit_percentage  列为pga命中率

estd_overalloc_count 列为0意思为消除过载))

SQL> alter system set pga_aggregate_target=100M scope=both;

SQL> show parameter pga;

后台进程

数据库写进程(DBWn)

checkpoint 检查点  将数据从内存中写入磁盘

写进程就是将数据缓冲区里面的数据写到磁盘上

[[email protected] ~]$ ps -ef|grep ora_

oracle   16879     1  0 05:43 ?        00:00:04 ora_dbw0_orcl

查看数据写进程

SQL> show parameter db_writer_processes

SQL> alter system set db_writer_processes=3 scope=spfile;

SQL> alter system checkpoint;(更改检查点)

SQL> alter system set log_checkpoints_to_alert=true scope=both;

(把检查点信息记录到 alert文件中)

日志写进程(LGWR)

系统监控进程(SMON)

在oracle断电或shutdown abort关闭数据库后,重新启动数据库是将执行下面操作,前滚日志文件中的记录修改

进程监控进程(PMON)

在数据库运行过程中清理失败的进程

回滚事务 释放锁(行级锁。表级锁)

行级锁

在修改一行数据的时候

还没有保存,那么我在另外一个窗口在来修改这条记录,那么是不行的

所有的数据库和存储引擎都会自动加锁

SQL> create table t1 (id int);

SQL> insert into t1 values(1);

SQL> commit;

SQL> insert into t1 values(2);

新会话

SQL> drop table t1;(不能删除)

SQL> alter table t2 disable table lock; 取消表级锁

SQL> alter table t2 enable table lock;  启动

时间: 2024-12-16 18:38:58

脚本+实例的相关文章

[转]关于Unity3D对象和脚本实例调用的顺序探究

http://blog.csdn.net/liangzg_2011/article/details/8150844 关于Unity3D对象和脚本实例调用的顺序探究 我们先来看一些有趣Unity实例顺序的小实验.有图有真相!! 注:以上打印的代码语句如下: [csharp] view plaincopy <span style="font-size:18px;">    void Start () { print("-----" + this.transf

shell之脚本实例

一 检查用户是否是root权限的方式:#!/bin/bashROOT_UID=0 # Root has $UID 0.E_WRONG_USER=65 # Not root? E_NOSUCHUSER=70SUCCESS=0 if [ "$UID" -ne "$ROOT_UID" ]then echo echo "Only root can run this script." echo exit $E_WRONG_USERelse echo ech

Loadrunner之HTTP接口测试脚本实例

Loadrunner之HTTP接口测试脚本实例 接口测试的原理是通过测试程序模拟客户端向服务器发送请求报文,服务器接收请求报文后对相应的报文做出处理然后再把应答报文发送给客户端,客户端接收应答报文结果与预期结果进行比对的过程,接口测试可以通过Java发送 http post或者get请求来实现,也可以通过loadrunner来实现,今天介绍下loadrunner接口自动化测试实例: loadrunner接口测试原理是web_submit_data函数发送post或者get请求,将测试用例数据进行

VBS脚本实例

一.一键升级哨位台核心板程序脚本. ############################################################ Set ws=WScript.CreateObject("wscript.shell")PATH= createobject("Scripting.FileSystemObject").GetFile(Wscript.ScriptFullName).ParentFolder.PathIP="192.1

【shell脚本实例】一个恶作剧—— kill掉占用CPU较高的matlab进程

我们实验室有台服务器,博士们在服务器上跑MATLAB,基本都是4核都是超过95%的CPU占用,想了个恶作剧的shell 定时kill掉MATLAB程序,是不是很邪恶啊,哈哈~~~  不过我只是干过一次,因为老伯们也不容易啊,屌丝何苦为难屌丝... 废话不多说了上脚本! ? 1 2 3 找出CPU占用超过90%的MATLAB进程,grep -v 去掉"grep"进程 pids=`ps aux|grep "MATLAB"|grep -v "grep"

LoadRunner脚本实例来验证参数化的取值

LoadRunner脚本实例来验证参数化的取值 SINM {3]!G0问题提出:  主要想试验下,在Controller中,多个用户,多次迭代中参数的取值.51Testing软件测试网(['H5f,d)[jUh :o$F$kY+sO/y"Yr5S0方法:51Testing软件测试网$_v.sR$tS*T)} TJS]#v3u%bi"?!}0脚本:  我把取到的参数值和对应的VuserID记录下来保存到一个文件中,下面是例子的脚本 X-n)SI:J#t:v:YM'v#X0 long fi

Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例及配置文件具体解释

Linux(centos 6.5) 调用java脚本以及定时运行的脚本实例 一.调用java程序脚本(默认已经搭建好了Java环境) 1.jdk 安装路径 /usr/jdk/jdk1.7/-- 2.java 程序路径 /usr/jdk 3.类名:Test.java(有主函数的类名) 4.调用java类的脚本,注意脚本的后缀是.sh 5.脚本内容: (1)#! /bin/bash // #! 特殊符号.说明这个脚本是由/bin 文件夹下的bash这个shell来解释并将解释后的内容给kernel来

python常用运维脚本实例【转】

file是一个类,使用file('file_name', 'r+')这种方式打开文件,返回一个file对象,以写模式打开文件不存在则会被创建.但是更推荐使用内置函数open()来打开一个文件 . 首先open是内置函数,使用方式是open('file_name', mode, buffering),返回值也是一个file对象,同样,以写模式打开文件如果不存在也会被创建一个新的. f=open('/tmp/hello','w') #open(路径+文件名,读写模式) #读写模式:r只读,r+读写,

10个linux 作业控制的bash 脚本实例

linux和unix都是多任务的操作系统,也就是说系统可以同时运行多个任务或者进程.下面我们来说一下在linux或者unix下用来处理多任务的作业控制命令. 什么是作业控制(job control)? 作业控制就是可以停止或者暂停正在执行的程序,还可以使暂停的进程重新开始运行.这些都是可以通过我们的shell程序来实现. 1.创建一个linux/unix 作业(job) 1 [[email protected] ~]# top & 2 [1] 26569 在这个例子中: [1]:表明刚才的作业号

LoadRunner关联函数的脚本实例--如何操作关联参数

LoadRunner关联函数的脚本实例--如何操作关联参数 这几天一直在学习LoadRunner的VuGen编程,今天想对关联函数web_reg_save_param做详细的试验和研究: ~f6p q+Z  RM0 a6_%_+vF9Ws\w&S0 问题提出:如何对关联的数据进行字符串操作.下面使用了LoadRunner自带的订票例子为例,进行了这方面的试验.假设我要关联的数据是由几个字符串组成的.如何使这些字符串组成一个参数,供我后面的函数使用?51Testing软件测试网.VZR(`D&quo