- 博客(53)
- 资源 (1)
- 收藏
- 关注
原创 mongodb update array (续)
由于超过最大字数,续一下PRIMARY> db.test.update({ "skyImsi" : "aaaaaaaaaaaaaaaaaaaaaa"},{$pull:{"usrDiscountBCList":"joe"}}) --$pull使用PRIMARY> db.test.findOne(){ "_id" : 1, "myfied" : [
2013-04-28 09:27:35 1087
原创 mongodb update array
之前一篇介绍了update的基本操作,今天介绍涉及更深一些的操作,数组操作以及一些函数的使用$inc 对指定的字段增加值,只能操作数值类型 语法:{ $inc : { field : value } }给field增加value$set 这个相当于SQL的set操作,指定某个字段的值,可以操作所有类型$unset 语法:{ $unset : { field : 1} } 删除某一个字
2013-04-28 09:20:30 1570
原创 mongodb update
之前没记录更新的操作,今天有空记录一下mongodb update的使用先看语法:db.collection.update( , , )语法很简单,但是使用起来,要配合一些函数,就会复杂一些,解释一下query:条件限定,也就是需要更新行的条件,相当于SQL中where后面的条件判断update:相当于SQL表中的set语句options:这里需要注意的是mongodb的
2013-04-28 09:19:05 1151
原创 mongodb compact
在2.0以后,可以使用compact对集合进行压缩,释放空间,这个类似于repairdatabase,但是repairdatabase只能对整个数据库进行压缩,所以在效率和速度上,compact更快,也不会需要那么多的磁盘空间。 运行格式如下:> db.runCommand( { compact : 'mycollectionname' } )> // or>
2013-04-28 09:17:57 1044
原创 oracle 全文索引优化like
最近一个业务,本来调的差不多了,但是新问题又来了,发现两条LIKE '%XXX%',看到这个,心碎了,表记录现在大约11W吧,全表扫描啊,你妹的,这种SQL其实业务就不改让上,直接打回去重写好了。 可是,现在只能从我这边做优化了,问了问开发,只能是完全模糊查询,'%xxx'和'xxx%'都不行啊,'xxx%'大家知道,一般都可以用到索引,'%xxx'这个其实也好优化,用reverse呗,
2013-04-27 09:26:52 1756
原创 oracle latch (二)
latch sleep后唤醒方式:1.sclgts() slow方式唤醒 , timeout方式,timeout由一个内部参数控制_MAX_EXPONENTIAL_SLEEP,默认是2秒,第一次默认是1/100秒在v$latch视图中有sleep1到11,这里举例如果sleep了3次,那么sleep1+1,sleep2+1,sleep3+1,这里只记录11次的2.sclgtf() fa
2013-04-27 09:25:39 602
原创 oracle latch (一)
介绍了oracle的普通锁,在介绍下oracle latch,也就是内存锁,先看结构:1.pid,进程号2.内存地址3.内存长度分类:父latch,子latch,独立latch父latch和独立latch固话在oracle内核代码中,静态结构。实例启动前就有父latch,启动后才会产生子latch查看latch的统计信息,v$latch_parent (父latch),
2013-04-27 09:24:59 684
原创 mongodb 模糊查询以及$type使用
最近有一监控业务,由于数据采集到非数字内容,导致监控图表无法正常显示,所以要找出这部分数据,进行删除,然后开发员从源头更正插入数据库的数据,不再产生非数字内容。 下面举一个例子:建立测试数据: for(i=1;i > db.test.find(){ "_id" : ObjectId("504ece595e8dc12ed97482b2"), "id" : 1, "con
2013-04-27 09:23:38 1315
原创 mongodb 查询结果保存为结果集以及根据条件导出数据
有时候需要把从一个集合里查询的结果保存为一个集合,可以用以下写法:var temp1 = db.mtb1.find(name:"joe");while(temp1.hasNext()) db.tab2.insert(temp1.next());相当于sql中:create table tab2 as select * from mtb1 where name='joe';
2013-04-27 09:23:01 9035
原创 error RS102 too stale to catch up
这个错误是replica set中经常看到的一个错误,原因是主节点记录插入的记录速度超过了oplog的同步,官方有这个错误的解释,以及一些处理的方法。http://www.mongodb.org/display/DOCS/Resyncing+a+Very+Stale+Replica+Set+Member 官方介绍了几种解决的方法:一个是重新完全同步,需要把原来的数据全部删除。一个是
2013-04-27 09:22:28 743
原创 mongodb 聚合函数
1.count这个函数很好理解,和其他数据库一样,就是做一个count操作select count(*) from tab1 =db.tab1.count() 以上例子很好理解,但是如果在操作中有skip,limit这种操作的话,那么count会忽略掉这些操作,必须加入一个true参数比如:db.tab1.find().skip(1),limit(2).count()和db.tab
2013-04-27 09:21:46 1275
原创 oracle 锁----续
之前介绍了oracle几种锁,还没有完全介绍完,下面继续。5号锁:SSX(SRX)触发条件:LOCK TABLE table IN SHARE ROW EXCLUSIVE MODE;和3~6号锁都不兼容,可以理解为级别最高的表锁6号锁:X触发条件:LOCK TABLE table IN EXCLUSIVE MODE;只允许select汇总一下触发DML的条件:...
2013-04-26 09:53:22 662
原创 oracle 锁
在介绍oracle的锁之前,先介绍一下什么叫阻塞,这个相信大家都遇到过。阻塞和死锁是两回事,这个可能会经常混淆。阻塞:一个session持有一定的资源,但是其他session也要持有这个资源,那么这时就会阻塞,请求的session就会一直等待,直到持有资源的session释放该资源。常见的产生阻塞的情况:INSERT、UPDATE、DELETE、MERGE和SELECT FOR UPD...
2013-04-26 09:52:31 1088
原创 1.6 pair convert 2.0 replica sets
最近一个业务需要进行升级,之前的版本是1.6,我准备升级到最新的2.0.5,而且原来用的pair,到了2.0.5当然要使用replica set升级已经转换步骤: 1.对原来pair中slave数据库进行重建,slave转换成replica sets的主节点 2.停止服务,把master的数据迁移至转换的主节点。 3.启动服务连接至新建的主节点。 4.对pair中master数
2013-04-26 09:51:04 531
原创 mongoDB single db convert to replicaSet
以下以2.0.2为例 : 1. 修改主节点配置# 其他配置不变# 增加配置,例如noauth = trueoplogSize = 31280journal = truejournalCommitInterval = 402. 重启mongodbmongo 127.0.0.1:4321/admindb.shutdownServer()# 增加启动项 --r
2013-04-26 09:49:55 863
原创 mongodb sharding 机制
用过mongodb的都知道sharding,这里介绍下分片机制 首先介绍下区间概念,比如[a,d),这就是一个区间,而mongodb每个分片的点,会有多个这样的区间,随着数据量的增加,分片的区间根据数据量会进行分裂,从而分裂成多个区间,如:[a,d)分裂成[a,c)和[c,d)l两个区间,一旦分片之间的数据量不平衡,那么就会以这个区间为单位,进行迁移。以下的图示是,分片根据区间进行数据迁移
2013-04-26 09:48:57 876
原创 oracle user-managed backups
今天介绍用户管理备份,先明白几个概念:整库备份:1.一致性备份(冷备),也就是在数据库干净关闭的以后做备份,因为干净关闭数据文件头和控制文件SCN是一致的这里由于redo都已经被应用了,所以只要备份数据文件和控制文件即可,当然也可以备份日志文件和口令文件。2.不一致性备份(热备),也就是数据库是打开的,可以读写,数据文件和控制文件SCN不一致,当然shutdown abort关闭也
2013-04-26 09:47:05 616
原创 mongodb sharding
这里先介绍sharding的架构和几个基本概念术语。shard server :shard server可以使一个mongod实例,也可以是replica set。config sever:为了将指定collection存储在多个shard中,那么就需要个key来进行分割,config server存储各个节点的配置信息。shard key的范围,以及分布情况。route proces
2013-04-25 09:44:23 992
原创 mongodb replica set
之前主要介绍了RS(replica set)的安装配置,这里再介绍一下日常的管理,比如添加以及删除节点。故障转移,这个无疑是RS的重要特性: 在之前建立好的replica set,直接kill掉进程,剩下的节点就会选举出一个节点作为主节点。添加删除节点: 删除节点:rs.remove()即可例如:rs.remove("localhost:20004")添加节
2013-04-25 09:42:46 707
原创 ora-00257错误,以及oracle字符集
sqlplus /nologconn charge/charge 导致ora-00257错误一般都是归档日志存放目录已满,无法归档造成的。// *Cause: The archiver process received an error while trying to archive// a redo log. If the problem is not resol
2013-04-25 09:41:10 837
原创 oracle 11g 新特性之结果缓存
结果缓存,缓存到那里呢?共享池! 也就是说把查询出来的结果集共享到共享池。这样不用解析,不用执行,直接从共享池读取这个结果集就可以,称之为结果缓存。 首先介绍第一种结果缓存:服务器结果缓存比如一个select查询取出50行记录,就是把这些记录都放在共享池,这个和缓存在buffer cache中是不一样的,大家自己理解一下。buffer cache是获取包含磁盘上的数据块
2013-04-25 09:39:10 860
原创 oracle半连接(in ,exists)
半连接和反连接,其实就是in,exists,之前我对这几个玩意其实也很迷茫,看网上都有的说exists比in好,等等之类的,其实并不然,等了解了他的一些内部机制,就不会再这么盲目了。 那么我先看几个相关参数:_always_semi_join=CHOOSE 这个说明是按最小成本选择半连接这个参数可以通过select NAME_KSPVLD_VALUES name, VA
2013-04-25 09:38:11 1476
原创 oracle 块故障恢复
故障块种类:1:物理故障块 比如:数据文件,控制文件,重做日志2:逻辑故障块 比如:表块故障等等一系列逻辑结构首先介绍几种检测故障块的方法:1:dbv file=数据库文件路径+数据文件名称 blocksize=8192(默认)不能检查逻辑对象的错误,比如表,索引等等。2:ANALYZE TABLE .. VALIDATE STRUCTURE CASCADE
2013-04-25 09:37:09 681
转载 定位library cache lock的方法
常用定位library cache lock的方法经常看到PUB上有兄弟说什么LIBRARY CACHE LOCK和PIN的错误不知道该如何处理,而且定位不到问题出在哪里,我来说几句吧,以我工作上的经验,希望能对大家有用 一般来说,这类错误是因为在包或过程被频繁调用的过程中,DDL语句引起的,那我们该怎么处理呢?其实我们可以这样来操作来查原因,老板要的一般都是为什么产生这个故障和谁操作
2013-04-25 09:36:23 642
原创 oracle job 失效解决一例
最近一个业务库上的JOB老是没法定时执行,也没有任何错误,今天就抽时间看了一下,应该是JOB失效了手动执行也可以,用dbms_job.run(:job)也是可以正常执行。 metalink看了一下[ID 313102.1],下面把具体内容贴一下吧,其实网上也都有的Check the most common reasons why jobs don't execute au
2013-04-25 09:35:16 2555
原创 oracle archivelog mode
备份恢复之前,我们先了解一下归档归档的作用:1.出现介质故障时,可以恢复(无论数据联机还是脱机都可以恢复,可以恢复到指定的时间点,可以恢复至日志文件的末尾(until cancel))2.可以再数据库联机时进行备份3.介质故障导致表空间(非system)脱机时,数据库其余都可用,因为表空间可以在数据库打开时恢复归档模式如何更改:1.关闭数据库 shutdown im
2013-04-25 09:33:21 1147
原创 DBA_ERRORS错误一例
数据库版本10.2.0.4首先这个东西记录了PL/SQL的一些错误信息,具体含义大家自己网上查查吧其实这个错误是接着上次expdp的时候出现的,上次执行的脚本:$ORACLE_HOME/rdbms/admin/catmet2.sql $ORACLE_HOME/rdbms/admin/utlrp.sql首先看一下catmet2.sql 做了些什么-- create the t
2013-04-24 10:30:53 1094
原创 记录一次expdp错误
话说导数据expdp比exp效率多了,原因很简单,exp是通过BUFFER CACHE的SQL导出到exp文件的,但是expdp则不是,他不通过BUFFER CACHE,而是直接导出到文件的,而且只能在服务端,所以不受网络的影响。 ---------------------------------------------------------------------
2013-04-24 10:29:48 633
原创 INDEX FAST FULL SCAN AND SKIP SCAN
在快速扫描索引时,oracle读取b-tree索引的所有叶子节点块,而且是顺序读,而且可以同时读取db_file_multiblock_read_count,而且索引快速扫描比full table scan的物理IO小很多,可以更快的响应请求。以下还是看下原文:The fast full scan can be used if all of the columns in the query...
2013-04-24 10:26:16 1121
原创 TKPROF 使用
话说oracle的剖析工具有很多,这里就介绍下常用的tkprof剖析工具。敲tkprof回车,可以看到提示Usage: tkprof tracefile outputfile [explain= ] [table= ] [print= ] [insert= ] [sys= ] [sort= ] table=schema.tablename Use 'sc...
2013-04-24 10:23:17 776
原创 oracle listener
这一块知识,我相信搞oracle的兄弟都是比较精通的,我也是前段时间公司让做个培训的时候,又把这块又温习了一遍,还是有不少新的收获,今天就搬到这里记录一下大家可以看到这里的WEB应用充当中间件,既懂HTTP,又懂oracle net,厉害吧,其实就是个翻译官。如果WEB应用服务器采用 JDBCOCIDRIVER,那么WEB服务必须的安装oracle net组件,才能和orac...
2013-04-24 10:15:17 1236
转载 来自francs的PG锁浅析,可以和oracle锁对照区别一下
概述此文档主要对Postgresql 锁机制进行分析,在讲解的过程中结合实验,理解Postgresql的锁机制。二、表级锁类型表级锁类型分为八种,以下对各种表级锁类型进行简单介绍下, 锁的冲突模式可以参考3.1的图一:表级锁冲突模式。2.1 ACCESS SHARE “ACCESS SHARE”锁模式只与“ACCESS EXCLUSIVE” 锁模式冲突;查询命令(S
2013-04-24 10:13:53 856 1
原创 mongodb replication
1:master-slave replication主从复制:一个服务启动的时候加上--master参数,另一个服务启动时加上--slave和--source参数就可以实现同步了。一个master服务可以有一个或者多个slave,每一个salve都知道master的地址,如图: 举例:启动master$ mkdir -p ~/dbs/master$ ./mongod -
2013-04-24 10:12:13 742
原创 mongodb监控工具
1:mongosniffmongosniff --source NET lo监控mongodb的端口举例: 这是打开的两个客户端,可以看到相应的操作在这个监控下面可以看到2:mongostat 可以查看运行的mongodb的统计信息 字段说明: insert: 每秒插入量 query: 每秒查询量 update: 每秒更新量
2013-04-24 10:10:11 1025
原创 mongodb explain plan
mongodb也提供explain命令,来查看执行计划,可以查看系统的是否用到索引,是怎么使用索引,针对性的对查询进行优化。先看一个例子> db.post.find().explain(){ "cursor" : "BasicCursor", "indexBounds" : [ ], "nscanned" : 40,
2013-04-24 10:08:56 780
原创 mongodb日常操作(查询)
首先介绍日常增,删,改,查询:1:查询show collections ----查看数据库下的集合db.collection-name.find() --------最基础的查询db后面直接跟集合的名称,不能完全显示真个集合的数据,可以用it显示db.collection-name.findOne() ----------一定要注意大写,返回集合的第一条记录,如果没数据
2013-04-24 10:08:07 694
原创 mongodb capped collections
在mongodb中,除了普通的collections,还有一种特殊的collections,叫做capped collections。特点:1.只能插入,更新,不能删除doc,可以使用drop()删除整个collection2.LRU列表,相信大家对这个应该很了解了,oracle里面很多地方就是用的这个规则,如果指定的集合大小满了,那么会按照LRU挤出数据存放新插入的数据,这里记得更新
2013-04-24 10:06:58 676
原创 mongodb管理Security and Authentication
mongdb自己也提供了验证机制,如果不验证是无法访问数据库对象,一个数据可以有多个用户,用户的权限也可以各不相同,下面具体介绍一下。> use admin ----登录到超级管理员 >db.addUser("root", "abcd");{ "_id" : ObjectId("4eaf58af769d879418d93191"), "user"
2013-04-24 10:05:55 787
原创 mongodb index介绍
mongodb同其他数据一样,提供索引,来提高查询的效率。看下索引的种类:1:基础索引2:文档索引3:组合索引4:唯一索引基础索引:比如一个post集合中含有name字段,在name字段上建立索引:db.post.ensureIndexe({name:1}) 后面的1意思是升序,-1表示降序查询该集合的索引:db.post.getIndexes();会
2013-04-23 16:47:31 780
原创 mongodb日常管理之导入导出以及备份相关
mongodb提供了mongoexport 和mongoimport 工具,使用也很简单mongoexport --help 查看帮助举例:mongoexport -d databasename -c collectionname -o filename这里还可以指定导出CSV格式,指定需要那些列:mongoexport -d databasename -c collectio
2013-04-23 16:46:23 486
GREENPLUM管理向导
2018-04-28
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人