Você pode tentar consultar o Guia de atualização para 11g
Uma opção seria fazer uma atualização de 9iR2 para 11g na caixa do Windows e, em seguida, migrar o banco de dados 11g do Windows para o Linux. Uma complicação para isso é que o 11gR2 não está disponível no Windows. Além disso, acho que você precisaria atualizar para a versão terminal do 9iR2 (acho que 9.2.0.8) antes de atualizar o banco de dados.
Outra opção é a opção imp / exp . Você pode fazer uma exp completa do banco de dados de origem, mas deseja fazer importações de nível de esquema no destino (como não deseja substituir objetos internos com versões 9i). Você precisaria recriar manualmente os objetos PUBLIC (como sinônimos públicos, diretórios, links de banco de dados). DBMS_METADATA.GET_DDL pode ajudar a extrair o SQL para isso.
Se os volumes de dados forem pequenos o suficiente, eu escolheria a última opção. Se eles são muito grandes, e o exp / imp demora muito, eu provavelmente iria com o primeiro, onde você deveria poder usar tablespaces transportáveis multi-plataforma (que veio com 10g) para acelerar a movimentação de dados. Isso pode significar esperar alguns meses pelo 11gR2 no Windows ou migrar para o 11gR1 no Windows, fazendo a migração nesse nível e (opcionalmente) atualizando para o 11gR2 no Linux.