2. 不同字节序之间跨平台迁移
对于不同字节序之间(例如从AIX平台迁移到Linux x86_64平台)的IQ跨平台迁移不能采用backup和restore方法。而只能在新平台上创建数据库和表,然后采用源平台上export所有用户表数据,然后load到目标平台的数据库中。
对于export和load tables有两种方式,一种是采用文本格式;另一种是采用binary格式。下面就举例说明这两种方式的用法
(1) 二进制格式
下面以nation表的迁移为例加以说明:
--export 语句
set temporary option temp_extract_row_delimiter = '\x0a';
set temporary option temp_extract_column_delimiter = '|!';
set temporary option temp_extract_null_as_empty = 'ON';
set temporary option temp_extract_append = 'ON';
set temporary option temp_extract_binary = 'ON';
set temporary option temp_extract_swap = 'OFF';
set temporary option temp_extract_name1 = 'c:\export\nation.dat';
select * from nation;
set temporary option temp_extract_name1 = '';
说明:对于二进制格式的export,temp_extract_binary、temp_extract_swap和temp_extract_name1是必须设置的选项,其他options是可选的。
--load 语句
LOAD TABLE nation
(
n_nationkey BINARY WITH NULL BYTE ,
n_name BINARY WITH NULL BYTE ,
n_regionkey BINARY WITH NULL BYTE ,
n_comment BINARY WITH NULL BYTE
)
FROM 'c:\load\nation.dat'
FORMAT BINARY
STRIP ON
ESCAPES OFF
QUOTES OFF
BYTE ORDER HIGH
NOTIFY 500000
WITH CHECKPOINT ON;
COMMIT;
说明:对于二进制格式的load table语句列分割符必须指定为 BINARY WITH NULL BYTE,此外FORMAT子句必须指定为 BINARY,BYTE ORDER HIGH表示源平台是“大端字节序”,对于“小端字节序”为 BYTE ORDER LOW。
(2) 文本格式
下面以nation表的迁移为例加以说明:
--export
set temporary option temp_extract_row_delimiter = '\x0a';
set temporary option temp_extract_column_delimiter = '|!';
set temporary option temp_extract_null_as_empty = 'ON';
set temporary option temp_extract_append = 'ON';
set temporary option temp_extract_binary = 'OFF';
set temporary option temp_extract_swap = 'OFF';
set temporary option temp_extract_name1 = 'c:\export\nation.dat';
select * from nation;
set temporary option temp_extract_name1 = '';
--load
LOAD TABLE nation
(
n_nationkey '|!' ,
n_name '|!' ,
n_regionkey '|!' ,
n_comment '|!'
)
FROM 'c:\load\nation.dat'
FORMAT ASCII
STRIP ON
ESCAPES OFF
QUOTES OFF
NOTIFY 500000
ROW DELIMITED BY '\x0a'
WITH CHECKPOINT ON;
COMMIT;
对于文本格式和二进制格式,sybase官方给的建议是采用二进制格式的性能更好一些。
如果数据库中有很多表要迁移,可以使用相应的工具。下面的地址有一个IQ工具,可以方便的实现脚本的生成:
阅读(4362) | 评论(0) | 转发(0) |