Oracle 数据库从一台服务器复制到另一台服务器的案例

"我想将Oracle数据库从一台服务器复制到另一台服务器。我打算将整个数据库保存到一张 CD 中,并将确切的数据库复制到另一台服务器上。请给我指示。谢谢!"

对于相同的服务器和操作系统,可以按照下面的操作执行实现。数据库将与原始数据库同名。

如何实现Oracle 数据库从一台服务器复制到另一台服务器

命令行方法

数据库图片

1. 使用 NORMAL 或 IMMEDIATE 选项关闭源数据库。

2. 复制所有数据文件。从中选择姓名v$datafile;以获取他们的姓名。

3.复制所有联机重做日志。从中选择成员v$logfile;以获取他们的姓名。

4. 复制所有控制文件。从中选择姓名v$controlfile;以获取他们的姓名。

5. 复制参数文件。$ORACLE_HOME/dbs在 Unix 和$ORACLE_HOME/databaseWindows 中找到它。名称是数据库名称initDBNAME.ora所在的位置。DBNAME

6. 所有文件都必须放在与源服务器目录同名的目录中。从上面的查询返回的名称完全符合目录名称。

7. 创建您刚刚复制的参数文件中指定的所有目录。会的BDUMP, CDUMP, UDUMP。只需重新创建您在参数文件中指定的所有目录。

8. 编辑您复制的参数文件。REMOTE_LOGIN_PASSWORDFILE to NONE如果设置为 SHARED 或 EXCLUSIVE,则设置。

9. 启动数据库。

10.如果您使用真正的临时表空间进行排序,您将不得不重新创建它。数据库仍将启动,但写入它的第一个排序将崩溃。手册中有简单的语法。

11. 要再次使用远程身份验证,请运行ORAPWD. 语法如下:

用法:orapwd file=<fname> password=<password> entries=<users>

12. 编辑参数文件以设置REMOTE_LOGIN_PASSWORDFILE为 SHARED 或 EXCLUSIVE(取决于之前的设置)

更改DB目录的方法

如果要更改 DB 名称或目录,则必须运行该 CREATE CONTROLFILE语句。您必须阅读该手册的手册;大约有30步。或者您可以执行以下操作。

1.在目标服务器上创建一个新名称的数据库。使用您想要的任何目录将其设为您想要的任何数据库名称。

由于我们将使用导出/导入,因此您需要了解以下信息:

  • 如果要更改数据文件的目录名称,则必须预先创建表空间。Oracle 在尝试创建 TABLESPACES 时在 IMPORT 期间查找目录名称。
  • 如果找不到目录,它们就会崩溃。
  • 如果您预先创建它们(在您想要的任何地方),Oracle 将知道表空间在那里并用数据加载它们。它不会爆炸,因为它不会尝试创建它们。

2. 从源数据库导出数据。设置ORACLE_SID为源数据库名称。

exp system/manager file=full_export_dump.dmp log=full_export_log.out full=y

3. 复制full_export_dump.dmp到目标服务器。

4. 将数据导入目标数据库。设置ORACLE_SID为目标数据库名称。

imp 系统/管理器文件=full_dump.dmp log=full_import_log.out full=y ignore=y

使用Oracle RMAN实现

步骤1:备份源数据库

在将Oracle数据库从一台服务器复制到另一台服务器之前,首先需要备份源数据库。通过备份操作,可以确保在数据复制过程中,源数据不会丢失或者发生错误。可以使用Oracle RMAN(备份和恢复管理器)完成备份操作。在使用RMAN进行备份时,需要输入以下命令:

rman target /
backup database plus archivelog;

这将备份数据库和归档日志。您可以选择使用其他备份工具来完成这个步骤。

步骤2:将备份传输到目标服务器。

在源数据库备份完成后,需要将备份文件的副本传输到目标服务器。可以使用SCP、FTP或其他文件传输协议来传输备份文件。

步骤3:在目标服务器上还原数据库。

在传输备份后,在目标服务器上需要使用Oracle RMAN(备份和恢复管理器)还原备份到一个新的Oracle数据库。使用RMAN进行还原的命令如下:

rman target /
run {
      set newname for datafile 1 to '/u01/oracle/oradata/newdb/system01.dbf';
      set newname for datafile 2 to '/u01/oracle/oradata/newdb/sysaux01.dbf';
      set newname for datafile 3 to '/u01/oracle/oradata/newdb/undotbs01.dbf';
      set newname for datafile 4 to '/u01/oracle/oradata/newdb/users01.dbf';
      allocate channel ch1 type disk;
      allocate channel ch2 type disk;
      allocate channel ch3 type disk;
      allocate channel ch4 type disk;
      restore database;
      switch datafile all;
      recover database;
}

此命令中,“set newname”指定了新数据库中的数据文件路径,“allocate channel”指定了磁盘通道类型以及与其关联的设备。之后执行“restore”和“recover”命令,来还原数据库并进行恢复操作。

步骤4:更改数据库名

在还原并恢复数据库后,可以更改新数据库的名称。可以使用以下命令:

ALTER DATABASE RENAME GLOBAL_NAME TO new_database_name;

总结

将Oracle数据库从一台服务器复制到另一台服务器是一项复杂的操作,需要进行备份、复制并且在目标服务器上恢复数据库。可以使用备份和恢复管理器(Oracle RMAN)命令行工具来完成这个过程。