SybaseIQ数据备份恢复命令
- 格式:doc
- 大小:95.00 KB
- 文档页数:9
89 2019.04基础设施与数据管理责任编辑:季莹 投稿信箱:netadmin@I n f r a s t r uc t ur e M gm t . & D a t a M gm t .Sybase 数据库的备份与恢复■ 北京 张建楠Sybase Ad aptive Server Enterprise 数据库产品(简称:S y b a s eASE)主要有服务器端组件和客户端组件。
Sybase ASE 服务器端主要由SQL Server 和Backup Server 等组件组成,Backup Server 即Sybase ASE 备份服务器与SQL Server 并发运行在服务器上,用来进行数据库的备份转储(dump)和装载(load)操作。
Sybase 数据库有三种不同类型的备份和恢复,一种是Sybase ASE 自动完成的备份恢复,另一种是利用命令完成的备份恢复,还有一种在Sybase Central 环境下完成数据库的备份恢复。
Sybase ASE 数据库自动备份恢复Sybase ASE 数据库和其他数据一样,通过记录数据库事物日志跟踪数据库内编者按:Sybase 数据库是一种关系型数据库,凭借其强大的功能、高效率和高可靠性广泛地应用在各行各业的信息系统。
本文笔者结合多年维护经验,谈谈Sybase 数据库的备份和恢复。
所有的变化来保证数据可恢复,用户的各种INSERT(插入)、UPDATE(更新)、DELETE (删除)三种指令操作都会被按照实际发生顺序记录到事务日志里。
事务日志就是一张系统表(syslogs),在这张表中记录着对数据库的更新请求,Select(查询)操作不记录入事务日志。
由于事务日志包含了事务的执行细节和过程,这些信息足以重复操作,即事务日志可以用于恢复数据库。
如果数据库发生不一致情况,导致数据库关闭,在一般情况下,数据库在重新启动过程中,会执行自动恢复过程,恢复检查点发生以来的数据,已写入的数据进行回退或未写入的数据进行前滚。
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 数据库备份。
sybase备份与恢复一、建立服务(如果已经存在,则不需要此步骤),目的是通过客户端连接数据库服务器1、开始----程序---sybase-----sybase central 双击“目录服务编辑器”后系统会弹出select direct的对话框如图;图一2、点击“ok”系统会弹出interfacedirect 页面,在页面右侧空白处点击鼠标右键如图:图二3、选择“Add”系统会弹出service name对话框名称为“sa”(其实可以任意填写,只是服务器名称,不是用户ID)完成后点击“ok”,双击“servier Address”对应值得空白处系统会弹出增加Network Address的对话框如图:图四4、protocl 选择TCP,Network Address处填写ip地址,5000是端口号;ip地址和端口号之间用“,”分开;(如果需要修改ip地址可以点击图中的“Edit”对ip地址进行编辑,点击“Delete”可以进行删除;)确定后重新登陆sybase central,在页面左侧可以看到新增加的服务名称“sa”如图:5、点击“sa”后系统会弹出登录对话框,用户ID sa,密码为空,服务器名字段显示的是刚才新建的服务名称,确定后系统会连接到数据服务器如图:二、备份数据库步骤如下:例如要备份数据库为gjjmx12选择需要备份的数据库gjjmx12,点击右键选择“备份”如图:系统会弹出备份对话框,如下图:“下一步”,选择备份整个数据库后再下一步,点击“增加”选择文件的物理路径,如图:确定完成后下一步开始备份数据,(图中的路径为:linux系统为/opt/Sybase/back/gjjmx12_2007_2008,/opt/Sybase/back必须存在,Windows系统为d:/back/ gjjmx12_2007_2008),备份完成后到“back”文件夹下可以看到备份好的数据,(注意:sybase数据备份只能备份到数据库服务器上,不能备份到客户端;),导出数据。
Sybase数据备份指南问题描述:Database in use. A user with System Administrator (SA) role must have exclusive use of database to run load解决方法:有些用户正在使用该被恢复的数据库。
使用下面的sql查询哪些会话在连接该数据库。
select spid,hostname,loggedindatetime,ipaddr from master.dbo.sysprocesses where db_name(dbid)='数据库名'使用如下的sql杀掉连接那个数据库的用户连接:select 'kill '+convert(varchar,spid) from master.dbo.sysprocesses where db_name(dbid)='数据库名'实例代码(注意当前数据库的选择):1.备份数据库--dump database Test2 to ‘D:\002.dat’2.恢复数据库--load database Test2 from 'D:\002.dat'3.切换数据库状态--online database Test24.故障解决--select spid,hostname,loggedindatetime,ipaddr from master.dbo.sysprocesses where db_name(dbid)='Test2'--select 'kill '+convert(varchar,spid) from master.dbo.sysprocesses where db_name(dbid)='Test2' --online database Test2。
1.SYBASE数据库备份和恢复在执行此备份恢复计划时,一定要保留disk init,create database和alter database命令的脚本,否则恢复数据库将不能通过下列脚本进行恢复,只能通过数据库管理员进行恢复。
如果用户数据库数据文件丢失、损坏,使用户数据库脱机,或master数据库损坏,此方案最多将会损失一天的数据。
如果用户数据库因为其他问题损坏,用户数据库仍保持联机状态,可以备份出当天的日志文件,则此方案将会恢复到损失那一该的所有数据。
如果master数据库损坏,则只能通过此方案提供的恢复步骤进行恢复。
1.1. 用户数据库的备份与恢复:1.1.1.用户数据库的例行备份计划:1.每周备份用户数据库:每周日晚11:00运行备份用户数据库脚本dump_db.bat,脚本代码如下:echo %1echo %2echo dump database %1 to "%2%date:~0,4%%date:~5,2%%date:~8,2%.bak" >dump_db.sqlecho go >>dump_db.sqlisql -Usa -P -idump_db.sql -odump_db.log脚本使用说明:dump_db 参数1 参数2参数1:要备份的数据库名称;参数2:备份文件的存放路径。
备份指令写入文件dump_db.sql中,备份过程中的日志写入文件dump_db.log中。
2.每日备份事务日志:每日晚10:00运行备份事务日志脚本dump_tran.bat,脚本代码如下:echo %1echo %2echo dump transaction %1 to "%2%date:~0,4%%date:~5,2%%date:~8,2%.tran" >dump_tran.sqlecho go >>dump_tran.sqlisql -Usa -P -idump_tran.sql -odump_tran.log脚本使用说明:dump_tran 参数1 参数2参数1:要备份日志的数据库名称;参数2:备份文件的存放路径。
Sybase备份文件恢复过程
1.安装Sybase1
2.5,启动Sybase SQLServr的服务和Sybase BCKServer的备份服
务;
2.打开Sybase Central Java Edition,工具条有个连接按钮,连接到服务器,用户名
为sa密码为空;
3.连接后,左侧出现树图,选中Database devices 新建一个空间,一般是被恢复数
据大小的5倍左右,如1.8G的数据需要7G的空间;
4.在左侧的树图中选中Database,新建一个数据库,输入数据库名,如cw,选
择刚才建立的设备名,调整空间大小,改为刚才建立的设备空间的大小,或者右键新建的数据库cw->properties在属性中调整设备空间大小。
建立空间需要很长时间,只能等待….
5.选中这个cwbase数据库,右键restore,选择restore the entire Database ,下一步添
加物理备份文件,选择Explicit dump device输入物理路径,输入路径名如D:\ 001100929102421.BAK备份文件,其它空着,点击确定就开始恢复了;
6.恢复完成后会自动弹出日志,提示需要online连接,待左侧树图中数据库名
出现叹号,右键选择online,此时便可以查看数据库中信息了。
7.恢复结束,可以展开数据库->User Table能看到表了.可以用取数工具取数了.。
SybaseIQ的备份与恢复1、Sybase IQ server有三种备份类型:(1)、完全备份(full)(2)、增量备份(incremental)(3)、完全备份的基础上增量备份(incremental since full)注:增量备份和完全备份的基础上增量备份都会对Catalog Store 进行完全备份。
默认情况下为完全备份。
2、Sybase IQ server的顺序:(1)、Catalog Store(2)、Transaction log File(3)、IQ Store3、当IQ server正在备份时:(1)、默认情况下操作员必须在现场,挂持接备份介质。
(2)、操作员可以不在场,但必须正确地估算出备份的数据量大小,并且在安装备份设备时,要选“高级”安装方可。
(3)、数据库备份不会将未提交的内容进行备份。
4、备份命令:BACKUP DATABASE [CRC ON|OFF][Attended ON|OFF][BLOCK FACTOR integer][{FULL|INCREMENTAL|INCREMENTAL SINCE FULL}]TO ‘archive_device’ [SIZE # of KB integer]例子:BACKUP DATABASE TO ‘dev/rmt/0n’注:BACKUP不支持裸设备5、系统级别的备份:如果IQ server运行时进行系统级别的备份,则会导致服务崩溃或丢失数据。
所以,必须确定IQ server是停止状态时,方可进行系统级别备份。
6、备份的恢复:(1)、必须连接到utility_db数据库后才可以进行恢复操作,并且在恢复数据时不能有用户连接到数据库。
(2)、如果有完全恢复,Catalog Store 和Transaction Log(即.db 和.log文件)必须从目标文件夹下删除。
(3)、如果为增量恢复,Catalog Store 和Transaction Log(即.db 和.log文件)必须存在于目标文件夹中。
Sybase数据库的备份与恢复Sybase是基于Client/Server体系结构的数据库软件产品。
它由三个主要部分构成,一是进行数据库管理和维护的一个联机关系数据库管理系统Sybase SQL Server;二是支持数据库应用机的建立与开发的一组前端工具Sybase SQL Toolset;三是可把异构环境下其它厂商的应用软件和任何类型的数据连接在一起的接口Sybase Open Client/Open Server。
对Sybase数据库的备份与恢复主要是针对Sybase SQL Server进行。
Sybase提供了两种不同类型的恢复:一类是系统自动完成的软件系统故障恢复。
另一类是需要手工完成的介质故障恢复。
自动恢复是系统本身提供的防止系统失败的一种保护措施。
每次Sybase重启时都要运行自动恢复机制。
自动控制恢复机制确保在系统瘫痪前完成的事务都写到数据库设备上,而未完成的事务都被回退。
人工恢复是事先通过数据库备份工具命令或在线数据流式管理软件将数据库备份到磁带设备,然后通过对应的恢复命令和模式恢复数据库。
Sybase的传统备份与恢复下面我们首先通过讨论如何定期备份数据库来了解Sybase数据库的传统备份与恢复方法。
对于Sybase数据库,一旦硬件或系统出现故障,当且仅当数据库备份及其事务日志的备份存在的情况下才能恢复数据库。
备份的任务通常由系统管理员或数据库所有者承担。
然而,备份数据库或事务日志的权限可由数据库所有者传递给其它用户。
制定一个备份时间表是非常重要的。
很难确定备份数据及其日志的“最佳”时间表。
事实上,备份的频率决定恢复的质量。
如果出现介质故障,可能丢失最大的数据量。
对于大型的更新频繁的数据库,通常每天要做多次日志备份和至少一次数据库的备份。
在数据库活动时可以备份数据库或事务日志。
这种类型的备份(Sybase独有的特性),称为动态卸出。
动态卸出使备份变得方便,并使连续不断的操作成为可能。
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};。