从事数据库工作多年,目前看好分布式NeSQL/HTAP数据库在企业客户市场的发展。未来的主要方向是——致力于 NewSQL/HTAP 数据库的推广普及。
分类: Sybase
2012-06-14 17:00:53
当我们打算把一个机器上备份的IQ 15数据库在另外一台机器上进行恢复,而另外的机器的物理设备名和源机器不一致,如何做呢?其做法与IQ 12.7是相同的,都是在RESTORE时使用RENAME TO 子句,所不同的是IQ 12.7指定的是DBSPACE NAME,而IQ 15需要指定DBFILE NAME。
下面是具体的步骤:
--先关闭(shutdown)IQ服务器。
--然后检查RESTORE语句恢复到的目录下是否有同名的dbname.db 和dbname.log .
--如果有先删除它们或者把这些文件移到其它地方或改名暂时保留。
--然后启动utility server,方法如下:
start_asiq -n DBRST_utility -cl 2048m -ch 4096m
--编辑sql脚本文件db_restore.sql,包含下面的语句:
RESTORE DATABASE '/xxx/xxx/xxx.db' -
FROM '/bbb/bbb/backfufile' --备份文件所在绝对路径和名,备份时如果有多个TO ,那么这里也要求多个FROM
RENAME IQ_SYSTEM_MAIN TO '/dev/raw/raw101' --这里只是示意,根据实际情况修改为你期望的设别名.下同.
RENAME IQ_SYSTEM_MAIN02 TO '/dev/raw/raw102'
RENAME USER_MAIN_FILE01 TO '/dev/raw/raw301'
RENAME USER_MAIN_FILE02 TO '/dev/raw/raw302'
RENAME USER_MAIN_FILE03 TO '/dev/raw/raw303'
RENAME USER_MAIN_FILE04 TO '/dev/raw/raw304'
RENAME USER_MAIN_FILE05 TO '/dev/raw/raw305'
RENAME IQ_SYS_TEMP_FILE01 to '/dev/raw/raw201'
RENAME IQ_SYS_TEMP_FILE02 to '/dev/raw/raw202'
RENAME IQ_SYSTEM_MSG to '/xxx/xxx/xxx.iqmsg' ; --与.db文件目录相同
--启动dbsiql执行db_restore.sql
dbisql -c "uid=DBA;pwd=sql;eng=DBRST_utility;dbn=utility_db" -nogui db_restore.sql