Este conteúdo foi traduzido por máquina para sua conveniência e a Huawei Cloud não pode garantir que o conteúdo foi traduzido com precisão. Para exibir o conteúdo original, use o link no canto superior direito para mudar para a página em inglês.
Central de ajuda> Relational Database Service> Referência de API> API v3 (recomendada)> Backup e restauração> Restauração de dados em uma instância de banco de dados existente
Atualizado em 2023-05-05 GMT+08:00

Restauração de dados em uma instância de banco de dados existente

Função

Esta API é usada para restaurar um banco de dados para uma instância de banco de dados existente.

  • Antes de chamar uma API, você precisa entender a API em Autenticação.

Restrições

  • O RDS for SQL Server oferece suporte à chamada em lote desta API para restaurar um banco de dados em uma instância de banco de dados existente.
  • Esta API não oferece suporte à restauração de instâncias do RDS for PostgreSQL.
  • Quando os dados são restaurados em uma instância de banco de dados existente, a API tem as seguintes restrições:
    • O mecanismo de banco de dados da instância de banco de dados original deve ser o mesmo da instância de banco de dados de destino. Por exemplo, se a instância de banco de dados original estiver executando o MySQL, a instância de banco de dados de destino também deve executar o MySQL.
    • A versão do mecanismo de banco de dados da instância de destino deve ser pelo menos igual à da instância original. Por exemplo, uma instância do RDS for MySQL 5.7.25 pode ser restaurada para uma instância do RDS for MySQL 5.7.27. Para restrições de versão do RDS for SQL Server, consulte Tabela 1.
    • O espaço de armazenamento total da instância de banco de dados de destino deve ser pelo menos igual ao da instância de banco de dados original do RDS for MySQL.
    • Restauração entre regiões não é suportada.
    • Para instâncias de banco de dados do RDS for MySQL, quando os dados são restaurados em uma instância de banco de dados existente, a configuração de diferença de maiúsculas e minúsculas da instância de banco de dados existente deve ser a mesma da instância de banco de dados original. Caso contrário, a restauração pode falhar.
  • Quando os dados são restaurados em uma instância de banco de dados original:

    esta API é suportada apenas para o mecanismo de banco de dados do Microsoft SQL Server.

    Tabela 1 Restauração para as versões do mecanismo de banco de dados com suporte do RDS for SQL Server

    Versão original do mecanismo de banco de dados

    Restaurável para

    2008 R2 Standard Edition

    2008 R2 Standard Edition

    2008 R2 Enterprise Edition

    2012 Standard Edition

    2012 Enterprise Edition

    2014 Standard Edition

    2014 Enterprise Edition

    2016 Standard Edition

    2016 Enterprise Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2012 Web Edition

    2012 Web Edition

    2012 Standard Edition

    2012 Enterprise Edition

    2014 Web Edition

    2014 Standard Edition

    2014 Enterprise Edition

    2016 Web Edition

    2016 Standard Edition

    2016 Enterprise Edition

    2017 Web Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2012 Standard Edition

    2012 Standard Edition

    2012 Enterprise Edition

    2014 Standard Edition

    2014 Enterprise Edition

    2016 Standard Edition

    2016 Enterprise Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2012 Enterprise Edition

    2012 Enterprise Edition

    2014 Enterprise Edition

    2016 Enterprise Edition

    2017 Enterprise Edition

    2014 Standard Edition

    2014 Standard Edition

    2014 Enterprise Edition

    2016 Standard Edition

    2016 Enterprise Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2014 Enterprise Edition

    2014 Enterprise Edition

    2016 Enterprise Edition

    2017 Enterprise Edition

    2016 Standard Edition

    2016 Standard Edition

    2016 Enterprise Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2016 Enterprise Edition

    2016 Enterprise Edition

    2017 Enterprise Edition

    2017 Web Edition

    2017 Web Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2017 Standard Edition

    2017 Standard Edition

    2017 Enterprise Edition

    2017 Enterprise Edition

    2017 Enterprise Edition

URI

  • Formato de URI

    POST /v3.1/{project_id}/instances/recovery

  • Descrição do parâmetro
    Tabela 2 Descrição do parâmetro

    Nome

    Obrigatório

    Descrição

    project_id

    Sim

    Especifica o ID do projeto de um locatário em uma região.

    Para obter detalhes sobre como obter o ID do projeto, consulte Obtenção de um ID de projeto.

Solicitação

  • Descrição do parâmetro
    Tabela 3 Descrição do parâmetro

    Nome

    Obrigatório

    Tipo

    Descrição

    source

    Sim

    Object

    Especifica as informações de restauração.

    Para mais detalhes, consulte Tabela 4.

    target

    Sim

    Object

    Especifica o destino de restauração.

    Para mais detalhes, consulte Tabela 5.

    Tabela 4 Descrição da estrutura de dados do campo source

    Nome

    Obrigatório

    Tipo

    Descrição

    instance_id

    Sim

    String

    Especifica o ID da instância de banco de dados.

    type

    Não

    String

    Especifica o modo de restauração. Os valores enumerados incluem:

    • backup: indica o uso de arquivos de backup para restauração. Neste modo, type não é obrigatório e backup_id é obrigatório.
    • timestamp: indica o modo de restauração pontual. Neste modo, type e restore_time são obrigatórios.

    backup_id

    Não

    String

    Especifica o ID do backup usado para restaurar dados. Este parâmetro deve ser especificado quando o arquivo de backup é usado para restauração.

    restore_time

    Não

    Integer

    Especifica o ponto de tempo da restauração de dados no carimbo de data/hora UNIX. A unidade é milissegundo e o fuso horário é UTC.

    database_name

    Não

    Map<String, String>

    Este parâmetro se aplica somente ao mecanismo de banco de dados do Microsoft SQL Server.

    • Se este parâmetro estiver especificado, você poderá restaurar todos os bancos de dados ou bancos de dados específicos e renomear novos bancos de dados.
    • Se este parâmetro não estiver especificado, todos os bancos de dados serão restaurados por padrão.
    • Você pode inserir vários novos nomes de banco de dados e separá-los com vírgulas (,). Os novos nomes de banco de dados podem conter, mas não podem ser iguais aos nomes de banco de dados originais.
    • Observe o seguinte quando você estiver especificando novos nomes de banco de dados:
      • Os novos nomes de banco de dados devem ser diferentes dos nomes de banco de dados originais. Se eles forem deixados em branco, os nomes originais do banco de dados serão usados para restauração por padrão.
      • As definições de diferença de maiúsculas e minúsculas das novas bases de dados são as mesmas das bases de dados originais. Certifique-se de que os novos nomes de banco de dados sejam exclusivos.
      • O número total de bancos de dados novos e existentes nas instâncias de banco de dados existentes ou originais em que os dados são restaurados não pode exceder a cota de banco de dados especificada por rds_databases_quota.
      • Novos nomes de banco de dados não podem conter os seguintes campos (sem distinção entre maiúsculas e minúsculas): rdsadmin, master, msdb, tempdb, model e resource.
      • Os novos nomes de banco de dados devem ter de 1 a 64 caracteres, incluindo apenas letras, dígitos, sublinhados (_) e hifens (_). Se você quiser restaurar dados para vários novos bancos de dados, separe-os com vírgulas (,).
      • Novos nomes de banco de dados devem ser diferentes de quaisquer nomes de banco de dados na instância de banco de dados original.
      • Novos nomes de banco de dados devem ser diferentes de quaisquer nomes de banco de dados nas instâncias de banco de dados existentes ou originais em que os dados são restaurados.
    Exemplo:
    "database_name":{"Original database name":"New database name"}

    Exemplo correto: "database_name":{"A":"A,A1,A2","B":"B1,B2","C":""}

    Exemplo incorreto: "database_name":{"A":"A","B":"B1,B2","C":"B1,C1","D":"D1,d1"},

    As causas de erro são as seguintes:

    1. O nome do novo banco de dados (A) é o mesmo que o nome do banco de dados original (A).
    2. O novo nome de banco de dados (B1) não é exclusivo.
    3. Quando o nome do banco de dados não diferencia maiúsculas de minúsculas, os nomes de banco de dados D1 e d1 entram em conflito.
    • Tenha cuidado ao restaurar dados para uma instância de banco de dados existente ou original.
    AVISO:

    Antes da restauração, certifique-se de que o tamanho dos dados restaurados não exceda a capacidade de disco adquirida. Expanda a capacidade do disco, se necessário.

    restore_all_database

    Não

    Boolean

    Especifica se todos os bancos de dados devem ser restaurados. O valor padrão é false, indicando que nem todos os bancos de dados devem ser restaurados para a instância de destino.

    Este campo está disponível apenas para o Microsoft SQL Server.

    AVISO:

    Se você quiser restaurar todos os bancos de dados para uma instância existente, defina restore_all_database como true.

    Tabela 5 Descrição da estrutura de dados do campo target

    Nome

    Obrigatório

    Tipo

    Descrição

    instance_id

    Sim

    String

    Especifica o ID da instância de banco de dados para a qual o backup será restaurado.

  • Exemplo

    POST https://rds.ap-southeast-1.myhuaweicloud.com/v3.1/0483b6b16e954cb88930a360d2c4e663/instances/recovery

  • Exemplo de solicitação

    Usar arquivos de backup para restauração:

    MySQL:

    {
    	"source": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
    		"type": "backup",
    		"backup_id": "2f4ddb93-b901-4b08-93d8-1d2e472f30fe"
    	},
    	"target": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01"
    	}
    }

    Microsoft SQL Server:

    {
    	"source": {
    		"instance_id": "61879e6085bc44d1831b0ce62d988fd9in04",
    		"type": "backup",
    		"backup_id": "b021670e69ba4538b7b2ed07257306aebr04",
                    "restore_all_database":true
    	},
    	"target": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin04"
    	}
    }

    Usar a PITR para restauração:

    MySQL:

    {
    	"source": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01",
    		"type": "timestamp",
    		"restore_time": 1532001446987
    	},
    	"target": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin01"
    	}
    }

    Microsoft SQL Server:

    {
    	"source": {
    		"instance_id": "61879e6085bc44d1831b0ce62d988fd9in04",
    		"type": "timestamp",
    		"restore_time": 1532001446987,
    		"database_name": {
    			"db1": "dbtest1,dbtest2",
    			"db2": "db2,db02",
                            "db3": ""
    		}
    	},
    	"target": {
    		"instance_id": "d8e6ca5a624745bcb546a227aa3ae1cfin04"
    	}
    }

Resposta

  • Resposta normal
    Tabela 6 Descrição do parâmetro

    Nome

    Tipo

    Descrição

    job_id

    String

    Indica o ID da tarefa.

  • Exemplo de resposta normal
    {
    	"job_id": "ff80808157127d9301571bf8160c001d"
    }
  • Resposta anormal

    Para mais detalhes, consulte Resultados anormais da solicitação.

Código de status

Código de erro

Para mais detalhes, consulte Códigos de erro.