分类目录归档:db

SQL Server死锁总结

 1. 死锁原理

    根据操作系统中的定义:死锁是指在一组进程中的各个进程均占有不会释放的资源,但因互相申请被其他进程所站用不会释放的资源而处于的一种永久等待状态。

    死锁的四个必要条件:
互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
请求与保持条件(Hold and wait):已经得到资源的进程可以再次申请新的资源。
非剥夺条件(No pre-emption):已经分配的资源不能从相应的进程中被强制地剥夺。
循环等待条件(Circular wait):系统...

继续阅读

发表在 db | 标签为 | SQL Server死锁总结已关闭评论

sqlserver 内部函数、存储过程、角色

/*日期函数*/
DATEADD ( datepart , number, date )
--在向指定日期加上一段时间的基础上,返回新的 datetime 值。
DATEDIFF ( datepart , startdate , enddate )
--返回跨两个指定日期的日期和时间边界数。
DATENAME ( datepart , date )
--返回代表指定日期的指定日期部分的字符串。
DATEPART ( datepart , date )
--返回代表指定日期的指定日期部分的整数。
DAY ( date )
--返回代表指定日期的天的日期部分的整数。
... 继续阅读

发表在 db | 标签为 | sqlserver 内部函数、存储过程、角色已关闭评论

SQL Server 错误日志

sp_cycle_errorlog

 

错误日志文件暴增:

这里我说的不仅仅指某个错误日志记录文件暴增,也指目录Program Files\Microsoft SQL Server\MSSQL.n\MSSQL\LOG所占空间暴增,如果你平时都不关注这些错误日志,也从不维护错误日志记录文件,那么很有可能它所占的空间非常大,大到让你吃惊的地步。几十G的我也见过,那么具体原因可能有以下种:

 1:SQL 内部错误的时候会产生非常多的DUMP文件

2:高可用的数据库服务器可能很少停机,而你又没有定期清理、清空这些错误日志信息,那么ERRORLOG.n/SQLAGENT.n文件增长会...

继续阅读

发表在 db | 标签为 , , | SQL Server 错误日志已关闭评论

mysql sort

按IN顺序排序

select * from table_name where doc_id IN ('1dba', 'c20a', '907b')

mysql返回的结果集的排序是按照入库顺序给出的,若希望按照doc_id列表的先后顺序进行排序,

select * from table_name where doc_id IN ('1dba', 'c20a', '907b') order by FIND_IN_SET('1dba', 'c20a', '907b')

 

 ORDER BY + 字段 + 排序方式

使用前:
SELECT `goods_...

继续阅读

发表在 db | 标签为 | mysql sort已关闭评论

mongod

#!/bin/bash

# mongod - Startup script for mongod

# chkconfig: 35 85 15
# description: Mongo is a scalable, document-oriented database.
# processname: mongod
# config: /etc/mongod.conf
# pidfile: /var/run/mongo/mongod.pid

. /etc/rc.d/init.d/functions

# things from mongod.conf get ther...

继续阅读

发表在 db | 标签为 | mongod已关闭评论

mysql 误删除ibdata1之后如何恢复

删除了在线服务器中mysql innodb相关的数据文件ibdata1以及日志文件 ib_logfile*,
应该怎样恢复呢?

观察网站,发现一切都很正常,数据的读取与写入操作都完全正常。
这是怎么个情况?

其实,mysqld在运行状态中,会保持这些文件为打开状态,
即使把它们删除了,它们仍旧存在于文件系统中,mysqld仍然可以对其进行读写。

root@localhost:/var/lib/mysql# ls -la /proc/14101/fd/| grep -e ibdata -e ib_
lrwx------ 1 root  root  64 Aug  7 23:29 3 ...

继续阅读

发表在 db | 标签为 | mysql 误删除ibdata1之后如何恢复已关闭评论

mysql MM

MySQL支持单向、异步复制,复制过程中一个服务器充当主服务器,而一个或多个其它服务器充当从服务器。主服务器将更新写入二进制日志文件,并维护日志文件的一个索引以跟踪日志循环。当一个从服务器连接到主服务器时,它通知主服务器从服务器在日志中读取的最后一次成功更新的位置。从服务器接收从那时起发生的任何更新,然后封锁并等待主服务器通知下一次更新。

配置主主同步的操作步骤:
MySQL-A     10.17.1.11
MySQL-B     10.17.1.12
1.     分别在两台机器授权账户:grant replication... 继续阅读

发表在 db | 标签为 | mysql MM已关闭评论

mysql user grant

  • 登录MYSQL:
  •   @>mysql -u root -p

      @>密码

     

  • 用户授权
  •    grant 权限 on 数据库.* to 用户名@登录主机 identified by "密码"; 

       mysql>flush privileges;//刷新系统权限表

     

  • 授权示例:
  •         授权 test 用户 test 表所有权限(密码1234)

       mysql>grant all privileges on test.* to test@localhost ide...

    继续阅读

    发表在 db | 标签为 | mysql user grant已关闭评论

    mysql innodb 性能优化

    默认情况下,innodb的参数设置的非常小,在生产环境中远远不够用
    比如最重要的两个参数
    innodb_buffer_pool_size 默认是8M
    innodb_flush_logs_at_trx_commit 默认设置的是1 也就是同步刷新log(可以这么理解)
    innodb_buffer_pool_size:这是InnoDB最重要的设置,对InnoDB性能有决定性的影响。默认的设置只有8M,所以默认的数据库设置下面InnoDB性能很差。在只有 InnoDB存储引擎的数据库服务器上面,可以设置60-80%的内存。更精确一点,在内存容量允许的情况下面设置比InnoDB tablesp... 继续阅读

    发表在 db | 标签为 , | mysql innodb 性能优化已关闭评论

    Sql Server 2008 数据库镜像

    系统:win2008企业完全版
    sql版本:Microsoft SQL Server 2008 (RTM) - 10.0.1600.22 (X64)Enterprise Evaluation Edition (64-bit) Server Pack 1
    网络环境:工作组模式
    主服务器:   主机名:dbmaster  全名:dbmaster.test.com  IP:10.10.1.175
    从服务器:  主机名:dbslave   全名:dbslave.test.com   IP:10.10.1....

    继续阅读

    发表在 db | 标签为 , | Sql Server 2008 数据库镜像已关闭评论

    MongoDB主从复制和集群

    主从复制

    最基本的设置是建立一个主节点和多个从节点,每个从节点要知道主节点的地址。

    运行mongod --master就启动了主服务器。运行mongod --slave --source master_address则启动了从服务器,其中master_address就是上面的主节点地址。

    生产环境下有多台服务器,不过这里我们的例子就在同一机器上试验。

    1.给主节点建立数据目录,并绑定端口(10000)

    $ mkdir -p ~/dbs/master

    $ ./mongod --dbpath ~/dbs/ma...

    继续阅读

    发表在 db | 标签为 | MongoDB主从复制和集群已关闭评论

    常见MySQL error code和SQLSTATE code

    常见MySQL error code和SQLSTATE code:

    MySQL error code        SQLSTATE code            Error message

    1011                    HY000                    Error ...

    继续阅读

    发表在 db | 标签为 | 常见MySQL error code和SQLSTATE code已关闭评论

    mysql DECLARE

    DECLARE condition_name CONDITION FOR condition_value
     
    condition_value:
        SQLSTATE [VALUE] sqlstate_value
      | mysql_error_code

    这个语句指定需要特殊处理的条件。它将一个名字和指定的错误条件关联起来。这个名字可以随后被用在DE...

    继续阅读

    发表在 db | 标签为 | mysql DECLARE已关闭评论

    mysql 自增ID

    Q:怎么获得当前的自增的最大值? 
    A:select @@identity

    Q:怎么获得table的当前自增最大值? 
    A:select max(id) from table

    Q:MYSQL中的LAST_INSERT_ID()和MSSQL中的@@IDENTITY 
    A:按照应用需要,常常要取得刚刚插入数据库表里的记录的ID值。 
       在MYSQL中可以使用LAST_INSERT_ID()函数,在MSSQL中使用@@IDENTITY。挺方便的一个函数。

      但是,这里需要注意的是,当使用INSERT语句插入多条记录的时候,...

    继续阅读

    发表在 db | 标签为 | mysql 自增ID已关闭评论

    mysql中int、bigint、smallint 和 tinyint的区别与长度的含义

    最近使用mysql数据库的时候遇到了多种数字的类型,主要有int,bigint,smallint和tinyint。其中比较迷惑的是int和smallint的差别。今天就在网上仔细找了找,找到如下内容,留档做个总结:

    使用整数数据的精确数字数据类型。

    bigint

    从 -2^63 (-9223372036854775808) 到 2^63-1 (9223372036854775807) 的整型数据(所有数字)。存储大小为 8 个字节。

    P.S. bigint已经有长度了,在mysql建表中的length,只是用于显示的位数

    int

    从 -2^31 (-2,147,483,648) 到 2^31 – 1 (2...

    继续阅读

    发表在 db | 标签为 , | mysql中int、bigint、smallint 和 tinyint的区别与长度的含义已关闭评论