分类 数据库 下的文章

宇托 Cassandra, Backup, Restore 21 0

Cassandra的备份和恢复主要是通过快照(snapshots)来实现的。大概的步骤是通过快照(snapshots)备份数据,恢复时先清空数据表,然后把各表的快照(snapshots)复制到对应表的数据保存目录,覆盖原数据,然后重新加载,数据就恢复了。生成快照(snapshots)一般的备份的话,可以直接使用下面的命令:# nodetool -h 服务器 -p 端口 snapshot -t 快照名 -kt 数据库名.数据表名, ...

宇托 PostgreSQL, Backup, Restore 21 0

其实PostgreSQL的备份和恢复很简单,就简单的两个命令就行。主要要注意的就是几个参数。比如是否包含DDL,是否清除原有数据,备份格式之类的。例如:# 备份数据 pg_dump -h localhost -p 5432 -U postgres -d testdb -c -C -F c -f /home/postgres/backup/testdb_bak.dmp # 恢复数据 pg_restore -h localhost ...

宇托 Cassandra, NoSQL 18 0

最近一个项目用到了Cassandra。用了之后再发现,为了性能,它牺牲了太多关系数据库的功能。当然可能很多项目用不到关系数据库的功能,那样的话,可能Cassandra是一个很好的选择。这次做的这个项目,需要用到很多关系数据库的功能,因为设计已经定了,很多程序基本上是为了Cassandra而增加的代码。Cassandra的查询功能很弱,如果要用到相对复杂的查询,最好不要用Cassandra。下面说说Cassandra的功能和限制。C...

宇托 MySQL, Password 46 0

在之前一篇文章里写了MySQL的安装方法《ZIP版MySQL服务安装和卸载》。不像之前的版本里root的初始密码为空。5.7之后的MySQL中root的初始密码是不为空的,是在初始化过程中自动生成的。修改root的初始密码方法如下。1. 先初始化MySQL。初始化的命令为:mysqld --initialize2. 然后在新生成的MySQL的data目录(如果没有特殊设置,一般在MySQL安装目录下)下找到一个文件名为机器名.er...

宇托 Oracle, Synonyms 17 0

在Oracle中,一般是用Schema来隔离各个用户之间的数据。当然如果附于其它用户访问权限,其它用户也可以通过Schema名来访问其它Schema下数据库对象。Synonyms(同义词)就是给数据库对象取一个别名。这个数据库对象可以是用户自己Schema下的,也可以是别的用户Schema下的。使用Synonyms(同义词)有以下好处:节省数据空间隐藏一个数据库对象的名字和拥有者隐藏分布式数据库中远程对象的位置简化SQL语句它的相...

宇托 Oracle, Table, External 22 3

最近一个项目中要用到Oracle外部表,所以查了一下资料。外部表(external tables)是对sql*loader 的一个补充,可以让我们访问数据库外部的数据资源。不过外部表存在着诸多的限制,所以我们使用前必须对其有充分的了解。外部表中的一些限制:不能在外部表上执行DML操作。不能在外部表上创建index。不支持analyze分析语句,但是可以使用dbms_stats。不支持虚拟列。oracle 10g 以后可以允许我们把...

宇托 Oracle, TableSpace, ReBuild 13 0

之前一个系统,总是出现Oracle Undo表空间不足的异常。一看Oralce发现Undo表空间使用量已经100%了。在网上找一下,发现清空的方法也不难。大概方法是新建一个Undo表空间,把Oralce的Undo表空间设置到新建的空间,然后删除重建原来的Undo表空间,再把Undo表空间设置回去就行。其具体步骤如下:1. 创建新的UNDO表空间CREATE UNDO TABLESPACE "UNDOTEMP" ...

宇托 Oracle, Sequence, Trigger 12 0

其实自增列的原理就是定义了一个触发器,在插入数据时,如果自增列没有设值,就从一个自增值里取值。Oralce不像MySQL有自增列,不过我们可以通过序列(Sequence)和触发器(Trigger)来实现自增列。下面是一个例子。1. 再新建一个序列(Sequence)。CREATE SEQUENCE dept_seq MAXVALUE 9999999999 NOCACHE;2. 先新建一个表(Table)。CREATE TABLE ...

宇托 PostgreSQL 13 0

安装好PostgreSQL之后,发现它只是一个空库。也只有postgres一个用户名。所以想要添加一个用户和用户对应的数据库。如果你的PostgreSQL是直接安装的,那可以直接用pgAdmin III来添加用户和数据库。我安装的是Zip版的PostgreSQL,所以必须手动添加用户和数据库。其它用户和数据库的方法如下:1. 进入PostgreSQL的安装目录。用postgres用户启动CMD。命令如下:runas /noprof...

宇托 Install, PostgreSQL, WinServices 20 0

之前一直是安装PostgreSQL的,看到网上有Zip版的PostgreSQL,就下载下来试试。其实Zip版的PostgreSQL比Zip版的MySQL的安装要稍复杂一些。它需要添加用户和初始化数据库。第一步,下载和解压Zip版的下载页面:http://www.enterprisedb.com/products-services-training/pgbindownload在页面里选择你想安装的版本下载。我下载的是Windows3...

宇托 MySQL 13 0

最近下载了Zip版的MySQL 5.6,解压一看发现居然有1.4G。于是想把那些没用的东西删掉。精简方法如下:1. 删除docs,include,lib,mysql-test,scripts,sql-bench目录,只保留bin,data和share目录。呵呵,大小变成532M了。2. 删除bin目录里后缀名为.pdb的文件。大小变成277M了。一般来说,到这里基本上算是可以了。如果还想精简,那再继续下一步。3. 删除bin目录下...

宇托 PostgreSQL 12 0

一直觉得ID不用数字,而用36进制的字符串比较好,所以就有了实现十进制转36进制函数的写法。在网上找了一下,PostgreSQL的写法如下:十进制转36进制代码如下,当然你也可以根据自己的要求修改:CREATE OR REPLACE FUNCTION base36_encode(IN digits bigint, IN min_width int = 0) RETURNS varchar AS $$ DECLA...

宇托 Apache, PHP, PostgreSQL 11 0

最近想试试PHP下连接PostgresQL,发现在连接里出现下面的错误。Error [PDOException]: Could not Find Driver in PostgreSQL?一看到这个Error,第一反应就是我的php.ini是不是没有加载PostgreSQL的扩展。打开php.ini一看,发现是已经加载了的。然后用php#<?php phpinfo() ?>的文件一看,发现确实是没有PostgreSQL...

宇托 Install, Ubuntu, MongoDB 11 0

我的Ubuntu的版本是14.04,其它的版本可能在安装上有些不同。MongoDB的安装基本上按照其官网上写的就行了。MongoDB安装步骤添加MongoDB安装源。命令如下: sh#echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.0 multiverse" | sudo te...

宇托 Install, PostgreSQL, Ubuntu 12 0

我的Ubuntu的版本是14.04,其它的版本可能在安装上有些不同。总的来说,在Ubuntu上安装PostgreSQL,只是在配置时有一点点要注意的地方。PostgreSQL安装步骤要安装PostgreSQL,最好先更新一下系统。命令如下: sh#sudo apt-get update然后直接用apt-get安装就行。安装命令如下: sh#sudo apt-get install postgresql postgresql...