backup and restore MonetDB

备份需要注意的是一致性问题. 前面我们测试了, monetdb从现象上来看是repeatable read隔离级别的, 所以备份如果在一个事务中进行的话不存在不一致的问题.

例如以下截取, 可以看出备份确实是一个事务中进行的.

postgres@150-> msqldump test
-- msqldump dump database Thu Aug 14 15:35:29 2014
-- MonetDB v11.17.21 (Jan2014-SP3), 'mapi:monetdb://150.sky-mobi.com:50000/test'
START TRANSACTION;
CREATE SCHEMA "datacell" AUTHORIZATION "monetdb";
CREATE SCHEMA "rdf" AUTHORIZATION "monetdb";
CREATE SEQUENCE "sys"."seq_6544" AS INTEGER;
SET SCHEMA "rdf";
CREATE TABLE "rdf"."graph" (
        "gname" CHARACTER LARGE OBJECT,
        "gid"   INTEGER
);
SET SCHEMA "sys";
CREATE TABLE "sys"."a" (
        "id"   INTEGER       NOT NULL DEFAULT next value for "sys"."seq_6544",
        "info" VARCHAR(32),
        CONSTRAINT "a_id_pkey" PRIMARY KEY ("id")
);
COPY 536870912 RECORDS INTO "sys"."a" FROM stdin USING DELIMITERS '\t','\n','"';
....

但是, 如果要防止备份期间, 数据库被变更(例如迁移数据库, 需要一致性数据), 那么可以锁库, 然后备份再发布.

Since MonetDB does not provide global locking schemes, a time-consuming dump operation may become invalidated by a concurrent update query.

所以如果需要全库一致性备份, 需要将数据库转入维护模式. 备份完成再发布. 例如 : 

锁: monetdb lock 库名

发布: monetdb release 库名

monetdb提供的备份命令行攻击msqldump.

[root@150 ~]# msqldump --help
Usage: msqldump [ options ] [ dbname ]

Options are:
 -h hostname | --host=hostname    host to connect to
 -p portnr   | --port=portnr      port to connect to
 -u user     | --user=user        user id
 -d database | --database=database  database to connect to
 -f          | --functions        dump functions
 -t table    | --table=table      dump a database table
 -D          | --describe         describe database
 -N          | --inserts          use INSERT INTO statements
 -q          | --quiet            don't print welcome message
 -X          | --Xdebug           trace mapi network interaction
 -?          | --help             show this usage message
--functions and --table are mutually exclusive

一般可以把用户密码配置在~/.monetdb文件中, 然后使用msqldump就不需要输入用户密码了.

[root@150 ~]# vi ~/.monetdb
user=monetdb
password=monetdb
[root@150 ~]# chmod 400 ~/.monetdb 

例如

一般备份重定向到压缩命令或文件即可.

备份整个数据库的DDL

[root@150 ~]# msqldump -D 库名

备份表的DDL

[root@150 ~]# msqldump -t c -D 库名
-- msqldump describe table c Thu Aug 14 14:55:41 2014
-- MonetDB v11.17.21 (Jan2014-SP3), 'mapi:monetdb://150.sky-mobi.com:50000/test'
CREATE TABLE "sys"."c" (
        "id"   INTEGER,
        "info" VARCHAR(64),
        "c1"   VARCHAR(64)
);

备份整个数据库, 包括数据

msqldump 库名

备份函数定义

msqldump -f 库名

备份数据, 默认使用COPY方式输出

[root@150 ~]# msqldump -f test
-- msqldump dump functions Thu Aug 14 14:58:24 2014
-- MonetDB v11.17.21 (Jan2014-SP3), 'mapi:monetdb://150.sky-mobi.com:50000/test'
[root@150 ~]# msqldump -t c test
-- msqldump dump table c Thu Aug 14 14:59:00 2014
-- MonetDB v11.17.21 (Jan2014-SP3), 'mapi:monetdb://150.sky-mobi.com:50000/test'
CREATE TABLE "sys"."c" (
        "id"   INTEGER,
        "info" VARCHAR(64),
        "c1"   VARCHAR(64)
);
COPY 6 RECORDS INTO "sys"."c" FROM stdin USING DELIMITERS '\t','\n','"';
1       "test"  "test"
1       "test"  "test"
1       "test"  "test"
1       "test"  "test"
1       "test"  "test"
100     "test"  "test"

使用INSERT方式输出

[root@150 ~]# msqldump -t c -N test
-- msqldump dump table c Thu Aug 14 14:59:07 2014
-- MonetDB v11.17.21 (Jan2014-SP3), 'mapi:monetdb://150.sky-mobi.com:50000/test'
CREATE TABLE "sys"."c" (
        "id"   INTEGER,
        "info" VARCHAR(64),
        "c1"   VARCHAR(64)
);
INSERT INTO "sys"."c" VALUES (1, 'test', 'test');
INSERT INTO "sys"."c" VALUES (1, 'test', 'test');
INSERT INTO "sys"."c" VALUES (1, 'test', 'test');
INSERT INTO "sys"."c" VALUES (1, 'test', 'test');
INSERT INTO "sys"."c" VALUES (1, 'test', 'test');
INSERT INTO "sys"."c" VALUES (100, 'test', 'test');

还原则在mclient下直接运行备份文件即可.

例如

mclient 库名

\< 文件名

[参考]
1. man msqldump

2. man mclient

3. https://www.monetdb.org/Documentation/UserGuide/DumpRestore

时间: 2025-01-23 00:14:31

backup and restore MonetDB的相关文章

解决开机总出现press K to start backup or restore system.timeout怎么办

  困扰了我很久,之前装了一个一键备份还原工具,后来出问题了,然后我已经把一键ghost完全的卸载了,但是这个问题一直都在,虽然系统正常运行,但是开机出现的那个倒计时是在很烦人!感觉安装过一键ghost后就阴魂不散了.网上看到的办法我全都试过了,没有任何用处! 真的不知道怎么才能像以前那样正常??? 哪位高手能帮忙解决,在下感激万分!!! 没有boot隐藏文件... 计算机-属性-高级-系统启动,系统失败和调试信息里的设置里没有 编辑选项 开机总出现倒计时:press K to start ba

【MOS】How to backup or restore OLR in 11.2/12c Grid Infrastructure

How to backup or restore OLR in 11.2/12c Grid Infrastructure (文档 ID 1193643.1) In this Document Goal Solution   OLR location   To backup   To list backups   To restore References APPLIES TO: Oracle Database - Enterprise Edition - Version 11.2.0.1.0 a

oracle报错RMAN active duplicate hanging on restore control file

12.1.0.2之后,duplicate target database for standby from active database的时候,总是hang死在restore controlfile的情况.这个由于Bug 19664695引起.(Bug22468652和Bug 20721271最终都可以归结到Bug 19664695上去.) 解决方法是在ORACLE_HOME和GRID_HOME的sqlnet.ora文件中都设置DISABLE_OOB=on .详情可参考 RMAN active

Symantec Backup Exec 2012 Agent For Linux安装

Backup Exec 2012 介绍     Backup Exec 2012 是一种为虚拟和物理环境提供保护的集成产品,能够简化备份和灾难恢复,并提供了无可匹敌的恢复功能.借助于强大的 Symantec V-Ray 技术,Backup Exec 2012 可以恢复整个服务器.关键 Microsoft 应用程序以及 VMware 或 Microsoft Hyper-V 虚拟环境,从而最大限度减少业务停机.    主要功能 使用获得专利的 V-Ray 技术,通过一次性备份在数秒内轻松地恢复虚拟机

ORACLE备份策略(ORACLE BACKUP STRATEGY)

概要 1.了解什么是备份 2.了解备份的重要性 3.理解数据库的两种运行方式 4.理解不同的备份方式及其区别 5.了解正确的备份策略及其好处   一.了解备份的重要性 可以说,从计算机系统出世的那天起,就有了备份这个概念,计算机以其强大的速度处理能力,取代了很多人为的工作,但是,往往很多时候,它又是那么弱不禁风,主板上的芯片.主板电路.内存.电源等任何一项不能正常工作,都会导致计算机系统不能正常工作.当然,这些损坏可以修复,不会导致应用和数据的损坏.但是,如果计算机的硬盘损坏,将会导致数据丢失,

win2000 2003命令大全

_cmd_.exe > Famous command prompt 没什么好说的! cmdl32.exe > Connection Manager Auto-Download 自动下载连接管理  cmmgr32.exe > Connection Manager 连接管理器 cmmon32.exe > Connection Manager Monitor 连接管理器监视  cmstp.exe > Connection Manager Profile Manager 连接管理器配

Sql Server 2005 数据库维护计划

这个星期开始为了减轻工作压力开始使用数据库维护计划(SQL Server Maintenance Plan Wizard)维护数据库,由于以前都没用过,在个人使用的免费版(Express)里也没有这个功能,所以现在好好学习了一番,这里总结一下. 维护计划向导可以用于帮助您设置核心维护任务,从而确保数据库执行良好,做到定期备份数据库以防系统出现故障,对数据库实施不一致性检查.维护计划向导可创建一个或多个 SQL Server 代理作业,代理作业将按照计划的间隔自动执行这些维护任务.它使您可以执行各

SQL Server 2000 的新特性

1.2 SQL Server 2000 的新特性SQL Server 2000 全面扩展了SQL Server 7.0 的性能可靠性和易用性使它成为一个杰出的数据库平台可用于大型联机事务处理数据仓库以及电子商务等SQL Server 2000 的新特性主要有以下内容 1.2.1 数据库增强SQL Server 2000 引进了数据库和服务器增强功能以及其它一些新的特性1 XML Extensible Markup Language 扩展标示语言支持关系数据库引擎可以返回XML 文档数据XML 数

备份和恢复系统数据库

    系统数据库保存了有关SQL Server 的许多重要数据信息,这些数据的丢失将给系统带来极为严重的后果,所以我们也必须对系统数据库进行备份.这样一旦系统或数据库失败,则可以通过恢复来重建系统数据库.在SQL Server 中重要的系统数据库主要有master. msdb. distribution. model. 虽然tempdb 也是系统数据库但没有必要对其进行备份,因为SQL Server 每次启动都会重新创建该数据库,而当SQL Server 停止运行时,tempdb 数据库中所有