1引言本文档描述如何对Sybase IQ数据库的数据进行备份、恢复、迁移等操作指导,供售前和售后人员使用。
本文档是售前和售后人员向运营商推广、使用本功能最重要的参考依据。
2术语和缩略语2.1术语2.2缩略语3简介Sybase IQ(或Multiplex IQ)的数据备份包括Sybase IQ 数据(IQ存储)和基础SQL Anywhere 数据库(Catalog 存储)备份。
其备份方式分为BACKUP/RESTORE命令的全库备份/恢复,以及数据导入/导出应用(重定向、insert…location方式的数据迁移)。
本文档将分别描述三种方式操作步骤。
4Sybase IQ的数据备份、恢复4.1 全库备份、恢复全库备份、恢复采用BACKUP/RESTORE命令(必须具有dba权限),此种方法仅备份已提交的数据。
借助提交和自动检查点开始备份。
备份程序在此时确定要备份哪些数据。
该程序备份截至此检查点时间为止的数据库当前快照版本。
在此检查点操作发生时尚未提交的所有数据不会纳入备份范围。
➢BACKUP 语句说明在一个或多个存档设备上备份Sybase IQ 数据库。
语法BACKUP DATABASE[ backup-option… ]TO archive_device [ archive-option... ]…[ WITH COMMENT string ]参数backup-option:{ READWRITE FILES ONL Y |READONL Y dbspace-or-file [, … ] }CRC { ON | OFF }ATTENDED { ON | OFF }BLOCK FACTOR integer{ FULL | INCREMENTAL | INCREMENTAL SINCE FULL } VIRTUAL { DECOUPLED |ENCAPSULATED ‘shell_command’ }WITH COMMENT commentdbspace-or-file:{ DBSPACES identifier-list | FILES identifier-list }identifier-list:identifier [, … ]archive-option:SIZE integerSTACKER integer示例:全库备份DBA>BACKUP DATABASETO ‘/UbasDbBack/ubasdb_20100603.bak’WITH COMMENT ‘Full backup of dba’➢RESTOR语句说明从一个或多个存档设备恢复Sybase IQ 数据库备份。
语法语法1RESTORE DA TABASE 'db_file'FROM 'archive_device' [ FROM 'archive_device' ]……[ KEY key_spec ]…[ RENAME dbspace-name TO 'new-dbspace-path' ]……[ CATALOG ONL Y ]语法2RESTORE DA TABASE 'database-name'[ restore-option ... ]FROM 'archive_device' ...参数db_file:要恢复的数据库的相对路径或绝对路径。
可以是初始位置,也可以是Catalog 存储文件的新位置。
key_spec:用引号括起来的包含大小写字符、数字、字母和特殊字符的字符串。
防止该键受到命令解释器的解释或更改可能非常有必要。
restore-option:READONL Y dbspace-or-file [, ... ]KEY key_specRENAME file-name TO new-file-path ...示例:全库恢复(连接到utility_db 数据库)DBA>RESTOR DA TABASE ‘ubas.db’FROM ‘/UbasDbBack/ubasdb_20100603.bak’4.2 数据导入、导出4.2.1批量装载(LOAD TABLE)说明将数据从外部文件导入数据库表。
语法LOAD [ INTO ] TABLE [ owner.]table-name... ( load-specification [, …] )... { FROM | USING [ CLIENT ] FILE }{ 'filename-string' | filename-variable } [, …]... [ CHECK CONSTRAINTS { ON | OFF } ]... [ DEFAULTS { ON | OFF } ]... [ QUOTES OFF ]... ESCAPES OFF... [ FORMAT { ascii | binary | bcp } ]... [ DELIMITED BY 'string' ]... [ STRIP { ON | OFF | RTRIM } ]... [ WITH CHECKPOINT { ON | OFF } ]... [ { BLOCK FACTOR number | BLOCK SIZE number } ]... [ BYTE ORDER { NA TIVE | HIGH | LOW } ]... [ LIMIT number-of-rows ]... [ NOTIFY number-of-rows ]... [ ON FILE ERROR { ROLLBACK | FINISH | CONTINUE } ]... [ PREVIEW { ON | OFF } ]... [ ROW DELIMITED BY 'delimiter-string' ]... [ SKIP number-of-rows ]... [ WORD SKIP number ]... [ START ROW ID number ]... [ UNLOAD FORMAT ] LOAD TABLE 语句198 Sybase IQ... [ ON PARTIAL INPUT ROW { ROLLBACK | CONTINUE } ]... [ IGNORE CONSTRAINT constrainttype [, …] ]... [ MESSAGE LOG ‘string’ ROW LOG ‘string’ [ONL Y LOG logwhat [, …] ] ... [ LOG DELIMITED BY ‘string’ ]参数load-specification:{ column-name [ column-spec ]| FILLER ( filler-type ) }column-spec:{ ASCII ( input-width )| BINARY [ WITH NULL BYTE ]| PREFIX { 1 | 2 | 4 }| 'delimiter-string'| DATE ( input-date-format )| DATETIME ( input-datetime-format )| ENCRYPTED (data-type ‘key-string’ [, ‘algorithm-string’ ] )| DEFAULT default-value }[ NULL ( { BLANKS | ZEROS | 'literal', …} ) ]filler-type:{ input-width| PREFIX { 1 | 2 | 4 }| 'delimiter-string' }constrainttype:{ CHECK integer| UNIQUE integer| NULL integer| FOREIGN KEY integer| DATA V ALUE integer| ALL integer }logwhat:{ CHECK | ALL | NULL | UNIQUE | DATA V ALUE | FOREIGN KEY | WORD }示例:从文件(test.txt)向表TABLE_A中装载数据。
表TABLE_A结构:CREATE TABL TABLE_A (ID int not null,COL1 int null,COL2 varchar(100) null)test.txt:1,1,a,2,1,b,3,1,c,并行装载语句:LOAD TABLE TABLE_A(ID ‘,’,COL1 ‘,’,COL2 ‘,’)FROM ‘/test.txt’STRIP OFFQUOTES OFFESCAPES OFFROW DELIMITED BY '\n'4.2.2重定向模式此模式是用户sql语句从表中查询出结果,储存为文件,实现数据导出;然后再用LOAD 命令从文件装载数据,实现数据导入。
示例:➢建表:create table t1 (a int,b varchar(100));插入数据步骤省略。
➢设置导出数据选项:set temporary option TEMP_EXTRACT_DIRECTORY='/dbback';set temporary option TEMP_EXTRACT_NAME1='t1.txt';➢导出数据:select * from t1;➢关闭选项:set temporary option TEMP_EXTRACT_NAME1='';set temporary option TEMP_EXTRACT_DIRECTORY='';➢清除数据:truncate table t1;commit;➢导入数据:load table t1 (a ',',b ',' null('NULL'))from '/dbback/t1.txt'quotes off escapes off;4.2.3本地远程访问模式远程访问模式可以从一源数据库中直接将数据导入目标数据库,前提是要表结构一致。
此种模式采用INSERT …. LOCA TION命令,迁移数据速度较快,但需要加以配置。
➢配置Interfaces(目标数据库服务器)sybase@linux-246:~> iqdscp>> openokSession 1 InterfacesDriver>> add mpxreaderService: [ASE]Transport Type: [tcp]Transport Address: 10.44.114.59 5059Transport Type: [tcp]Transport Address:Security Mechanism [] :HA Failoverserver:Retry Count:Retry Delay:Added mpxreader➢配置locales.dat(解决字符集问题,迁移数据中无中文可以不配置)sybase@linux-246:~> echo $LANGzh_CN.UTF-8sybase@linux-246:~> pwd/home/sybasesybase@linux-246:~> cd locales/sybase@linux-246:~/locales> vi locales.dat增加locale = zh_CN.UTF-8, zh_CN, utf8➢执行迁移语句源数据库:ubas59表:create table t1 (a int,b varchar(100));语句:insert into t1 location ' mpxreader.ubas59' {select * from t1};。