日志存档:04, 2008

oracle10g内存结构

2008-04-19,星期六 | 分类:数据库 | 122 views

转自 http://space.itpub.net/662867/viewspace-165682

1. SGA

1.1 从查询sga相关视图开始

1.1.1 gv$sga_dynamic_components

SQL> select * from gv$sga_dynamic_components;

PS:

1)SGA的分配单元为granule,sga中的components都是由granule组成的,granule的信息由granule entry来管理,每个entry维护了granule的类型和状态,当sga<=128M时granule为4M,当sga>128M时 granule为16M,特殊情况是32BIT的windows NT则为8M,从视图查询的结果可以看出当前的granule为16M

2)sga的主要成分为:buffer cache,shared pool,java pool,large pool

全文阅读 »

PGA自动管理原理深入分析及性能调整

2008-04-19,星期六 | 分类:数据库 | 74 views

1. PGA的概念以及所包含的内存结构
作为一个复杂的Oracle数据库系统来说,每时每刻都要处理不同的用户所提交的SQL语句,获取数
据并返回数据给用户。众所周知,解析SQL语句的工作是在oracle实例中的shared pool所完成的。那么对于每个session来说,其执行SQL语句时所传入的绑定变量放在哪里?而且,对于那些需要执行比较复杂SQL的 session来说,比如需要进行排序(sort)或hash连接(hash-join)时,这时这些session所需要的内存空间又从哪里来?另外, 还有与每个session相关的一些治理控制信息又放在哪里?对于诸如此类与每个session相关的一些内存的分配问题,oracle通过引入PGA这 个内存组件来进行解决。

1.1 PGA的相关概念
PGA 按照oracle官方文档解释,叫做程序全局区(Program Global Area),但也有些资料上说还可以理解为进程全局区(Process Global Area)。这两者没有本质的区别,它首先是一个内存区域,其次,该区域中包含了与某个特定服务器进程相关的数据和控制信息。每个进程都具有自己私有的 PGA区,这也就意味着,这块区域只能被其所属的进程进入,而不能被其他进程访问,所以在PGA中不需要latch这样的内存结构来保护其中的信息。笼统 的来说,PGA里包含了当前进程所使用的有关操作系统资源的信息(比如打开的文件句柄等)以及一些与当前进程相关的一些私有的状态信息。
每个PGA区都包含两部分:
固定PGA部分(Fixed PGA):这部分包含一些小的固定尺寸的变量,以及指向变化PGA部分的指针。
变化PGA部分(Variable PGA):这部分是按照堆(Heap)来进行组织的,所以这部分也叫做PGA堆。可以从X$KSMPP视图中看到有关PGA堆的分布信息。PGA堆中所包含的内存结构包括:
有关一些固定表的永久性内存。
假如session使用的是专用连接方式(dedicated server),则还含有用户全局区(UGA-User Global Area)子堆。假如session使用的是共享连接方式(shared server),则UGA位于SGA中。
调用全局区(CGA-Call Global Area)子堆。

全文阅读 »

经典SQL语句收藏

2008-04-19,星期六 | 分类:数据库 | 91 views

SQL分类:
DDL—数据定义语言(CREATE,ALTER,DROP,DECLARE)
DML—数据操纵语言(SELECT,DELETE,UPDATE,INSERT)
DCL—数据控制语言(GRANT,REVOKE,COMMIT,ROLLBACK)

首先,简要介绍基础语句:
1、说明:创建数据库
CREATE DATABASE database-name
2、说明:删除数据库
drop database dbname
3、说明:备份sql server
— 创建 备份数据的 device
USE master
EXEC sp_addumpdevice ‘disk’, ‘testBack’, ‘c:\mssql7backup\MyNwind_1.dat’
— 开始 备份
BACKUP DATABASE pubs TO testBack
4、说明:创建新表
create table tabname(col1 type1 [not null] [primary key],col2 type2 [not null],..)
根据已有的表创建新表:
A:create table tab_new like tab_old (使用旧表创建新表)
B:create table tab_new as select col1,col2… from tab_old definition only
5、说明:删除新表
全文阅读 »

Mysql错误代码

2008-04-19,星期六 | 分类:数据库 | 95 views

Mysql错误代码分为两部分,老版本一部分,4.1版本为新的部分

第一部分:
mysql的出错代码表,根据mysql的头文件mysql/include/mysqld_error.h整理而成

1005:创建表失败
1006:创建数据库失败
1007:数据库已存在,创建数据库失败
1008:数据库不存在,删除数据库失败
1009:不能删除数据库文件导致删除数据库失败
1010:不能删除数据目录导致删除数据库失败
1011:删除数据库文件失败
1012:不能读取系统表中的记录
1016:文件无法打开,使用后台修复或者使用phpmyadmin进行修复。
1020:记录已被其他用户修改
1021:硬盘剩余空间不足,请加大硬盘可用空间
全文阅读 »

MySQL生产服务器主从热备份

2008-04-18,星期五 | 分类:工作日志, 数据库 | 101 views

1.设置www1为主服务器,并搬迁数据到/bak/mysql
配置my.inf

[client]
#socket          = /var/lib/mysql/mysql.sock
socket          = /bak/mysql/mysql.sock

[mysqld]
#socket          = /var/lib/mysql/mysql.sock
socket          = /bak/mysql/mysql.sock
datadir=/bak/mysql
log-slow-queries = /bak/mysql/sqlslow.log

#mysql主服务器配置

server-id       = 1
log-bin
binlog-do-db=bbs
binlog-do-db=cactidb
max_binlog_size = 104857600

全文阅读 »

RMAN备份数据库脚本及实现

2008-04-15,星期二 | 分类:工作日志, 数据库 | 150 views

RMAN备份数据库

备份策略:

星期天 0 级
星期一,二,三,四,五六 1 级

定时运行:

[oracle@dbserver rman]$ crontab -e
0 2 * * 0 /home/oracle/rman/level0_backup_web.sh
0 2 * * 1,2,3,4,5,6 /home/oracle/rman/level1_backup_web.sh

脚本存放目录及备份目录/日志存放目录:

mkdir /home/oracle/rman
mkdir /bak/web_db_backup
mkdri /bak/web_db_backup/log

准备工作:
全文阅读 »

数据写过程中各项触发条件及逻辑(转)

2008-04-15,星期二 | 分类:数据库 | 78 views

如大家所知,用户提交的数据并非直接写入数据文件,这中间有一个复杂的处理过程,如下图所示:大致描述了数据写过程中的处理逻辑

123.jpg

数据写过程的体系结构.jpg

写数据库缓存:
单数据库缓存的写过程看起来很简单,但是其实际过程相当复杂,大家务必要注意。最基本的在写数据库缓存之前,肯定会先涉及到读,比如你要更新一个表的数据,那么它会首先查找你要更新的数据是否已经存在于数据库缓存,如果不存在,就需要先将其从数据文件中读取出来,而这个读取又有可能触发写操作,这个写要分两步:
·第一步是判断数据库缓存中是否还有足够的剩余空间,如果剩余空间不足,则首先按照LRU的规则写一部分脏数据到数据文件中,腾出足够的空闲空间,然后再将要被更新的数据写进来。
·另一步是将更新前的数据写入回滚段,然后再将更新的数据写入数据库缓存。
全文阅读 »

MySQL优化步骤及my.cnf缓存优化

2008-04-14,星期一 | 分类:数据库 | 113 views

1、看机器配置,指三大件:cpu、内存、硬盘
2、看mysql配置参数
3、查系mysql行状态,可以用mysqlreport工具来查看
4、查看mysql的慢查询
依次解决了以上问题之后,再来查找程序方面的问题

my.cnf缓存优化
在 my.cnf 中添加/修改以下选项: 全文阅读 »

得不到和已失去(一个很好的佛家故事)

2008-04-14,星期一 | 分类:杂谈 | 107 views

  这不是一个神话故事,而是为了使你领悟一个道理!

  从前,有一座圆音寺,每天都有许多人上香拜佛,香火很旺。在圆音寺庙前的横梁上有个蜘蛛结了张网,由于每天都受到香火和虔诚的祭拜的熏托,蛛蛛便有了佛性。经过了一千多年的修炼,蛛蛛佛性增加了不少。

  忽然有一天,佛主光临了圆音寺,看见这里香火甚旺,十分高兴。离开寺庙的时候,不轻易间地抬头,看见了横梁上的蛛蛛。佛主停下来,问这只蜘蛛:“你我相见总算是有缘,我来问你个问题,看你修炼了这一千多年来,有什么真知拙见。怎么样?”蜘蛛遇见佛主很是高兴,连忙答应了。佛主问到:“世间什么才是最珍贵的?”蜘蛛想了想,回答到:“世间最珍贵的是‘得不到’和‘已失去’。”佛主点了点头,离开了。

  就这样又过了一千年的光景,蜘蛛依旧在圆音寺的横梁上修炼,它的佛性大增。一日,佛主又来到寺前,对蜘蛛说道:“你可还好,一千年前的那个问题,你可有什么更深的认识吗?”蜘蛛说:“我觉得世间最珍贵的是‘得不到’和‘已失去’。”佛主说:“你再好好想想,我会再来找你的。”

   全文阅读 »

效仿盖茨:PPstream创始人的心路历程

2008-04-14,星期一 | 分类:业界新闻&评论 | 94 views

 “P2P网络视频软件的目标是成为网民肚子里的蛔虫。”PPstream总裁徐伟峰自信地说道。他的信心来源于掌握着核心技术及创意想法。
  仅仅两三年前,中国网民想收看NBA等重大比赛或港台电视台的综艺节目只能通过两种手段,国内电视台的转播和BT下载。而现在,随着P2P网络视频软件的普及,宽带用户几乎可以实时观看上述节目。

   PPstream就是一款在网民间流传甚广的软件,从2005年发展至今,该软件的用户已达两千万以上,公司从创业初期的三名员工(雷量、张洪禹和徐伟峰)发展为近百人的团队。由于看好P2P网络视频的市场前景,该公司创业初始,众多风险投资商就纷纷伸出橄榄枝,截至目前,该公司已经进行了二轮融资,其中2007年初的融资额高达千万美元。

  P2P视频的合作

  徐伟峰是PPstream的元老级人物,更是中国第一批从事P2P行业的运营专家,而他与两个软件人才的联手也颇具戏剧性。

  2005年上半年,PPstream上线之初,迅速火热。投资方、合作方络绎不绝,其中就包括徐伟峰。本来和PPstream谈合作,但合作了一段时间后,便干脆加入其中,让PPstream拥有了一个类似Google的两名开发人员和一名管理者团队。不久后,投资亦顺利进入。

  “其实当时除了PPstream外,已经出现了多家P2P视频软件公司,不过比较下来,我还是觉得这家的技术前景最好,所以在两位开发者的邀请之下,我就选择了PPstream。”徐解释说。

   全文阅读 »

Pages: 1 2 3 Next