点睛图 > GDUL > 无SYSTEM表空间恢复 无SYSTEM表空间恢复 具体步骤如下: 1. 设置字符集等参数(gdul.ini) db_charset ZHS16GBK db_ncharset AL16UTF16 db_timezone +08:00 说明:可以查询其它相似库来获取参数值: select name, value$ from sys.props$ where name in ('NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET', 'DBTIMEZONE'); 2. 扫描表所在表空间 GDUL> scan tablespace 7 parallel 10 3. 采样已扫描的表空间 GDUL>sample segment all $cd sample 说明:该操作执行采样,并在sample目录下生成segment列定义及采样数据。 注意: 采样的列类型可能不准确,如果有测试库可以获取表结构,可以替换掉sample/seg_.dict中内的采样列定义,再执行unload 从其它库获取表定义语句: SQL>select '<row>' || '<COL#>' || col# || '</COL#>' || '<SEGCOL#>' || segcol# || '</SEGCOL#>' || '<INTCOL#>' || intcol# || '</INTCOL#>' || '<TYPE#>' || type# || '</TYPE#>' || '<NAME>' || name || '</NAME>' || '<LENGTH>' || length || '</LENGTH>' || '<SEGCOLLENGTH>' || segcollength || '</SEGCOLLENGTH>' || '<PRECISION#>' || precision# || '</PRECISION#>' || '<SCALE>' || scale || '</SCALE>' || '<CHARSETID>' || charsetid || '</CHARSETID>' || '<CHARSETFORM>' || charsetform || '</CHARSETFORM>' || '</row>' from sys.col$ where obj# = (select object_id from dba_objects where owner = '<OWNER>' and object_name = '<TABLE_NAME>') order by col#; 4. unload采样出的数据段 GDUL>unload segment all | <data_object_id> 说明:用指定的data_object_id unload表数据, 指定all会恢复所有segment